diff --git a/.forgejo/workflows/generate-db-upgrade-script-psql.yml b/.forgejo/workflows/generate-db-upgrade-script-psql.yml deleted file mode 100644 index f80241e02..000000000 --- a/.forgejo/workflows/generate-db-upgrade-script-psql.yml +++ /dev/null @@ -1,186 +0,0 @@ -# This workflow will generate the database upgrade script for PostgreSQL - -name: Generate PostgreSQL database upgrade script. - -on: - workflow_dispatch: - -jobs: - build: - - runs-on: docker - container: - image: ubuntu:24.04 - - services: - postgres: - image: postgres:16.0 - env: - POSTGRES_USER: libreplan - POSTGRES_PASSWORD: libreplan - POSTGRES_DB: libreplandev - ports: - - 5432:5432 - options: >- - --health-cmd pg_isready - --health-interval 10s - --health-timeout 5s - --health-retries 5 - - steps: - # Define job-id - - name: Debug info - run: | - cat <<'EOF' - ${{ toJSON(forgejo) }} - EOF - - - name: My current run-id - run: echo "${{ forgejo.run_id }}" - - # Define job-id - - name: install needed software - run: | - apt-get update - apt-get install -y postgresql-client nodejs git maven libpostgresql-jdbc-java - - # Define job-id - - name: Checkout code - uses: actions/checkout@v3 - with: - fetch-depth: 0 - fetch-tags: true - show-progress: true - - # This is only possible AFTER the checkout step. - - name: actions prep - id: artifact-upload-prep - run: echo "artifact-id=$(git rev-parse --short=10 HEAD)" >> "$GITHUB_OUTPUT" - - # Let's try caching maven stuff. - - name: Cache Maven repository - uses: actions/cache@v4 - with: - path: ~/.m2/repository - key: maven-${{ hashFiles('**/pom.xml') }} - restore-keys: maven- - - # Example 1: create extra database - # - name: Create libreplandevtest database - # env: - # PGPASSWORD: ${{ secrets.POSTGRES_PASSWORD }} - # run: | - # PGPASSWORD='libreplan' psql -h postgres -U libreplan -d postgres -v ON_ERROR_STOP=1 -c "CREATE DATABASE libreplandevtest;" - - - name: Set up Java 8 - uses: actions/setup-java@v4 - with: - distribution: temurin # of adopt, zulu, corretto, liberica … - java-version: 8 - - - name: Verify Java version - run: java -version - - # Determine maven version in container - - name: Show maven version number - run: mvn -v - - # Wait for PostgreSQL to be ready - - name: Wait for PostgreSQL to be ready - shell: bash - env: - PGPASSWORD: libreplan - run: | - for i in {1..30}; do - psql -h postgres -U libreplan -d libreplandev -c 'select 1' && break - sleep 2 - done - - # - name: "Checkout LibrePlan ${{ vars.full_last_release}} first." - # shell: bash - # run: | - # echo "First checkout older LibrePlan ${{ vars.full_last_release}} release" - # git checkout ${{ vars.full_last_release }} - # echo "Current branch: $(git rev-parse --abbrev-ref HEAD)" - - # - name: Intermediare patch step. Fix old HTTP repo URLs in POMs - # shell: bash - # run: | - # find . -name "pom.xml" -print0 | xargs -0 sed -i \ - # -e 's#http://gettext-commons.googlecode.com/svn/maven-repository#https://gettext-commons.googlecode.com/svn/maven-repository#g' \ - # -e 's#http://nexus.***.org/content/repositories/thirdparty#https://nexus.***.org/content/repositories/thirdparty#g' - - # # Setup clean empty database - # - name: Build clean ${{ vars.short_last_release }} db with Maven - # shell: bash - # run: | - # echo "Running maven to setup a ${{ vars.short_last_release }} database for a clean install" - # mvn clean install --no-transfer-progress -DskipTests -P-userguide,-reports,-i18n - - # Instead of trying to do a build of the old version, just load the old database from the repo files. - - - name: Populate database with database layout of last release. - shell: bash - run: | - echo "Populate database with database layout of ${{ vars.full_last_release }}" - cat scripts/database/install.sql | PGPASSWORD='libreplan' psql -h postgres -U libreplan -d libreplandev - - - name: Switch to the new release. - shell: bash - run: | - echo "Switch to ${{ vars.short_new_release }}." - echo "We do not need to switch as we did not swotch before :-)" - # git checkout "${{ vars.full_new_release }}" - echo "Current branch: $(git rev-parse --abbrev-ref HEAD)" - - # Yes, this looks ugly. But when cleanup over several lines mvn - # starts complaining: The POM for -DdataSource.url=jdbc:postgresql:jar://postgres is missing - # Starts thinking the datasource url is a pom it should download. Weird. - - name: "Generate database changes since version ${{ vars.short_last_release }}" - shell: bash - run: | - mvn clean install -DskipTests -P-userguide,-reports,-i18n,-liquibase-update,liquibase-updatesql -DdataSource.url=jdbc:postgresql://postgres:5432/libreplandev -DdataSource.user=libreplan -DdataSource.password=libreplan -DjdbcDriver.className=org.postgresql.Driver - # This will/should generate a file libreplan-business/target/liquibase/migrate.sql - # with the SQL script to migrate from previous version to the new one. - ls -l libreplan-business/target/liquibase/migrate.sql - - - name: "The details of the generated migration script are:" - shell: bash - run: | - ls -l libreplan-business/target/liquibase/migrate.sql - lines=$( cat libreplan-business/target/liquibase/migrate.sql | grep -v '^--' | wc -l ) - echo "The resulting migration script contained $lines lines. Processing migration script." - - - name: "Copy the sql-file to database scripts folder" - shell: bash - run: | - cp -v libreplan-business/target/liquibase/migrate.sql scripts/database/upgrade_${{ vars.short_new_release }}.sql - - - name: "Add information about version in the script" - shell: bash - run: | - sed -i "s/-- Update Database Script/-- Update Database Script - LibrePlan ${{ vars.short_new_release }}/" scripts/database/upgrade_${{ vars.short_new_release }}.sql - - - name: "Append script at the end of ``install.sql`` file (with a separation of 2 new lines)" - shell: bash - run: | - echo -ne "\n\n" >> scripts/database/install.sql - cat scripts/database/upgrade_${{ vars.short_new_release }}.sql >> scripts/database/install.sql - - # Upload the result - - name: Upload upgrade_${{ vars.short_new_release }}.sql - uses: actions/upload-artifact@v3 - with: - name: upgrade_${{ vars.short_new_release }}.sql - path: scripts/database/upgrade_${{ vars.short_new_release }}.sql - retention-days: 3 - - - name: Upload install.sql - uses: actions/upload-artifact@v3 - with: - name: install.sql - path: scripts/database/install.sql - retention-days: 3 - - - diff --git a/.forgejo/workflows/generate-news-file.yml b/.forgejo/workflows/generate-news-file.yml deleted file mode 100644 index dabc6368b..000000000 --- a/.forgejo/workflows/generate-news-file.yml +++ /dev/null @@ -1,172 +0,0 @@ -# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time -# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven -# -# It could, in theory, be possible to grep the current version number from the pom.xml file, -# and, again, in theory, get the last release name from the git tag list. -# But, sofar, this has been a road with major obstacles. And in the end you've just got to ask yourself: -# "Is the juice worth the squeeze.". (Movie: "The girl next door") - -name: Generate NEWS file. - -on: - workflow_dispatch: - -jobs: - build: - - runs-on: docker - container: - image: ubuntu:24.04 - - steps: - # Define job-id - - name: Debug info - run: | - cat <<'EOF' - ${{ toJSON(forgejo) }} - EOF - - - name: My current run-id - run: echo "${{ forgejo.run_id }}" - - - name: install needed software - run: | - apt-get update - apt-get install -y nodejs git sed - - - name: Checkout code - uses: actions/checkout@v3 - with: - fetch-tags: true # Also get the tags!!! - fetch-depth: 0 - - # This is only possible AFTER the checkout step. - - name: actions prep test to prove it works. - id: artifact-upload-prep - run: echo "artifact-id=$(git rev-parse --short=10 HEAD)" >> "$GITHUB_OUTPUT" - - - name: Start writing NEWS.rst.head file - shell: bash - run: | - FILE="NEWS.rst.head" - echo "Writing to file: $FILE" - #Version 1.4.0 (29 Apr 2013) - #--------------------------- - headstr="Version ${{ vars.short_new_release }} ($(LANG=en;date '+%d %b %Y'))" - headstrlen=${#headstr} - # echo "headstrlen: $headstrlen" - headline="$(printf -- '-%.0s' $(seq 1 "$headstrlen"))" - # echo "headline: $headline" - echo "$headstr" | tee -a "${FILE}" - echo -e "$headline\n\n" | tee -a "${FILE}" - - - name: Start writing summary NEWS.rst.summary - shell: bash - run: | - filepart=summary - FILE="NEWS.rst.summary" - #verstr="Version ${{ vars.short_new_release }} ($(LANG=en;date +'%d %b %Y'))" - #echo "$verstr" - #verstrlen=${#verstr} | tee -a "${FILE}" - #echo "$verstrlen" - #linestr="$(printf -- '-%.0s' $(seq 1 $verstrlen))" - #echo "$linestr" | tee -a "${FILE}" - echo "Summary" | tee -a "${FILE}" - echo -e "~~~~~~~\n" | tee -a "${FILE}" - echo "Description of the new version ${{ vars.short_new_release }}, explaining the main features and bugs " | tee -a "${FILE}" - echo "included. It's usually similar to the piece of news that will be published " | tee -a "${FILE}" - echo "on the website. " | tee -a "${FILE}" - echo "" | tee -a "${FILE}" - - - name: Start writing NEWS.rst.notes for NEWS. - shell: bash - run: | - # Hm, in this stage we have not enough information for this part. - filepart=notes - FILE="NEWS.rst.notes" - echo "Writing to file: $FILE" - # yes, I know about HERE files. I just don't like them! - echo "Notes" | tee -a "${FILE}" - echo -e "~~~~~\n\n" | tee -a "${FILE}" - echo "If you are upgrading from ${{ vars.short_last_release }} without using a " | tee -a "${FILE}" - echo "package, you will need to manually execute on your database the SQL commands" | tee -a "${FILE}" - echo "from file: 'scripts/database/upgrade_${{ vars.short_new_release }}.sql'." | tee -a "${FILE}" - echo "" | tee -a "${FILE}" - echo "If you are upgrading from earlier version without using the Debian package," | tee -a "${FILE}" - echo "you will need to manually execute on your database the SQL commands from all files." | tee -a "${FILE}" - echo "" | tee -a "${FILE}" - - - name: Start writing NEWS.rst.contributors for NEWS. - shell: bash - run: | - filepart=contributers - FILE="NEWS.rst.contributers" - echo "Contributors" | tee -a "${FILE}" - echo -e "~~~~~~~~~~~~\n" | tee -a "${FILE}" - echo -e "A big thanks to all the contributors to version ${{ inputs.short-new-release }} :\n" | tee -a "${FILE}" - #git shortlog -ns "${{ vars.full_last_release }}.." | cut -f2- | sed -e 's/^/* /' | sort -u | tee -a "${FILE}" - git shortlog -ns "${{ vars.full_last_release }}.." | cut -f2- | sed -e 's/^/* /' | sort -u | tee -a "${FILE}" - echo "" | tee -a "${FILE}" - - - name: Start writing NEWS.rst.translators for NEWS. - shell: bash - run: | - # If there're changes in the translations we add the name and language of - # each of them in this section. - filepart=translators - FILE="NEWS.rst.translators" - # We do not insert new Translators block as we already copy the old block including the header. - # echo "Translators" | tee -a "${FILE}" - # echo -e "~~~~~~~~~~~\n\n" | tee -a "${FILE}" - echo "Inserting translator block from last release." | tee -a $LOG - cat NEWS.rst | sed -n -e '/^Translators/,/^Changes/p' | sed -e '/^Changes/,$d' | tee -a "${FILE}" - - - name: Start writing NEWS.rst.changes - shell: bash - run: | - # Comprehensive list of changes done in the repository since previous - # version. - filepart=changes - FILE="NEWS.rst.changes" - echo "Writing to file: $FILE" - echo "Changes" | tee -a "${FILE}" - echo -e "~~~~~~~\n" | tee -a "${FILE}" - git log --pretty="* %s" "${{ vars.full_last_release }}.." | tee -a "${FILE}" - - # Concatenate the files - - name: Generate resulting NEWS.rst.part - shell: bash - run: | - echo "Building changes to NEWS.rst file" - echo "NEWS" > /tmp/lpnews.$$ - echo -e "====\n" >> /tmp/lpnews.$$ - for filepart in head summary notes contributers translators changes - do - cat "NEWS.rst.$filepart" >> /tmp/lpnews.$$ - done - cat /tmp/lpnews.$$ > /tmp/lpnews2.$$ - cp /tmp/lpnews.$$ LATEST-NEWS.rst - echo "Cut 2 lines from original NEWS.rst file" | tee -a $LOG - cat NEWS.rst | sed -e '1,2d' >> /tmp/lpnews2.$$ - echo "Check NEWS.rst file before continueing..." - cp /tmp/lpnews2.$$ NEWS.rst - - # Upload the result - - name: Upload NEWS.rst - uses: actions/upload-artifact@v3 - with: - name: NEWS.rst - path: NEWS.rst - compression-level: 0 # no compression - retention-days: 3 - - - name: Upload LATEST-NEWS.rst - uses: actions/upload-artifact@v3 - with: - name: LATEST-NEWS-for-${{ vars.short_new_release }}.rst - path: LATEST-NEWS.rst - compression-level: 0 # no compression - retention-days: 3 - - - diff --git a/.forgejo/workflows/ubuntu_24.04.yml b/.forgejo/workflows/ubuntu_24.04.yml deleted file mode 100644 index 85cbfbf2b..000000000 --- a/.forgejo/workflows/ubuntu_24.04.yml +++ /dev/null @@ -1,152 +0,0 @@ -# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time -# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven - -name: Ubuntu 24.04 (Noble Numbat) - -on: - workflow_dispatch: - inputs: - create-release: - description: 'Create a release from this build?' - default: false - type: boolean - push: -# branches: [ "main" ] - tags: - - "v*" -# pull_request: -# branches: [ "main" ] - - -# Prevent cancellation of already running actions when pushing concurrently. Test -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: false - -jobs: - build: - - runs-on: docker - container: - image: ubuntu:24.04 - - services: - postgres: - image: postgres:16.0 - env: - POSTGRES_USER: libreplan - POSTGRES_PASSWORD: libreplan - POSTGRES_DB: libreplandev - ports: - - 5432:5432 - options: >- - --health-cmd pg_isready - --health-interval 10s - --health-timeout 5s - --health-retries 5 - - steps: - - # Define job-id - - name: Debug info - run: | - cat <<'EOF' - ${{ toJSON(forgejo) }} - EOF - - - name: My current run-id - run: echo "${{ forgejo.run_id }}" - - - name: install needed software - run: | - apt-get update - apt-get install -y postgresql-client nodejs git maven libpostgresql-jdbc-java - - - name: Checkout code - uses: actions/checkout@v3 - - # This is only possible AFTER the checkout step. - - name: actions prep - id: artifact-upload-prep - run: echo "artifact-id=$(git rev-parse --short=10 HEAD)" >> "$GITHUB_OUTPUT" - - - # Let's test caching maven stuff. - - name: Cache Maven repository - uses: actions/cache@v4 - with: - path: ~/.m2/repository - key: maven-${{ hashFiles('**/pom.xml') }} - restore-keys: maven- - - # Example 1: create extra database - - name: Create libreplandevtest database - env: - PGPASSWORD: ${{ secrets.POSTGRES_PASSWORD }} - run: | - PGPASSWORD='libreplan' psql -h postgres -U libreplan -d postgres -v ON_ERROR_STOP=1 -c "CREATE DATABASE libreplandevtest;" - - - name: Set up Java 8 - uses: actions/setup-java@v4 - with: - distribution: temurin # of adopt, zulu, corretto, liberica … - java-version: 8 - - - name: Verify Java version - run: java -version - - # Determine maven version in container - - name: Show maven version number - run: mvn -v - - - name: Wait for PostgreSQL to be ready - shell: bash - env: - PGPASSWORD: libreplan - run: | - for i in {1..30}; do - psql -h postgres -U libreplan -d libreplandev -c 'select 1' && break - sleep 2 - done - - # Yes, this looks ugly. But when cleanup over several lines mvn - # starts complaining: The POM for -DdataSource.url=jdbc:postgresql:jar://postgres is missing - # Starts thinking the datasource url is a pom it should download. Weird. - - name: Build with Maven - shell: bash - run: mvn clean install --no-transfer-progress -Ddefault.passwordsControl=false -Ddefault.exampleUsersDisabled=false -DdataSource.url=jdbc:postgresql://postgres:5432/libreplandev -DdataSource.user=libreplan -DdataSource.password=libreplan -DjdbcDriver.className=org.postgresql.Driver - - - name: Copy libreplan-webapp.war to libreplan.war - run: cp libreplan-webapp/target/libreplan-webapp.war libreplan-webapp/target/libreplan.war - - # Upload the result - - name: Upload libreplan.war attempt 1 - uses: actions/upload-artifact@v3 - with: - name: libreplan.war - path: libreplan-webapp/target/libreplan.war - retention-days: 3 - - - name: Upload libreplan.war with git hash - uses: actions/upload-artifact@v3 - with: - name: libreplan-${{ steps.artifact-upload-prep.outputs.artifact-id }}.war - path: libreplan-webapp/target/libreplan.war - retention-days: 3 - - - name: Prep release dir for upload - run: | - mkdir -p dist/release - cp libreplan-webapp/target/libreplan.war dist/release/libreplan.war - - # Also store as a release. - - uses: actions/forgejo-release@v2.7.3 - with: - direction: upload - url: http://10.1.1.158:3000 - repo: jeroen/libreplan - token: ${{ secrets.WRITE_TOKEN_TO_MYREPO }} - tag: v2025 - release-dir: dist/release - release-notes: "No RELEASE NOTES" - verbose: true diff --git a/.github/workflows/ubuntu-20.04.yml b/.github/workflows/ubuntu-20.04.yml deleted file mode 100644 index 38de9ca41..000000000 --- a/.github/workflows/ubuntu-20.04.yml +++ /dev/null @@ -1,52 +0,0 @@ -# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time -# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven - -name: Ubuntu 20.04 (Focal Fossa) - -on: - push: - branches: [ "main" ] - pull_request: - branches: [ "main" ] - -jobs: - build: - - runs-on: ubuntu-20.04 - - services: - postgres: - image: postgres:12.0 - env: - POSTGRES_USER: libreplan - POSTGRES_PASSWORD: libreplan - ports: - - 5432:5432 - options: >- - --health-cmd pg_isready - --health-interval 10s - --health-timeout 5s - --health-retries 5 - - steps: - - uses: actions/checkout@v3 - - - name: Create libreplandev database - uses: akanieski/setup-postgres-cli@v0.1.2 - with: - commands: PGPASSWORD=libreplan psql -U libreplan -h postgres -p 5432 -c "CREATE DATABASE libreplandev;" - - - name: Create libreplandevtest database - uses: akanieski/setup-postgres-cli@v0.1.2 - with: - commands: PGPASSWORD=libreplan psql -U libreplan -h postgres -p 5432 -c "CREATE DATABASE libreplandevtest;" - - - name: Set up JDK 8 - uses: actions/setup-java@v3 - with: - java-version: '8' - distribution: 'temurin' - cache: maven - - - name: Build with Maven - run: mvn -Ddefault.passwordsControl=false -Ddefault.exampleUsersDisabled=false clean install diff --git a/.github/workflows/ubuntu-22.04.yml b/.github/workflows/ubuntu-22.04.yml deleted file mode 100644 index 63387116d..000000000 --- a/.github/workflows/ubuntu-22.04.yml +++ /dev/null @@ -1,51 +0,0 @@ -# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time -# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven - -name: Ubuntu 22.04 (Jammy Jellyfish) - -on: - push: - branches: [ "main" ] - pull_request: - branches: [ "main" ] - -jobs: - build: - - runs-on: ubuntu-22.04 - - services: - postgres: - image: postgres:14.0 - env: - POSTGRES_USER: libreplan - POSTGRES_PASSWORD: libreplan - ports: - - 5432:5432 - options: >- - --health-cmd pg_isready - --health-interval 10s - --health-timeout 5s - --health-retries 5 - steps: - - uses: actions/checkout@v3 - - - name: Create libreplandev database - uses: akanieski/setup-postgres-cli@v0.1.2 - with: - commands: PGPASSWORD=libreplan psql -U libreplan -h postgres -p 5432 -c "CREATE DATABASE libreplandev;" - - - name: Create libreplandevtest database - uses: akanieski/setup-postgres-cli@v0.1.2 - with: - commands: PGPASSWORD=libreplan psql -U libreplan -h postgres -p 5432 -c "CREATE DATABASE libreplandevtest;" - - - name: Set up JDK 8 - uses: actions/setup-java@v3 - with: - java-version: '8' - distribution: 'temurin' - cache: maven - - - name: Build with Maven - run: mvn -Ddefault.passwordsControl=false -Ddefault.exampleUsersDisabled=false clean install diff --git a/.github/workflows/ubuntu-24.04.yml b/.github/workflows/ubuntu-24.04.yml deleted file mode 100644 index d9300b7b8..000000000 --- a/.github/workflows/ubuntu-24.04.yml +++ /dev/null @@ -1,51 +0,0 @@ -# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time -# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven - -name: Ubuntu 24.04 (Noble Numbat) - -on: - push: - branches: [ "main" ] - pull_request: - branches: [ "main" ] - -jobs: - build: - - runs-on: ubuntu-24.04 - - services: - postgres: - image: postgres:16.0 - env: - POSTGRES_USER: libreplan - POSTGRES_PASSWORD: libreplan - ports: - - 5432:5432 - options: >- - --health-cmd pg_isready - --health-interval 10s - --health-timeout 5s - --health-retries 5 - steps: - - uses: actions/checkout@v3 - - - name: Create libreplandev database - uses: akanieski/setup-postgres-cli@v0.1.2 - with: - commands: PGPASSWORD=libreplan psql -U libreplan -h postgres -p 5432 -c "CREATE DATABASE libreplandev;" - - - name: Create libreplandevtest database - uses: akanieski/setup-postgres-cli@v0.1.2 - with: - commands: PGPASSWORD=libreplan psql -U libreplan -h postgres -p 5432 -c "CREATE DATABASE libreplandevtest;" - - - name: Set up JDK 8 - uses: actions/setup-java@v3 - with: - java-version: '8' - distribution: 'temurin' - cache: maven - - - name: Build with Maven - run: mvn -Ddefault.passwordsControl=false -Ddefault.exampleUsersDisabled=false clean install diff --git a/.gitignore b/.gitignore index 5905c5b92..de689f930 100644 --- a/.gitignore +++ b/.gitignore @@ -39,4 +39,16 @@ doc/src/user/gl/html/ doc/src/user/gl/index.rst #ignore files that need ignoring -*.ignore \ No newline at end of file +*.ignore + +# TASKPM local files +CLAUDE.md +SESSION-NOTES.md +MIGRATION_PLAN.md +MIGRATION_STATUS.md +cookies.txt +trash/ +migrate/*.log +migrate/catalina.out +migrate/log.txt +migrate/doc-baseline/ \ No newline at end of file diff --git a/README.rst b/README.rst index 500bde2fb..0af093257 100644 --- a/README.rst +++ b/README.rst @@ -5,10 +5,10 @@ LibrePlan Description ----------- -*LibrePlan* is a free software web application for project management, +*TASKPM* is a free software web application for project management, monitoring and control. -*LibrePlan* is a collaborative tool to plan, monitor and control projects and +*TASKPM* is a collaborative tool to plan, monitor and control projects and has a rich web interface which provides a desktop alike user experience. All the team members can take part in the planning and this makes possible to have a real-time planning. @@ -131,10 +131,10 @@ http://sourceforge.net/projects/libreplan/files/ Webpage ------- -You can find more information about *LibrePlan* at +You can find more information about *TASKPM* at https://www.libreplan.dev/home/ -For information related with *LibrePlan* development you can visit the wiki at +For information related with *TASKPM* development you can visit the wiki at https://wiki.libreplan.dev or have a look at the DeepWiki documentation: |Ask DeepWiki| .. |Ask DeepWiki| image:: https://deepwiki.com/badge.svg @@ -150,7 +150,7 @@ Please use the bug tracker to report bugs at http://bugs.libreplan.dev/ License ------- -*LibrePlan* is released under the terms of the GNU Affero General Public +*TASKPM* is released under the terms of the GNU Affero General Public License version 3 [3]_. Please read the ``COPYING`` file for details. diff --git a/doc/src/user/en/01-introducion.rst b/doc/src/user/en/01-introducion.rst index 6a97ce303..5b5f07de3 100644 --- a/doc/src/user/en/01-introducion.rst +++ b/doc/src/user/en/01-introducion.rst @@ -3,18 +3,20 @@ Introduction .. contents:: -This document describes the features of LibrePlan and provides user information on how to configure and use the application. +This document describes the features of TASKPM and provides user information on how to configure and use the application. -LibrePlan is an open-source web application for project planning. Its primary goal is to provide a comprehensive solution for company project management. For any specific information you may need about this software, please contact the development team at http://www.libreplan.com/contact/ +TASKPM is an open-source web application for personal project planning. The primary goal of Libreplan was to provide a comprehensive solution for company project management. TASKPM retains this functionality but with its integration with timewarrior and taskwarrior adds a personal planning orientation. .. figure:: images/company_view.png :scale: 50 Company Overview -Company Overview and View Management +TASKPM Situation and View Management ==================================== +The TASKPM use case situation is a single staff resource who is also the sole proprietoru and any number of agent workers. This combine is to be read in the Libreplan documentation where "company" is used. To the extent possible we have tried to leave Libreplan functionality as is simply reinterpret with or without renaming for the reframing to the new personal oriention. So there are internal andexternal views in TASKPM, the external ones look inward from newly added document and carry the reinterpretation while most of the prexisting chapters, in their entirety, look outward from the standard model of the firm perspective of Libreplan. + As shown in the program's main screen (see the previous screenshot) and the company overview, users can view a list of planned projects. This allows them to understand the company's overall status regarding orders and resource utilization. The company overview offers three distinct views: * **Planning View:** This view combines two perspectives: @@ -48,19 +50,19 @@ The program offers the following views for an order: * **Editing Order View:** This view allows users to modify the details of the order. See the *Orders* section for more information. * **Advanced Resource Allocation View:** This view allows users to allocate resources with advanced options, such as specifying hours per day or the allocated functions to be performed. See the *Resource allocation* section for more information. -What Makes LibrePlan Useful? +What Makes TASKPM Useful? ============================ -LibrePlan is a general-purpose planning tool developed to address challenges in industrial project planning that were not adequately covered by existing tools. The development of LibrePlan was also motivated by the desire to provide a free, open-source, and entirely web-based alternative to proprietary planning tools. +TASKPM is a general-purpose planning tool developed to address challenges in industrial project planning that were not adequately covered by existing tools. The development of TASKPM was also motivated by the desire to provide a free, open-source, and entirely web-based alternative to proprietary planning tools. The core concepts underpinning the program are as follows: -* **Company and Multi-Project Overview:** LibrePlan is specifically designed to provide users with information about multiple projects being carried out within a company. Therefore, it is inherently a multi-project program. The program's focus is not limited to individual projects, although specific views for individual projects are also available. +* **Company and Multi-Project Overview:** TASKPM is specifically designed to provide users with information about multiple projects being carried out within a company. Therefore, it is inherently a multi-project program. The program's focus is not limited to individual projects, although specific views for individual projects are also available. * **View Management:** The company overview, or multi-project view, is accompanied by various views of the stored information. For example, the company overview allows users to view orders and compare their status, view the company's overall resource load, and manage orders. Users can also access the planning view, resource load view, advanced resource allocation view, and editing order view for individual projects. * **Criteria:** Criteria are a system entity that enables the classification of both resources (human and machine) and tasks. Resources must meet certain criteria, and tasks require specific criteria to be fulfilled. This is one of the program's most important features, as criteria form the basis of generic allocation and address a significant challenge in the industry: the time-consuming nature of human resource management and the difficulty of long-term company load estimations. * **Resources:** There are two types of resources: human and machine. Human resources are the company's workers, used for planning, monitoring, and controlling the company's workload. Machine resources, dependent on the people who operate them, function similarly to human resources. -* **Resource Allocation:** A key feature of the program is the ability to designate resources in two ways: specifically and generically. Generic allocation is based on the criteria required to complete a task and must be fulfilled by resources capable of meeting those criteria. To understand generic allocation, consider this example: John Smith is a welder. Typically, John Smith would be specifically assigned to a planned task. However, LibrePlan offers the option of selecting any welder within the company, without needing to specify that John Smith is the assigned person. -* **Company Load Control:** The program allows for easy control of the company's resource load. This control extends to both the mid-term and long-term, as current and future projects can be managed within the program. LibrePlan provides graphs that visually represent resource utilization. +* **Resource Allocation:** A key feature of the program is the ability to designate resources in two ways: specifically and generically. Generic allocation is based on the criteria required to complete a task and must be fulfilled by resources capable of meeting those criteria. To understand generic allocation, consider this example: John Smith is a welder. Typically, John Smith would be specifically assigned to a planned task. However, TASKPM offers the option of selecting any welder within the company, without needing to specify that John Smith is the assigned person. +* **Company Load Control:** The program allows for easy control of the company's resource load. This control extends to both the mid-term and long-term, as current and future projects can be managed within the program. TASKPM provides graphs that visually represent resource utilization. * **Labels:** Labels are used to categorize project tasks. With these labels, users can group tasks by concept, allowing for later review as a group or after filtering. * **Filters:** Because the system naturally includes elements that label or characterize tasks and resources, criteria filters or labels can be used. This is very useful for reviewing categorized information or generating specific reports based on criteria or labels. * **Calendars:** Calendars define the available productive hours for different resources. Users can create general company calendars or define more specific calendars, allowing for the creation of calendars for individual resources and tasks. @@ -69,7 +71,7 @@ The core concepts underpinning the program are as follows: * **Tasks:** Tasks are the fundamental planning elements within the program. They are used to schedule work to be carried out. Key characteristics of tasks include: dependencies between tasks, and the potential requirement for specific criteria to be met before resources can be allocated. * **Work Reports:** These reports, submitted by the company's workers, detail the hours worked and the tasks associated with those hours. This information allows the system to calculate the actual time taken to complete a task compared to the budgeted time. Progress can then be compared against the actual hours used. -In addition to the core functions, LibrePlan offers other features that distinguish it from similar programs: +In addition to the core functions, TASKPM offers other features that distinguish it from similar programs: * **Integration with ERP:** The program can directly import information from company ERP systems, including orders, human resources, work reports, and specific criteria. * **Version Management:** The program can manage multiple planning versions, while still allowing users to review the information from each version. diff --git a/doc/src/user/en/06-pedidos.rst b/doc/src/user/en/06-pedidos.rst index 6dbbb011a..608ee3df2 100644 --- a/doc/src/user/en/06-pedidos.rst +++ b/doc/src/user/en/06-pedidos.rst @@ -12,7 +12,7 @@ The following sections describe the operations that users can perform with order Orders ====== -An order represents a project or work requested by a client from the company. The order identifies the project within the company's planning. Unlike comprehensive management programs, LibrePlan only requires certain key details for an order. These details are: +An order represents a project or work requested by a client from the company. The order identifies the project within the company's planning. Unlike comprehensive management programs, TASKPM only requires certain key details for an order. These details are: * **Order Name:** The name of the order. * **Order Code:** A unique code for the order. diff --git a/doc/src/user/en/07-planificacion.rst b/doc/src/user/en/07-planificacion.rst index b4403defa..ea3637aa8 100644 --- a/doc/src/user/en/07-planificacion.rst +++ b/doc/src/user/en/07-planificacion.rst @@ -7,7 +7,7 @@ Task Planning Task Planning ============= -Planning in LibrePlan is a process that has been described throughout the user guide, with the chapters on orders and resource assignment being particularly important. This chapter describes the basic planning procedures after the order and Gantt charts have been properly configured. +Planning in TASKPM is a process that has been described throughout the user guide, with the chapters on orders and resource assignment being particularly important. This chapter describes the basic planning procedures after the order and Gantt charts have been properly configured. .. figure:: images/planning-view.png :scale: 35 diff --git a/doc/src/user/en/13-usuarios.rst b/doc/src/user/en/13-usuarios.rst index 6403e1287..53baa895a 100644 --- a/doc/src/user/en/13-usuarios.rst +++ b/doc/src/user/en/13-usuarios.rst @@ -7,7 +7,7 @@ User Management Managing Users ============== -LibrePlan's system allows administrators to manage user profiles, authorizations, and users. Users are assigned to user profiles, which can have a series of predefined roles that grant access to the program's features. Roles are defined authorizations within LibrePlan. Examples of roles include: +TASKPM's system allows administrators to manage user profiles, authorizations, and users. Users are assigned to user profiles, which can have a series of predefined roles that grant access to the program's features. Roles are defined authorizations within TASKPM. Examples of roles include: * **Administration:** A role that must be assigned to administrators to enable them to perform administrative operations. * **Web Service Reader:** A role required for users to consult the program's web services. diff --git a/doc/src/user/en/15-3-work-progress-per-project.rst b/doc/src/user/en/15-3-work-progress-per-project.rst index 41a2e325c..68b16e18c 100644 --- a/doc/src/user/en/15-3-work-progress-per-project.rst +++ b/doc/src/user/en/15-3-work-progress-per-project.rst @@ -64,7 +64,7 @@ For each project selected for inclusion in the report output, the following info * *Project Name*. * *Total Hours*. The total hours for the project are shown by adding the hours for each task. Two types of total hours are shown: * *Estimated (TE)*. This is the sum of all the estimated hours in the project's WBS. It represents the total number of hours estimated to complete the project. - * *Planned (TP)*. In *LibrePlan*, it's possible to have two different quantities: the estimated number of hours for a task (the number of hours initially estimated to complete the task) and the planned hours (the hours allocated in the plan to complete the task). The planned hours can be equal to, less than, or greater than the estimated hours and are determined in a later phase, the assignment operation. Therefore, the total planned hours for a project are the sum of all the allocated hours for its tasks. + * *Planned (TP)*. In *TASKPM*, it's possible to have two different quantities: the estimated number of hours for a task (the number of hours initially estimated to complete the task) and the planned hours (the hours allocated in the plan to complete the task). The planned hours can be equal to, less than, or greater than the estimated hours and are determined in a later phase, the assignment operation. Therefore, the total planned hours for a project are the sum of all the allocated hours for its tasks. * *Progress*. Three measurements related to the overall progress of the type specified in the progress input filter for each project at the reference date are shown: * *Measured (PM)*. This is the overall progress considering the progress measurements with a date earlier than the *Reference Date* in the input parameters of the report. All tasks are taken into account, and the sum is weighted by the number of hours for each task. * *Imputed (PI)*. This is the progress assuming that work continues at the same pace as the hours completed for a task. If X hours out of Y hours for a task are completed, the overall imputed progress is considered to be X/Y. diff --git a/doc/src/user/en/15-informes.rst b/doc/src/user/en/15-informes.rst index 3dc0186f0..34d3fbc68 100644 --- a/doc/src/user/en/15-informes.rst +++ b/doc/src/user/en/15-informes.rst @@ -4,7 +4,7 @@ Reports .. _informes: .. contents:: -LibrePlan integrates with *JasperReports* to provide report management, enabling users to generate various reports for analyzing the data available in the program. +TASKPM integrates with *JasperReports* to provide report management, enabling users to generate various reports for analyzing the data available in the program. The available reports are: diff --git a/doc/src/user/en/16-ldap-authentication.rst b/doc/src/user/en/16-ldap-authentication.rst index 1c1802759..924033fba 100644 --- a/doc/src/user/en/16-ldap-authentication.rst +++ b/doc/src/user/en/16-ldap-authentication.rst @@ -11,15 +11,15 @@ It is divided into four different areas, which are explained below: Activation ========== -This area is used to set the properties that determine how *LibrePlan* uses +This area is used to set the properties that determine how *TASKPM* uses LDAP. -If the field *Enable LDAP authentication* is checked, *LibrePlan* will query +If the field *Enable LDAP authentication* is checked, *TASKPM* will query LDAP each time a user attempts to log in to the application. The field *Use LDAP roles* checked means that a mapping between LDAP roles and -LibrePlan roles is established. Consequently, the permissions for a user in -LibrePlan will depend on the roles the user has in LDAP. +TASKPM roles is established. Consequently, the permissions for a user in +TASKPM will depend on the roles the user has in LDAP. Configuration ============= @@ -51,8 +51,8 @@ should be found. The property *UserId* must be filled with the name of the property where the username is stored in LDAP. The checkbox *Save passwords in database*, when checked, means that the -password is also stored in the LibrePlan database. In this way, if LDAP is -offline or unreachable, LDAP users can authenticate against the LibrePlan +password is also stored in the TASKPM database. In this way, if LDAP is +offline or unreachable, LDAP users can authenticate against the TASKPM database. If it is not checked, LDAP users can only be authenticated against LDAP. @@ -60,7 +60,7 @@ Authorization ============= This section allows you to define a strategy for matching LDAP roles with -LibrePlan roles. The first choice is the strategy to use, depending on the +TASKPM roles. The first choice is the strategy to use, depending on the LDAP implementation. Group Strategy @@ -195,10 +195,10 @@ And, for example, if you want to match some roles: **By User Identifier** -You can even use a workaround to specify LibrePlan roles directly to users +You can even use a workaround to specify TASKPM roles directly to users without having an attribute in each LDAP user. -In this case, you will specify which users have the different LibrePlan roles +In this case, you will specify which users have the different TASKPM roles by ``uid``. The configuration for this case is as follows: @@ -220,9 +220,9 @@ And, for example, if you want to match some roles: Role Matching ------------- -At the bottom of this section, there is a table with all the LibrePlan roles +At the bottom of this section, there is a table with all the TASKPM roles and a text field next to each one. This is for matching roles. For instance, -if an administrator decides that the *Administration* LibrePlan role matches +if an administrator decides that the *Administration* TASKPM role matches the *admin* and *administrators* roles of LDAP, the text field should contain: "``admin;administrators``". The character for splitting roles is "``;``". diff --git a/doc/src/user/en/17-1-project-dashboard.rst b/doc/src/user/en/17-1-project-dashboard.rst index e9e9d3500..af0bb824d 100644 --- a/doc/src/user/en/17-1-project-dashboard.rst +++ b/doc/src/user/en/17-1-project-dashboard.rst @@ -3,7 +3,7 @@ Project Dashboard .. contents:: -The project dashboard is a *LibrePlan* perspective that contains a set of **KPIs (Key Performance Indicators)** to help assess a project's performance in terms of: +The project dashboard is a *TASKPM* perspective that contains a set of **KPIs (Key Performance Indicators)** to help assess a project's performance in terms of: * Work progress * Cost diff --git a/doc/src/user/en/17-2-pipeline-dashboard.rst b/doc/src/user/en/17-2-pipeline-dashboard.rst index 5c5a2d893..3be443ac8 100644 --- a/doc/src/user/en/17-2-pipeline-dashboard.rst +++ b/doc/src/user/en/17-2-pipeline-dashboard.rst @@ -3,7 +3,7 @@ Pipeline Dashboard .. contents:: -The pipeline dashboard is a *LibrePlan* perspective that lists all company projects in a table. This "pipeline" table has nine columns, each corresponding to a project status: +The pipeline dashboard is a *TASKPM* perspective that lists all company projects in a table. This "pipeline" table has nine columns, each corresponding to a project status: * PRE-SALES * OFFERED diff --git a/doc/src/user/en/17-dashboards.rst b/doc/src/user/en/17-dashboards.rst index e1b81058b..1f72bd8b7 100644 --- a/doc/src/user/en/17-dashboards.rst +++ b/doc/src/user/en/17-dashboards.rst @@ -4,7 +4,7 @@ Dashboards .. _informes: .. contents:: -*LibrePlan* offers dashboard views for projects, providing an overview of their current status. +*TASKPM* offers dashboard views for projects, providing an overview of their current status. The two available dashboard views are: diff --git a/doc/src/user/en/18-connectors.rst b/doc/src/user/en/18-connectors.rst index 56daace1a..e0432d2d9 100644 --- a/doc/src/user/en/18-connectors.rst +++ b/doc/src/user/en/18-connectors.rst @@ -3,7 +3,7 @@ Connectors .. contents:: -Connectors are *LibrePlan* client applications that can be used to communicate with (web) servers to retrieve data, process it, and store it. Currently, there are three connectors: the JIRA connector, the Tim Enterprise connector, and the E-mail connector. +Connectors are *TASKPM* client applications that can be used to communicate with (web) servers to retrieve data, process it, and store it. Currently, there are three connectors: the JIRA connector, the Tim Enterprise connector, and the E-mail connector. Configuration ============= @@ -29,7 +29,7 @@ JIRA is an issue and project tracking system. The JIRA connector is an application that can be used to request JIRA web server data for JIRA issues and process the response. The request is based on JIRA labels. In JIRA, labels can be used to categorize issues. The request is structured as follows: retrieve all issues that are categorized by this label name. -The connector receives the response, which in this case is the issues, and converts them to *LibrePlan* "Order elements" and "Time sheets." +The connector receives the response, which in this case is the issues, and converts them to *TASKPM* "Order elements" and "Time sheets." The *JIRA connector* must be configured properly before it can be used. @@ -163,24 +163,24 @@ For import, the Tim connector adds the following fields in the request: * **Department:** The department for which you want to import the roster. Departments are configurable. * The fields you are interested in (like Person info, RosterCategory, etc.) that the Tim server should include in its response. -The import response contains the following fields, which are sufficient to manage the exception days in *LibrePlan*: +The import response contains the following fields, which are sufficient to manage the exception days in *TASKPM*: * **Person info:** Name and network name. * **Department:** The department the worker is working in. -* **Roster category:** Information on the presence/absence (Aanwzig/afwezig) of the worker and the reason (*LibrePlan* exception type) in case the worker is absent. +* **Roster category:** Information on the presence/absence (Aanwzig/afwezig) of the worker and the reason (*TASKPM* exception type) in case the worker is absent. * **Date:** The date the worker is present/absent. * **Time:** The start time of presence/absence, for example, 08:00. * **Duration:** The number of hours that the worker is present/absent. -By converting the import response to *LibrePlan*'s "Exception day," the following translations are taken into account: +By converting the import response to *TASKPM*'s "Exception day," the following translations are taken into account: * If the roster category contains the name "Vakantie," it will be translated to "RESOURCE HOLIDAY." * The roster category "Feestdag" will be translated to "BANK HOLIDAY." * All the rest, like "Jus uren," "PLB uren," etc., should be added to the "Calendar Exception Days" manually. -Moreover, in the import response, the roster is divided into two or three parts per day: for example, roster-morning, roster-afternoon, and roster-evening. However, *LibrePlan* allows only one "Exception type" per day. The Tim connector is then responsible for merging these parts as one exception type. That is, the roster category with the highest duration is assumed to be a valid exception type, but the total duration is the sum of all durations of these category parts. +Moreover, in the import response, the roster is divided into two or three parts per day: for example, roster-morning, roster-afternoon, and roster-evening. However, *TASKPM* allows only one "Exception type" per day. The Tim connector is then responsible for merging these parts as one exception type. That is, the roster category with the highest duration is assumed to be a valid exception type, but the total duration is the sum of all durations of these category parts. -Contrary to *LibrePlan*, in Tim Enterprise, the total duration in case the worker is on holiday means the worker is not available for that total duration. However, in *LibrePlan*, if the worker is on holiday, the total duration should be zero. The Tim connector also handles this translation. +Contrary to *TASKPM*, in Tim Enterprise, the total duration in case the worker is on holiday means the worker is not available for that total duration. However, in *TASKPM*, if the worker is on holiday, the total duration should be zero. The Tim connector also handles this translation. E-mail Connector ================ diff --git a/doc/src/user/en/19-scheduler.rst b/doc/src/user/en/19-scheduler.rst index 7a87ca6ee..35e75251f 100644 --- a/doc/src/user/en/19-scheduler.rst +++ b/doc/src/user/en/19-scheduler.rst @@ -10,7 +10,7 @@ To use this scheduler effectively, the jobs (Quartz jobs) that should be schedul When the scheduler starts, it reads the jobs to be scheduled or unscheduled from the database and schedules or removes them accordingly. Afterward, jobs can be added, updated, or removed dynamically using the ``Job scheduling`` user interface. .. NOTE:: - The scheduler starts when the LibrePlan web application starts and stops when the application stops. + The scheduler starts when the TASKPM web application starts and stops when the application stops. .. NOTE:: This scheduler supports only ``cron expressions`` to schedule jobs. diff --git a/doc/src/user/en/22-taskpm.rst b/doc/src/user/en/22-taskpm.rst new file mode 100644 index 000000000..b4a43cad1 --- /dev/null +++ b/doc/src/user/en/22-taskpm.rst @@ -0,0 +1,7 @@ +PERT Chart and Subnets +############################### + +In Libreplan, there were only projects an orders, one level of work, in TASKPM there are two, master projects and subprojects. Unlike Libreplan, which was focused on the GANNT chart and did not have a PERT chart, TASKPM does have a PERT chart and introduces a top level of planning activity based on it. + +The original orders and project code and documentation of Libreplan is preserved but in it project should be understood to be a structured task ordered by a master project. + diff --git a/doc/src/user/en/docinfo b/doc/src/user/en/docinfo index 0b83c5949..a32a76103 100644 --- a/doc/src/user/en/docinfo +++ b/doc/src/user/en/docinfo @@ -1,16 +1,16 @@ ############################# -LibrePlan: User documentation +TASKPM: User documentation ############################# .. image:: images/logo.png :align: left -Following document contains necessary help for using LibrePlan, the opensource web application for project planning. +Following document contains necessary help for using TASKPM, the opensource web application for project planning. This document is divided in three main sections: First, global goals and behaviour. -Second, basic entities to understand the minimum concepts to use LibrePlan. +Second, basic entities to understand the minimum concepts to use TASKPM. Finally, complete processes description to create orders, projects, project planning, resources assignment, advance assignment and result extraction. diff --git a/doc/src/user/en/images/logo.png b/doc/src/user/en/images/logo.png index 4e7d02651..8215f3973 100644 Binary files a/doc/src/user/en/images/logo.png and b/doc/src/user/en/images/logo.png differ diff --git a/doc/src/user/en/images/logos.png b/doc/src/user/en/images/logos.png index 7314a0759..6e3033c69 100644 Binary files a/doc/src/user/en/images/logos.png and b/doc/src/user/en/images/logos.png differ diff --git a/doc/tools/included.mk b/doc/tools/included.mk index f9d3ad1e1..8b564c9a1 100644 --- a/doc/tools/included.mk +++ b/doc/tools/included.mk @@ -53,7 +53,6 @@ clean: $Q $(RM) -r pdf/ $P clean html $Q $(RM) -r html/ - $Q $(RM) index.rst # Copy CSS file # @@ -75,11 +74,11 @@ pdf/$(OUTPUT_BASE).rst: $(rst_srcs) docinfo pdf/$(OUTPUT_BASE).pdf pdf/$(OUTPUT_BASE).ebook.pdf: $(png_images) # Index page creation for the HTML output -# -index.rst: $(rst_srcs) docinfo - $P htmlindex $@ - $Q mkdir -p $(@D) - $Q $(utildir)/doctool htmlindex --info=docinfo $(rst_srcs) > $@ +# DISABLED: index.rst is now manually maintained for TASKPM customization +#index.rst: $(rst_srcs) docinfo +# $P htmlindex $@ +# $Q mkdir -p $(@D) +# $Q $(utildir)/doctool htmlindex --info=docinfo $(rst_srcs) > $@ # Implicit rules diff --git a/ganttzk/pom.xml b/ganttzk/pom.xml index b07aabe21..e530d43c5 100644 --- a/ganttzk/pom.xml +++ b/ganttzk/pom.xml @@ -10,7 +10,7 @@ ganttzk jar - LibrePlan ZK Components Module + TASKPM ZK Components Module diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/DependencyList.java b/ganttzk/src/main/java/org/zkoss/ganttz/DependencyList.java index 7a9bf251e..404c17dd2 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/DependencyList.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/DependencyList.java @@ -21,7 +21,7 @@ package org.zkoss.ganttz; -import static org.zkoss.ganttz.i18n.I18nHelper._; +import static org.zkoss.ganttz.i18n.I18nHelper.tr; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; @@ -63,7 +63,7 @@ public class DependencyList extends XulElement implements AfterCompose { boolean canBeAdded = context.changeType(chosen.getDependency(), type); if ( !canBeAdded ) { - warnUser(_("The specified dependency is not allowed")); + warnUser(tr("The specified dependency is not allowed")); } } @@ -210,7 +210,7 @@ public class DependencyList extends XulElement implements AfterCompose { MenuBuilder contextMenuBuilder = MenuBuilder.on(getPage(), getDependencyComponents()).item( - _("Erase"), + tr("Erase"), "/common/img/ico_borrar.png", (chosen, event) -> context.removeDependency(chosen.getDependency())); @@ -225,15 +225,15 @@ public class DependencyList extends XulElement implements AfterCompose { MenuBuilder contextMenuBuilder = MenuBuilder.on(getPage(), getDependencyComponents()).item( - _("Erase"), + tr("Erase"), "/common/img/ico_borrar.png", ((chosen, event) -> context.removeDependency(chosen.getDependency()))); - contextMenuBuilder.item(_("Set End-Start"), null, new ChangeTypeAction(DependencyType.END_START)); + contextMenuBuilder.item(tr("Set End-Start"), null, new ChangeTypeAction(DependencyType.END_START)); - contextMenuBuilder.item(_("Set Start-Start"), null, new ChangeTypeAction(DependencyType.START_START)); + contextMenuBuilder.item(tr("Set Start-Start"), null, new ChangeTypeAction(DependencyType.START_START)); - contextMenuBuilder.item(_("Set End-End"), null, new ChangeTypeAction(DependencyType.END_END)); + contextMenuBuilder.item(tr("Set End-End"), null, new ChangeTypeAction(DependencyType.END_END)); contextMenu = contextMenuBuilder.create(); diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/LeftTasksTreeRow.java b/ganttzk/src/main/java/org/zkoss/ganttz/LeftTasksTreeRow.java index cef49182f..4d3205338 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/LeftTasksTreeRow.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/LeftTasksTreeRow.java @@ -57,7 +57,7 @@ import org.zkoss.zul.Hlayout; import org.zkoss.zul.Label; import org.zkoss.zul.Treerow; -import static org.zkoss.ganttz.i18n.I18nHelper._; +import static org.zkoss.ganttz.i18n.I18nHelper.tr; /** * Row composer for Tasks details Tree
@@ -268,16 +268,16 @@ public class LeftTasksTreeRow extends GenericForwardComposer { if (dateTimeInTextbox.isAfter(maximum)) { throw new WrongValueException( comp, - _("The date you entered is invalid") + ". " + - _("Please enter date not before") + " " + minimumYear + - " " + _("and no later than") + " " + maximum.getYear()); + tr("The date you entered is invalid") + ". " + + tr("Please enter date not before") + " " + minimumYear + + " " + tr("and no later than") + " " + maximum.getYear()); } if (dateTimeInTextbox.isBefore(minimum)) { throw new WrongValueException( comp, - _("The date you entered is invalid") + ". " + - _("Please enter date not before") + " " + minimumYear + - " " + _("and no later than") + " " + maximum.getYear()); + tr("The date you entered is invalid") + ". " + + tr("Please enter date not before") + " " + minimumYear + + " " + tr("and no later than") + " " + maximum.getYear()); } } }; diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java b/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java index a5dbc4aa2..a50318509 100755 --- a/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java @@ -21,7 +21,7 @@ package org.zkoss.ganttz; -import static org.zkoss.ganttz.i18n.I18nHelper._; +import static org.zkoss.ganttz.i18n.I18nHelper.tr; import java.util.ArrayList; import java.util.Collections; @@ -323,7 +323,7 @@ public class Planner extends HtmlMacroComponent { @Override public String getName() { - return _("increasing zoom"); + return tr("increasing zoom"); } @Override @@ -341,7 +341,7 @@ public class Planner extends HtmlMacroComponent { LongOperationFeedback.execute(ganttPanel, new ILongOperation() { @Override public String getName() { - return _("decreasing zoom"); + return tr("decreasing zoom"); } @Override @@ -461,7 +461,7 @@ public class Planner extends HtmlMacroComponent { ((South) getFellow("graphics")).setOpen(this.visibleChart); if (!visibleChart) { - ((South) getFellow("graphics")).setTitle(_("Graphics are disabled")); + ((South) getFellow("graphics")).setTitle(tr("Graphics are disabled")); } PROFILING_LOG.debug("it took doing the setup of components and adding them: " @@ -640,12 +640,12 @@ public class Planner extends HtmlMacroComponent { context.hideCriticalPath(); diagramGraph.removePostGraphChangeListener(showCriticalPathOnChange); showCriticalPathButton.setSclass(PLANNER_COMMAND); - showCriticalPathButton.setTooltiptext(_("Show critical path")); + showCriticalPathButton.setTooltiptext(tr("Show critical path")); } else { context.showCriticalPath(); diagramGraph.addPostGraphChangeListener(showCriticalPathOnChange); showCriticalPathButton.setSclass(PLANNER_COMMAND + " clicked"); - showCriticalPathButton.setTooltiptext(_("Hide critical path")); + showCriticalPathButton.setTooltiptext(tr("Hide critical path")); } isShowingCriticalPath = !isShowingCriticalPath; @@ -667,7 +667,7 @@ public class Planner extends HtmlMacroComponent { context.hideAdvances(); diagramGraph.removePostGraphChangeListener(showAdvanceOnChange); showAdvancesButton.setSclass(PLANNER_COMMAND); - showAdvancesButton.setTooltiptext(_("Show progress")); + showAdvancesButton.setTooltiptext(tr("Show progress")); if ( progressTypesCombo.getItemCount() > 0 ) { progressTypesCombo.setSelectedIndex(0); @@ -676,7 +676,7 @@ public class Planner extends HtmlMacroComponent { context.showAdvances(); diagramGraph.addPostGraphChangeListener(showAdvanceOnChange); showAdvancesButton.setSclass(PLANNER_COMMAND + " clicked"); - showAdvancesButton.setTooltiptext(_("Hide progress")); + showAdvancesButton.setTooltiptext(tr("Hide progress")); } isShowingAdvances = !isShowingAdvances; @@ -690,12 +690,12 @@ public class Planner extends HtmlMacroComponent { context.hideReportedHours(); diagramGraph.removePostGraphChangeListener(showReportedHoursOnChange); showReportedHoursButton.setSclass(PLANNER_COMMAND); - showReportedHoursButton.setTooltiptext(_("Show reported hours")); + showReportedHoursButton.setTooltiptext(tr("Show reported hours")); } else { context.showReportedHours(); diagramGraph.addPostGraphChangeListener(showReportedHoursOnChange); showReportedHoursButton.setSclass(PLANNER_COMMAND + " clicked"); - showReportedHoursButton.setTooltiptext(_("Hide reported hours")); + showReportedHoursButton.setTooltiptext(tr("Hide reported hours")); } isShowingReportedHours = !isShowingReportedHours; @@ -709,12 +709,12 @@ public class Planner extends HtmlMacroComponent { context.hideMoneyCostBar(); diagramGraph.removePostGraphChangeListener(showMoneyCostBarOnChange); showMoneyCostBarButton.setSclass(PLANNER_COMMAND); - showMoneyCostBarButton.setTooltiptext(_("Show money cost bar")); + showMoneyCostBarButton.setTooltiptext(tr("Show money cost bar")); } else { context.showMoneyCostBar(); diagramGraph.addPostGraphChangeListener(showMoneyCostBarOnChange); showMoneyCostBarButton.setSclass(PLANNER_COMMAND + " clicked"); - showMoneyCostBarButton.setTooltiptext(_("Hide money cost bar")); + showMoneyCostBarButton.setTooltiptext(tr("Hide money cost bar")); } isShowingMoneyCostBar = !isShowingMoneyCostBar; diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/TaskList.java b/ganttzk/src/main/java/org/zkoss/ganttz/TaskList.java index 65ee93f1c..0cf8bc7dc 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/TaskList.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/TaskList.java @@ -21,7 +21,7 @@ package org.zkoss.ganttz; -import static org.zkoss.ganttz.i18n.I18nHelper._; +import static org.zkoss.ganttz.i18n.I18nHelper.tr; import org.apache.commons.lang3.math.Fraction; import org.joda.time.LocalDate; @@ -295,7 +295,7 @@ public class TaskList extends XulElement implements AfterCompose { if ( disabilityConfiguration.isAddingDependenciesEnabled() ) { menuBuilder.item( - _("Add Dependency"), "/common/img/ico_dependency.png", + tr("Add Dependency"), "/common/img/ico_dependency.png", (chosen, event) -> chosen.addDependency()); } diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/data/resourceload/TimeLineRole.java b/ganttzk/src/main/java/org/zkoss/ganttz/data/resourceload/TimeLineRole.java index 7f72a7622..9ce831505 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/resourceload/TimeLineRole.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/resourceload/TimeLineRole.java @@ -53,16 +53,16 @@ public class TimeLineRole { */ public enum TimeLineRoleEnum { - NONE(_("None")), - WORKER(_("Worker")), - ORDER(_("Project")), - TASK(_("Task")) { + NONE(tr("None")), + WORKER(tr("Worker")), + ORDER(tr("Project")), + TASK(tr("Task")) { @Override public boolean isVisibleScheduled() { return true; } }, - CRITERION(_("Criterion")); + CRITERION(tr("Criterion")); private String name; @@ -73,7 +73,7 @@ public class TimeLineRole { /** * Forces to mark the string as needing translation. */ - private static String _(String string) { + private static String tr(String string) { return string; } @@ -91,7 +91,7 @@ public class TimeLineRole { @Override public String toString() { - return _(this.name); + return tr(this.name); } public boolean isVisibleScheduled() { diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/i18n/I18nHelper.java b/ganttzk/src/main/java/org/zkoss/ganttz/i18n/I18nHelper.java index 9929fb621..b6ecad556 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/i18n/I18nHelper.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/i18n/I18nHelper.java @@ -57,27 +57,27 @@ public class I18nHelper { * @param str * @return Text depends on locale */ - public static String _(String str) { + public static String tr(String str) { return getI18n().tr(str); } - public static String _(String text, Object o1) { + public static String tr(String text, Object o1) { return getI18n().tr(text, o1); } - public static String _(String text, Object o1, Object o2) { + public static String tr(String text, Object o1, Object o2) { return getI18n().tr(text, o1, o2); } - public static String _(String text, Object o1, Object o2, Object o3) { + public static String tr(String text, Object o1, Object o2, Object o3) { return getI18n().tr(text, o1, o2, o3); } - public static String _(String text, Object o1, Object o2, Object o3, Object o4) { + public static String tr(String text, Object o1, Object o2, Object o3, Object o4) { return getI18n().tr(text, o1, o2, o3, o4); } - public static String _(String text, Object[] objects) { + public static String tr(String text, Object[] objects) { return getI18n().tr(text, objects); } diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/resourceload/ResourceLoadComponent.java b/ganttzk/src/main/java/org/zkoss/ganttz/resourceload/ResourceLoadComponent.java index 81d9e5c07..60fd76a67 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/resourceload/ResourceLoadComponent.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/resourceload/ResourceLoadComponent.java @@ -21,7 +21,7 @@ package org.zkoss.ganttz.resourceload; -import static org.zkoss.ganttz.i18n.I18nHelper._; +import static org.zkoss.ganttz.i18n.I18nHelper.tr; import java.io.IOException; import java.util.ArrayList; @@ -144,7 +144,7 @@ public class ResourceLoadComponent extends XulElement { MenuBuilder
menuBuilder = MenuBuilder.on(getPage(), divs); menuBuilder.item( - _("See resource allocation"), + tr("See resource allocation"), "/common/img/ico_allocation.png", (chosen, event) -> schedule(loadLine)); @@ -181,7 +181,7 @@ public class ResourceLoadComponent extends XulElement { Div result = new Div(); result.setClass(String.format("taskassignmentinterval %s", loadPeriod.getLoadLevel().getCategory())); - String load = _("Load: {0}%", loadPeriod.getLoadLevel().getPercentage()) + ", "; + String load = tr("Load: {0}%", loadPeriod.getLoadLevel().getPercentage()) + ", "; if (loadPeriod.getLoadLevel().getPercentage() == Integer.MAX_VALUE) { load = ""; @@ -189,7 +189,7 @@ public class ResourceLoadComponent extends XulElement { result.setTooltiptext( load + - _("available effort: {0}, assigned effort: {1}", + tr("available effort: {0}, assigned effort: {1}", loadPeriod.getAvailableEffort(), loadPeriod.getAssignedEffort())); diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/resourceload/ResourceLoadLeftPane.java b/ganttzk/src/main/java/org/zkoss/ganttz/resourceload/ResourceLoadLeftPane.java index 77fa98c20..d05abfa3d 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/resourceload/ResourceLoadLeftPane.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/resourceload/ResourceLoadLeftPane.java @@ -21,7 +21,7 @@ package org.zkoss.ganttz.resourceload; -import static org.zkoss.ganttz.i18n.I18nHelper._; +import static org.zkoss.ganttz.i18n.I18nHelper.tr; import java.util.ArrayList; import java.util.List; @@ -167,7 +167,7 @@ public class ResourceLoadLeftPane extends HtmlMacroComponent { buttonPlan.setSclass("icono"); buttonPlan.setImage("/common/img/ico_planificador1.png"); buttonPlan.setHoverImage("/common/img/ico_planificador.png"); - buttonPlan.setTooltiptext(_("See scheduling")); + buttonPlan.setTooltiptext(tr("See scheduling")); buttonPlan.addEventListener("onClick", event -> schedule(taskLine)); cell.appendChild(buttonPlan); diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/resourceload/ResourcesLoadPanel.java b/ganttzk/src/main/java/org/zkoss/ganttz/resourceload/ResourcesLoadPanel.java index 9e0b7750b..c7ff1e687 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/resourceload/ResourcesLoadPanel.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/resourceload/ResourcesLoadPanel.java @@ -21,7 +21,7 @@ package org.zkoss.ganttz.resourceload; -import static org.zkoss.ganttz.i18n.I18nHelper._; +import static org.zkoss.ganttz.i18n.I18nHelper.tr; import java.util.List; @@ -83,9 +83,9 @@ public class ResourcesLoadPanel extends HtmlMacroComponent { private WeakReferencedListeners zoomListeners = WeakReferencedListeners.create(); - private final String FILTER_RESOURCES = _("Resources"); + private final String FILTER_RESOURCES = tr("Resources"); - private final String FILTER_CRITERIA = _("Generic allocation criteria"); + private final String FILTER_CRITERIA = tr("Generic allocation criteria"); private final String FILTER_BY_NAME_COMBO_COMPONENT = "filterByNameCombo"; @@ -156,10 +156,10 @@ public class ResourcesLoadPanel extends HtmlMacroComponent { public void setFilter(String filterBy) { if ( filterBy.equals(FILTER_RESOURCES) ) { this.filterbyResources = true; - this.feedBackMessage = _("showing resources"); + this.feedBackMessage = tr("showing resources"); } else { this.filterbyResources = false; - this.feedBackMessage = _("showing criteria"); + this.feedBackMessage = tr("showing criteria"); } refreshNameFilter = true; @@ -395,7 +395,7 @@ public class ResourcesLoadPanel extends HtmlMacroComponent { ((South) getFellow("graphics")).setOpen(this.visibleChart); if (!visibleChart) { - ((South) getFellow("graphics")).setTitle(_("Graphics are disabled")); + ((South) getFellow("graphics")).setTitle(tr("Graphics are disabled")); } savePreviousData(); @@ -471,8 +471,8 @@ public class ResourcesLoadPanel extends HtmlMacroComponent { } Comboitem lastItem = new Comboitem(); - lastItem.setLabel(_("All")); - lastItem.setDescription(_("Show all elements")); + lastItem.setLabel(tr("All")); + lastItem.setDescription(tr("Show all elements")); lastItem.setValue(-1); filterByNameCombo.appendChild(lastItem); @@ -507,7 +507,7 @@ public class ResourcesLoadPanel extends HtmlMacroComponent { if ( paginationType != PaginationType.NONE ) { this.filterByNamePosition = filterByNamePosition; this.lastSelectedName = comboByName.getSelectedIndex(); - this.feedBackMessage = _("filtering by name"); + this.feedBackMessage = tr("filtering by name"); changeNameFilterWithFeedback(); } diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/TimeTracker.java b/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/TimeTracker.java index 96436b6fd..ddb37341e 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/TimeTracker.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/TimeTracker.java @@ -21,7 +21,7 @@ package org.zkoss.ganttz.timetracker; -import static org.zkoss.ganttz.i18n.I18nHelper._; +import static org.zkoss.ganttz.i18n.I18nHelper.tr; import java.util.Collection; import java.util.Date; @@ -226,7 +226,7 @@ public class TimeTracker { @Override public String getName() { - return _("changing zoom"); + return tr("changing zoom"); } }); } diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/zoom/ZoomLevel.java b/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/zoom/ZoomLevel.java index 02cd766f5..6120add21 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/zoom/ZoomLevel.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/zoom/ZoomLevel.java @@ -31,7 +31,7 @@ import org.joda.time.LocalDate; */ public enum ZoomLevel { - DETAIL_ONE(_("Year")) { + DETAIL_ONE(tr("Year")) { @Override public TimeTrackerState getTimeTrackerState(IDetailItemModifier firstLevel, IDetailItemModifier secondLevel) { return new DetailOneTimeTrackerState(firstLevel, secondLevel); @@ -43,7 +43,7 @@ public enum ZoomLevel { } }, - DETAIL_TWO(_("Quarter")) { + DETAIL_TWO(tr("Quarter")) { @Override public TimeTrackerState getTimeTrackerState(IDetailItemModifier firstLevel, IDetailItemModifier secondLevel) { return new DetailTwoTimeTrackerState(firstLevel, secondLevel); @@ -55,7 +55,7 @@ public enum ZoomLevel { } }, - DETAIL_THREE(_("Month")) { + DETAIL_THREE(tr("Month")) { @Override public TimeTrackerState getTimeTrackerState(IDetailItemModifier firstLevel, IDetailItemModifier secondLevel) { return new DetailThreeTimeTrackerState(firstLevel, secondLevel); @@ -67,7 +67,7 @@ public enum ZoomLevel { } }, - DETAIL_FOUR(_("Week")) { + DETAIL_FOUR(tr("Week")) { @Override public TimeTrackerState getTimeTrackerState(IDetailItemModifier firstLevel, IDetailItemModifier secondLevel) { return new DetailFourTimeTrackerState(firstLevel, secondLevel); @@ -79,7 +79,7 @@ public enum ZoomLevel { } }, - DETAIL_FIVE(_("Day")) { + DETAIL_FIVE(tr("Day")) { @Override public TimeTrackerState getTimeTrackerState(IDetailItemModifier firstLevel, IDetailItemModifier secondLevel) { return new DetailFiveTimeTrackerState(firstLevel, secondLevel); @@ -100,7 +100,7 @@ public enum ZoomLevel { /** * Forces to mark the string as needing translation. */ - private static String _(String string) { + private static String tr(String string) { return string; } @@ -129,7 +129,7 @@ public enum ZoomLevel { @Override public String toString() { - return _(internalName); + return tr(internalName); } public static ZoomLevel getFromString(String zoomLevelParameter) { diff --git a/ganttzk/src/main/resources/web/ganttz/zul/leftTasksTree.zul b/ganttzk/src/main/resources/web/ganttz/zul/leftTasksTree.zul index 7db75bf8f..2e1d79f3e 100644 --- a/ganttzk/src/main/resources/web/ganttz/zul/leftTasksTree.zul +++ b/ganttzk/src/main/resources/web/ganttz/zul/leftTasksTree.zul @@ -20,7 +20,7 @@ --> + signature="java.lang.String tr(java.lang.String name)" ?>
diff --git a/ganttzk/src/main/resources/web/ganttz/zul/plannerLayout.zul b/ganttzk/src/main/resources/web/ganttz/zul/plannerLayout.zul index b1cd2e560..a6a9d4933 100644 --- a/ganttzk/src/main/resources/web/ganttz/zul/plannerLayout.zul +++ b/ganttzk/src/main/resources/web/ganttz/zul/plannerLayout.zul @@ -21,7 +21,7 @@ + signature="java.lang.String tr(java.lang.String name)" ?> + signature="java.lang.String tr(java.lang.String name)" ?> diff --git a/libreplan-business/pom.xml b/libreplan-business/pom.xml index c7c8e0b25..a881258cd 100644 --- a/libreplan-business/pom.xml +++ b/libreplan-business/pom.xml @@ -10,7 +10,7 @@ libreplan-business jar - LibrePlan Business Module + TASKPM Business Module @@ -51,6 +51,12 @@ 3.0.0 + + + javax.annotation + javax.annotation-api + + org.jadira.usertype diff --git a/libreplan-business/src/main/java/org/libreplan/business/advance/entities/AdvanceType.java b/libreplan-business/src/main/java/org/libreplan/business/advance/entities/AdvanceType.java index 39f573eaa..a4b148ad4 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/advance/entities/AdvanceType.java +++ b/libreplan-business/src/main/java/org/libreplan/business/advance/entities/AdvanceType.java @@ -21,7 +21,7 @@ package org.libreplan.business.advance.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; import java.math.BigDecimal; @@ -175,14 +175,14 @@ public class AdvanceType extends BaseEntity implements IHumanIdentifiable{ public String getType() { if ( isUpdatable() ) { - return _("User"); + return tr("User"); } if ( isQualityForm() ) { - return _("Quality form"); + return tr("Quality form"); } - return _("Predefined"); + return tr("Predefined"); } public boolean isPrecisionValid(BigDecimal precision) { diff --git a/libreplan-business/src/main/java/org/libreplan/business/calendars/entities/CalendarExceptionType.java b/libreplan-business/src/main/java/org/libreplan/business/calendars/entities/CalendarExceptionType.java index 7270883b7..1134ee5a1 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/calendars/entities/CalendarExceptionType.java +++ b/libreplan-business/src/main/java/org/libreplan/business/calendars/entities/CalendarExceptionType.java @@ -21,7 +21,7 @@ package org.libreplan.business.calendars.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; @@ -144,7 +144,7 @@ public class CalendarExceptionType extends IntegrationEntity implements IHumanId } public String getOverAssignableStr() { - return isOverAssignableWithoutLimit() ? _("Yes") : _("No"); + return isOverAssignableWithoutLimit() ? tr("Yes") : tr("No"); } public EffortDuration getDuration() { diff --git a/libreplan-business/src/main/java/org/libreplan/business/calendars/entities/CalendarExceptionTypeColor.java b/libreplan-business/src/main/java/org/libreplan/business/calendars/entities/CalendarExceptionTypeColor.java index 06d013cdc..7e825a6f5 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/calendars/entities/CalendarExceptionTypeColor.java +++ b/libreplan-business/src/main/java/org/libreplan/business/calendars/entities/CalendarExceptionTypeColor.java @@ -19,7 +19,7 @@ package org.libreplan.business.calendars.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; /** * Enum representing the possible colors to choose for a {@link CalendarExceptionType}. @@ -27,15 +27,15 @@ import static org.libreplan.business.i18n.I18nHelper._; * @author Manuel Rego Casasnovas */ public enum CalendarExceptionTypeColor { - DEFAULT(_("red (default)"), "#FF3333", "#FF9999"), - GREEN(_("green"),"#2ee62e", "#8ae68a"), - BLUE(_("blue"), "#3333FF", "#9999FF"), - CYAN(_("cyan"), "#33FFFF", "#99FFFF"), - MAGENTA(_("magenta"), "#FF33FF", "#FF99FF"), - YELLOW(_("yellow"), "#e6e62e", "#e6e6a1"), - BLACK(_("black"), "#333333", "#999999"), - ORANGE(_("orange"), "#ffb733", "#ffdb99"), - PURPLE(_("purple"), "#801a80", "#b38eb3"); + DEFAULT(tr("red (default)"), "#FF3333", "#FF9999"), + GREEN(tr("green"),"#2ee62e", "#8ae68a"), + BLUE(tr("blue"), "#3333FF", "#9999FF"), + CYAN(tr("cyan"), "#33FFFF", "#99FFFF"), + MAGENTA(tr("magenta"), "#FF33FF", "#FF99FF"), + YELLOW(tr("yellow"), "#e6e62e", "#e6e6a1"), + BLACK(tr("black"), "#333333", "#999999"), + ORANGE(tr("orange"), "#ffb733", "#ffdb99"), + PURPLE(tr("purple"), "#801a80", "#b38eb3"); private final String name; diff --git a/libreplan-business/src/main/java/org/libreplan/business/calendars/entities/Capacity.java b/libreplan-business/src/main/java/org/libreplan/business/calendars/entities/Capacity.java index 213ccd7a4..78b86aa9e 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/calendars/entities/Capacity.java +++ b/libreplan-business/src/main/java/org/libreplan/business/calendars/entities/Capacity.java @@ -19,7 +19,7 @@ package org.libreplan.business.calendars.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; import java.util.Arrays; import java.util.Collection; @@ -170,7 +170,7 @@ public class Capacity { public String getExtraEffortString() { if (getAllowedExtraEffort() == null) { - return _("unlimited"); + return tr("unlimited"); } return asString(getAllowedExtraEffort()); } diff --git a/libreplan-business/src/main/java/org/libreplan/business/common/daos/EntitySequenceDAO.java b/libreplan-business/src/main/java/org/libreplan/business/common/daos/EntitySequenceDAO.java index bfe469564..debe7da45 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/common/daos/EntitySequenceDAO.java +++ b/libreplan-business/src/main/java/org/libreplan/business/common/daos/EntitySequenceDAO.java @@ -72,7 +72,7 @@ public class EntitySequenceDAO extends GenericDAOHibernate public void remove(final EntitySequence entitySequence) throws InstanceNotFoundException, IllegalArgumentException { if ( entitySequence.getLastValue() > 0 ) { throw new IllegalArgumentException( - I18nHelper._("Entity Sequence cannot be deleted. Entity Sequence already in use")); + I18nHelper.tr("Entity Sequence cannot be deleted. Entity Sequence already in use")); } remove(entitySequence.getId()); diff --git a/libreplan-business/src/main/java/org/libreplan/business/common/entities/PersonalTimesheetsPeriodicityEnum.java b/libreplan-business/src/main/java/org/libreplan/business/common/entities/PersonalTimesheetsPeriodicityEnum.java index 943bd4b79..8237ecf6a 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/common/entities/PersonalTimesheetsPeriodicityEnum.java +++ b/libreplan-business/src/main/java/org/libreplan/business/common/entities/PersonalTimesheetsPeriodicityEnum.java @@ -19,7 +19,7 @@ package org.libreplan.business.common.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; import org.joda.time.LocalDate; import org.joda.time.Months; @@ -32,7 +32,7 @@ import org.joda.time.Weeks; */ public enum PersonalTimesheetsPeriodicityEnum { - MONTHLY(_("Monthly")) { + MONTHLY(tr("Monthly")) { @Override public LocalDate getStart(LocalDate date) { return date.dayOfMonth().withMinimumValue(); @@ -63,7 +63,7 @@ public enum PersonalTimesheetsPeriodicityEnum { return getStart(date).plusMonths(1); } }, - TWICE_MONTHLY(_("Twice-monthly")) { + TWICE_MONTHLY(tr("Twice-monthly")) { @Override public LocalDate getStart(LocalDate date) { if (date.getDayOfMonth() <= 15) { @@ -120,7 +120,7 @@ public enum PersonalTimesheetsPeriodicityEnum { } } }, - WEEKLY(_("Weekly")) { + WEEKLY(tr("Weekly")) { @Override public LocalDate getStart(LocalDate date) { return date.dayOfWeek().withMinimumValue(); diff --git a/libreplan-business/src/main/java/org/libreplan/business/common/entities/PredefinedConnectorProperties.java b/libreplan-business/src/main/java/org/libreplan/business/common/entities/PredefinedConnectorProperties.java index 24ef7a27e..80e67072f 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/common/entities/PredefinedConnectorProperties.java +++ b/libreplan-business/src/main/java/org/libreplan/business/common/entities/PredefinedConnectorProperties.java @@ -19,7 +19,7 @@ package org.libreplan.business.common.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; /** * Simply class to keep constants of {@link ConnectorProperty properties} for LibrePlan {@link Connector connectors}. @@ -31,20 +31,20 @@ import static org.libreplan.business.i18n.I18nHelper._; public class PredefinedConnectorProperties { // Generic - public static String ACTIVATED = _("Activated"); - public static String SERVER_URL = _("Server URL"); - public static String USERNAME = _("Username"); - public static String PASSWORD = _("Password"); + public static String ACTIVATED = tr("Activated"); + public static String SERVER_URL = tr("Server URL"); + public static String USERNAME = tr("Username"); + public static String PASSWORD = tr("Password"); // Specific for Tim - public static String TIM_NR_DAYS_TIMESHEET = _("Number of days timesheet to Tim"); - public static String TIM_NR_DAYS_ROSTER = _("Number of days roster from Tim"); - public static String TIM_PRODUCTIVITY_FACTOR = _("Productivity factor"); - public static String TIM_DEPARTAMENTS_IMPORT_ROSTER = _("Department IDs to import toster"); + public static String TIM_NR_DAYS_TIMESHEET = tr("Number of days timesheet to Tim"); + public static String TIM_NR_DAYS_ROSTER = tr("Number of days roster from Tim"); + public static String TIM_PRODUCTIVITY_FACTOR = tr("Productivity factor"); + public static String TIM_DEPARTAMENTS_IMPORT_ROSTER = tr("Department IDs to import toster"); // Specific for JIRA - public static String JIRA_LABELS = _("JIRA labels: comma-separated list of labels or URL"); - public static String JIRA_HOURS_TYPE = _("Hours type"); + public static String JIRA_LABELS = tr("JIRA labels: comma-separated list of labels or URL"); + public static String JIRA_HOURS_TYPE = tr("Hours type"); /** * Code prefix for different entities integrated with JIRA. @@ -52,11 +52,11 @@ public class PredefinedConnectorProperties { public static final String JIRA_CODE_PREFIX = "JIRA-"; // Specific for E-mail - public static String PROTOCOL = _("Protocol"); - public static String HOST = _("Host"); - public static String PORT = _("Port"); - public static String EMAIL_SENDER = _("From address (no reply)"); - public static String EMAIL_USERNAME = _("Username (optional)"); - public static String EMAIL_PASSWORD = _("Password (optional)"); + public static String PROTOCOL = tr("Protocol"); + public static String HOST = tr("Host"); + public static String PORT = tr("Port"); + public static String EMAIL_SENDER = tr("From address (no reply)"); + public static String EMAIL_USERNAME = tr("Username (optional)"); + public static String EMAIL_PASSWORD = tr("Password (optional)"); } diff --git a/libreplan-business/src/main/java/org/libreplan/business/common/entities/ProgressType.java b/libreplan-business/src/main/java/org/libreplan/business/common/entities/ProgressType.java index a7b56bfd9..cf70031a2 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/common/entities/ProgressType.java +++ b/libreplan-business/src/main/java/org/libreplan/business/common/entities/ProgressType.java @@ -21,7 +21,7 @@ package org.libreplan.business.common.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; import java.util.Arrays; import java.util.List; @@ -33,10 +33,10 @@ import java.util.List; */ public enum ProgressType { - SPREAD_PROGRESS(_("Spreading progress")), - ALL_NUMHOURS(_("Progress with all tasks by hours")), - CRITICAL_PATH_NUMHOURS(_("Progress with critical path tasks by hours")), - CRITICAL_PATH_DURATION(_("Progress with critical path tasks by duration")); + SPREAD_PROGRESS(tr("Spreading progress")), + ALL_NUMHOURS(tr("Progress with all tasks by hours")), + CRITICAL_PATH_NUMHOURS(tr("Progress with critical path tasks by hours")), + CRITICAL_PATH_DURATION(tr("Progress with critical path tasks by duration")); private String value; diff --git a/libreplan-business/src/main/java/org/libreplan/business/common/hibernate/JodaTypeContributor.java b/libreplan-business/src/main/java/org/libreplan/business/common/hibernate/JodaTypeContributor.java new file mode 100644 index 000000000..afd2990c2 --- /dev/null +++ b/libreplan-business/src/main/java/org/libreplan/business/common/hibernate/JodaTypeContributor.java @@ -0,0 +1,21 @@ +package org.libreplan.business.common.hibernate; + +import org.hibernate.boot.model.TypeContributions; +import org.hibernate.boot.model.TypeContributor; +import org.hibernate.service.ServiceRegistry; +import org.jadira.usertype.dateandtime.joda.PersistentDateTime; +import org.jadira.usertype.dateandtime.joda.PersistentLocalDate; +import org.jadira.usertype.dateandtime.joda.PersistentLocalTime; + +/** + * Registers Joda-Time types for Hibernate. + */ +public class JodaTypeContributor implements TypeContributor { + + @Override + public void contribute(TypeContributions typeContributions, ServiceRegistry serviceRegistry) { + typeContributions.contributeType(new PersistentLocalDate(), "org.joda.time.LocalDate"); + typeContributions.contributeType(new PersistentDateTime(), "org.joda.time.DateTime"); + typeContributions.contributeType(new PersistentLocalTime(), "org.joda.time.LocalTime"); + } +} diff --git a/libreplan-business/src/main/java/org/libreplan/business/common/hibernate/LocalTimeAsMillisIntegerType.java b/libreplan-business/src/main/java/org/libreplan/business/common/hibernate/LocalTimeAsMillisIntegerType.java new file mode 100644 index 000000000..3ca6f3927 --- /dev/null +++ b/libreplan-business/src/main/java/org/libreplan/business/common/hibernate/LocalTimeAsMillisIntegerType.java @@ -0,0 +1,103 @@ +/* + * This file is part of LibrePlan + * + * Copyright (C) 2024 LibrePlan Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + */ + +package org.libreplan.business.common.hibernate; + +import org.hibernate.HibernateException; +import org.hibernate.engine.spi.SharedSessionContractImplementor; +import org.hibernate.usertype.UserType; +import org.joda.time.LocalTime; + +import java.io.Serializable; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Types; + +/** + * Hibernate 5.6 UserType for storing Joda LocalTime as milliseconds integer. + * Replaces org.jadira.usertype.dateandtime.joda.PersistentLocalTimeAsMillisInteger + */ +public class LocalTimeAsMillisIntegerType implements UserType { + + private static final int[] SQL_TYPES = { Types.INTEGER }; + + @Override + public int[] sqlTypes() { + return SQL_TYPES; + } + + @Override + public Class returnedClass() { + return LocalTime.class; + } + + @Override + public boolean equals(Object x, Object y) throws HibernateException { + if (x == y) return true; + if (x == null || y == null) return false; + return x.equals(y); + } + + @Override + public int hashCode(Object x) throws HibernateException { + return x == null ? 0 : x.hashCode(); + } + + @Override + public Object nullSafeGet(ResultSet rs, String[] names, SharedSessionContractImplementor session, Object owner) + throws HibernateException, SQLException { + int millis = rs.getInt(names[0]); + if (rs.wasNull()) { + return null; + } + return LocalTime.fromMillisOfDay(millis); + } + + @Override + public void nullSafeSet(PreparedStatement st, Object value, int index, SharedSessionContractImplementor session) + throws HibernateException, SQLException { + if (value == null) { + st.setNull(index, Types.INTEGER); + } else { + st.setInt(index, ((LocalTime) value).getMillisOfDay()); + } + } + + @Override + public Object deepCopy(Object value) throws HibernateException { + // LocalTime is immutable + return value; + } + + @Override + public boolean isMutable() { + return false; + } + + @Override + public Serializable disassemble(Object value) throws HibernateException { + return value == null ? null : ((LocalTime) value).getMillisOfDay(); + } + + @Override + public Object assemble(Serializable cached, Object owner) throws HibernateException { + if (cached == null) { + return null; + } + return LocalTime.fromMillisOfDay((Integer) cached); + } + + @Override + public Object replace(Object original, Object target, Object owner) throws HibernateException { + return original; + } +} diff --git a/libreplan-business/src/main/java/org/libreplan/business/costcategories/entities/CostCategory.java b/libreplan-business/src/main/java/org/libreplan/business/costcategories/entities/CostCategory.java index ddf5e935f..d24420176 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/costcategories/entities/CostCategory.java +++ b/libreplan-business/src/main/java/org/libreplan/business/costcategories/entities/CostCategory.java @@ -21,7 +21,7 @@ package org.libreplan.business.costcategories.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; import java.math.BigDecimal; import java.util.ArrayList; @@ -130,7 +130,7 @@ public class CostCategory extends IntegrationEntity implements IHumanIdentifiabl .getInitDate().compareTo(endDate) <= 0)) { throw ValidationException .invalidValueException( - _("Two Hour Cost of the same type overlap in time"), + tr("Two Hour Cost of the same type overlap in time"), listElement); } else if ((endDate != null && listElement.getEndDate() != null) && ((listElement.getEndDate().compareTo(initDate) >= 0 && listElement @@ -139,7 +139,7 @@ public class CostCategory extends IntegrationEntity implements IHumanIdentifiabl .getInitDate().compareTo(endDate) <= 0))) { throw ValidationException .invalidValueException( - _("Two Hour Cost of the same type overlap in time"), + tr("Two Hour Cost of the same type overlap in time"), listElement); } } @@ -159,7 +159,7 @@ public class CostCategory extends IntegrationEntity implements IHumanIdentifiabl if (endDate == null && costCategory.getEndDate() == null) { throw ValidationException .invalidValueException( - _("Some cost category assignments overlap in time"), + tr("Some cost category assignments overlap in time"), costCategory); } else if ((endDate == null && costCategory.getEndDate() .compareTo(initDate) >= 0) @@ -167,7 +167,7 @@ public class CostCategory extends IntegrationEntity implements IHumanIdentifiabl .getInitDate().compareTo(endDate) <= 0)) { throw ValidationException .invalidValueException( - _("Some cost category assignments overlap in time"), + tr("Some cost category assignments overlap in time"), costCategory); } else if ((endDate != null && costCategory.getEndDate() != null) && ((costCategory.getEndDate().compareTo(initDate) >= 0 && // (1) @@ -190,7 +190,7 @@ public class CostCategory extends IntegrationEntity implements IHumanIdentifiabl // endDate] throw ValidationException .invalidValueException( - _("Some cost category assignments overlap in time"), + tr("Some cost category assignments overlap in time"), costCategory); } } diff --git a/libreplan-business/src/main/java/org/libreplan/business/email/entities/EmailTemplateEnum.java b/libreplan-business/src/main/java/org/libreplan/business/email/entities/EmailTemplateEnum.java index 60da21c66..2a9705ce2 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/email/entities/EmailTemplateEnum.java +++ b/libreplan-business/src/main/java/org/libreplan/business/email/entities/EmailTemplateEnum.java @@ -19,24 +19,24 @@ package org.libreplan.business.email.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; /** * Available E-mail templates. * - * TEMPLATE_N(_("Template N")) - for i18n + * TEMPLATE_N(tr("Template N")) - for i18n * TEMPLATE_A("Template A") - for general use (no internationalizing) * * @author Vova Perebykivskyi */ public enum EmailTemplateEnum { - TEMPLATE_TASK_ASSIGNED_TO_RESOURCE(_("Task assigned to resource")), - TEMPLATE_RESOURCE_REMOVED_FROM_TASK(_("Resource removed from task")), - TEMPLATE_MILESTONE_REACHED(_("Milestone reached")), - TEMPLATE_TODAY_TASK_SHOULD_START(_("Task should start")), - TEMPLATE_TODAY_TASK_SHOULD_FINISH(_("Task should finish")), - TEMPLATE_ENTER_DATA_IN_TIMESHEET(_("Enter data in timesheet")); + TEMPLATE_TASK_ASSIGNED_TO_RESOURCE(tr("Task assigned to resource")), + TEMPLATE_RESOURCE_REMOVED_FROM_TASK(tr("Resource removed from task")), + TEMPLATE_MILESTONE_REACHED(tr("Milestone reached")), + TEMPLATE_TODAY_TASK_SHOULD_START(tr("Task should start")), + TEMPLATE_TODAY_TASK_SHOULD_FINISH(tr("Task should finish")), + TEMPLATE_ENTER_DATA_IN_TIMESHEET(tr("Enter data in timesheet")); private final String templateType; diff --git a/libreplan-business/src/main/java/org/libreplan/business/externalcompanies/entities/CommunicationType.java b/libreplan-business/src/main/java/org/libreplan/business/externalcompanies/entities/CommunicationType.java index 606fcd358..f6e04b96f 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/externalcompanies/entities/CommunicationType.java +++ b/libreplan-business/src/main/java/org/libreplan/business/externalcompanies/entities/CommunicationType.java @@ -19,7 +19,7 @@ package org.libreplan.business.externalcompanies.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; /** * Enum for specified the type of {@link CustomerCommunication} @@ -28,10 +28,10 @@ import static org.libreplan.business.i18n.I18nHelper._; */ public enum CommunicationType { - NEW_PROJECT(_("New project")), - PROGRESS_UPDATE(_("Progress Update")), - UPDATE_DELIVERING_DATE(_("Update Delivering Date")), - END_DATE_UPDATE(_("End date update")); + NEW_PROJECT(tr("New project")), + PROGRESS_UPDATE(tr("Progress Update")), + UPDATE_DELIVERING_DATE(tr("Update Delivering Date")), + END_DATE_UPDATE(tr("End date update")); private String description; diff --git a/libreplan-business/src/main/java/org/libreplan/business/i18n/I18nHelper.java b/libreplan-business/src/main/java/org/libreplan/business/i18n/I18nHelper.java index 1d178f275..63bdc4c14 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/i18n/I18nHelper.java +++ b/libreplan-business/src/main/java/org/libreplan/business/i18n/I18nHelper.java @@ -41,7 +41,7 @@ public class I18nHelper { * @param text * @return Text depends on locale */ - public static String _(String text) { + public static String tr(String text) { return text; } diff --git a/libreplan-business/src/main/java/org/libreplan/business/logs/entities/IssueTypeEnum.java b/libreplan-business/src/main/java/org/libreplan/business/logs/entities/IssueTypeEnum.java index 0db92e05e..89f053dc3 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/logs/entities/IssueTypeEnum.java +++ b/libreplan-business/src/main/java/org/libreplan/business/logs/entities/IssueTypeEnum.java @@ -1,6 +1,6 @@ package org.libreplan.business.logs.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; /** * Defines PROBLEM_OR_CONCERN, REQUEST_FOR_CHANGE, OFF_SPECIFICATION enums @@ -10,7 +10,7 @@ import static org.libreplan.business.i18n.I18nHelper._; * @author Misha Gozhda */ public enum IssueTypeEnum { - PROBLEM_OR_CONCERN(_("Problem or concern")), REQUEST_FOR_CHANGE(_("Request for change")), OFF_SPECIFICATION(_("Off specification")); + PROBLEM_OR_CONCERN(tr("Problem or concern")), REQUEST_FOR_CHANGE(tr("Request for change")), OFF_SPECIFICATION(tr("Off specification")); private final String issueTypeEnum; diff --git a/libreplan-business/src/main/java/org/libreplan/business/logs/entities/LowMediumHighEnum.java b/libreplan-business/src/main/java/org/libreplan/business/logs/entities/LowMediumHighEnum.java index 686b46d35..2c20f0fb7 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/logs/entities/LowMediumHighEnum.java +++ b/libreplan-business/src/main/java/org/libreplan/business/logs/entities/LowMediumHighEnum.java @@ -18,7 +18,7 @@ */ package org.libreplan.business.logs.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; /** @@ -29,7 +29,7 @@ import static org.libreplan.business.i18n.I18nHelper._; */ public enum LowMediumHighEnum { - LOW(_("Low")), MEDIUM(_("Medium")), HIGH(_("High")); + LOW(tr("Low")), MEDIUM(tr("Medium")), HIGH(tr("High")); private final String lowMediumHighEnum; diff --git a/libreplan-business/src/main/java/org/libreplan/business/logs/entities/RiskScoreStatesEnum.java b/libreplan-business/src/main/java/org/libreplan/business/logs/entities/RiskScoreStatesEnum.java index 26f3e4bc7..72a41f43e 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/logs/entities/RiskScoreStatesEnum.java +++ b/libreplan-business/src/main/java/org/libreplan/business/logs/entities/RiskScoreStatesEnum.java @@ -1,5 +1,5 @@ package org.libreplan.business.logs.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; /** * Defines ZERO, ONE, TWO, THREE, FOUR, SIX, NINE * to be used as data type in @@ -8,7 +8,7 @@ import static org.libreplan.business.i18n.I18nHelper._; * @author Misha Gozhda */ public enum RiskScoreStatesEnum { - ZERO(_("0")), ONE(_("1")), TWO(_("2")), THREE(_("3")), FOUR(_("4")), SIX(_("6")), NINE(_("9")) ; + ZERO(tr("0")), ONE(tr("1")), TWO(tr("2")), THREE(tr("3")), FOUR(tr("4")), SIX(tr("6")), NINE(tr("9")) ; private final String riskScoreStateEnum; diff --git a/libreplan-business/src/main/java/org/libreplan/business/materials/entities/MaterialStatusEnum.java b/libreplan-business/src/main/java/org/libreplan/business/materials/entities/MaterialStatusEnum.java index c0cf73084..143679f92 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/materials/entities/MaterialStatusEnum.java +++ b/libreplan-business/src/main/java/org/libreplan/business/materials/entities/MaterialStatusEnum.java @@ -21,7 +21,7 @@ package org.libreplan.business.materials.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; /** * @@ -29,11 +29,11 @@ import static org.libreplan.business.i18n.I18nHelper._; * */ public enum MaterialStatusEnum { - RECEIVED(_("RECEIVED")), - PENDING(_("PENDING")), - ORDERED(_("ORDERED")), - PROCESSING(_("PROCESSING")), - CANCELED(_("CANCELED")); + RECEIVED(tr("RECEIVED")), + PENDING(tr("PENDING")), + ORDERED(tr("ORDERED")), + PROCESSING(tr("PROCESSING")), + CANCELED(tr("CANCELED")); private String description; diff --git a/libreplan-business/src/main/java/org/libreplan/business/orders/entities/CriterionRequirementHandler.java b/libreplan-business/src/main/java/org/libreplan/business/orders/entities/CriterionRequirementHandler.java index 096462abf..d11df21b0 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/orders/entities/CriterionRequirementHandler.java +++ b/libreplan-business/src/main/java/org/libreplan/business/orders/entities/CriterionRequirementHandler.java @@ -21,7 +21,7 @@ package org.libreplan.business.orders.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; import java.util.Collection; import java.util.HashMap; @@ -536,7 +536,7 @@ public abstract class CriterionRequirementHandler { newRequirement); } else { throw new IllegalStateException( - _("The criterion already exists into another task")); + tr("The criterion already exists into another task")); } } diff --git a/libreplan-business/src/main/java/org/libreplan/business/orders/entities/HoursGroup.java b/libreplan-business/src/main/java/org/libreplan/business/orders/entities/HoursGroup.java index 2e1fa0736..2c59b4382 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/orders/entities/HoursGroup.java +++ b/libreplan-business/src/main/java/org/libreplan/business/orders/entities/HoursGroup.java @@ -20,7 +20,7 @@ */ package org.libreplan.business.orders.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; import java.math.BigDecimal; import java.util.Collection; @@ -206,7 +206,7 @@ public class HoursGroup extends IntegrationEntity implements Cloneable, ICriteri if ( !isPercentageValidForParent() ) { this.percentage = oldPercentage; - throw new IllegalArgumentException(_("Total percentage should be less than 100%")); + throw new IllegalArgumentException(tr("Total percentage should be less than 100%")); } } diff --git a/libreplan-business/src/main/java/org/libreplan/business/orders/entities/OrderElement.java b/libreplan-business/src/main/java/org/libreplan/business/orders/entities/OrderElement.java index 6edfd44a6..256fa3a52 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/orders/entities/OrderElement.java +++ b/libreplan-business/src/main/java/org/libreplan/business/orders/entities/OrderElement.java @@ -21,7 +21,7 @@ package org.libreplan.business.orders.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; import java.math.BigDecimal; import java.util.ArrayList; @@ -749,7 +749,7 @@ public abstract class OrderElement extends IntegrationEntity implements ICriteri for (DirectAdvanceAssignment directAdvanceAssignment : directAdvanceAssignments) { if ( directAdvanceAssignment.getReportGlobalAdvance() ) { throw new DuplicateValueTrueReportGlobalAdvanceException( - _("Cannot spread two progress in the same task"), this, OrderElement.class); + tr("Cannot spread two progress in the same task"), this, OrderElement.class); } } } @@ -771,7 +771,7 @@ public abstract class OrderElement extends IntegrationEntity implements ICriteri directAdvanceAssignment.getAdvanceType(), newAdvanceAssignment.getAdvanceType()) ) { throw new DuplicateAdvanceAssignmentForOrderElementException( - _("Duplicate Progress Assignment For Task"), this, OrderElement.class); + tr("Duplicate Progress Assignment For Task"), this, OrderElement.class); } } if (orderElement.getParent() != null) { @@ -792,7 +792,7 @@ public abstract class OrderElement extends IntegrationEntity implements ICriteri if (orderElement.existsDirectAdvanceAssignmentWithTheSameType(newAdvanceAssignment.getAdvanceType())) { throw new DuplicateAdvanceAssignmentForOrderElementException( - _("Duplicate Progress Assignment For Task"), + tr("Duplicate Progress Assignment For Task"), this, OrderElement.class); } @@ -1101,7 +1101,7 @@ public abstract class OrderElement extends IntegrationEntity implements ICriteri if ( qualityForm.equals(taskQualityForm.getQualityForm()) ) { throw new ValidationException(ValidationException.invalidValue( - _("Quality form already exists"), + tr("Quality form already exists"), "name", qualityForm.getName(), qualityForm)); diff --git a/libreplan-business/src/main/java/org/libreplan/business/orders/entities/OrderLineGroup.java b/libreplan-business/src/main/java/org/libreplan/business/orders/entities/OrderLineGroup.java index 0da0094ca..f724b5bbf 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/orders/entities/OrderLineGroup.java +++ b/libreplan-business/src/main/java/org/libreplan/business/orders/entities/OrderLineGroup.java @@ -21,7 +21,7 @@ package org.libreplan.business.orders.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; import java.math.BigDecimal; import java.math.RoundingMode; @@ -969,7 +969,7 @@ public class OrderLineGroup extends OrderElement implements ITreeParentNode distributeForDay(PartialDay day, EffortDuration totalDuration) { - return withCaptureOfResourcesPicked(distributeForDay_(day, totalDuration)); + return withCaptureOfResourcesPicked(distributeForDaytr(day, totalDuration)); } private List withCaptureOfResourcesPicked(List result) { @@ -318,7 +318,7 @@ public class EffortDistributor { return result; } - private List distributeForDay_(PartialDay day, EffortDuration totalDuration) { + private List distributeForDaytr(PartialDay day, EffortDuration totalDuration) { List resourcesAssignable = resourcesAssignableAt(day.getDate()); List withoutOvertime = diff --git a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/PositionConstraintType.java b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/PositionConstraintType.java index 4da8798e9..13d5a178e 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/PositionConstraintType.java +++ b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/PositionConstraintType.java @@ -28,21 +28,21 @@ import org.libreplan.business.orders.entities.Order.SchedulingMode; * @author Óscar González Fernández */ public enum PositionConstraintType { - AS_SOON_AS_POSSIBLE(false, _("as soon as possible")) { + AS_SOON_AS_POSSIBLE(false, tr("as soon as possible")) { @Override public boolean appliesToTheStart() { return true; } }, - START_NOT_EARLIER_THAN(true, _("start not earlier than")) { + START_NOT_EARLIER_THAN(true, tr("start not earlier than")) { @Override public boolean appliesToTheStart() { return true; } }, - START_IN_FIXED_DATE(true, _("start in fixed date")) { + START_IN_FIXED_DATE(true, tr("start in fixed date")) { @Override public PositionConstraintType newTypeAfterMoved(SchedulingMode mode) { @@ -54,14 +54,14 @@ public enum PositionConstraintType { return true; } }, - AS_LATE_AS_POSSIBLE(false, _("as late as possible")) { + AS_LATE_AS_POSSIBLE(false, tr("as late as possible")) { @Override public boolean appliesToTheStart() { return false; } }, - FINISH_NOT_LATER_THAN(true, _("finish not later than")) { + FINISH_NOT_LATER_THAN(true, tr("finish not later than")) { @Override public boolean appliesToTheStart() { @@ -72,7 +72,7 @@ public enum PositionConstraintType { /** * Forces to mark the string as needing translation */ - private static String _(String string) { + private static String tr(String string) { return string; } diff --git a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/StretchesFunction.java b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/StretchesFunction.java index 0b678848f..9bbac9048 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/StretchesFunction.java +++ b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/StretchesFunction.java @@ -22,7 +22,7 @@ package org.libreplan.business.planner.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; import java.math.BigDecimal; import java.math.RoundingMode; @@ -423,7 +423,7 @@ public class StretchesFunction extends AssignmentFunction { BigDecimal left = calculateLeftFor(sumOfProportions); if ( !left.equals(BigDecimal.ZERO) ) { - throw new IllegalStateException(_("Stretches must sum 100%")); + throw new IllegalStateException(tr("Stretches must sum 100%")); } } diff --git a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/SubcontractState.java b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/SubcontractState.java index 27001cde8..cc6744fca 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/SubcontractState.java +++ b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/SubcontractState.java @@ -21,7 +21,7 @@ package org.libreplan.business.planner.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; /** * Possible states of a {@link SubcontractedTaskData}. @@ -29,10 +29,10 @@ import static org.libreplan.business.i18n.I18nHelper._; * @author Manuel Rego Casasnovas */ public enum SubcontractState { - PENDING_INITIAL_SEND(_("Pending initial send"), true), PENDING_UPDATE_DELIVERING_DATE( - _("Pending update delivering date"), true), FAILED_SENT( - _("Failed sent"), true), FAILED_UPDATE(_("Failed update"), true), SUCCESS_SENT( - _("Success sent"), false); + PENDING_INITIAL_SEND(tr("Pending initial send"), true), PENDING_UPDATE_DELIVERING_DATE( + tr("Pending update delivering date"), true), FAILED_SENT( + tr("Failed sent"), true), FAILED_UPDATE(tr("Failed update"), true), SUCCESS_SENT( + tr("Success sent"), false); private String name; private boolean sendable; diff --git a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/TaskDeadlineViolationStatusEnum.java b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/TaskDeadlineViolationStatusEnum.java index 30545df0c..36145284e 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/TaskDeadlineViolationStatusEnum.java +++ b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/TaskDeadlineViolationStatusEnum.java @@ -19,7 +19,7 @@ package org.libreplan.business.planner.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; /** * Enumerate of {@link Task} deadline violation statuses. @@ -31,9 +31,9 @@ import static org.libreplan.business.i18n.I18nHelper._; * @author Nacho Barrientos */ public enum TaskDeadlineViolationStatusEnum { - NO_DEADLINE(_("No deadline")), - DEADLINE_VIOLATED(_("Deadline violated")), - ON_SCHEDULE(_("On schedule")); + NO_DEADLINE(tr("No deadline")), + DEADLINE_VIOLATED(tr("Deadline violated")), + ON_SCHEDULE(tr("On schedule")); private String value; diff --git a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/TaskStatusEnum.java b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/TaskStatusEnum.java index 7ddeddb98..d7508ba90 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/TaskStatusEnum.java +++ b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/TaskStatusEnum.java @@ -21,15 +21,15 @@ package org.libreplan.business.planner.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; public enum TaskStatusEnum { - ALL(_("All")), - FINISHED(_("Finished")), - IN_PROGRESS(_("In progress")), - PENDING(_("Pending")), - BLOCKED(_("Blocked")), - READY_TO_START(_("Ready to start")); + ALL(tr("All")), + FINISHED(tr("Finished")), + IN_PROGRESS(tr("In progress")), + PENDING(tr("Pending")), + BLOCKED(tr("Blocked")), + READY_TO_START(tr("Ready to start")); private String value; diff --git a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/allocationalgorithms/ResourcesPerDayModification.java b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/allocationalgorithms/ResourcesPerDayModification.java index 3a18dab68..6ae185d10 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/allocationalgorithms/ResourcesPerDayModification.java +++ b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/allocationalgorithms/ResourcesPerDayModification.java @@ -21,7 +21,7 @@ package org.libreplan.business.planner.entities.allocationalgorithms; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; import static org.libreplan.business.workingday.EffortDuration.min; import java.util.ArrayList; @@ -92,15 +92,15 @@ public abstract class ResourcesPerDayModification extends @Override public String getNoValidPeriodsMessage() { - String firstLine = _("There are no days available due to not satisfying the criteria."); - String secondLine = _("Another possibility is that the resources do not have days available due to their calendars."); + String firstLine = tr("There are no days available due to not satisfying the criteria."); + String secondLine = tr("Another possibility is that the resources do not have days available due to their calendars."); return firstLine + "\n" + secondLine; } @Override public String getNoValidPeriodsMessageDueToIntersectionMessage() { - String firstLine = _("There are no days available in the days marked available by the task calendar."); - String secondLine = _("Maybe the criteria are not satisfied in those days."); + String firstLine = tr("There are no days available in the days marked available by the task calendar."); + String secondLine = tr("Maybe the criteria are not satisfied in those days."); return firstLine + "\n" + secondLine; } @@ -172,12 +172,12 @@ public abstract class ResourcesPerDayModification extends @Override public String getNoValidPeriodsMessage() { - return _("Resource is not available from task's start"); + return tr("Resource is not available from task's start"); } @Override public String getNoValidPeriodsMessageDueToIntersectionMessage() { - return _("Resource is not available according to task's calendar"); + return tr("Resource is not available according to task's calendar"); } private Resource getAssociatedResource() { diff --git a/libreplan-business/src/main/java/org/libreplan/business/planner/limiting/entities/LimitingResourceQueueDependency.java b/libreplan-business/src/main/java/org/libreplan/business/planner/limiting/entities/LimitingResourceQueueDependency.java index 64fabb575..7fbcd6830 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/planner/limiting/entities/LimitingResourceQueueDependency.java +++ b/libreplan-business/src/main/java/org/libreplan/business/planner/limiting/entities/LimitingResourceQueueDependency.java @@ -20,7 +20,7 @@ */ package org.libreplan.business.planner.limiting.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; import java.util.EnumMap; @@ -167,7 +167,7 @@ public class LimitingResourceQueueDependency extends BaseEntity { Validate.notNull(origin); Validate.notNull(destiny); Validate.notNull(ganttDependency); - Validate.isTrue(!origin.equals(destiny), _("A queue dependency has to " + + Validate.isTrue(!origin.equals(destiny), tr("A queue dependency has to " + "have an origin different from destiny")); this.hasAsOrigin = origin; this.hasAsDestiny = destiny; diff --git a/libreplan-business/src/main/java/org/libreplan/business/planner/limiting/entities/QueuePosition.java b/libreplan-business/src/main/java/org/libreplan/business/planner/limiting/entities/QueuePosition.java index 514c555d4..e43de4a37 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/planner/limiting/entities/QueuePosition.java +++ b/libreplan-business/src/main/java/org/libreplan/business/planner/limiting/entities/QueuePosition.java @@ -21,7 +21,7 @@ package org.libreplan.business.planner.limiting.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; import org.apache.commons.lang3.Validate; import org.joda.time.LocalDate; @@ -50,7 +50,7 @@ public class QueuePosition { } public void setHour(int hour) { - Validate.isTrue(hour >= 0 && hour <= 23, _("Hour should be between 0 and 23")); + Validate.isTrue(hour >= 0 && hour <= 23, tr("Hour should be between 0 and 23")); this.hour = hour; } diff --git a/libreplan-business/src/main/java/org/libreplan/business/qualityforms/entities/QualityFormType.java b/libreplan-business/src/main/java/org/libreplan/business/qualityforms/entities/QualityFormType.java index e6baaa2a3..f25b4db83 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/qualityforms/entities/QualityFormType.java +++ b/libreplan-business/src/main/java/org/libreplan/business/qualityforms/entities/QualityFormType.java @@ -26,12 +26,12 @@ package org.libreplan.business.qualityforms.entities; public enum QualityFormType { - BY_PERCENTAGE(_("by percentage")), BY_ITEMS(_("by items")); + BY_PERCENTAGE(tr("by percentage")), BY_ITEMS(tr("by items")); /** * Forces to mark the string as needing translation */ - private static String _(String string) { + private static String tr(String string) { return string; } diff --git a/libreplan-business/src/main/java/org/libreplan/business/resources/entities/Criterion.java b/libreplan-business/src/main/java/org/libreplan/business/resources/entities/Criterion.java index 12a940535..be6f5ad56 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/resources/entities/Criterion.java +++ b/libreplan-business/src/main/java/org/libreplan/business/resources/entities/Criterion.java @@ -21,7 +21,7 @@ package org.libreplan.business.resources.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; import java.util.ArrayList; import java.util.Collection; @@ -195,11 +195,11 @@ public class Criterion extends IntegrationEntity implements ICriterion, Comparab } private static String allWorkersCaption() { - return _("[generic all workers]"); + return tr("[generic all workers]"); } private static String allMachinesCaption() { - return _("[generic all machines]"); + return tr("[generic all machines]"); } public void updateUnvalidated(String name, Boolean active) { diff --git a/libreplan-business/src/main/java/org/libreplan/business/resources/entities/ResourceEnum.java b/libreplan-business/src/main/java/org/libreplan/business/resources/entities/ResourceEnum.java index 19de56829..750698309 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/resources/entities/ResourceEnum.java +++ b/libreplan-business/src/main/java/org/libreplan/business/resources/entities/ResourceEnum.java @@ -26,8 +26,8 @@ package org.libreplan.business.resources.entities; */ public enum ResourceEnum { - WORKER(Worker.class, _("WORKER")), - MACHINE(Machine.class, _("MACHINE")); + WORKER(Worker.class, tr("WORKER")), + MACHINE(Machine.class, tr("MACHINE")); private Class klass; @@ -41,7 +41,7 @@ public enum ResourceEnum { /** * Forces to mark the string as needing translation. */ - private static String _(String string) { + private static String tr(String string) { return string; } diff --git a/libreplan-business/src/main/java/org/libreplan/business/resources/entities/ResourceType.java b/libreplan-business/src/main/java/org/libreplan/business/resources/entities/ResourceType.java index f40f83677..b41e1db44 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/resources/entities/ResourceType.java +++ b/libreplan-business/src/main/java/org/libreplan/business/resources/entities/ResourceType.java @@ -19,7 +19,7 @@ package org.libreplan.business.resources.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; /** * Enumerate with the three basic types of resource: non-limiting, limiting and strategic. @@ -27,8 +27,8 @@ import static org.libreplan.business.i18n.I18nHelper._; */ public enum ResourceType { - NON_LIMITING_RESOURCE(_("Normal resource")), - LIMITING_RESOURCE(_("Queue-based resource")); + NON_LIMITING_RESOURCE(tr("Normal resource")), + LIMITING_RESOURCE(tr("Queue-based resource")); private String option; diff --git a/libreplan-business/src/main/java/org/libreplan/business/settings/entities/Language.java b/libreplan-business/src/main/java/org/libreplan/business/settings/entities/Language.java index 08d242979..598cc7241 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/settings/entities/Language.java +++ b/libreplan-business/src/main/java/org/libreplan/business/settings/entities/Language.java @@ -20,7 +20,7 @@ package org.libreplan.business.settings.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; import java.util.Locale; @@ -33,7 +33,7 @@ import java.util.Locale; */ public enum Language { - BROWSER_LANGUAGE(_("Use browser language configuration"), null), + BROWSER_LANGUAGE(tr("Use browser language configuration"), null), GALICIAN_LANGUAGE("Galego", new Locale("gl")), SPANISH_LANGUAGE("Español", new Locale("es")), ENGLISH_LANGUAGE("English", Locale.ENGLISH), diff --git a/libreplan-business/src/main/java/org/libreplan/business/templates/entities/OrderLineGroupTemplate.java b/libreplan-business/src/main/java/org/libreplan/business/templates/entities/OrderLineGroupTemplate.java index 96c62a7ce..419763bf8 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/templates/entities/OrderLineGroupTemplate.java +++ b/libreplan-business/src/main/java/org/libreplan/business/templates/entities/OrderLineGroupTemplate.java @@ -270,7 +270,7 @@ public class OrderLineGroupTemplate extends OrderElementTemplate implements @Override public String getType() { - return I18nHelper._("Group"); + return I18nHelper.tr("Group"); } @Override diff --git a/libreplan-business/src/main/java/org/libreplan/business/templates/entities/OrderLineTemplate.java b/libreplan-business/src/main/java/org/libreplan/business/templates/entities/OrderLineTemplate.java index 37534bed0..c540caa8e 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/templates/entities/OrderLineTemplate.java +++ b/libreplan-business/src/main/java/org/libreplan/business/templates/entities/OrderLineTemplate.java @@ -20,7 +20,7 @@ */ package org.libreplan.business.templates.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; import java.math.BigDecimal; import java.util.ArrayList; @@ -163,7 +163,7 @@ public class OrderLineTemplate extends OrderElementTemplate { @Override public String getType() { - return _("Line"); + return tr("Line"); } public Integer getWorkHours() { diff --git a/libreplan-business/src/main/java/org/libreplan/business/templates/entities/OrderTemplate.java b/libreplan-business/src/main/java/org/libreplan/business/templates/entities/OrderTemplate.java index 02803db8c..2251d8436 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/templates/entities/OrderTemplate.java +++ b/libreplan-business/src/main/java/org/libreplan/business/templates/entities/OrderTemplate.java @@ -20,7 +20,7 @@ */ package org.libreplan.business.templates.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; import javax.validation.constraints.NotNull; import org.libreplan.business.calendars.entities.BaseCalendar; @@ -62,7 +62,7 @@ public class OrderTemplate extends OrderLineGroupTemplate { @Override public String getType() { - return _("Project"); + return tr("Project"); } public void setCalendar(BaseCalendar calendar) { diff --git a/libreplan-business/src/main/java/org/libreplan/business/users/entities/OrderAuthorizationType.java b/libreplan-business/src/main/java/org/libreplan/business/users/entities/OrderAuthorizationType.java index fea907dc6..d42b13be0 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/users/entities/OrderAuthorizationType.java +++ b/libreplan-business/src/main/java/org/libreplan/business/users/entities/OrderAuthorizationType.java @@ -21,7 +21,7 @@ package org.libreplan.business.users.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; /** * Available types of {@link OrderAuthorization}. @@ -30,8 +30,8 @@ import static org.libreplan.business.i18n.I18nHelper._; */ public enum OrderAuthorizationType { - READ_AUTHORIZATION(_("Read authorization")), - WRITE_AUTHORIZATION(_("Write authorization")); + READ_AUTHORIZATION(tr("Read authorization")), + WRITE_AUTHORIZATION(tr("Write authorization")); private final String displayName; diff --git a/libreplan-business/src/main/java/org/libreplan/business/users/entities/User.java b/libreplan-business/src/main/java/org/libreplan/business/users/entities/User.java index 28b88d328..1ec4f5021 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/users/entities/User.java +++ b/libreplan-business/src/main/java/org/libreplan/business/users/entities/User.java @@ -21,7 +21,7 @@ package org.libreplan.business.users.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; import java.util.HashSet; import java.util.List; @@ -370,8 +370,8 @@ public class User extends BaseEntity implements IHumanIdentifiable{ public enum UserAuthenticationType { - DATABASE(_("Database")), - LDAP(_("LDAP")); + DATABASE(tr("Database")), + LDAP(tr("LDAP")); private String name; diff --git a/libreplan-business/src/main/java/org/libreplan/business/users/entities/UserRole.java b/libreplan-business/src/main/java/org/libreplan/business/users/entities/UserRole.java index e01c484c8..1dfbe8f2c 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/users/entities/UserRole.java +++ b/libreplan-business/src/main/java/org/libreplan/business/users/entities/UserRole.java @@ -21,7 +21,7 @@ package org.libreplan.business.users.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; /** * Available user roles. @@ -33,70 +33,70 @@ import static org.libreplan.business.i18n.I18nHelper._; public enum UserRole { // Access to all pages - ROLE_SUPERUSER(_("Superuser")), + ROLE_SUPERUSER(tr("Superuser")), // Web services roles - ROLE_WS_READER(_("Web service reader")), - ROLE_WS_WRITER(_("Web service writer")), - ROLE_WS_SUBCONTRACTING(_("Web service subcontractor operations")), + ROLE_WS_READER(tr("Web service reader")), + ROLE_WS_WRITER(tr("Web service writer")), + ROLE_WS_SUBCONTRACTING(tr("Web service subcontractor operations")), // Project operations roles - ROLE_READ_ALL_PROJECTS(_("Read all projects")), - ROLE_EDIT_ALL_PROJECTS(_("Edit all projects")), - ROLE_CREATE_PROJECTS(_("Create projects")), + ROLE_READ_ALL_PROJECTS(tr("Read all projects")), + ROLE_EDIT_ALL_PROJECTS(tr("Edit all projects")), + ROLE_CREATE_PROJECTS(tr("Create projects")), // Special role for bound users - ROLE_BOUND_USER(_("Bound user")), + ROLE_BOUND_USER(tr("Bound user")), // Page roles - ROLE_PLANNING(_("Planning")), - ROLE_TEMPLATES(_("Templates")), - ROLE_IMPORT_PROJECTS(_("Import projects")), - ROLE_WORKERS(_("Workers")), - ROLE_MACHINES(_("Machines")), - ROLE_VIRTUAL_WORKERS(_("Virtual Workers")), - ROLE_CALENDARS(_("Calendars")), - ROLE_CALENDAR_EXCEPTION_DAYS(_("Calendar Exception Days")), - ROLE_CRITERIA(_("Criteria")), - ROLE_PROGRESS_TYPES(_("Progress Types")), - ROLE_LABELS(_("Labels")), - ROLE_MATERIALS(_("Materials")), - ROLE_MATERIAL_UNITS(_("Material Units")), - ROLE_QUALITY_FORMS(_("Quality Forms")), - ROLE_TIMESHEETS(_("Timesheets")), - ROLE_TIMESHEETS_TEMPLATES(_("Timesheets Templates")), - ROLE_EXPENSES(_("Expenses")), - ROLE_COST_CATEGORIES(_("Cost Categories")), - ROLE_HOURS_TYPES(_("Hours Types")), - ROLE_MAIN_SETTINGS(_("Main Settings")), - ROLE_USER_ACCOUNTS(_("User Accounts")), - ROLE_PROFILES(_("Profiles")), - ROLE_JOB_SCHEDULING(_("Job Scheduling")), - ROLE_COMPANIES(_("Companies")), - ROLE_SEND_TO_SUBCONTRACTORS(_("Send To Subcontractors")), - ROLE_RECEIVED_FROM_SUBCONTRACTORS(_("Received From Subcontractors")), - ROLE_SEND_TO_CUSTOMERS(_("Send To Customers")), - ROLE_RECEIVED_FROM_CUSTOMERS(_("Received From Customers")), - ROLE_TIMESHEET_LINES_LIST(_("Timesheet Lines List")), - ROLE_HOURS_WORKED_PER_RESOURCE_REPORT(_("Hours Worked Per Resource Report")), - ROLE_TOTAL_WORKED_HOURS_BY_RESOURCE_IN_A_MONTH_REPORT(_("Total Worked Hours By Resource In A Month Report")), - ROLE_WORK_AND_PROGRESS_PER_PROJECT_REPORT(_("Work And Progress Per Project Report")), - ROLE_WORK_AND_PROGRESS_PER_TASK_REPORT(_("Work And Progress Per Task Report")), - ROLE_ESTIMATED_PLANNED_HOURS_PER_TASK_REPORT(_("Estimated/Planned Hours Per Task Report")), - ROLE_PROJECT_COSTS_REPORT(_("Project Costs Report")), - ROLE_TASK_SCHEDULING_STATUS_IN_PROJECT_REPORT(_("Task Scheduling Status In Project Report")), - ROLE_MATERIALS_NEED_AT_DATE_REPORT(_("Materials Needed At Date Report")), - ROLE_PROJECT_STATUS_REPORT(_("Project Status Report")), + ROLE_PLANNING(tr("Planning")), + ROLE_TEMPLATES(tr("Templates")), + ROLE_IMPORT_PROJECTS(tr("Import projects")), + ROLE_WORKERS(tr("Workers")), + ROLE_MACHINES(tr("Machines")), + ROLE_VIRTUAL_WORKERS(tr("Virtual Workers")), + ROLE_CALENDARS(tr("Calendars")), + ROLE_CALENDAR_EXCEPTION_DAYS(tr("Calendar Exception Days")), + ROLE_CRITERIA(tr("Criteria")), + ROLE_PROGRESS_TYPES(tr("Progress Types")), + ROLE_LABELS(tr("Labels")), + ROLE_MATERIALS(tr("Materials")), + ROLE_MATERIAL_UNITS(tr("Material Units")), + ROLE_QUALITY_FORMS(tr("Quality Forms")), + ROLE_TIMESHEETS(tr("Timesheets")), + ROLE_TIMESHEETS_TEMPLATES(tr("Timesheets Templates")), + ROLE_EXPENSES(tr("Expenses")), + ROLE_COST_CATEGORIES(tr("Cost Categories")), + ROLE_HOURS_TYPES(tr("Hours Types")), + ROLE_MAIN_SETTINGS(tr("Main Settings")), + ROLE_USER_ACCOUNTS(tr("User Accounts")), + ROLE_PROFILES(tr("Profiles")), + ROLE_JOB_SCHEDULING(tr("Job Scheduling")), + ROLE_COMPANIES(tr("Companies")), + ROLE_SEND_TO_SUBCONTRACTORS(tr("Send To Subcontractors")), + ROLE_RECEIVED_FROM_SUBCONTRACTORS(tr("Received From Subcontractors")), + ROLE_SEND_TO_CUSTOMERS(tr("Send To Customers")), + ROLE_RECEIVED_FROM_CUSTOMERS(tr("Received From Customers")), + ROLE_TIMESHEET_LINES_LIST(tr("Timesheet Lines List")), + ROLE_HOURS_WORKED_PER_RESOURCE_REPORT(tr("Hours Worked Per Resource Report")), + ROLE_TOTAL_WORKED_HOURS_BY_RESOURCE_IN_A_MONTH_REPORT(tr("Total Worked Hours By Resource In A Month Report")), + ROLE_WORK_AND_PROGRESS_PER_PROJECT_REPORT(tr("Work And Progress Per Project Report")), + ROLE_WORK_AND_PROGRESS_PER_TASK_REPORT(tr("Work And Progress Per Task Report")), + ROLE_ESTIMATED_PLANNED_HOURS_PER_TASK_REPORT(tr("Estimated/Planned Hours Per Task Report")), + ROLE_PROJECT_COSTS_REPORT(tr("Project Costs Report")), + ROLE_TASK_SCHEDULING_STATUS_IN_PROJECT_REPORT(tr("Task Scheduling Status In Project Report")), + ROLE_MATERIALS_NEED_AT_DATE_REPORT(tr("Materials Needed At Date Report")), + ROLE_PROJECT_STATUS_REPORT(tr("Project Status Report")), - ROLE_EDIT_EMAIL_TEMPLATES(_("Edit E-mail Templates")), - ROLE_USE_FILES(_("Use files for order")), + ROLE_EDIT_EMAIL_TEMPLATES(tr("Edit E-mail Templates")), + ROLE_USE_FILES(tr("Use files for order")), - ROLE_EMAIL_TASK_ASSIGNED_TO_RESOURCE(_("Email: task assigned to resource")), - ROLE_EMAIL_RESOURCE_REMOVED_FROM_TASK(_("Email: resource removed from task")), - ROLE_EMAIL_MILESTONE_REACHED(_("Email: milestone reached")), - ROLE_EMAIL_TASK_SHOULD_FINISH(_("Email: task should finish")), - ROLE_EMAIL_TASK_SHOULD_START(_("Email: task should start")), - ROLE_EMAIL_TIMESHEET_DATA_MISSING(_("Email: timesheet data missing")); + ROLE_EMAIL_TASK_ASSIGNED_TO_RESOURCE(tr("Email: task assigned to resource")), + ROLE_EMAIL_RESOURCE_REMOVED_FROM_TASK(tr("Email: resource removed from task")), + ROLE_EMAIL_MILESTONE_REACHED(tr("Email: milestone reached")), + ROLE_EMAIL_TASK_SHOULD_FINISH(tr("Email: task should finish")), + ROLE_EMAIL_TASK_SHOULD_START(tr("Email: task should start")), + ROLE_EMAIL_TIMESHEET_DATA_MISSING(tr("Email: timesheet data missing")); private final String displayName; diff --git a/libreplan-business/src/main/java/org/libreplan/business/workingday/hibernate/EffortDurationType.java b/libreplan-business/src/main/java/org/libreplan/business/workingday/hibernate/EffortDurationType.java index 6431edb9d..5d132526f 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/workingday/hibernate/EffortDurationType.java +++ b/libreplan-business/src/main/java/org/libreplan/business/workingday/hibernate/EffortDurationType.java @@ -28,7 +28,7 @@ import java.sql.Types; import java.util.Objects; import org.hibernate.HibernateException; -import org.hibernate.engine.spi.SessionImplementor; +import org.hibernate.engine.spi.SharedSessionContractImplementor; import org.hibernate.type.StandardBasicTypes; import org.hibernate.usertype.UserType; import org.libreplan.business.workingday.EffortDuration; @@ -60,10 +60,9 @@ public class EffortDurationType implements UserType { @Override public Object nullSafeGet(ResultSet rs, String[] names, - SessionImplementor session, Object owner) + SharedSessionContractImplementor session, Object owner) throws HibernateException, SQLException { - Integer seconds = StandardBasicTypes.INTEGER.nullSafeGet(rs, names[0], - session); + Integer seconds = (Integer) rs.getObject(names[0]); if (seconds == null) { return null; } @@ -72,10 +71,13 @@ public class EffortDurationType implements UserType { @Override public void nullSafeSet(PreparedStatement st, Object value, int index, - SessionImplementor session) throws HibernateException, SQLException { + SharedSessionContractImplementor session) throws HibernateException, SQLException { EffortDuration duration = (EffortDuration) value; - Integer seconds = duration != null ? duration.getSeconds() : null; - StandardBasicTypes.INTEGER.nullSafeSet(st, seconds, index, session); + if (duration == null) { + st.setNull(index, Types.INTEGER); + } else { + st.setInt(index, duration.getSeconds()); + } } @Override diff --git a/libreplan-business/src/main/java/org/libreplan/business/workingday/hibernate/ResourcesPerDayType.java b/libreplan-business/src/main/java/org/libreplan/business/workingday/hibernate/ResourcesPerDayType.java index 15d43ec63..7b42e18ac 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/workingday/hibernate/ResourcesPerDayType.java +++ b/libreplan-business/src/main/java/org/libreplan/business/workingday/hibernate/ResourcesPerDayType.java @@ -29,8 +29,7 @@ import java.sql.SQLException; import java.sql.Types; import org.hibernate.HibernateException; -import org.hibernate.engine.spi.SessionImplementor; -import org.hibernate.type.StandardBasicTypes; +import org.hibernate.engine.spi.SharedSessionContractImplementor; import org.hibernate.usertype.UserType; import org.libreplan.business.workingday.ResourcesPerDay; @@ -87,11 +86,10 @@ public class ResourcesPerDayType implements UserType { @Override public Object nullSafeGet(ResultSet rs, String[] names, - SessionImplementor session, Object owner) + SharedSessionContractImplementor session, Object owner) throws HibernateException, SQLException { - BigDecimal bigDecimal = (BigDecimal) StandardBasicTypes.BIG_DECIMAL - .nullSafeGet(rs, names[0], session); - if (bigDecimal == null) { + BigDecimal bigDecimal = rs.getBigDecimal(names[0]); + if (rs.wasNull() || bigDecimal == null) { return null; } return ResourcesPerDay.amount(bigDecimal); @@ -99,13 +97,12 @@ public class ResourcesPerDayType implements UserType { @Override public void nullSafeSet(PreparedStatement st, Object value, int index, - SessionImplementor session) throws HibernateException, SQLException { - BigDecimal amount = null; - if (value != null) { - amount = ((ResourcesPerDay) value).getAmount(); + SharedSessionContractImplementor session) throws HibernateException, SQLException { + if (value == null) { + st.setNull(index, Types.NUMERIC); + } else { + st.setBigDecimal(index, ((ResourcesPerDay) value).getAmount()); } - StandardBasicTypes.BIG_DECIMAL.nullSafeSet(st, amount, index, session); - } @Override diff --git a/libreplan-business/src/main/java/org/libreplan/business/workreports/entities/HoursManagementEnum.java b/libreplan-business/src/main/java/org/libreplan/business/workreports/entities/HoursManagementEnum.java index 50697e6fb..82aa231e9 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/workreports/entities/HoursManagementEnum.java +++ b/libreplan-business/src/main/java/org/libreplan/business/workreports/entities/HoursManagementEnum.java @@ -24,13 +24,13 @@ */ package org.libreplan.business.workreports.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; public enum HoursManagementEnum { - NUMBER_OF_HOURS(_("Number of assigned hours")), - HOURS_CALCULATED_BY_CLOCK(_("Number of hours calculated by clock")), - NUMBER_OF_HOURS_AND_CLOCK(_("Number of assigned hours and time")); + NUMBER_OF_HOURS(tr("Number of assigned hours")), + HOURS_CALCULATED_BY_CLOCK(tr("Number of hours calculated by clock")), + NUMBER_OF_HOURS_AND_CLOCK(tr("Number of assigned hours and time")); private String description; diff --git a/libreplan-business/src/main/java/org/libreplan/business/workreports/entities/PositionInWorkReportEnum.java b/libreplan-business/src/main/java/org/libreplan/business/workreports/entities/PositionInWorkReportEnum.java index 3e61e8e0c..92c183ddd 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/workreports/entities/PositionInWorkReportEnum.java +++ b/libreplan-business/src/main/java/org/libreplan/business/workreports/entities/PositionInWorkReportEnum.java @@ -24,14 +24,14 @@ */ package org.libreplan.business.workreports.entities; -import static org.libreplan.business.i18n.I18nHelper._; +import static org.libreplan.business.i18n.I18nHelper.tr; /** * @author Susana Montes Pedreira */ public enum PositionInWorkReportEnum { - HEADING(_("heading")), LINE(_("line")); + HEADING(tr("heading")), LINE(tr("line")); private String displayName; diff --git a/libreplan-business/src/main/resources/META-INF/services/org.hibernate.boot.model.TypeContributor b/libreplan-business/src/main/resources/META-INF/services/org.hibernate.boot.model.TypeContributor new file mode 100644 index 000000000..637cd08af --- /dev/null +++ b/libreplan-business/src/main/resources/META-INF/services/org.hibernate.boot.model.TypeContributor @@ -0,0 +1 @@ +org.libreplan.business.common.hibernate.JodaTypeContributor diff --git a/libreplan-business/src/main/resources/libreplan-business-hibernate.cfg.xml b/libreplan-business/src/main/resources/libreplan-business-hibernate.cfg.xml index ac5fda42b..40b53ba3c 100644 --- a/libreplan-business/src/main/resources/libreplan-business-hibernate.cfg.xml +++ b/libreplan-business/src/main/resources/libreplan-business-hibernate.cfg.xml @@ -20,7 +20,7 @@ --> none - true + false jvm jvm diff --git a/libreplan-business/src/main/resources/libreplan-business-spring-config.xml b/libreplan-business/src/main/resources/libreplan-business-spring-config.xml index 2ed5f1c38..0f27c35c7 100644 --- a/libreplan-business/src/main/resources/libreplan-business-spring-config.xml +++ b/libreplan-business/src/main/resources/libreplan-business-spring-config.xml @@ -7,10 +7,10 @@ xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans-4.3.xsd - http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd - http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd - http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd"> + http://www.springframework.org/schema/beans/spring-beans.xsd + http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd + http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd + http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> diff --git a/libreplan-webapp/pom.xml b/libreplan-webapp/pom.xml index 055ac512e..6523efaf7 100644 --- a/libreplan-webapp/pom.xml +++ b/libreplan-webapp/pom.xml @@ -10,7 +10,7 @@ libreplan-webapp war - LibrePlan Web Client Module + TASKPM Web Client Module @@ -395,7 +395,7 @@ ${jdbcDriver.groupId} ${jdbcDriver.artifactId} - test + runtime diff --git a/libreplan-webapp/src/main/java/org/libreplan/importers/CalendarImporterMPXJ.java b/libreplan-webapp/src/main/java/org/libreplan/importers/CalendarImporterMPXJ.java index 46c85c846..7f2f33e29 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/importers/CalendarImporterMPXJ.java +++ b/libreplan-webapp/src/main/java/org/libreplan/importers/CalendarImporterMPXJ.java @@ -20,7 +20,7 @@ package org.libreplan.importers; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.io.InputStream; import java.util.ArrayList; @@ -337,7 +337,7 @@ public class CalendarImporterMPXJ implements ICalendarImporter { if (calendars.isEmpty()) { return name; } else { - throw new ValidationException(_("Calendar name already in use")); + throw new ValidationException(tr("Calendar name already in use")); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/importers/ExportTimesheetsToTim.java b/libreplan-webapp/src/main/java/org/libreplan/importers/ExportTimesheetsToTim.java index 8ad2a329d..6c3cf8aae 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/importers/ExportTimesheetsToTim.java +++ b/libreplan-webapp/src/main/java/org/libreplan/importers/ExportTimesheetsToTim.java @@ -19,7 +19,7 @@ package org.libreplan.importers; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.Collections; @@ -89,21 +89,21 @@ public class ExportTimesheetsToTim implements IExportTimesheetsToTim { public List exportTimesheets() throws ConnectorException { Connector connector = getTimConnector(); if (connector == null) { - throw new ConnectorException(_("Tim connector not found")); + throw new ConnectorException(tr("Tim connector not found")); } if (!connector.areConnectionValuesValid()) { throw new ConnectorException( - _("Connection values of Tim connector are invalid")); + tr("Connection values of Tim connector are invalid")); } - synchronizationInfo = new SynchronizationInfo(_("Export")); + synchronizationInfo = new SynchronizationInfo(tr("Export")); List syncInfos = new ArrayList(); List orderSyncInfos = orderSyncInfoDAO.findByConnectorName(PredefinedConnectors.TIM.getName()); if (orderSyncInfos == null || orderSyncInfos.isEmpty()) { LOG.warn("No items found in 'OrderSyncInfo' to export to Tim"); - synchronizationInfo.addFailedReason(_("No items found in 'OrderSyncInfo' to export to Tim")); + synchronizationInfo.addFailedReason(tr("No items found in 'OrderSyncInfo' to export to Tim")); syncInfos.add(synchronizationInfo); return syncInfos; } @@ -124,20 +124,20 @@ public class ExportTimesheetsToTim implements IExportTimesheetsToTim { public void exportTimesheets(String productCode, Order order) throws ConnectorException { if (productCode == null || productCode.isEmpty()) { - throw new ConnectorException(_("Product code should not be empty")); + throw new ConnectorException(tr("Product code should not be empty")); } if (order == null) { - throw new ConnectorException(_("Order should not be empty")); + throw new ConnectorException(tr("Order should not be empty")); } Connector connector = getTimConnector(); if (connector == null) { - throw new ConnectorException(_("Tim connector not found")); + throw new ConnectorException(tr("Tim connector not found")); } if (!connector.areConnectionValuesValid()) { throw new ConnectorException( - _("Connection values of Tim connector are invalid")); + tr("Connection values of Tim connector are invalid")); } exportTimesheets(productCode, order, connector); @@ -158,7 +158,7 @@ public class ExportTimesheetsToTim implements IExportTimesheetsToTim { private void exportTimesheets(String productCode, Order order, Connector connector) { - synchronizationInfo = new SynchronizationInfo(_( + synchronizationInfo = new SynchronizationInfo(tr( "Export product code {0}, project {1}", productCode, order.getName())); @@ -181,7 +181,7 @@ public class ExportTimesheetsToTim implements IExportTimesheetsToTim { if (workReportLines == null || workReportLines.isEmpty()) { LOG.warn("No work reportlines are found for order: '" + order.getName() + "'"); - synchronizationInfo.addFailedReason(_( + synchronizationInfo.addFailedReason(tr( "No work reportlines are found for order: \"{0}\"", order.getName())); return; @@ -200,7 +200,7 @@ public class ExportTimesheetsToTim implements IExportTimesheetsToTim { if (timeRegistrationDTOs.isEmpty()) { LOG.warn("Unable to crate timeregistration for request"); synchronizationInfo - .addFailedReason(_("Unable to crate time registration for request")); + .addFailedReason(tr("Unable to crate time registration for request")); return; } @@ -214,14 +214,14 @@ public class ExportTimesheetsToTim implements IExportTimesheetsToTim { if (timeRegistrationResponseDTO == null) { LOG.error("No response or exception in response"); synchronizationInfo - .addFailedReason(_("No response or exception in response")); + .addFailedReason(tr("No response or exception in response")); return; } if (isRefsListEmpty(timeRegistrationResponseDTO.getRefs())) { LOG.warn("Registration response with empty refs"); synchronizationInfo - .addFailedReason(_("Registration response with empty refs")); + .addFailedReason(tr("Registration response with empty refs")); return; } saveSyncInfoOnAnotherTransaction(productCode, order); @@ -288,7 +288,7 @@ public class ExportTimesheetsToTim implements IExportTimesheetsToTim { worker = workerDAO.findByCode(workerCode); } catch (InstanceNotFoundException e) { LOG.warn("Worker '" + workerCode + "' not found"); - synchronizationInfo.addFailedReason(_("Worker \"{0}\" not found", + synchronizationInfo.addFailedReason(tr("Worker \"{0}\" not found", workerCode)); return null; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/importers/ImportRosterFromTim.java b/libreplan-webapp/src/main/java/org/libreplan/importers/ImportRosterFromTim.java index dc8f1a11d..f14e01d44 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/importers/ImportRosterFromTim.java +++ b/libreplan-webapp/src/main/java/org/libreplan/importers/ImportRosterFromTim.java @@ -19,7 +19,7 @@ package org.libreplan.importers; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.Collections; @@ -121,12 +121,12 @@ public class ImportRosterFromTim implements IImportRosterFromTim { Connector connector = connectorDAO .findUniqueByName(PredefinedConnectors.TIM.getName()); if (connector == null) { - throw new ConnectorException(_("Tim connector not found")); + throw new ConnectorException(tr("Tim connector not found")); } if (!connector.areConnectionValuesValid()) { throw new ConnectorException( - _("Connection values of Tim connector are invalid")); + tr("Connection values of Tim connector are invalid")); } Map properties = connector.getPropertiesAsMap(); @@ -150,7 +150,7 @@ public class ImportRosterFromTim implements IImportRosterFromTim { if (StringUtils.isBlank(departmentIds)) { LOG.warn("No departments configured"); - throw new ConnectorException(_("No departments configured")); + throw new ConnectorException(tr("No departments configured")); } String[] departmentIdsArray = StringUtils.stripAll(StringUtils.split( @@ -161,7 +161,7 @@ public class ImportRosterFromTim implements IImportRosterFromTim { for (String department : departmentIdsArray) { LOG.info("Department: " + department); - synchronizationInfo = new SynchronizationInfo(_( + synchronizationInfo = new SynchronizationInfo(tr( "Import roster for department {0}", department)); RosterRequestDTO rosterRequestDTO = createRosterRequest(department, @@ -178,7 +178,7 @@ public class ImportRosterFromTim implements IImportRosterFromTim { } } else { LOG.error("No valid response for department " + department); - synchronizationInfo.addFailedReason(_( + synchronizationInfo.addFailedReason(tr( "No valid response for department \"{0}\"", department)); syncInfos.add(synchronizationInfo); @@ -207,7 +207,7 @@ public class ImportRosterFromTim implements IImportRosterFromTim { } else { LOG.info("No roster-exceptions found in the response"); synchronizationInfo - .addFailedReason(_("No roster-exceptions found in the response")); + .addFailedReason(tr("No roster-exceptions found in the response")); } return null; } @@ -235,7 +235,7 @@ public class ImportRosterFromTim implements IImportRosterFromTim { worker = workerDAO.findUniqueByNif(workerCode); } catch (InstanceNotFoundException e) { LOG.warn("Worker '" + workerCode + "' not found"); - synchronizationInfo.addFailedReason(_( + synchronizationInfo.addFailedReason(tr( "Worker \"{0}\" not found", workerCode)); } @@ -353,7 +353,7 @@ public class ImportRosterFromTim implements IImportRosterFromTim { if (name == null || name.isEmpty()) { LOG.error("Exception name should not be empty"); synchronizationInfo - .addFailedReason(_("Exception name should not be empty")); + .addFailedReason(tr("Exception name should not be empty")); return null; } try { @@ -369,7 +369,7 @@ public class ImportRosterFromTim implements IImportRosterFromTim { } catch (InstanceNotFoundException e) { LOG.error("Calendar exceptionType not found", e); synchronizationInfo - .addFailedReason(_("Calendar exception day not found")); + .addFailedReason(tr("Calendar exception day not found")); } return null; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/importers/JiraOrderElementSynchronizer.java b/libreplan-webapp/src/main/java/org/libreplan/importers/JiraOrderElementSynchronizer.java index f98db9057..cdff8be7c 100755 --- a/libreplan-webapp/src/main/java/org/libreplan/importers/JiraOrderElementSynchronizer.java +++ b/libreplan-webapp/src/main/java/org/libreplan/importers/JiraOrderElementSynchronizer.java @@ -19,7 +19,7 @@ package org.libreplan.importers; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.math.BigDecimal; import java.math.RoundingMode; @@ -102,7 +102,7 @@ public class JiraOrderElementSynchronizer implements IJiraOrderElementSynchroniz public List getAllJiraLabels() throws ConnectorException { Connector connector = getJiraConnector(); if (connector == null) { - throw new ConnectorException(_("JIRA connector not found")); + throw new ConnectorException(tr("JIRA connector not found")); } String jiraLabels = connector.getPropertiesAsMap().get( @@ -124,12 +124,12 @@ public class JiraOrderElementSynchronizer implements IJiraOrderElementSynchroniz Connector connector = getJiraConnector(); if (connector == null) { - throw new ConnectorException(_("JIRA connector not found")); + throw new ConnectorException(tr("JIRA connector not found")); } if (!connector.areConnectionValuesValid()) { throw new ConnectorException( - _("Connection values of JIRA connector are invalid")); + tr("Connection values of JIRA connector are invalid")); } return getJiraIssues(label, connector); @@ -167,7 +167,7 @@ public class JiraOrderElementSynchronizer implements IJiraOrderElementSynchroniz @Transactional(readOnly = true) public void syncOrderElementsWithJiraIssues(List issues, Order order) { - synchronizationInfo = new SynchronizationInfo(_( + synchronizationInfo = new SynchronizationInfo(tr( "Synchronization order {0}", order.getName())); for (IssueDTO issue : issues) { @@ -178,7 +178,7 @@ public class JiraOrderElementSynchronizer implements IJiraOrderElementSynchroniz OrderLine orderLine = syncOrderLine(order, code, name); if (orderLine == null) { - synchronizationInfo.addFailedReason(_( + synchronizationInfo.addFailedReason(tr( "Order-element for \"{0}\" issue not found", issue.getKey())); continue; @@ -190,7 +190,7 @@ public class JiraOrderElementSynchronizer implements IJiraOrderElementSynchroniz .getTimetracking(), loggedHours); if (estimatedHours.isZero()) { - synchronizationInfo.addFailedReason(_( + synchronizationInfo.addFailedReason(tr( "Estimated time for \"{0}\" issue is 0", issue.getKey())); continue; @@ -279,14 +279,14 @@ public class JiraOrderElementSynchronizer implements IJiraOrderElementSynchroniz WorkLogDTO workLog = issue.getFields().getWorklog(); if (workLog == null) { - synchronizationInfo.addFailedReason(_( + synchronizationInfo.addFailedReason(tr( "No worklogs found for \"{0}\" issue", issue.getKey())); return; } List workLogItems = workLog.getWorklogs(); if (workLogItems.isEmpty()) { - synchronizationInfo.addFailedReason(_( + synchronizationInfo.addFailedReason(tr( "No worklog items found for \"{0}\" issue", issue.getKey())); return; @@ -398,7 +398,7 @@ public class JiraOrderElementSynchronizer implements IJiraOrderElementSynchroniz // This could happen if a parent or child of the current // OrderElement has an advance of type PERCENTAGE synchronizationInfo - .addFailedReason(_( + .addFailedReason(tr( "Duplicate value AdvanceAssignment for order element of \"{0}\"", orderElement.getCode())); return; @@ -504,24 +504,24 @@ public class JiraOrderElementSynchronizer implements IJiraOrderElementSynchroniz public List syncOrderElementsWithJiraIssues() throws ConnectorException { Connector connector = getJiraConnector(); if (connector == null) { - throw new ConnectorException(_("JIRA connector not found")); + throw new ConnectorException(tr("JIRA connector not found")); } if (!connector.areConnectionValuesValid()) { throw new ConnectorException( - _("Connection values of JIRA connector are invalid")); + tr("Connection values of JIRA connector are invalid")); } List orderSyncInfos = orderSyncInfoDAO .findByConnectorName(PredefinedConnectors.JIRA.getName()); - synchronizationInfo = new SynchronizationInfo(_("Synchronization")); + synchronizationInfo = new SynchronizationInfo(tr("Synchronization")); List syncInfos = new ArrayList(); if (orderSyncInfos == null || orderSyncInfos.isEmpty()) { LOG.warn("No items found in 'OrderSyncInfo' to synchronize with JIRA issues"); synchronizationInfo - .addFailedReason(_("No items found in 'OrderSyncInfo' to synchronize with JIRA issues")); + .addFailedReason(tr("No items found in 'OrderSyncInfo' to synchronize with JIRA issues")); syncInfos.add(synchronizationInfo); return syncInfos; } @@ -529,7 +529,7 @@ public class JiraOrderElementSynchronizer implements IJiraOrderElementSynchroniz for (OrderSyncInfo orderSyncInfo : orderSyncInfos) { Order order = orderSyncInfo.getOrder(); LOG.info("Synchronizing '" + order.getName() + "'"); - synchronizationInfo = new SynchronizationInfo(_( + synchronizationInfo = new SynchronizationInfo(tr( "Synchronization order {0}", order.getName())); List issueDTOs = getJiraIssues(orderSyncInfo.getKey(), @@ -537,7 +537,7 @@ public class JiraOrderElementSynchronizer implements IJiraOrderElementSynchroniz if (issueDTOs == null || issueDTOs.isEmpty()) { LOG.warn("No JIRA issues found for '" + orderSyncInfo.getKey() + "'"); - synchronizationInfo.addFailedReason(_( + synchronizationInfo.addFailedReason(tr( "No JIRA issues found for key {0}", orderSyncInfo.getKey())); syncInfos.add(synchronizationInfo); diff --git a/libreplan-webapp/src/main/java/org/libreplan/importers/JiraTimesheetSynchronizer.java b/libreplan-webapp/src/main/java/org/libreplan/importers/JiraTimesheetSynchronizer.java index c2156b705..03571122c 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/importers/JiraTimesheetSynchronizer.java +++ b/libreplan-webapp/src/main/java/org/libreplan/importers/JiraTimesheetSynchronizer.java @@ -19,7 +19,7 @@ package org.libreplan.importers; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.List; import java.util.Set; @@ -101,14 +101,14 @@ public class JiraTimesheetSynchronizer implements IJiraTimesheetSynchronizer { @Override @Transactional public void syncJiraTimesheetWithJiraIssues(List issues, Order order) throws ConnectorException { - synchronizationInfo = new SynchronizationInfo(_("Synchronization")); + synchronizationInfo = new SynchronizationInfo(tr("Synchronization")); workReportType = getJiraTimesheetsWorkReportType(); typeOfWorkHours = getTypeOfWorkHours(); workers = getWorkers(); if (workers == null && workers.isEmpty()) { - synchronizationInfo.addFailedReason(_("No workers found")); + synchronizationInfo.addFailedReason(tr("No workers found")); return; } @@ -117,11 +117,11 @@ public class JiraTimesheetSynchronizer implements IJiraTimesheetSynchronizer { if (orderSyncInfo == null) { synchronizationInfo.addFailedReason( - _("Order \"{0}\" not found. Order probalbly not synchronized", order.getName())); + tr("Order \"{0}\" not found. Order probalbly not synchronized", order.getName())); return; } if (StringUtils.isBlank(orderSyncInfo.getKey())) { - synchronizationInfo.addFailedReason(_("Key for Order \"{0}\" is empty", order.getName())); + synchronizationInfo.addFailedReason(tr("Key for Order \"{0}\" is empty", order.getName())); return; } @@ -132,11 +132,11 @@ public class JiraTimesheetSynchronizer implements IJiraTimesheetSynchronizer { for (IssueDTO issue : issues) { WorkLogDTO workLog = issue.getFields().getWorklog(); if (workLog == null) { - synchronizationInfo.addFailedReason(_("No worklogs found for \"{0}\" key", issue.getKey())); + synchronizationInfo.addFailedReason(tr("No worklogs found for \"{0}\" key", issue.getKey())); } else { List workLogItems = workLog.getWorklogs(); if (workLogItems == null || workLogItems.isEmpty()) { - synchronizationInfo.addFailedReason(_("No worklog items found for \"{0}\" issue", issue.getKey())); + synchronizationInfo.addFailedReason(tr("No worklog items found for \"{0}\" issue", issue.getKey())); } else { String codeOrderElement = @@ -145,7 +145,7 @@ public class JiraTimesheetSynchronizer implements IJiraTimesheetSynchronizer { OrderElement orderElement = order.getOrderElement(codeOrderElement); if (orderElement == null) { - synchronizationInfo.addFailedReason(_("Order element \"{0}\" not found", code)); + synchronizationInfo.addFailedReason(tr("Order element \"{0}\" not found", code)); } else { updateOrCreateWorkReportLineAndAddToWorkReport(workReport, orderElement, workLogItems); } @@ -297,14 +297,14 @@ public class JiraTimesheetSynchronizer implements IJiraTimesheetSynchronizer { private TypeOfWorkHours getTypeOfWorkHours() throws ConnectorException { Connector connector = connectorDAO.findUniqueByName(PredefinedConnectors.JIRA.getName()); if (connector == null) { - throw new ConnectorException(_("JIRA connector not found")); + throw new ConnectorException(tr("JIRA connector not found")); } TypeOfWorkHours typeOfWorkHours; String name = connector.getPropertiesAsMap().get(PredefinedConnectorProperties.JIRA_HOURS_TYPE); if (StringUtils.isBlank(name)) { - throw new ConnectorException(_("Hours type should not be empty to synchronine timesheets")); + throw new ConnectorException(tr("Hours type should not be empty to synchronine timesheets")); } try { @@ -354,7 +354,7 @@ public class JiraTimesheetSynchronizer implements IJiraTimesheetSynchronizer { return worker; } } - synchronizationInfo.addFailedReason(_("Worker \"{0}\" not found", nif)); + synchronizationInfo.addFailedReason(tr("Worker \"{0}\" not found", nif)); return null; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/importers/OrderImporterMPXJ.java b/libreplan-webapp/src/main/java/org/libreplan/importers/OrderImporterMPXJ.java index eafb414c1..2b42f0ef4 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/importers/OrderImporterMPXJ.java +++ b/libreplan-webapp/src/main/java/org/libreplan/importers/OrderImporterMPXJ.java @@ -19,7 +19,7 @@ package org.libreplan.importers; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.io.InputStream; import java.util.ArrayList; @@ -605,6 +605,6 @@ public class OrderImporterMPXJ implements IOrderImporter { } } - throw new ValidationException(_("Linked calendar not found")); + throw new ValidationException(tr("Linked calendar not found")); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/importers/SchedulerManager.java b/libreplan-webapp/src/main/java/org/libreplan/importers/SchedulerManager.java index 2d65379db..aa9931da1 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/importers/SchedulerManager.java +++ b/libreplan-webapp/src/main/java/org/libreplan/importers/SchedulerManager.java @@ -267,7 +267,9 @@ public class SchedulerManager implements ISchedulerManager { jobDetailBean.setName(jobSchedulerConfiguration.getJobName()); jobDetailBean.setGroup(jobSchedulerConfiguration.getJobGroup()); - jobDetailBean.setJobClass(jobClass); + @SuppressWarnings("unchecked") + Class jobClassTyped = (Class) jobClass; + jobDetailBean.setJobClass(jobClassTyped); Map jobDataAsMap = new HashMap<>(); jobDataAsMap.put("applicationContext", applicationContext); diff --git a/libreplan-webapp/src/main/java/org/libreplan/importers/notifications/ComposeMessage.java b/libreplan-webapp/src/main/java/org/libreplan/importers/notifications/ComposeMessage.java index 31897184c..16db57604 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/importers/notifications/ComposeMessage.java +++ b/libreplan-webapp/src/main/java/org/libreplan/importers/notifications/ComposeMessage.java @@ -88,7 +88,7 @@ import java.io.UnsupportedEncodingException; import org.springframework.core.env.MapPropertySource; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * Sends E-mail to users with data that storing in notification_queue table and @@ -190,8 +190,8 @@ public class ComposeMessage { throw new RuntimeException(e); } catch (NullPointerException e) { if (receiver == null) { - Messagebox.show(_(currentWorker.getUser().getLoginName() + " - this user have not filled E-mail"), - _("Error"), Messagebox.OK, Messagebox.ERROR); + Messagebox.show(tr(currentWorker.getUser().getLoginName() + " - this user have not filled E-mail"), + tr("Error"), Messagebox.OK, Messagebox.ERROR); } } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/I18nHelper.java b/libreplan-webapp/src/main/java/org/libreplan/web/I18nHelper.java index 4bef3350e..70381118b 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/I18nHelper.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/I18nHelper.java @@ -100,27 +100,27 @@ public class I18nHelper { * @param str * @return Text depends on locale */ - public static String _(String str) { + public static String tr(String str) { return getI18n().tr(str); } - public static String _(String text, Object o1) { + public static String tr(String text, Object o1) { return getI18n().tr(text, o1); } - public static String _(String text, Object o1, Object o2) { + public static String tr(String text, Object o1, Object o2) { return getI18n().tr(text, o1, o2); } - public static String _(String text, Object o1, Object o2, Object o3) { + public static String tr(String text, Object o1, Object o2, Object o3) { return getI18n().tr(text, o1, o2, o3); } - public static String _(String text, Object o1, Object o2, Object o3, Object o4) { + public static String tr(String text, Object o1, Object o2, Object o3, Object o4) { return getI18n().tr(text, o1, o2, o3, o4); } - public static String _(String text, Object[] objects) { + public static String tr(String text, Object[] objects) { return getI18n().tr(text, objects); } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/LoggingConfiguration.java b/libreplan-webapp/src/main/java/org/libreplan/web/LoggingConfiguration.java index 8e3784060..11c2e6e26 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/LoggingConfiguration.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/LoggingConfiguration.java @@ -73,7 +73,7 @@ public class LoggingConfiguration implements ServletContextListener { String applicationName = firstNotEmptyOrNull( servletContext.getContextPath(), servletContext.getServletContextName(), - "LibrePlan"); + "TASKPM"); if ( isTomcat(servletContext) ) { File logDirectory = findTomcatLogDirectory(); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/advance/AdvanceTypeCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/advance/AdvanceTypeCRUDController.java index db08e3a24..926aba283 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/advance/AdvanceTypeCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/advance/AdvanceTypeCRUDController.java @@ -40,7 +40,7 @@ import org.zkoss.zul.RowRenderer; import java.math.BigDecimal; import java.util.List; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * Controller for CRUD actions over a {@link AdvanceType}. @@ -72,12 +72,12 @@ public class AdvanceTypeCRUDController extends BaseCRUDController { public Constraint lessThanDefaultMaxValue() { return (comp, value) -> { if (value == null) { - throw new WrongValueException(comp, _("Value is not valid, the precision value must not be empty")); + throw new WrongValueException(comp, tr("Value is not valid, the precision value must not be empty")); } if (!(advanceTypeModel.isPrecisionValid((BigDecimal) value))) { throw new WrongValueException( - comp, _("Invalid value. Precission value must be lower than the Default Max value.")); + comp, tr("Invalid value. Precission value must be lower than the Default Max value.")); } }; } @@ -88,12 +88,12 @@ public class AdvanceTypeCRUDController extends BaseCRUDController { public Constraint greaterThanPrecision() { return (comp, value) -> { if (value == null) { - throw new WrongValueException(comp, _("Invalid value. Default Max Value cannot be empty")); + throw new WrongValueException(comp, tr("Invalid value. Default Max Value cannot be empty")); } if (!(advanceTypeModel.isDefaultMaxValueValid((BigDecimal) value))) { throw new WrongValueException( comp, - _("Value is not valid, the default max value must be greater than the precision value ")); + tr("Value is not valid, the default max value must be greater than the precision value ")); } }; } @@ -104,13 +104,13 @@ public class AdvanceTypeCRUDController extends BaseCRUDController { public Constraint distinctNames() { return (comp, value) -> { if (((String) value).isEmpty()) { - throw new WrongValueException(comp, _("The name is not valid, the name must not be null ")); + throw new WrongValueException(comp, tr("The name is not valid, the name must not be null ")); } if (!advanceTypeModel.distinctNames((String) value)) { throw new WrongValueException( comp, - _("The name is not valid, there is another progress type with the same name. ")); + tr("The name is not valid, there is another progress type with the same name. ")); } }; @@ -207,12 +207,12 @@ public class AdvanceTypeCRUDController extends BaseCRUDController { @Override protected String getEntityType() { - return _("Progress Type"); + return tr("Progress Type"); } @Override protected String getPluralEntityType() { - return _("Progress Types"); + return tr("Progress Types"); } @Override diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/advance/AdvanceTypeModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/advance/AdvanceTypeModel.java index 904362fdd..fa256a183 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/advance/AdvanceTypeModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/advance/AdvanceTypeModel.java @@ -21,7 +21,7 @@ package org.libreplan.web.advance; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.math.BigDecimal; import java.util.List; @@ -86,7 +86,7 @@ public class AdvanceTypeModel implements IAdvanceTypeModel { private void checkCanBeModified(AdvanceType advanceType) { if (!canBeModified(advanceType)) { - throw new IllegalArgumentException(_("Progress type cannot be modified")); + throw new IllegalArgumentException(tr("Progress type cannot be modified")); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/calendars/BaseCalendarCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/calendars/BaseCalendarCRUDController.java index ae2c2c2a2..81fae2299 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/calendars/BaseCalendarCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/calendars/BaseCalendarCRUDController.java @@ -21,7 +21,7 @@ package org.libreplan.web.calendars; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.Date; @@ -136,7 +136,7 @@ public class BaseCalendarCRUDController extends GenericForwardComposer { baseCalendarModel.confirmSave(); messagesForUser.showMessage( - Level.INFO, _("Base calendar \"{0}\" saved", baseCalendarModel.getBaseCalendar().getName())); + Level.INFO, tr("Base calendar \"{0}\" saved", baseCalendarModel.getBaseCalendar().getName())); goToList(); } catch (ValidationException e) { @@ -153,7 +153,7 @@ public class BaseCalendarCRUDController extends GenericForwardComposer { baseCalendarModel.confirmSaveAndContinue(); messagesForUser.showMessage( - Level.INFO, _("Base calendar \"{0}\" saved", baseCalendarModel.getBaseCalendar().getName())); + Level.INFO, tr("Base calendar \"{0}\" saved", baseCalendarModel.getBaseCalendar().getName())); } catch (ValidationException e) { messagesForUser.showInvalidValues(e); @@ -315,7 +315,7 @@ public class BaseCalendarCRUDController extends GenericForwardComposer { Treecell operationsTreecell = new Treecell(); Button createDerivedButton = new Button(); - createDerivedButton.setTooltiptext(_("Create derived")); + createDerivedButton.setTooltiptext(tr("Create derived")); createDerivedButton.setSclass("icono"); createDerivedButton.setImage("/common/img/ico_derived1.png"); createDerivedButton.setHoverImage("/common/img/ico_derived.png"); @@ -324,7 +324,7 @@ public class BaseCalendarCRUDController extends GenericForwardComposer { operationsTreecell.appendChild(createDerivedButton); Button createCopyButton = new Button(); createCopyButton.setSclass("icono"); - createCopyButton.setTooltiptext(_("Create copy")); + createCopyButton.setTooltiptext(tr("Create copy")); createCopyButton.setImage("/common/img/ico_copy1.png"); createCopyButton.setHoverImage("/common/img/ico_copy.png"); @@ -332,7 +332,7 @@ public class BaseCalendarCRUDController extends GenericForwardComposer { operationsTreecell.appendChild(createCopyButton); Button editButton = new Button(); - editButton.setTooltiptext(_("Edit")); + editButton.setTooltiptext(tr("Edit")); editButton.setSclass("icono"); editButton.setImage("/common/img/ico_editar1.png"); editButton.setHoverImage("/common/img/ico_editar.png"); @@ -341,7 +341,7 @@ public class BaseCalendarCRUDController extends GenericForwardComposer { operationsTreecell.appendChild(editButton); Button removeButton = new Button(); - removeButton.setTooltiptext(_("Remove")); + removeButton.setTooltiptext(tr("Remove")); removeButton.setSclass("icono"); removeButton.setImage("/common/img/ico_borrar1.png"); removeButton.setHoverImage("/common/img/ico_borrar.png"); @@ -367,14 +367,14 @@ public class BaseCalendarCRUDController extends GenericForwardComposer { if (hasParent(calendar)) { messagesForUser.showMessage( - Level.ERROR, _("Calendar cannot be removed as it has other derived calendars from it")); + Level.ERROR, tr("Calendar cannot be removed as it has other derived calendars from it")); return; } if (isDefault(calendar)) { messagesForUser.showMessage( Level.ERROR, - _("Default calendar cannot be removed. " + tr("Default calendar cannot be removed. " + "Please, change the default calendar in the Main Settings window before.")); return; } @@ -388,7 +388,7 @@ public class BaseCalendarCRUDController extends GenericForwardComposer { if (result == Messagebox.OK) { final String calendarName = calendar.getName(); baseCalendarModel.confirmRemove(calendar); - messagesForUser.showMessage(Level.INFO, _("Removed calendar \"{0}\"", calendarName)); + messagesForUser.showMessage(Level.INFO, tr("Removed calendar \"{0}\"", calendarName)); Util.reloadBindings(listWindow); } } @@ -396,8 +396,8 @@ public class BaseCalendarCRUDController extends GenericForwardComposer { private int showConfirmDeleteCalendar(BaseCalendar calendar) { return Messagebox.show( - _("Confirm deleting {0}. Are you sure?", calendar.getName()), - _("Delete"), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION); + tr("Confirm deleting {0}. Are you sure?", calendar.getName()), + tr("Delete"), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION); } private boolean isReferencedByOtherEntities(BaseCalendar calendar) { @@ -412,7 +412,7 @@ public class BaseCalendarCRUDController extends GenericForwardComposer { } private void showCannotDeleteCalendarDialog(String message) { - Messagebox.show(_(message), _("Warning"), Messagebox.OK, Messagebox.EXCLAMATION); + Messagebox.show(tr(message), tr("Warning"), Messagebox.OK, Messagebox.EXCLAMATION); } } @@ -439,7 +439,7 @@ public class BaseCalendarCRUDController extends GenericForwardComposer { public void updateWindowTitle() { if (editWindow != null && state != CRUDControllerState.LIST) { - String entityType = _("Calendar"); + String entityType = tr("Calendar"); String humanId = getBaseCalendar().getHumanId(); String title; @@ -448,14 +448,14 @@ public class BaseCalendarCRUDController extends GenericForwardComposer { case CREATE: if (StringUtils.isEmpty(humanId)) { - title = _("Create {0}", entityType); + title = tr("Create {0}", entityType); } else { - title = _("Create {0}: {1}", entityType, humanId); + title = tr("Create {0}: {1}", entityType, humanId); } break; case EDIT: - title = _("Edit {0}: {1}", entityType, humanId); + title = tr("Edit {0}: {1}", entityType, humanId); break; default: diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/calendars/BaseCalendarEditionController.java b/libreplan-webapp/src/main/java/org/libreplan/web/calendars/BaseCalendarEditionController.java index 9dc304b88..85974642b 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/calendars/BaseCalendarEditionController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/calendars/BaseCalendarEditionController.java @@ -21,7 +21,7 @@ package org.libreplan.web.calendars; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import static org.libreplan.web.common.Util.findOrCreate; import java.text.DateFormatSymbols; @@ -135,7 +135,7 @@ public abstract class BaseCalendarEditionController extends GenericForwardCompos private static String asString(Capacity capacity) { String extraEffortString = capacity.isOverAssignableWithoutLimit() - ? _("unl") + ? tr("unl") : asString(capacity.getAllowedExtraEffort()); return asString(capacity.getStandardEffort()) + " [" + extraEffortString + "]"; @@ -205,8 +205,8 @@ public abstract class BaseCalendarEditionController extends GenericForwardCompos private Checkbox createUnlimitedCheckbox() { Checkbox unlimited = new Checkbox(); - unlimited.setLabel(_("Unlimited")); - unlimited.setTooltiptext(_("Infinitely Over Assignable")); + unlimited.setLabel(tr("Unlimited")); + unlimited.setTooltiptext(tr("Infinitely Over Assignable")); return unlimited; } @@ -286,10 +286,10 @@ public abstract class BaseCalendarEditionController extends GenericForwardCompos String currentStartDate = this.getCurrentStartDateLabel(); String currentExpiringDate = this.getCurrentExpiringDateLabel(); - return _("Derived of calendar {0}", getNameParentCalendar()) + currentStartDate + currentExpiringDate; + return tr("Derived of calendar {0}", getNameParentCalendar()) + currentStartDate + currentExpiringDate; } - return _("Root calendar"); + return tr("Root calendar"); } private String getCurrentExpiringDateLabel() { @@ -297,7 +297,7 @@ public abstract class BaseCalendarEditionController extends GenericForwardCompos String label = ""; if ( date != null ) { - label = " " + _("to {0}", Util.formatDate(date)); + label = " " + tr("to {0}", Util.formatDate(date)); } return label; @@ -308,7 +308,7 @@ public abstract class BaseCalendarEditionController extends GenericForwardCompos String label = ""; if ( date != null ) { - label = " " + _("from {0}", Util.formatDate(date)); + label = " " + tr("from {0}", Util.formatDate(date)); } return label; @@ -552,17 +552,17 @@ public abstract class BaseCalendarEditionController extends GenericForwardCompos CalendarException exceptionDay = calendar.getExceptionDay(date); if ( exceptionDay != null ) { if ( calendar.getOwnExceptionDay(date) != null ) { - return _("Exception: {0}", exceptionDay.getType().getName()); + return tr("Exception: {0}", exceptionDay.getType().getName()); } else { - return _("Exception: {0} (Inh)", exceptionDay.getType().getName()); + return tr("Exception: {0} (Inh)", exceptionDay.getType().getName()); } } if ( calendar.getCapacityOn(PartialDay.wholeDay(date)).isZero() ) { - return _("Not workable day"); + return tr("Not workable day"); } - return _("Normal"); + return tr("Normal"); } public String getWorkableTime() { @@ -574,7 +574,7 @@ public abstract class BaseCalendarEditionController extends GenericForwardCompos CalendarExceptionType type = exceptionTypes.getSelectedItem().getValue(); if ( type == null ) { - throw new WrongValueException(exceptionTypes, _("Please, select type of exception")); + throw new WrongValueException(exceptionTypes, tr("Please, select type of exception")); } else { Clients.clearWrongValue(exceptionTypes); } @@ -583,7 +583,7 @@ public abstract class BaseCalendarEditionController extends GenericForwardCompos Date startDate = dateboxStartDate.getValue(); if ( startDate == null ) { - throw new WrongValueException(dateboxStartDate, _("You should select a start date for the exception")); + throw new WrongValueException(dateboxStartDate, tr("You should select a start date for the exception")); } else { Clients.clearWrongValue(dateboxStartDate); } @@ -592,14 +592,14 @@ public abstract class BaseCalendarEditionController extends GenericForwardCompos Date endDate = dateboxEndDate.getValue(); if ( endDate == null ) { - throw new WrongValueException(dateboxEndDate, _("Please, select an End Date for the Exception")); + throw new WrongValueException(dateboxEndDate, tr("Please, select an End Date for the Exception")); } else { Clients.clearWrongValue(dateboxEndDate); } if ( new LocalDate(startDate).compareTo(new LocalDate(endDate)) > 0 ) { throw new WrongValueException(dateboxEndDate, - _("Exception end date should be greater or equals than start date")); + tr("Exception end date should be greater or equals than start date")); } else { Clients.clearWrongValue(dateboxEndDate); } @@ -662,7 +662,7 @@ public abstract class BaseCalendarEditionController extends GenericForwardCompos if ( parent == null ) { summary.add("0"); } else { - summary.add(_("Inh")); + summary.add(tr("Inh")); } } else { summary.add(asString(version.getCapacityOn(day))); @@ -816,7 +816,7 @@ public abstract class BaseCalendarEditionController extends GenericForwardCompos private Button createRemoveButton(final CalendarData calendarData) { Button result = createButton( "/common/img/ico_borrar1.png", - _("Delete"), + tr("Delete"), "/common/img/ico_borrar.png", "icono", @@ -913,7 +913,7 @@ public abstract class BaseCalendarEditionController extends GenericForwardCompos if ( isDerived() ) { Combobox parentCalendars = (Combobox) createNewVersionWindow.getFellow("parentCalendars"); if ( parentCalendars.getSelectedItem() == null ) { - throw new WrongValueException(parentCalendars, _("cannot be empty")); + throw new WrongValueException(parentCalendars, tr("cannot be empty")); } selected = parentCalendars.getSelectedItem().getValue(); } @@ -922,9 +922,9 @@ public abstract class BaseCalendarEditionController extends GenericForwardCompos baseCalendarModel.createNewVersion(startDate, expiringDate, selected); } catch (IllegalArgumentException e) { if ( e.getMessage().contains("Wrong expiring date") ) { - throw new WrongValueException(compExpiringDate, _(e.getMessage())); + throw new WrongValueException(compExpiringDate, tr(e.getMessage())); } else { - throw new WrongValueException(compStartDate, _(e.getMessage())); + throw new WrongValueException(compStartDate, tr(e.getMessage())); } } @@ -1037,13 +1037,13 @@ public abstract class BaseCalendarEditionController extends GenericForwardCompos private void appendStandardEffortListcell(Listitem item, Capacity capacity) { Listcell listcell = new Listcell(); - listcell.appendChild(new Label(_(capacity.getStandardEffortString()))); + listcell.appendChild(new Label(tr(capacity.getStandardEffortString()))); item.appendChild(listcell); } private void appendExtraEffortListcell(Listitem item, Capacity capacity) { Listcell listcell = new Listcell(); - listcell.appendChild(new Label(_(capacity.getExtraEffortString()))); + listcell.appendChild(new Label(tr(capacity.getExtraEffortString()))); item.appendChild(listcell); } @@ -1077,7 +1077,7 @@ public abstract class BaseCalendarEditionController extends GenericForwardCompos } }); - code.setConstraint("no empty:" + _("cannot be empty")); + code.setConstraint("no empty:" + tr("cannot be empty")); listcell.appendChild(code); item.appendChild(listcell); @@ -1085,10 +1085,10 @@ public abstract class BaseCalendarEditionController extends GenericForwardCompos private void appendOriginListcell(Listitem item, CalendarException calendarException) { Listcell listcell = new Listcell(); - String origin = _("Inherited"); + String origin = tr("Inherited"); if ( baseCalendarModel.isOwnException(calendarException) ) - origin = _("Direct"); + origin = tr("Direct"); listcell.appendChild(new Label(origin)); item.appendChild(listcell); @@ -1103,7 +1103,7 @@ public abstract class BaseCalendarEditionController extends GenericForwardCompos private Button createRemoveButton(final CalendarException calendarException) { Button result = createButton( "/common/img/ico_borrar1.png", - _("Delete"), + tr("Delete"), "/common/img/ico_borrar.png", "icono", event -> { @@ -1113,7 +1113,7 @@ public abstract class BaseCalendarEditionController extends GenericForwardCompos if ( !baseCalendarModel.isOwnException(calendarException) ) { result.setDisabled(true); - result.setTooltiptext(_("inherited exception can not be removed")); + result.setTooltiptext(tr("inherited exception can not be removed")); } return result; @@ -1151,7 +1151,7 @@ public abstract class BaseCalendarEditionController extends GenericForwardCompos Date startDate = dateboxStartDate.getValue(); if ( startDate == null ) { - throw new WrongValueException(dateboxStartDate, _("You should select a start date for the exception")); + throw new WrongValueException(dateboxStartDate, tr("You should select a start date for the exception")); } else { Clients.clearWrongValue(dateboxStartDate); } @@ -1160,14 +1160,14 @@ public abstract class BaseCalendarEditionController extends GenericForwardCompos Date endDate = dateboxEndDate.getValue(); if ( endDate == null ) { - throw new WrongValueException(dateboxEndDate, _("Please, select an End Date for the Exception")); + throw new WrongValueException(dateboxEndDate, tr("Please, select an End Date for the Exception")); } else { Clients.clearWrongValue(dateboxEndDate); } if ( startDate.compareTo(endDate) > 0 ) { throw new WrongValueException(dateboxEndDate, - _("Exception end date should be greater or equals than start date")); + tr("Exception end date should be greater or equals than start date")); } else { Clients.clearWrongValue(dateboxEndDate); } @@ -1267,7 +1267,7 @@ public abstract class BaseCalendarEditionController extends GenericForwardCompos if (baseCalendarModel.isLastActivationPeriod(calendarAvailability)) { return null; } else { - throw new IllegalArgumentException(_("End date can only be deleted in the last activation")); + throw new IllegalArgumentException(tr("End date can only be deleted in the last activation")); } } @@ -1294,7 +1294,7 @@ public abstract class BaseCalendarEditionController extends GenericForwardCompos } }); - code.setConstraint("no empty:" + _("cannot be empty")); + code.setConstraint("no empty:" + tr("cannot be empty")); listcell.appendChild(code); item.appendChild(listcell); @@ -1309,7 +1309,7 @@ public abstract class BaseCalendarEditionController extends GenericForwardCompos private Button createRemoveButton(final CalendarAvailability calendarAvailability) { return createButton( "/common/img/ico_borrar1.png", - _("Delete"), + tr("Delete"), "/common/img/ico_borrar.png", "icono", event -> { @@ -1365,7 +1365,7 @@ public abstract class BaseCalendarEditionController extends GenericForwardCompos Textbox code = (Textbox) (item.getChildren().get(3)).getFirstChild(); if ( code != null && !code.isDisabled() && code.getValue().isEmpty() ) { - throw new WrongValueException(code, _("It cannot be empty")); + throw new WrongValueException(code, tr("It cannot be empty")); } } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/calendars/BaseCalendarModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/calendars/BaseCalendarModel.java index c248363ae..97ed5b819 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/calendars/BaseCalendarModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/calendars/BaseCalendarModel.java @@ -22,7 +22,7 @@ package org.libreplan.web.calendars; import static org.libreplan.business.common.exceptions.ValidationException.invalidValue; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.Date; import java.util.HashSet; @@ -485,7 +485,7 @@ public class BaseCalendarModel extends IntegrationEntityModel implements IBaseCa if (version.equals(getBaseCalendar().getFirstCalendarData())) { return; } else { - throw new ValidationException(_("This date cannot be empty")); + throw new ValidationException(tr("This date cannot be empty")); } } @@ -505,7 +505,7 @@ public class BaseCalendarModel extends IntegrationEntityModel implements IBaseCa } } throw new ValidationException( - _("This date can not include the whole previous work week")); + tr("This date can not include the whole previous work week")); } @Override @@ -517,7 +517,7 @@ public class BaseCalendarModel extends IntegrationEntityModel implements IBaseCa if (version.equals(getBaseCalendar().getLastCalendarData())) { return; } else { - throw new ValidationException(_("This date cannot be empty")); + throw new ValidationException(tr("This date cannot be empty")); } } @@ -531,7 +531,7 @@ public class BaseCalendarModel extends IntegrationEntityModel implements IBaseCa } } throw new ValidationException( - _("Date cannot include the entire next work week")); + tr("Date cannot include the entire next work week")); } @Override @@ -598,8 +598,8 @@ public class BaseCalendarModel extends IntegrationEntityModel implements IBaseCa public void checkInvalidValuesCalendar(BaseCalendar entity) throws ValidationException { if (baseCalendarDAO.thereIsOtherWithSameName(entity)) { - throw new ValidationException(_("Could not save the new calendar"), - invalidValue(_("{0} already exists", entity.getName()), + throw new ValidationException(tr("Could not save the new calendar"), + invalidValue(tr("{0} already exists", entity.getName()), "name", entity.getName(), entity)); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/BaseCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/BaseCRUDController.java index 7be8358d6..d4d7bd7e2 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/BaseCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/BaseCRUDController.java @@ -19,7 +19,7 @@ package org.libreplan.web.common; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import org.apache.commons.lang3.StringUtils; import org.libreplan.business.common.IHumanIdentifiable; @@ -82,7 +82,7 @@ public abstract class BaseCRUDController extends G messagesForUser = new MessagesForUser(messagesContainer); - listWindow.setTitle(_("{0} List", getPluralEntityType())); + listWindow.setTitle(tr("{0} List", getPluralEntityType())); showListWindow(); } @@ -126,13 +126,13 @@ public abstract class BaseCRUDController extends G case CREATE: if (StringUtils.isEmpty(humanId)) - title = _("Create {0}", getEntityType()); + title = tr("Create {0}", getEntityType()); else - title = _("Create {0}: {1}", getEntityType(), humanId); + title = tr("Create {0}: {1}", getEntityType(), humanId); break; case EDIT: - title = _("Edit {0}: {1}", getEntityType(), humanId); + title = tr("Edit {0}: {1}", getEntityType(), humanId); break; default: @@ -230,7 +230,7 @@ public abstract class BaseCRUDController extends G beforeSaving(); messagesForUser.clearMessages(); save(); - messagesForUser.showMessage(Level.INFO, _("{0} \"{1}\" saved", getEntityType(), getEntityBeingEdited().getHumanId())); + messagesForUser.showMessage(Level.INFO, tr("{0} \"{1}\" saved", getEntityType(), getEntityBeingEdited().getHumanId())); } /** @@ -303,21 +303,21 @@ public abstract class BaseCRUDController extends G try { if (Messagebox.show( - _("Delete {0} \"{1}\". Are you sure?", getEntityType(), entity.getHumanId()), - _("Confirm"), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION) == Messagebox.OK) { + tr("Delete {0} \"{1}\". Are you sure?", getEntityType(), entity.getHumanId()), + tr("Confirm"), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION) == Messagebox.OK) { delete(entity); messagesForUser.showMessage( Level.INFO, - _("{0} \"{1}\" deleted", getEntityType(), entity.getHumanId())); + tr("{0} \"{1}\" deleted", getEntityType(), entity.getHumanId())); Util.reloadBindings(listWindow); } } catch (InstanceNotFoundException ie) { messagesForUser.showMessage( Level.ERROR, - _("{0} \"{1}\" could not be deleted, it was already removed", getEntityType(), entity.getHumanId())); + tr("{0} \"{1}\" could not be deleted, it was already removed", getEntityType(), entity.getHumanId())); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/ConfigurationController.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/ConfigurationController.java index ec80a2248..4e4b08243 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/ConfigurationController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/ConfigurationController.java @@ -63,7 +63,7 @@ import javax.ws.rs.core.Response.Status; import java.io.*; import java.util.*; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * Controller for {@link Configuration} entity. @@ -243,7 +243,7 @@ public class ConfigurationController extends GenericForwardComposer { !areEmailFieldsValid() ) { messages.clearMessages(); - messages.showMessage(Level.ERROR, _("Check all fields")); + messages.showMessage(Level.ERROR, tr("Check all fields")); } else { ConstraintChecker.isValid(configurationWindow); @@ -251,7 +251,7 @@ public class ConfigurationController extends GenericForwardComposer { try { configurationModel.confirm(); configurationModel.init(); - messages.showMessage(Level.INFO, _("Changes saved")); + messages.showMessage(Level.INFO, tr("Changes saved")); // Send data to server if (!SecurityUtils.isGatheredStatsAlreadySent && (configurationDAO.getConfigurationWithReadOnlyTransaction() == null || configurationDAO.getConfigurationWithReadOnlyTransaction().isAllowedToGatherUsageStatsEnabled())) { @@ -262,7 +262,7 @@ public class ConfigurationController extends GenericForwardComposer { !configurationModel.scheduleOrUnscheduleJobs(getSelectedConnector())) { messages.showMessage(Level.ERROR, - _("Scheduling or unscheduling of jobs for this connector is not completed")); + tr("Scheduling or unscheduling of jobs for this connector is not completed")); } reloadWindow(); @@ -291,7 +291,7 @@ public class ConfigurationController extends GenericForwardComposer { public void cancel() { configurationModel.cancel(); messages.clearMessages(); - messages.showMessage(Level.INFO, _("Changes have been canceled")); + messages.showMessage(Level.INFO, tr("Changes have been canceled")); reloadWindow(); reloadEntitySequences(); reloadConnectors(); @@ -326,10 +326,10 @@ public class ConfigurationController extends GenericForwardComposer { new EqualsFilter(configurationModel.getLdapConfiguration().getLdapUserId(), "test").toString(), "test"); - messages.showMessage(Level.INFO, _("LDAP connection was successful")); + messages.showMessage(Level.INFO, tr("LDAP connection was successful")); } catch (Exception e) { LOG.info(e); - messages.showMessage(Level.ERROR, _("Cannot connect to LDAP server")); + messages.showMessage(Level.ERROR, tr("Cannot connect to LDAP server")); } } @@ -341,7 +341,7 @@ public class ConfigurationController extends GenericForwardComposer { */ public void testConnection() { if (selectedConnector == null) { - messages.showMessage(Level.ERROR, _("Please select a connector to test it")); + messages.showMessage(Level.ERROR, tr("Please select a connector to test it")); return; } @@ -379,9 +379,9 @@ public class ConfigurationController extends GenericForwardComposer { */ private void testTimConnection(String url, String username, String password) { if ( TimSoapClient.checkAuthorization(url, username, password) ) { - messages.showMessage(Level.INFO, _("Tim connection was successful")); + messages.showMessage(Level.INFO, tr("Tim connection was successful")); } else { - messages.showMessage(Level.ERROR, _("Cannot connet to Tim server")); + messages.showMessage(Level.ERROR, tr("Cannot connet to Tim server")); } } @@ -407,15 +407,15 @@ public class ConfigurationController extends GenericForwardComposer { Response response = client.get(); if ( response.getStatus() == Status.OK.getStatusCode() ) { - messages.showMessage(Level.INFO, _("JIRA connection was successful")); + messages.showMessage(Level.INFO, tr("JIRA connection was successful")); } else { LOG.error("Status code: " + response.getStatus()); - messages.showMessage(Level.ERROR, _("Cannot connect to JIRA server")); + messages.showMessage(Level.ERROR, tr("Cannot connect to JIRA server")); } } catch (Exception e) { LOG.error(e); - messages.showMessage(Level.ERROR, _("Cannot connect to JIRA server")); + messages.showMessage(Level.ERROR, tr("Cannot connect to JIRA server")); } } @@ -462,26 +462,26 @@ public class ConfigurationController extends GenericForwardComposer { messages.clearMessages(); if (transport != null) { if ( transport.isConnected() ) { - messages.showMessage(Level.INFO, _("Connection successful!")); + messages.showMessage(Level.INFO, tr("Connection successful!")); } else if ( !transport.isConnected() ) { - messages.showMessage(Level.WARNING, _("Connection unsuccessful")); + messages.showMessage(Level.WARNING, tr("Connection unsuccessful")); } } } catch (AuthenticationFailedException e) { messages.clearMessages(); - messages.showMessage(Level.ERROR, _("Invalid credentials")); + messages.showMessage(Level.ERROR, tr("Invalid credentials")); } catch (MessagingException e) { LOG.error(e); messages.clearMessages(); - messages.showMessage(Level.ERROR, _("Cannot connect")); + messages.showMessage(Level.ERROR, tr("Cannot connect")); } catch (Exception e) { LOG.error(e); messages.clearMessages(); - messages.showMessage(Level.ERROR, _("Failed to connect")); + messages.showMessage(Level.ERROR, tr("Failed to connect")); } } @@ -510,7 +510,7 @@ public class ConfigurationController extends GenericForwardComposer { } catch (IllegalArgumentException e) { throw new WrongValueException( digitsBox, - _("number of digits must be between {0} and {1}", + tr("number of digits must be between {0} and {1}", EntitySequence.MIN_NUMBER_OF_DIGITS, EntitySequence.MAX_NUMBER_OF_DIGITS)); } } @@ -818,7 +818,7 @@ public class ConfigurationController extends GenericForwardComposer { @Override public void render(Listitem listitem, Object o, int i) throws Exception { ProgressType progressType = (ProgressType) o; - listitem.setLabel(_(progressType.getValue())); + listitem.setLabel(tr(progressType.getValue())); listitem.setValue(progressType); } } @@ -830,7 +830,7 @@ public class ConfigurationController extends GenericForwardComposer { final EntityNameEnum entityName = entitySequence.getEntityName(); row.setValue(entityName); - row.appendChild(new Label(_("{0} sequences", entityName.getDescription()))); + row.appendChild(new Label(tr("{0} sequences", entityName.getDescription()))); row.setValue(entitySequence); appendActiveRadiobox(row, entitySequence); @@ -840,7 +840,7 @@ public class ConfigurationController extends GenericForwardComposer { appendOperations(row, entitySequence); if ( entitySequence.isAlreadyInUse() ) { - row.setTooltiptext(_("Code sequence is already in use and cannot be updated")); + row.setTooltiptext(tr("Code sequence is already in use and cannot be updated")); } if ( (row.getPreviousSibling() != null) && @@ -902,7 +902,7 @@ public class ConfigurationController extends GenericForwardComposer { } catch (IllegalArgumentException e) { throw new WrongValueException( tempIntbox, - _("number of digits must be between {0} and {1}", + tr("number of digits must be between {0} and {1}", EntitySequence.MIN_NUMBER_OF_DIGITS, EntitySequence.MAX_NUMBER_OF_DIGITS)); } }); @@ -967,10 +967,10 @@ public class ConfigurationController extends GenericForwardComposer { if ( !configurationModel.checkPrefixFormat(sequence) ) { String message = - _("Invalid format prefix. Format prefix cannot be empty, contain '_' or contain whitespaces."); + tr("Invalid format prefix. Format prefix cannot be empty, contain '_' or contain whitespaces."); if ( sequence.getEntityName().canContainLowBar() ) { - message = _("format prefix invalid. It cannot be empty or contain whitespaces."); + message = tr("format prefix invalid. It cannot be empty or contain whitespaces."); } return message; @@ -990,7 +990,7 @@ public class ConfigurationController extends GenericForwardComposer { } catch (IllegalArgumentException e) { throw new WrongValueException( comp, - _("number of digits must be between {0} and {1}", + tr("number of digits must be between {0} and {1}", EntitySequence.MIN_NUMBER_OF_DIGITS, EntitySequence.MAX_NUMBER_OF_DIGITS)); } } @@ -1012,7 +1012,7 @@ public class ConfigurationController extends GenericForwardComposer { private void showMessageNotDelete() { Messagebox.show( - _("It can not be deleted. At least one sequence is necessary."), _("Deleting sequence"), + tr("It can not be deleted. At least one sequence is necessary."), tr("Deleting sequence"), Messagebox.OK, Messagebox.INFORMATION); } @@ -1041,11 +1041,11 @@ public class ConfigurationController extends GenericForwardComposer { public void addNewEntitySequence() { if ( entityCombo != null && numDigitBox != null ) { if ( entityCombo.getSelectedItem() == null ) { - throw new WrongValueException(entityCombo, _("Select entity, please")); + throw new WrongValueException(entityCombo, tr("Select entity, please")); } if ( prefixBox.getValue() == null || prefixBox.getValue().isEmpty() ) { - throw new WrongValueException(prefixBox, _("cannot be empty")); + throw new WrongValueException(prefixBox, tr("cannot be empty")); } try { @@ -1247,7 +1247,7 @@ public class ConfigurationController extends GenericForwardComposer { public ListitemRenderer getPersonalTimesheetsPeriodicityRenderer() { return (listitem, o, i) -> { PersonalTimesheetsPeriodicityEnum periodicity = (PersonalTimesheetsPeriodicityEnum) o; - listitem.setLabel(_(periodicity.getName())); + listitem.setLabel(tr(periodicity.getName())); listitem.setValue(periodicity); }; } @@ -1280,7 +1280,7 @@ public class ConfigurationController extends GenericForwardComposer { */ public String getPersonalTimesheetsPeriodicityTooltip() { return isPersonalTimesheetsPeriodicityDisabled() - ? _("Periocity cannot be changed because there is already any personal timesheet stored") + ? tr("Periocity cannot be changed because there is already any personal timesheet stored") : ""; } @@ -1352,7 +1352,7 @@ public class ConfigurationController extends GenericForwardComposer { ConnectorProperty property = (ConnectorProperty) o; row.setValue(property); - Util.appendLabel(row, _(property.getKey())); + Util.appendLabel(row, tr(property.getKey())); if ("Protocol".equals(property.getKey())) { appendValueCombobox(row, property); @@ -1439,7 +1439,7 @@ public class ConfigurationController extends GenericForwardComposer { return (comp, value) -> { if ( key.equals(PredefinedConnectorProperties.ACTIVATED) ) { if ( !"Y".equalsIgnoreCase((String) value) && !"N".equalsIgnoreCase((String) value)) { - throw new WrongValueException(comp, _("Only {0} allowed", "Y/N")); + throw new WrongValueException(comp, tr("Only {0} allowed", "Y/N")); } } else if ( key.equals(PredefinedConnectorProperties.SERVER_URL) || key.equals(PredefinedConnectorProperties.USERNAME) || @@ -1450,14 +1450,14 @@ public class ConfigurationController extends GenericForwardComposer { key.equals(PredefinedConnectorProperties.EMAIL_SENDER) || key.equals(PredefinedConnectorProperties.PROTOCOL) ) { - ((InputElement) comp).setConstraint("no empty:" + _("cannot be empty")); + ((InputElement) comp).setConstraint("no empty:" + tr("cannot be empty")); } else if ( key.equals(PredefinedConnectorProperties.TIM_NR_DAYS_TIMESHEET) || key.equals(PredefinedConnectorProperties.TIM_NR_DAYS_ROSTER) || key.equals(PredefinedConnectorProperties.PORT) ) { if ( !isNumeric((String) value) ) { - throw new WrongValueException(comp, _("Only digits allowed")); + throw new WrongValueException(comp, tr("Only digits allowed")); } } }; @@ -1561,7 +1561,7 @@ public class ConfigurationController extends GenericForwardComposer { ((org.zkoss.zul.Image) configurationWindow.getFellow(LOGO_PREVIEW_COMPONENT)).setContent(Util.logo); } else { - messages.showMessage(Level.WARNING, _("The only current supported formats are png and jpeg")); + messages.showMessage(Level.WARNING, tr("The only current supported formats are png and jpeg")); } } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/ConfigurationModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/ConfigurationModel.java index 963463ec9..eff4900ef 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/ConfigurationModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/ConfigurationModel.java @@ -21,7 +21,7 @@ package org.libreplan.web.common; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.Collection; @@ -199,15 +199,15 @@ public class ConfigurationModel implements IConfigurationModel { String entity = entityName.getDescription(); List sequences = entitySequences.get(entityName); if (sequences.isEmpty()) { - throw new ValidationException(_("At least one {0} sequence is needed", entity)); + throw new ValidationException(tr("At least one {0} sequence is needed", entity)); } if (!isAnyActive(sequences)) { - throw new ValidationException(_("At least one {0} sequence must be active", entity)); + throw new ValidationException(tr("At least one {0} sequence must be active", entity)); } if (!checkConstraintPrefixNotRepeated(sequences)) { - throw new ValidationException(_( + throw new ValidationException(tr( "The {0} sequence prefixes cannot be repeated", entityName.getDescription())); } } @@ -251,7 +251,7 @@ public class ConfigurationModel implements IConfigurationModel { try { entitySequenceDAO.remove(entitySequence); } catch (InstanceNotFoundException e) { - throw new ValidationException(_("Some sequences to be removed do not exist")); + throw new ValidationException(tr("Some sequences to be removed do not exist")); } catch (IllegalArgumentException e) { throw new ValidationException(e.getMessage()); } @@ -578,8 +578,12 @@ public class ConfigurationModel implements IConfigurationModel { Map currencies = new TreeMap<>(); for (Locale locale : Locale.getAvailableLocales()) { if (StringUtils.isNotBlank(locale.getCountry())) { - Currency currency = Currency.getInstance(locale); - currencies.put(currency.getCurrencyCode(), currency.getSymbol(locale)); + try { + Currency currency = Currency.getInstance(locale); + currencies.put(currency.getCurrencyCode(), currency.getSymbol(locale)); + } catch (IllegalArgumentException e) { + // Skip locales without a valid currency (e.g., Antarctica) + } } } return currencies; diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/CustomMenuController.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/CustomMenuController.java index a0be6255d..f4e707418 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/CustomMenuController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/CustomMenuController.java @@ -23,7 +23,7 @@ package org.libreplan.web.common; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.Collection; @@ -287,287 +287,287 @@ public class CustomMenuController extends Div implements IMenuItemsRegister { if ( SecurityUtils.isSuperuserOrRolePlanningOrHasAnyAuthorization() ) { planningItems.add(subItem( - _("Company view"), + tr("Company view"), () -> globalView.goToCompanyScheduling(), "01-introducion.html")); planningItems.add(subItem( - _("Projects"), + tr("Projects"), () -> globalView.goToOrdersList(), "01-introducion.html#id2")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_PLANNING) ) { planningItems.add(subItem( - _("Resources Load"), + tr("Resources Load"), () -> globalView.goToCompanyLoad(), "01-introducion.html#id1")); planningItems.add(subItem( - _("Queue-based Resources"), + tr("Queue-based Resources"), () -> globalView.goToLimitingResources(), "01-introducion.html")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_TEMPLATES) ) { - planningItems.add(subItem(_("Templates"), "/templates/templates.zul", "")); + planningItems.add(subItem(tr("Templates"), "/templates/templates.zul", "")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_IMPORT_PROJECTS) ) { // In order of see the Import project option in the menu - planningItems.add(subItem(_("Import project"), "/orders/imports/projectImport.zul", "")); + planningItems.add(subItem(tr("Import project"), "/orders/imports/projectImport.zul", "")); } if ( !planningItems.isEmpty() ) { - topItem(_("Planning"), "/planner/index.zul", "", planningItems); + topItem(tr("Planning"), "/planner/index.zul", "", planningItems); } List resourcesItems = new ArrayList<>(); if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_WORKERS) ) { resourcesItems.add(subItem( - _("Workers"), + tr("Workers"), "/resources/worker/worker.zul", "05-recursos.html#xesti-n-de-traballadores")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_MACHINES) ) { resourcesItems.add(subItem( - _("Machines"), + tr("Machines"), "/resources/machine/machines.zul", "05-recursos.html#xesti-n-de-m-quinas")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_VIRTUAL_WORKERS) ) { resourcesItems.add(subItem( - _("Virtual Workers"), + tr("Virtual Workers"), "/resources/worker/virtualWorkers.zul", "05-recursos.html#xesti-n-de-traballadores")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_CALENDARS) ) { - resourcesItems.add(subItem(_("Calendars"), "/calendars/calendars.zul", "03-calendarios.html")); + resourcesItems.add(subItem(tr("Calendars"), "/calendars/calendars.zul", "03-calendarios.html")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_CALENDAR_EXCEPTION_DAYS) ) { - resourcesItems.add(subItem(_("Calendar Exception Days"), "/excetiondays/exceptionDays.zul", "")); + resourcesItems.add(subItem(tr("Calendar Exception Days"), "/excetiondays/exceptionDays.zul", "")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_CRITERIA) ) { - resourcesItems.add(subItem(_("Criteria"), "/resources/criterions/criterions.zul", "02-criterios.html#id1")); + resourcesItems.add(subItem(tr("Criteria"), "/resources/criterions/criterions.zul", "02-criterios.html#id1")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_PROGRESS_TYPES) ) { - resourcesItems.add(subItem(_("Progress Types"), "/advance/advanceTypes.zul", "04-avances.html#id1")); + resourcesItems.add(subItem(tr("Progress Types"), "/advance/advanceTypes.zul", "04-avances.html#id1")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_LABELS) ) { - resourcesItems.add(subItem(_("Labels"), "/labels/labelTypes.zul", "10-etiquetas.html")); + resourcesItems.add(subItem(tr("Labels"), "/labels/labelTypes.zul", "10-etiquetas.html")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_MATERIALS) ) { resourcesItems.add(subItem( - _("Materials"), + tr("Materials"), "/materials/materials.zul", "11-materiales.html#administraci-n-de-materiais")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_MATERIAL_UNITS) ) { resourcesItems.add(subItem( - _("Material Units"), + tr("Material Units"), "/unittypes/unitTypes.zul", "11-materiales.html#administraci-n-de-materiais")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_QUALITY_FORMS) ) { resourcesItems.add(subItem( - _("Quality Forms"), + tr("Quality Forms"), "/qualityforms/qualityForms.zul", "12-formularios-calidad.html#administraci-n-de-formularios-de-calidade")); } if ( !resourcesItems.isEmpty() ) { - topItem(_("Resources"), "/resources/worker/worker.zul", "", resourcesItems); + topItem(tr("Resources"), "/resources/worker/worker.zul", "", resourcesItems); } List costItems = new ArrayList<>(); if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_TIMESHEETS) ) { - costItems.add(subItem(_("Timesheets"), "/workreports/workReport.zul", "09-partes.html#id3")); + costItems.add(subItem(tr("Timesheets"), "/workreports/workReport.zul", "09-partes.html#id3")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_TIMESHEETS_TEMPLATES) ) { costItems.add(subItem( - _("Timesheets Templates"), + tr("Timesheets Templates"), "/workreports/workReportTypes.zul", "09-partes.html#id2")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_TIMESHEET_LINES_LIST) ) { costItems.add(subItem( - _("Timesheet Lines List"), + tr("Timesheet Lines List"), "/workreports/workReportQuery.zul", "09-partes.html#id4")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_EXPENSES) ) { - costItems.add(subItem(_("Expenses"), "/expensesheet/expenseSheet.zul", "")); + costItems.add(subItem(tr("Expenses"), "/expensesheet/expenseSheet.zul", "")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_COST_CATEGORIES) ) { costItems.add(subItem( - _("Cost Categories"), + tr("Cost Categories"), "/costcategories/costCategory.zul", "14-custos.html#categor-as-de-custo")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_HOURS_TYPES) ) { costItems.add(subItem( - _("Hours Types"), + tr("Hours Types"), "/typeofworkhours/typeOfWorkHours.zul", "14-custos.html#administraci-n-de-horas-traballadas")); } if ( !costItems.isEmpty() ) { - topItem(_("Cost"), "/workreports/workReport.zul", "", costItems); + topItem(tr("Cost"), "/workreports/workReport.zul", "", costItems); } List configurationItems = new ArrayList<>(); if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_MAIN_SETTINGS) ) { configurationItems.add(subItem( - _("Main Settings"), + tr("Main Settings"), "/common/configuration.zul", "16-ldap-authentication.html")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_USER_ACCOUNTS) ) { configurationItems.add(subItem( - _("User Accounts"), + tr("User Accounts"), "/users/users.zul", "13-usuarios.html#administraci-n-de-usuarios")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_PROFILES) ) { configurationItems.add(subItem( - _("Profiles"), + tr("Profiles"), "/profiles/profiles.zul", "13-usuarios.html#administraci-n-de-perfiles")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_JOB_SCHEDULING) ) { - configurationItems.add(subItem(_("Job Scheduling"), "/common/jobScheduling.zul", "19-scheduler.html")); + configurationItems.add(subItem(tr("Job Scheduling"), "/common/jobScheduling.zul", "19-scheduler.html")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_EDIT_EMAIL_TEMPLATES) ) { configurationItems.add(subItem( - _("Edit E-mail Templates"), + tr("Edit E-mail Templates"), "/email/email_templates.zul", "email-templates.html")); } if ( !configurationItems.isEmpty() ) { - topItem(_("Configuration"), "/common/configuration.zul", "", configurationItems); + topItem(tr("Configuration"), "/common/configuration.zul", "", configurationItems); } List communicationsItems = new ArrayList<>(); if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_COMPANIES) ) { - communicationsItems.add(subItem(_("Companies"), "/externalcompanies/externalcompanies.zul", "")); + communicationsItems.add(subItem(tr("Companies"), "/externalcompanies/externalcompanies.zul", "")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_SEND_TO_SUBCONTRACTORS) ) { - communicationsItems.add(subItem(_("Send To Subcontractors"), "/subcontract/subcontractedTasks.zul", "")); + communicationsItems.add(subItem(tr("Send To Subcontractors"), "/subcontract/subcontractedTasks.zul", "")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_RECEIVED_FROM_SUBCONTRACTORS) ) { communicationsItems.add(subItem( - _("Received From Subcontractors"), + tr("Received From Subcontractors"), "/subcontract/subcontractorCommunications.zul", "")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_SEND_TO_CUSTOMERS) ) { - communicationsItems.add(subItem(_("Send To Customers"), "/subcontract/reportAdvances.zul", "")); + communicationsItems.add(subItem(tr("Send To Customers"), "/subcontract/reportAdvances.zul", "")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_RECEIVED_FROM_CUSTOMERS) ) { communicationsItems.add(subItem( - _("Received From Customers"), + tr("Received From Customers"), "/subcontract/customerCommunications.zul", "")); } if ( !communicationsItems.isEmpty() ) { - topItem(_("Communications"), "/externalcompanies/externalcompanies.zul", "", communicationsItems); + topItem(tr("Communications"), "/externalcompanies/externalcompanies.zul", "", communicationsItems); } List reportsItems = new ArrayList<>(); if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_HOURS_WORKED_PER_RESOURCE_REPORT) ) { reportsItems.add(subItem( - _("Hours Worked Per Resource"), + tr("Hours Worked Per Resource"), "/reports/hoursWorkedPerWorkerReport.zul", "15-1-report-hours-worked-by-resource.html")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_TOTAL_WORKED_HOURS_BY_RESOURCE_IN_A_MONTH_REPORT) ) { reportsItems.add(subItem( - _("Total Worked Hours By Resource In A Month"), + tr("Total Worked Hours By Resource In A Month"), "/reports/hoursWorkedPerWorkerInAMonthReport.zul", "15-2-total-hours-by-resource-month.html")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_WORK_AND_PROGRESS_PER_PROJECT_REPORT) ) { reportsItems.add(subItem( - _("Work And Progress Per Project"), + tr("Work And Progress Per Project"), "/reports/schedulingProgressPerOrderReport.zul", "15-3-work-progress-per-project.html")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_WORK_AND_PROGRESS_PER_TASK_REPORT) ) { reportsItems.add(subItem( - _("Work And Progress Per Task"), + tr("Work And Progress Per Task"), "/reports/workingProgressPerTaskReport.zul", "15-informes.html")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_ESTIMATED_PLANNED_HOURS_PER_TASK_REPORT) ) { reportsItems.add(subItem( - _("Estimated/Planned Hours Per Task"), + tr("Estimated/Planned Hours Per Task"), "/reports/completedEstimatedHoursPerTask.zul", "15-informes.html")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_PROJECT_COSTS_REPORT) ) { - reportsItems.add(subItem(_("Project Costs"), "/reports/orderCostsPerResource.zul", "15-informes.html")); + reportsItems.add(subItem(tr("Project Costs"), "/reports/orderCostsPerResource.zul", "15-informes.html")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_TASK_SCHEDULING_STATUS_IN_PROJECT_REPORT) ) { reportsItems.add(subItem( - _("Task Scheduling Status In Project"), + tr("Task Scheduling Status In Project"), "/reports/workingArrangementsPerOrderReport.zul", "15-informes.html")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_MATERIALS_NEED_AT_DATE_REPORT) ) { reportsItems.add(subItem( - _("Materials Needed At Date"), + tr("Materials Needed At Date"), "/reports/timeLineMaterialReport.zul", "15-informes.html")); } if ( SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_PROJECT_STATUS_REPORT) ) { - reportsItems.add(subItem(_("Project Status"), "/reports/projectStatusReport.zul", "15-informes.html")); + reportsItems.add(subItem(tr("Project Status"), "/reports/projectStatusReport.zul", "15-informes.html")); } if ( !reportsItems.isEmpty() ) { - topItem(_("Reports"), "/reports/hoursWorkedPerWorkerReport.zul", "", reportsItems); + topItem(tr("Reports"), "/reports/hoursWorkedPerWorkerReport.zul", "", reportsItems); } List personalAreaItems = new ArrayList<>(); if ( SecurityUtils.isUserInRole(UserRole.ROLE_BOUND_USER) ) { - personalAreaItems.add(subItem(_("Home"), "/myaccount/userDashboard.zul", "")); + personalAreaItems.add(subItem(tr("Home"), "/myaccount/userDashboard.zul", "")); } - personalAreaItems.add(subItem(_("Preferences"), "/myaccount/settings.zul", "")); - personalAreaItems.add(subItem(_("Change Password"), "/myaccount/changePassword.zul", "")); - topItem(_("Personal area"), "/myaccount/userDashboard.zul", "", personalAreaItems); + personalAreaItems.add(subItem(tr("Preferences"), "/myaccount/settings.zul", "")); + personalAreaItems.add(subItem(tr("Change Password"), "/myaccount/changePassword.zul", "")); + topItem(tr("Personal area"), "/myaccount/userDashboard.zul", "", personalAreaItems); } private Vbox getRegisteredItemsInsertionPoint() { @@ -585,7 +585,7 @@ public class CustomMenuController extends Div implements IMenuItemsRegister { if ( ci.isActiveParent() ) { - if ( (ci.name != null) && (!Objects.equals(ci.name, _("Planning"))) ) { + if ( (ci.name != null) && (!Objects.equals(ci.name, tr("Planning"))) ) { breadcrumbsPath.add(ci); @@ -646,7 +646,7 @@ public class CustomMenuController extends Div implements IMenuItemsRegister { public Object addMenuItem(String name, String cssClass, EventListener eventListener) { Vbox insertionPoint = getRegisteredItemsInsertionPoint(); Button button = new Button(); - button.setLabel(_(name)); + button.setLabel(tr(name)); if ( cssClass != null ) { toggleDomainCssClass(cssClass, button); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/EffortDurationBox.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/EffortDurationBox.java index 15c099b65..193f60434 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/EffortDurationBox.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/EffortDurationBox.java @@ -1,7 +1,7 @@ package org.libreplan.web.common; import static org.libreplan.business.workingday.EffortDuration.zero; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import org.libreplan.business.workingday.EffortDuration; import org.zkoss.zk.ui.WrongValueException; @@ -46,7 +46,7 @@ public class EffortDurationBox extends Textbox { EffortDuration result = EffortDuration.parseFromFormattedString(value); if (result == null) { throw new WrongValueException(this, - _("Invalid Effort Duration")); + tr("Invalid Effort Duration")); } return result; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/EnumsListitemRenderer.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/EnumsListitemRenderer.java index 577b8f0fa..7c9b45654 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/EnumsListitemRenderer.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/EnumsListitemRenderer.java @@ -26,7 +26,7 @@ import org.zkoss.zul.Listcell; import org.zkoss.zul.Listitem; import org.zkoss.zul.ListitemRenderer; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * {@link Enum} types needs to be translated in the webapp module, because of it @@ -42,7 +42,7 @@ public class EnumsListitemRenderer implements ListitemRenderer { @Override public void render(Listitem item, Object data, int i) { item.setValue(data); - item.appendChild(new Listcell(_(data.toString()))); + item.appendChild(new Listcell(tr(data.toString()))); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/IntegrationEntityModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/IntegrationEntityModel.java index 48a059a06..fe6e275f8 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/IntegrationEntityModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/IntegrationEntityModel.java @@ -21,7 +21,7 @@ package org.libreplan.web.common; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ConcurrentModificationException; import java.util.HashMap; @@ -76,7 +76,7 @@ public abstract class IntegrationEntityModel implements IIntegrationEntityModel String code = getEntitySequenceDAO().getNextEntityCode(getEntityName()); if (code == null) { throw new ConcurrentModificationException( - _("Could not retrieve Code. Please, try again later")); + tr("Could not retrieve Code. Please, try again later")); } getCurrentEntity().setCode(code); } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/JobSchedulerController.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/JobSchedulerController.java index ebc083c40..75c8c40ec 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/JobSchedulerController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/JobSchedulerController.java @@ -19,7 +19,7 @@ package org.libreplan.web.common; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.text.ParseException; import java.util.ArrayList; @@ -210,7 +210,7 @@ public class JobSchedulerController extends BaseCRUDController(); - synchronizationInfos.add(new SynchronizationInfo(_("Task assigned to resource emails job"))); + synchronizationInfos.add(new SynchronizationInfo(tr("Task assigned to resource emails job"))); taskAssignedToResource.sendEmail(); return; @@ -146,7 +146,7 @@ public class JobSchedulerModel implements IJobSchedulerModel { if ( name.equals(JobClassNameEnum.SEND_EMAIL_RESOURCE_REMOVED_FROM_TASK.getName()) ) { synchronizationInfos = new ArrayList<>(); - synchronizationInfos.add(new SynchronizationInfo(_("Resource removed from task job"))); + synchronizationInfos.add(new SynchronizationInfo(tr("Resource removed from task job"))); resourceRemovedFromTask.sendEmail(); return; @@ -154,7 +154,7 @@ public class JobSchedulerModel implements IJobSchedulerModel { if ( name.equals(JobClassNameEnum.SEND_EMAIL_MILESTONE_REACHED.getName()) ) { synchronizationInfos = new ArrayList<>(); - synchronizationInfos.add(new SynchronizationInfo(_("Milestone reached job"))); + synchronizationInfos.add(new SynchronizationInfo(tr("Milestone reached job"))); milestoneReached.sendEmail(); return; @@ -162,7 +162,7 @@ public class JobSchedulerModel implements IJobSchedulerModel { if ( name.equals(JobClassNameEnum.SEND_EMAIL_TASK_SHOULD_START.getName()) ) { synchronizationInfos = new ArrayList<>(); - synchronizationInfos.add(new SynchronizationInfo(_("Task should start job"))); + synchronizationInfos.add(new SynchronizationInfo(tr("Task should start job"))); taskShouldStart.sendEmail(); return; @@ -170,7 +170,7 @@ public class JobSchedulerModel implements IJobSchedulerModel { if ( name.equals(JobClassNameEnum.SEND_EMAIL_TASK_SHOULD_FINISH.getName()) ) { synchronizationInfos = new ArrayList<>(); - synchronizationInfos.add(new SynchronizationInfo(_("Task should finish job"))); + synchronizationInfos.add(new SynchronizationInfo(tr("Task should finish job"))); taskShouldFinish.sendEmail(); return; @@ -178,7 +178,7 @@ public class JobSchedulerModel implements IJobSchedulerModel { if ( name.equals(JobClassNameEnum.SEND_EMAIL_TIMESHEET_DATA_MISSING.getName()) ) { synchronizationInfos = new ArrayList<>(); - synchronizationInfos.add(new SynchronizationInfo(_("Timesheet data missing job"))); + synchronizationInfos.add(new SynchronizationInfo(tr("Timesheet data missing job"))); timesheetDataMissing.sendEmail(); return; diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/MessagesForUser.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/MessagesForUser.java index e109787bf..8b4d32e61 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/MessagesForUser.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/MessagesForUser.java @@ -21,7 +21,7 @@ package org.libreplan.web.common; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.lang.ref.WeakReference; import java.util.ArrayList; @@ -174,7 +174,7 @@ public class MessagesForUser extends GenericForwardComposer implements IMessages public static Label createLabelFor(InvalidValue invalidValue) { Label result = new Label(); - result.setValue(_(invalidValue.getMessage())); + result.setValue(tr(invalidValue.getMessage())); return result; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/TemplateController.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/TemplateController.java index dbb92a641..187905e95 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/TemplateController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/TemplateController.java @@ -44,7 +44,7 @@ import org.zkoss.zul.Window; import java.util.Collections; import java.util.List; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * Controller to manage UI operations from main template. @@ -130,7 +130,7 @@ public class TemplateController extends GenericForwardComposer { @Override public void errorHappened(Exception exceptionHappened) { LOG.error("error doing reassignation", exceptionHappened); - windowMessages.showMessage(Level.ERROR, _("error doing reassignment: {0}", exceptionHappened)); + windowMessages.showMessage(Level.ERROR, tr("error doing reassignment: {0}", exceptionHappened)); } }); } @@ -242,7 +242,7 @@ public class TemplateController extends GenericForwardComposer { * Used in template.zul */ public String getVersionMessage() { - return _("A new version ") + lastVersionNumber + _(" of LibrePlan is available. Please check next link for more information:"); + return tr("A new version ") + lastVersionNumber + tr(" of LibrePlan is available. Please check next link for more information:"); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/TemplateModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/TemplateModel.java index a90aa3afd..d37e9f7ba 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/TemplateModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/TemplateModel.java @@ -74,7 +74,7 @@ import java.util.List; import java.util.Map.Entry; import java.util.Set; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * Model to manage UI operations from main template. @@ -326,11 +326,11 @@ public class TemplateModel implements ITemplateModel { } private IDesktopUpdate showStart(final int ordersNumber) { - return sendMessage(_("Reassigning {0} projects", ordersNumber)); + return sendMessage(tr("Reassigning {0} projects", ordersNumber)); } private IDesktopUpdate showProgress(int remaining) { - return sendMessage(_("{0} projects remaining to reassign", remaining)); + return sendMessage(tr("{0} projects remaining to reassign", remaining)); } private IDesktopUpdate sendMessage(final String message) { diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/Util.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/Util.java index 642858ed3..d1f155a53 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/Util.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/Util.java @@ -21,7 +21,7 @@ package org.libreplan.web.common; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.io.IOException; import java.math.BigDecimal; @@ -665,7 +665,7 @@ public class Util { */ public static Button createEditButton(EventListener eventListener) { Button result = new Button(); - result.setTooltiptext(_("Edit")); + result.setTooltiptext(tr("Edit")); result.setSclass("icono"); result.setImage("/common/img/ico_editar1.png"); result.setHoverImage("/common/img/ico_editar.png"); @@ -684,7 +684,7 @@ public class Util { */ public static Button createRemoveButton(EventListener eventListener) { Button result = new Button(); - result.setTooltiptext(_("Remove")); + result.setTooltiptext(tr("Remove")); result.setSclass("icono"); result.setImage("/common/img/ico_borrar1.png"); result.setHoverImage("/common/img/ico_borrar.png"); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/EffortDurationPicker.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/EffortDurationPicker.java index 7b9176d40..e7f77bcb5 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/EffortDurationPicker.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/EffortDurationPicker.java @@ -20,7 +20,7 @@ */ package org.libreplan.web.common.components; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.EnumMap; @@ -59,14 +59,14 @@ public class EffortDurationPicker extends Hbox { minutes = new Spinner(); minutes.setCols(2); setRangeFor(minutes, 0, 59); - appendWithTooltipText(hours, _("Hours")); - appendWithTooltipText(minutes, _("Minutes")); + appendWithTooltipText(hours, tr("Hours")); + appendWithTooltipText(minutes, tr("Minutes")); if (withseconds) { seconds = new Spinner(); seconds.setCols(2); setRangeFor(seconds, 0, 59); - appendWithTooltipText(seconds, _("Seconds")); + appendWithTooltipText(seconds, tr("Seconds")); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/I18n.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/I18n.java index f41630015..318a84e04 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/I18n.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/I18n.java @@ -24,7 +24,7 @@ package org.libreplan.web.common.components; import org.zkoss.zk.ui.HtmlMacroComponent; import org.zkoss.zul.Label; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * ZK macro component for translating texts created dynamically, that means, those which need one or more parameters. @@ -89,22 +89,22 @@ public class I18n extends HtmlMacroComponent { public String getI18n() { if (arg0 != null && arg1 != null && arg2 != null && arg3 != null) { - return _(value, arg0, arg1, arg2, arg3); + return tr(value, arg0, arg1, arg2, arg3); } if (arg0 != null && arg1 != null && arg2 != null) { - return _(value, arg0, arg1, arg2); + return tr(value, arg0, arg1, arg2); } if (arg0 != null && arg1 != null) { - return _(value, arg0, arg1); + return tr(value, arg0, arg1); } if (arg0 != null) { - return _(value, arg0); + return tr(value, arg0); } - return _(value); + return tr(value); } public void forceLoad() { diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/L10n.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/L10n.java index 935ff7e15..bfca47fab 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/L10n.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/L10n.java @@ -46,7 +46,7 @@ public class L10n extends Label { @Override public void setValue(String value) { - super.setValue(I18nHelper._(value)); + super.setValue(I18nHelper.tr(value)); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/NewAllocationSelector.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/NewAllocationSelector.java index 8ff930e43..e55a53bce 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/NewAllocationSelector.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/NewAllocationSelector.java @@ -52,7 +52,7 @@ public class NewAllocationSelector extends AllocationSelector { public enum AllocationType { - GENERIC_WORKERS(_("generic workers allocation")) { + GENERIC_WORKERS(tr("generic workers allocation")) { @Override public void addTo(NewAllocationSelectorController controller, INewAllocationsAdder allocationsAdder) { allocationsAdder.addGeneric( @@ -72,7 +72,7 @@ public class NewAllocationSelector extends AllocationSelector { } }, - GENERIC_MACHINES(_("generic machines allocation")) { + GENERIC_MACHINES(tr("generic machines allocation")) { @Override public void addTo(NewAllocationSelectorController controller, INewAllocationsAdder allocationsAdder) { List criteria = controller.getSelectedCriterions(); @@ -90,7 +90,7 @@ public class NewAllocationSelector extends AllocationSelector { } }, - SPECIFIC(_("specific allocation")) { + SPECIFIC(tr("specific allocation")) { @Override public void addTo(NewAllocationSelectorController controller, INewAllocationsAdder allocationsAdder) { allocationsAdder.addSpecific(controller.getSelectedWorkers()); @@ -110,7 +110,7 @@ public class NewAllocationSelector extends AllocationSelector { /** * Forces to mark the string as needing translation. */ - private static String _(String string) { + private static String tr(String string) { return string; } @@ -121,7 +121,7 @@ public class NewAllocationSelector extends AllocationSelector { } public String getName() { - return I18nHelper._(name); + return I18nHelper.tr(name); } public void doTheSelectionOn(Radiogroup radioGroup) { diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/ResourceAllocationBehaviour.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/ResourceAllocationBehaviour.java index c0f6ab7cd..72a69ecc8 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/ResourceAllocationBehaviour.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/ResourceAllocationBehaviour.java @@ -35,7 +35,7 @@ import org.libreplan.web.common.components.NewAllocationSelector.AllocationType; */ public enum ResourceAllocationBehaviour { - NON_LIMITING(_("Normal")) { + NON_LIMITING(tr("Normal")) { @Override public boolean allowMultipleSelection() { @@ -60,7 +60,7 @@ public enum ResourceAllocationBehaviour { } }, - LIMITING(_("Queue-based")) { + LIMITING(tr("Queue-based")) { @Override public boolean allowMultipleSelection() { @@ -89,7 +89,7 @@ public enum ResourceAllocationBehaviour { /** * Forces to mark the string as needing translation */ - private static String _(String string) { + private static String tr(String string) { return string; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/TwoWaySelector.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/TwoWaySelector.java index bb99e0d8c..c20453dbc 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/TwoWaySelector.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/TwoWaySelector.java @@ -40,7 +40,7 @@ import java.util.HashMap; import java.util.Set; import java.util.Arrays; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * ZK macro component that shows two {@link Listbox} allowing to move objects @@ -65,7 +65,7 @@ public class TwoWaySelector extends HtmlMacroComponent { /** * Title for the left {@link Listbox} (where assigned objects are shown) */ - private String assignedTitle = _("Assigned"); + private String assignedTitle = tr("Assigned"); /** * A {@link Set} of objects that are not assigned (so they're shown on the @@ -76,7 +76,7 @@ public class TwoWaySelector extends HtmlMacroComponent { /** * Title for the right {@link Listbox} (where unassigned objects are shown) */ - private String unassignedTitle = _("Unassigned"); + private String unassignedTitle = tr("Unassigned"); /** * A {@link List} of properties to be shown on the {@link Listbox} for each @@ -105,7 +105,7 @@ public class TwoWaySelector extends HtmlMacroComponent { // Call the method to get the information PropertyDescriptor propertyDescriptor = propertiesByName.get(column); if (propertyDescriptor == null) { - throw new RuntimeException(_("Unknown attribute '{0}' in class {1}", column, klass.getName())); + throw new RuntimeException(tr("Unknown attribute '{0}' in class {1}", column, klass.getName())); } String label = Objects.toString(propertyDescriptor.getReadMethod().invoke(data)); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/bandboxsearch/BandboxMultipleSearch.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/bandboxsearch/BandboxMultipleSearch.java index 725c4e13d..fd2ded111 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/bandboxsearch/BandboxMultipleSearch.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/bandboxsearch/BandboxMultipleSearch.java @@ -21,7 +21,7 @@ package org.libreplan.web.common.components.bandboxsearch; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.List; @@ -228,7 +228,7 @@ public class BandboxMultipleSearch extends HtmlMacroComponent { if ( (filter.getType().equals(newFilter.getType())) && (filter.getPattern().equals(newFilter.getPattern())) ) { - throw new WrongValueException(bandbox, _("filter already exists")); + throw new WrongValueException(bandbox, tr("filter already exists")); } } selectedFilters.add(obj); @@ -238,7 +238,7 @@ public class BandboxMultipleSearch extends HtmlMacroComponent { updateBandboxValue(); if ( this.multipleFiltersFinder != null ) { if ( !multipleFiltersFinder.isValidFormatText(selectedFilters, bandbox.getValue()) ) { - throw new WrongValueException(bandbox, _("format filters are not valid")); + throw new WrongValueException(bandbox, tr("format filters are not valid")); } } @@ -274,7 +274,7 @@ public class BandboxMultipleSearch extends HtmlMacroComponent { clearHeaderIfNecessary(); final String[] headers = multipleFiltersFinder.getHeaders(); for (String header : headers) { - listhead.getChildren().add(new Listheader(_(header))); + listhead.getChildren().add(new Listheader(tr(header))); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/bandboxsearch/BandboxSearch.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/bandboxsearch/BandboxSearch.java index 961ac923c..a3a71254f 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/bandboxsearch/BandboxSearch.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/bandboxsearch/BandboxSearch.java @@ -21,7 +21,7 @@ package org.libreplan.web.common.components.bandboxsearch; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.List; @@ -203,7 +203,7 @@ public class BandboxSearch extends HtmlMacroComponent { final String[] headers = finder.getHeaders(); for (String header : headers) { - listhead.getChildren().add(new Listheader(_(header))); + listhead.getChildren().add(new Listheader(tr(header))); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/BaseCalendarBandboxFinder.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/BaseCalendarBandboxFinder.java index df40e0385..8fd848110 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/BaseCalendarBandboxFinder.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/BaseCalendarBandboxFinder.java @@ -43,12 +43,12 @@ public class BaseCalendarBandboxFinder extends BandboxFinder implements IBandbox @Autowired private IBaseCalendarDAO baseCalendarDAO; - private final String headers[] = { _("Name") }; + private final String headers[] = { tr("Name") }; /** * Forces to mark the string as needing translation. */ - private static String _(String string) { + private static String tr(String string) { return string; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/CriterionBandboxFinder.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/CriterionBandboxFinder.java index 201154dbf..bc64e311b 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/CriterionBandboxFinder.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/CriterionBandboxFinder.java @@ -41,7 +41,7 @@ public class CriterionBandboxFinder extends BandboxFinder implements IBandboxFin @Autowired private ICriterionDAO criterionDAO; - private final String headers[] = { _("Type"), _("Criterion Name") }; + private final String headers[] = { tr("Type"), tr("Criterion Name") }; private final ListitemRenderer orderRenderer = (item, data, i) -> { Criterion criterion = (Criterion)data; @@ -59,7 +59,7 @@ public class CriterionBandboxFinder extends BandboxFinder implements IBandboxFin /** * Forces to mark the string as needing translation. */ - private static String _(String string) { + private static String tr(String string) { return string; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/CriterionMultipleFiltersFinder.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/CriterionMultipleFiltersFinder.java index 97882cac6..e3821c7fb 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/CriterionMultipleFiltersFinder.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/CriterionMultipleFiltersFinder.java @@ -40,7 +40,7 @@ public class CriterionMultipleFiltersFinder extends MultipleFiltersFinder { /** * Forces to mark the string as needing translation */ - private static String _(String string) { + private static String tr(String string) { return string; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/ExternalCompanyBandboxFinder.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/ExternalCompanyBandboxFinder.java index a21bc0d98..c7fdc90eb 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/ExternalCompanyBandboxFinder.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/ExternalCompanyBandboxFinder.java @@ -47,12 +47,12 @@ public class ExternalCompanyBandboxFinder extends BandboxFinder implements IBand @Autowired private IExternalCompanyDAO externalCompanyDAO; - private final String headers[] = { _("ID"), _("Name") }; + private final String headers[] = { tr("ID"), tr("Name") }; /** * Forces to mark the string as needing translation. */ - private static String _(String string) { + private static String tr(String string) { return string; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/LabelBandboxFinder.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/LabelBandboxFinder.java index e6bb9fd20..dd319b997 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/LabelBandboxFinder.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/LabelBandboxFinder.java @@ -48,12 +48,12 @@ public class LabelBandboxFinder extends BandboxFinder implements IBandboxFinder @Autowired private ILabelDAO labelDAO; - private final String headers[] = { _("Type"), _("Name") }; + private final String headers[] = { tr("Type"), tr("Name") }; /** * Forces to mark the string as needing translation. */ - private static String _(String string) { + private static String tr(String string) { return string; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/MultipleFiltersFinder.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/MultipleFiltersFinder.java index 152cbabb6..0e475df20 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/MultipleFiltersFinder.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/MultipleFiltersFinder.java @@ -34,7 +34,7 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.Callable; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; abstract class MultipleFiltersFinder implements IMultipleFiltersFinder { @@ -198,7 +198,7 @@ abstract class MultipleFiltersFinder implements IMultipleFiltersFinder { labelPattern.setParent(item); final Listcell labelType = new Listcell(); - labelType.setLabel(_(filterPair.getTypeComplete())); + labelType.setLabel(tr(filterPair.getTypeComplete())); labelType.setParent(item); } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/OrderBandboxFinder.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/OrderBandboxFinder.java index 463a0ebe2..cf1e0b014 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/OrderBandboxFinder.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/OrderBandboxFinder.java @@ -41,12 +41,12 @@ public class OrderBandboxFinder extends BandboxFinder implements IBandboxFinder @Autowired private IOrderDAO orderDAO; - private final String headers[] = { _("Project code"), _("Project name") }; + private final String headers[] = { tr("Project code"), tr("Project name") }; /** * Forces to mark the string as needing translation. */ - private static String _(String string) { + private static String tr(String string) { return string; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/OrderElementBandboxFinder.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/OrderElementBandboxFinder.java index e85ff2b6a..0b157b2e0 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/OrderElementBandboxFinder.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/OrderElementBandboxFinder.java @@ -48,12 +48,12 @@ public class OrderElementBandboxFinder extends BandboxFinder implements IBandbox @Autowired private IOrderDAO orderDAO; - private final String headers[] = { _("Project"), _("Project code"), _("Task"), _("Task code") }; + private final String headers[] = { tr("Project"), tr("Project code"), tr("Task"), tr("Task code") }; /** * Forces to mark the string as needing translation */ - private static String _(String string) { + private static String tr(String string) { return string; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/OrderElementFilterEnum.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/OrderElementFilterEnum.java index 0fc577af6..87a8df393 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/OrderElementFilterEnum.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/OrderElementFilterEnum.java @@ -33,12 +33,12 @@ import org.libreplan.business.orders.entities.OrderElement; */ public enum OrderElementFilterEnum implements IFilterEnum { - Criterion(_("Criterion")), Label(_("Label")); + Criterion(tr("Criterion")), Label(tr("Label")); /** * Forces to mark the string as needing translation */ - private static String _(String string) { + private static String tr(String string) { return string; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/OrderElementInExpenseSheetBandboxFinder.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/OrderElementInExpenseSheetBandboxFinder.java index 3bf5b0421..ea2fb10d5 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/OrderElementInExpenseSheetBandboxFinder.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/OrderElementInExpenseSheetBandboxFinder.java @@ -42,12 +42,12 @@ public class OrderElementInExpenseSheetBandboxFinder extends BandboxFinder imple @Autowired private IOrderElementDAO orderElementDAO; - private final String headers[] = { _("Task name (Task code)"), _("Project name (Project code)") }; + private final String headers[] = { tr("Task name (Task code)"), tr("Project name (Project code)") }; /** * Forces to mark the string as needing translation. */ - private static String _(String string) { + private static String tr(String string) { return string; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/OrderFilterEnum.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/OrderFilterEnum.java index a3ac2393b..c77249e2e 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/OrderFilterEnum.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/OrderFilterEnum.java @@ -27,13 +27,13 @@ package org.libreplan.web.common.components.finders; public enum OrderFilterEnum implements IFilterEnum { - Criterion(_("Criterion")), Label(_("Label")), ExternalCompany(_("Customer")), State( - _("State")), Code(_("Code")), CustomerReference( - _("Customer Reference")); + Criterion(tr("Criterion")), Label(tr("Label")), ExternalCompany(tr("Customer")), State( + tr("State")), Code(tr("Code")), CustomerReference( + tr("Customer Reference")); /** * Forces to mark the string as needing translation */ - private static String _(String string) { + private static String tr(String string) { return string; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/OrderInExpenseSheetBandboxFinder.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/OrderInExpenseSheetBandboxFinder.java index bf0b1160e..8302175d9 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/OrderInExpenseSheetBandboxFinder.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/OrderInExpenseSheetBandboxFinder.java @@ -41,12 +41,12 @@ public class OrderInExpenseSheetBandboxFinder extends BandboxFinder implements I @Autowired private IOrderDAO orderDAO; - private final String headers[] = { _("Project name (Project code)") }; + private final String headers[] = { tr("Project name (Project code)") }; /** * Forces to mark the string as needing translation */ - private static String _(String string) { + private static String tr(String string) { return string; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/OrdersMultipleFiltersFinder.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/OrdersMultipleFiltersFinder.java index 542cb0648..192025911 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/OrdersMultipleFiltersFinder.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/OrdersMultipleFiltersFinder.java @@ -36,7 +36,7 @@ import org.libreplan.business.resources.entities.Criterion; import org.libreplan.business.resources.entities.CriterionType; import org.springframework.beans.factory.annotation.Autowired; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** @@ -255,7 +255,7 @@ public class OrdersMultipleFiltersFinder extends MultipleFiltersFinder { private void searchInOrderStatus(String filter) { for (OrderStatusEnum state : OrderStatusEnum.values()) { - String name = StringUtils.deleteWhitespace(_(state.name()).toLowerCase()); + String name = StringUtils.deleteWhitespace(tr(state.name()).toLowerCase()); if (name.contains(filter)) { addState(state); @@ -313,7 +313,7 @@ public class OrdersMultipleFiltersFinder extends MultipleFiltersFinder { } private void addState(OrderStatusEnum state) { - getListMatching().add(new FilterPair(OrderFilterEnum.State, _(state.name()), state)); + getListMatching().add(new FilterPair(OrderFilterEnum.State, tr(state.name()), state)); } private void addCode(String code) { diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/QualityFormBandboxFinder.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/QualityFormBandboxFinder.java index 088915501..cc4cf5d39 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/QualityFormBandboxFinder.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/QualityFormBandboxFinder.java @@ -47,12 +47,12 @@ public class QualityFormBandboxFinder extends BandboxFinder implements IBandboxF @Autowired private IQualityFormDAO qualityFormDAO; - private final String headers[] = { _("Name"), _("Type") }; + private final String headers[] = { tr("Name"), tr("Type") }; /** * Forces to mark the string as needing translation */ - private static String _(String string) { + private static String tr(String string) { return string; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/ResourceAllocationFilterEnum.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/ResourceAllocationFilterEnum.java index 67ee91f26..1a8ad03a5 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/ResourceAllocationFilterEnum.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/ResourceAllocationFilterEnum.java @@ -27,12 +27,12 @@ package org.libreplan.web.common.components.finders; public enum ResourceAllocationFilterEnum implements IFilterEnum { - Criterion(_("Criterion")), Resource(_("Resource")); + Criterion(tr("Criterion")), Resource(tr("Resource")); /** * Forces to mark the string as needing translation */ - private static String _(String string) { + private static String tr(String string) { return string; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/ResourceBandboxFinder.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/ResourceBandboxFinder.java index 1a1cdba24..81c90713b 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/ResourceBandboxFinder.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/ResourceBandboxFinder.java @@ -43,12 +43,12 @@ public class ResourceBandboxFinder extends BandboxFinder implements IBandboxFind @Autowired private IResourceDAO resourceDAO; - private final String headers[] = { _("Resource") }; + private final String headers[] = { tr("Resource") }; /** * Forces to mark the string as needing translation */ - private static String _(String string) { + private static String tr(String string) { return string; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/ResourceFilterEnum.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/ResourceFilterEnum.java index 7a4a774c8..e2f86f031 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/ResourceFilterEnum.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/ResourceFilterEnum.java @@ -26,12 +26,12 @@ package org.libreplan.web.common.components.finders; public enum ResourceFilterEnum implements IFilterEnum { - Criterion(_("Criterion")), CostCategory(_("Cost category")); + Criterion(tr("Criterion")), CostCategory(tr("Cost category")); /** * Forces to mark the string as needing translation */ - private static String _(String string) { + private static String tr(String string) { return string; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/ResourceFilterEnumByResourceAndCriterion.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/ResourceFilterEnumByResourceAndCriterion.java index 8e8bf7b74..201da4d07 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/ResourceFilterEnumByResourceAndCriterion.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/ResourceFilterEnumByResourceAndCriterion.java @@ -28,12 +28,12 @@ import org.libreplan.business.resources.entities.Resource; */ public enum ResourceFilterEnumByResourceAndCriterion implements IFilterEnum { - RESOURCE(_("Resource")), CRITERION(_("Criterion")); + RESOURCE(tr("Resource")), CRITERION(tr("Criterion")); /** * Forces to mark the string as needing translation */ - private static String _(String string) { + private static String tr(String string) { return string; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/ResourceInExpenseSheetBandboxFinder.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/ResourceInExpenseSheetBandboxFinder.java index 6bf3d2429..63b939a58 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/ResourceInExpenseSheetBandboxFinder.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/ResourceInExpenseSheetBandboxFinder.java @@ -41,12 +41,12 @@ public class ResourceInExpenseSheetBandboxFinder extends BandboxFinder implement @Autowired private IResourceDAO resourceDAO; - private final String headers[] = { _("Resource name (Resource code)"), _("Type") }; + private final String headers[] = { tr("Resource name (Resource code)"), tr("Type") }; /** * Forces to mark the string as needing translation */ - private static String _(String string) { + private static String tr(String string) { return string; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/ScenarioBandboxFinder.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/ScenarioBandboxFinder.java index af764d657..a1ddee561 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/ScenarioBandboxFinder.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/ScenarioBandboxFinder.java @@ -43,12 +43,12 @@ public class ScenarioBandboxFinder extends BandboxFinder implements IBandboxFind @Autowired private IScenarioDAO scenarioDAO; - private final String headers[] = { _("Name") }; + private final String headers[] = { tr("Name") }; /** * Forces to mark the string as needing translation */ - private static String _(String string) { + private static String tr(String string) { return string; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/TaskElementFilterEnum.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/TaskElementFilterEnum.java index 69692a6ce..3b3df4d5c 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/TaskElementFilterEnum.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/TaskElementFilterEnum.java @@ -31,12 +31,12 @@ import org.libreplan.business.planner.entities.TaskElement; */ public enum TaskElementFilterEnum implements IFilterEnum { - Criterion(_("Criterion")), Label(_("Label")), Resource(_("Resource")); + Criterion(tr("Criterion")), Label(tr("Label")), Resource(tr("Resource")); /** * Forces to mark the string as needing translation */ - private static String _(String string) { + private static String tr(String string) { return string; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/TaskGroupFilterEnum.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/TaskGroupFilterEnum.java index ec2d567b1..057bf66e5 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/TaskGroupFilterEnum.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/TaskGroupFilterEnum.java @@ -27,13 +27,13 @@ import org.libreplan.business.planner.entities.TaskGroup; */ public enum TaskGroupFilterEnum implements IFilterEnum { - Criterion(_("Criterion")), Label(_("Label")), ExternalCompany(_("Customer")), State( - _("State")), Code(_("Code")), CustomerReference( - _("Customer Reference")), Resource(_("Resource")); + Criterion(tr("Criterion")), Label(tr("Label")), ExternalCompany(tr("Customer")), State( + tr("State")), Code(tr("Code")), CustomerReference( + tr("Customer Reference")), Resource(tr("Resource")); /** * Forces to mark the string as needing translation */ - private static String _(String string) { + private static String tr(String string) { return string; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/TaskGroupsMultipleFiltersFinder.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/TaskGroupsMultipleFiltersFinder.java index 2e71b4e7d..3eb90f6e1 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/TaskGroupsMultipleFiltersFinder.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/TaskGroupsMultipleFiltersFinder.java @@ -36,7 +36,7 @@ import org.libreplan.business.resources.entities.CriterionType; import org.libreplan.business.resources.entities.Resource; import org.springframework.beans.factory.annotation.Autowired; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** @@ -256,7 +256,7 @@ public class TaskGroupsMultipleFiltersFinder extends MultipleFiltersFinder { private void searchInOrderStatus(String filter) { for (OrderStatusEnum state : OrderStatusEnum.values()) { - String name = StringUtils.deleteWhitespace(_(state.name()).toLowerCase()); + String name = StringUtils.deleteWhitespace(tr(state.name()).toLowerCase()); if (name.contains(filter)) { addState(state); @@ -315,7 +315,7 @@ public class TaskGroupsMultipleFiltersFinder extends MultipleFiltersFinder { } private void addState(OrderStatusEnum state) { - getListMatching().add(new FilterPair(TaskGroupFilterEnum.State, _(state.name()), state)); + getListMatching().add(new FilterPair(TaskGroupFilterEnum.State, tr(state.name()), state)); } private void addCode(String code) { diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/TypeOfWorkHoursBandboxFinder.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/TypeOfWorkHoursBandboxFinder.java index 13a0cea06..aa2c04f4e 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/TypeOfWorkHoursBandboxFinder.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/TypeOfWorkHoursBandboxFinder.java @@ -40,12 +40,12 @@ public class TypeOfWorkHoursBandboxFinder extends BandboxFinder implements IBand @Autowired private ITypeOfWorkHoursDAO typeOfWorkHoursDAO; - private final String headers[] = { _("Name") }; + private final String headers[] = { tr("Name") }; /** * Forces to mark the string as needing translation */ - private static String _(String string) { + private static String tr(String string) { return string; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/UserBandboxFinder.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/UserBandboxFinder.java index 78344cbc5..dcf8d8876 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/UserBandboxFinder.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/UserBandboxFinder.java @@ -43,7 +43,7 @@ public class UserBandboxFinder extends BandboxFinder implements IBandboxFinder { @Autowired private IUserDAO userDAO; - private final String headers[] = { _("Username"), _("Full name") }; + private final String headers[] = { tr("Username"), tr("Full name") }; private final ListitemRenderer usersRenderer = (item, data, i) -> { User user = (User) data; @@ -57,7 +57,7 @@ public class UserBandboxFinder extends BandboxFinder implements IBandboxFinder { /** * Forces to mark the string as needing translation. */ - private static String _(String string) { + private static String tr(String string) { return string; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/converters/ConverterFactory.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/converters/ConverterFactory.java index f2bced1e6..22aff327d 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/converters/ConverterFactory.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/converters/ConverterFactory.java @@ -30,7 +30,7 @@ import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * Default implementation for {@link IConverterFactory}
@@ -61,6 +61,6 @@ public class ConverterFactory implements IConverterFactory { return (IConverter) result; } } - throw new RuntimeException(_("Not found converter for {0}", klass)); + throw new RuntimeException(tr("Not found converter for {0}", klass)); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/entrypoints/EntryPointsHandler.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/entrypoints/EntryPointsHandler.java index bb3445a60..09071223a 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/entrypoints/EntryPointsHandler.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/entrypoints/EntryPointsHandler.java @@ -21,7 +21,7 @@ package org.libreplan.web.common.entrypoints; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.lang.reflect.Method; import java.util.ArrayList; @@ -93,7 +93,7 @@ public class EntryPointsHandler { Validate.notNull( entryPoints, - _( + tr( "{0} annotation required on {1}", EntryPoints.class.getName(), interfaceDefiningEntryPoints.getName())); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/entrypoints/RedirectorSynthetiser.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/entrypoints/RedirectorSynthetiser.java index 3725d5a37..1fe590451 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/entrypoints/RedirectorSynthetiser.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/entrypoints/RedirectorSynthetiser.java @@ -21,7 +21,7 @@ package org.libreplan.web.common.entrypoints; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.io.IOException; import java.lang.reflect.InvocationHandler; @@ -123,7 +123,7 @@ public class RedirectorSynthetiser implements BeanFactoryPostProcessor { ClassUtils.convertClassNameToResourcePath("org.libreplan.web") + "/" + "**/*.class"); } catch (IOException e) { - throw new RuntimeException(_("Could not load any resource"), e); + throw new RuntimeException(tr("Could not load any resource"), e); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/costcategories/CostCategoryCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/costcategories/CostCategoryCRUDController.java index edc65a334..ec4a505e0 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/costcategories/CostCategoryCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/costcategories/CostCategoryCRUDController.java @@ -21,7 +21,7 @@ package org.libreplan.web.costcategories; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.math.BigDecimal; import java.util.ConcurrentModificationException; @@ -144,13 +144,13 @@ public class CostCategoryCRUDController extends BaseCRUDController Listbox workHoursType = getWorkHoursType(row); String message = workHoursType.getItems().isEmpty() - ? _("Hours types are empty. Please, create some hours types before proceeding") - : _("cannot be empty"); + ? tr("Hours types are empty. Please, create some hours types before proceeding") + : tr("cannot be empty"); throw new WrongValueException(getWorkHoursType(row), message); } if (hourCost.getPriceCost() == null) { - throw new WrongValueException(getPricePerHour(row), _("cannot be empty")); + throw new WrongValueException(getPricePerHour(row), tr("cannot be empty")); } } } @@ -211,7 +211,7 @@ public class CostCategoryCRUDController extends BaseCRUDController if (!hourCost.getCategory().isCodeAutogenerated()) { txtCode.setConstraint("no empty:" - + _("cannot be empty")); + + tr("cannot be empty")); } else { txtCode.setConstraint(""); } @@ -277,7 +277,7 @@ public class CostCategoryCRUDController extends BaseCRUDController } } else if (item != null) { hourCost.setPriceCost(BigDecimal.ZERO); - throw new WrongValueException(item.getParent(), _("Please, select an item")); + throw new WrongValueException(item.getParent(), tr("Please, select an item")); } } @@ -290,7 +290,7 @@ public class CostCategoryCRUDController extends BaseCRUDController Button delete = new Button("", "/common/img/ico_borrar1.png"); delete.setHoverImage("/common/img/ico_borrar.png"); delete.setSclass("icono"); - delete.setTooltiptext(_("Delete")); + delete.setTooltiptext(tr("Delete")); delete.addEventListener(Events.ON_CLICK, new EventListener() { @Override @@ -310,7 +310,7 @@ public class CostCategoryCRUDController extends BaseCRUDController private void appendDecimalboxCost(Row row) { Decimalbox boxCost = new Decimalbox(); bindDecimalboxCost(boxCost, row.getValue()); - boxCost.setConstraint("no empty:" + _("cannot be empty")); + boxCost.setConstraint("no empty:" + tr("cannot be empty")); boxCost.setFormat(Util.getMoneyFormat()); row.appendChild(boxCost); } @@ -349,7 +349,7 @@ public class CostCategoryCRUDController extends BaseCRUDController private void appendDateboxInitDate(final Row row) { Datebox initDateBox = new Datebox(); bindDateboxInitDate(initDateBox, row.getValue()); - initDateBox.setConstraint("no empty:" + _("Start date cannot be empty")); + initDateBox.setConstraint("no empty:" + tr("Start date cannot be empty")); row.appendChild(initDateBox); initDateBox.addEventListener("onChange", new EventListener() { @@ -459,7 +459,7 @@ public class CostCategoryCRUDController extends BaseCRUDController public void confirmRemove(HourCost hourCost) { int status = Messagebox.show( - _("Confirm deleting this hour cost. Are you sure?"), _("Delete"), + tr("Confirm deleting this hour cost. Are you sure?"), tr("Delete"), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION); if (Messagebox.OK == status) { @@ -522,12 +522,12 @@ public class CostCategoryCRUDController extends BaseCRUDController @Override protected String getEntityType() { - return _("Cost Category"); + return tr("Cost Category"); } @Override protected String getPluralEntityType() { - return _("Cost Categories"); + return tr("Cost Categories"); } @Override diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/costcategories/ResourcesCostCategoryAssignmentController.java b/libreplan-webapp/src/main/java/org/libreplan/web/costcategories/ResourcesCostCategoryAssignmentController.java index 377834b67..ca8bbe05d 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/costcategories/ResourcesCostCategoryAssignmentController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/costcategories/ResourcesCostCategoryAssignmentController.java @@ -21,7 +21,7 @@ package org.libreplan.web.costcategories; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.Date; import java.util.List; @@ -105,7 +105,7 @@ public class ResourcesCostCategoryAssignmentController extends GenericForwardCom autocomplete.setAutodrop(true); autocomplete.applyProperties(); autocomplete.setFinder("CostCategoryFinder"); - autocomplete.setConstraint("no empty:" + _("A category must be selected")); + autocomplete.setConstraint("no empty:" + tr("A category must be selected")); // Getter, show type selected if (getCostCategory(row) != null) { @@ -132,7 +132,7 @@ public class ResourcesCostCategoryAssignmentController extends GenericForwardCom public void confirmRemove(ResourcesCostCategoryAssignment assignment) { int status = Messagebox.show( - _("Confirm deleting this hour cost. Are you sure?"), _("Delete"), + tr("Confirm deleting this hour cost. Are you sure?"), tr("Delete"), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION); if (Messagebox.OK == status) { @@ -149,7 +149,7 @@ public class ResourcesCostCategoryAssignmentController extends GenericForwardCom Button delete = new Button("", "/common/img/ico_borrar1.png"); delete.setHoverImage("/common/img/ico_borrar.png"); delete.setSclass("icono"); - delete.setTooltiptext(_("Delete")); + delete.setTooltiptext(tr("Delete")); delete.addEventListener(Events.ON_CLICK, new EventListener() { @Override @@ -168,7 +168,7 @@ public class ResourcesCostCategoryAssignmentController extends GenericForwardCom private void appendDateboxInitDate(final Row row) { Datebox initDateBox = new Datebox(); bindDateboxInitDate(initDateBox, row.getValue()); - initDateBox.setConstraint("no empty:" + _("Start date cannot be empty")); + initDateBox.setConstraint("no empty:" + tr("Start date cannot be empty")); row.appendChild(initDateBox); initDateBox.addEventListener("onChange", new EventListener() { diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/costcategories/TypeOfWorkHoursCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/costcategories/TypeOfWorkHoursCRUDController.java index 44bdb0fc7..6c072b961 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/costcategories/TypeOfWorkHoursCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/costcategories/TypeOfWorkHoursCRUDController.java @@ -37,7 +37,7 @@ import org.zkoss.zul.Messagebox; import java.util.ConcurrentModificationException; import java.util.List; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * Controller for CRUD actions over a {@link TypeOfWorkHours} @@ -98,17 +98,17 @@ public class TypeOfWorkHoursCRUDController extends BaseCRUDController pieChart = new PieChart<>(_("Task deadline violations")); - pieChart.addValue(_("On schedule"), dashboardModel.getPercentageOfOnScheduleTasks()); - pieChart.addValue(_("Violated deadline"), dashboardModel.getPercentageOfTasksWithViolatedDeadline()); - pieChart.addValue(_("No deadline"), dashboardModel.getPercentageOfTasksWithNoDeadline()); + PieChart pieChart = new PieChart<>(tr("Task deadline violations")); + pieChart.addValue(tr("On schedule"), dashboardModel.getPercentageOfOnScheduleTasks()); + pieChart.addValue(tr("Violated deadline"), dashboardModel.getPercentageOfTasksWithViolatedDeadline()); + pieChart.addValue(tr("No deadline"), dashboardModel.getPercentageOfTasksWithNoDeadline()); pieChart.addIntervalColors("#8fbe86", "#eb6b71", "#cfcfcf"); @@ -216,7 +216,7 @@ public class DashboardController extends GenericForwardComposer { final String divId = "task-completation-lag"; BarChart barChart; - barChart = new BarChart<>(_("Task Completation Lead/Lag")); + barChart = new BarChart<>(tr("Task Completation Lead/Lag")); barChart.setFillZero(true); barChart.setHighlightMouseDown(true); @@ -234,9 +234,9 @@ public class DashboardController extends GenericForwardComposer { barChart.getAxes() .getXaxis() - .setLabel(_("Days Interval (Calculated as task completion end date minus estimated end date)")); + .setLabel(tr("Days Interval (Calculated as task completion end date minus estimated end date)")); - barChart.getAxes().yAxisInstance().setLabel(_("Number of tasks")); + barChart.getAxes().yAxisInstance().setLabel(tr("Number of tasks")); renderChart(barChart, divId); } @@ -245,7 +245,7 @@ public class DashboardController extends GenericForwardComposer { final String divId = "estimation-accuracy"; BarChart barChart; - barChart = new BarChart<>(_("Estimation deviation on completed tasks")); + barChart = new BarChart<>(tr("Estimation deviation on completed tasks")); barChart.setFillZero(true); barChart.setHighlightMouseDown(true); @@ -263,22 +263,22 @@ public class DashboardController extends GenericForwardComposer { barChart.getAxes() .getXaxis() - .setLabel(_("% Deviation interval (difference % between consumed and estimated hours)")); + .setLabel(tr("% Deviation interval (difference % between consumed and estimated hours)")); - barChart.getAxes().yAxisInstance().setLabel(_("Number of tasks")); + barChart.getAxes().yAxisInstance().setLabel(tr("Number of tasks")); renderChart(barChart, divId); } private String statusLegend(TaskStatusEnum status, Map taskStatus) { - return _(status.toString()) + String.format(_(" (%d tasks)"), taskStatus.get(status)); + return tr(status.toString()) + String.format(tr(" (%d tasks)"), taskStatus.get(status)); } private void renderTaskStatus() { final String divId = "task-status"; Map taskStatus = dashboardModel.calculateTaskStatus(); - PieChart taskStatusPieChart = new PieChart<>(_("Task Status")); + PieChart taskStatusPieChart = new PieChart<>(tr("Task Status")); taskStatusPieChart.addValue( statusLegend(TaskStatusEnum.FINISHED, taskStatus), diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/dashboard/GlobalProgressChart.java b/libreplan-webapp/src/main/java/org/libreplan/web/dashboard/GlobalProgressChart.java index b99fae5fc..3616885dd 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/dashboard/GlobalProgressChart.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/dashboard/GlobalProgressChart.java @@ -19,7 +19,7 @@ package org.libreplan.web.dashboard; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.math.BigDecimal; import java.util.ArrayList; @@ -52,13 +52,13 @@ public class GlobalProgressChart { private List series = new ArrayList<>(); private GlobalProgressChart() { - series.add(Series.create(_("Current"), "#004469")); - series.add(Series.create(_("Expected"), "#3C90BE")); + series.add(Series.create(tr("Current"), "#004469")); + series.add(Series.create(tr("Expected"), "#3C90BE")); - SPREAD_PROGRESS = _("Spreading progress"); - ALL_TASKS_HOURS = _("By all tasks hours"); - CRITICAL_PATH_HOURS = _("By critical path hours"); - CRITICAL_PATH_DURATION = _("By critical path duration"); + SPREAD_PROGRESS = tr("Spreading progress"); + ALL_TASKS_HOURS = tr("By all tasks hours"); + CRITICAL_PATH_HOURS = tr("By critical path hours"); + CRITICAL_PATH_DURATION = tr("By critical path duration"); } public void current(String key, BigDecimal value) { @@ -119,8 +119,8 @@ public class GlobalProgressChart { public void render() { String params = String.format( "'{\"title\": %s, \"label\": %s, \"ticks\": %s, \"series\": %s}'", - jsonify(_("Project progress percentage")), - jsonify(_("Progress percentage per progress type")), + jsonify(tr("Project progress percentage")), + jsonify(tr("Progress percentage per progress type")), getTicks(), getSeries()); String command = String.format("global_progress.render(%s, %s);", getPercentages(), params); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/email/EmailTemplateController.java b/libreplan-webapp/src/main/java/org/libreplan/web/email/EmailTemplateController.java index d254bee70..7091dab17 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/email/EmailTemplateController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/email/EmailTemplateController.java @@ -40,7 +40,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.LinkedList; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * Controller for page Edit email templates. @@ -95,7 +95,7 @@ public class EmailTemplateController extends GenericForwardComposer { setSelectedSubject(); emailTemplateModel.confirmSave(); messages.clearMessages(); - messages.showMessage(Level.INFO, _("E-mail template saved")); + messages.showMessage(Level.INFO, tr("E-mail template saved")); return true; } catch (ValidationException e) { @@ -182,7 +182,7 @@ public class EmailTemplateController extends GenericForwardComposer { public ListitemRenderer getEmailTemplateEnumRenderer() { return (item, data, i) -> { EmailTemplateEnum template = (EmailTemplateEnum) data; - item.setLabel(_(template.getTemplateType())); + item.setLabel(tr(template.getTemplateType())); item.setValue(template); }; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/exceptionDays/CalendarExceptionTypeCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/exceptionDays/CalendarExceptionTypeCRUDController.java index c0398b7a2..6077b55fe 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/exceptionDays/CalendarExceptionTypeCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/exceptionDays/CalendarExceptionTypeCRUDController.java @@ -18,7 +18,7 @@ */ package org.libreplan.web.exceptionDays; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ConcurrentModificationException; import java.util.List; @@ -77,7 +77,7 @@ public class CalendarExceptionTypeCRUDController extends BaseCRUDController confirmRemove(row.getValue())); row.appendChild(delete); } @@ -426,7 +426,7 @@ public class ExpenseSheetCRUDController bandboxSearch.setListboxEventListener(Events.ON_SELECT, eventListenerUpdateOrderElement); bandboxSearch.setListboxEventListener(Events.ON_OK, eventListenerUpdateOrderElement); bandboxSearch.setBandboxEventListener(Events.ON_CHANGING, eventListenerUpdateOrderElement); - bandboxSearch.setBandboxConstraint("no empty:" + _(NOT_EMPTY)); + bandboxSearch.setBandboxConstraint("no empty:" + tr(NOT_EMPTY)); row.appendChild(bandboxSearch); } @@ -436,14 +436,14 @@ public class ExpenseSheetCRUDController String code = (String) value; if (code == null || code.isEmpty()) { - throw new WrongValueException(comp, _("Code cannot be empty.")); + throw new WrongValueException(comp, tr("Code cannot be empty.")); } else { String oldCode = line.getCode(); line.setCode(code); if (!getExpenseSheet().isNonRepeatedExpenseSheetLinesCodesConstraint()) { line.setCode(oldCode); - throw new WrongValueException(comp, _("The code must be unique.")); + throw new WrongValueException(comp, tr("The code must be unique.")); } } } @@ -465,7 +465,7 @@ public class ExpenseSheetCRUDController return (comp, value) -> { BigDecimal expenseValue = (BigDecimal) value; if (expenseValue == null || expenseValue.compareTo(BigDecimal.ZERO) < 0) { - throw new WrongValueException(comp, _("must be greater or equal than 0")); + throw new WrongValueException(comp, tr("must be greater or equal than 0")); } }; } @@ -476,11 +476,11 @@ public class ExpenseSheetCRUDController String code = (String) value; if (code == null || code.isEmpty()) { - throw new WrongValueException(comp, _("The code cannot be empty and it must be unique.")); + throw new WrongValueException(comp, tr("The code cannot be empty and it must be unique.")); } else if (!getExpenseSheet().isUniqueCodeConstraint()) { throw new WrongValueException( - comp, _("it already exists another expense sheet with the same code.")); + comp, tr("it already exists another expense sheet with the same code.")); } } }; @@ -530,12 +530,12 @@ public class ExpenseSheetCRUDController @Override protected String getEntityType() { - return _("Expense Sheet"); + return tr("Expense Sheet"); } @Override protected String getPluralEntityType() { - return _("Expense Sheets"); + return tr("Expense Sheets"); } public String getCurrencySymbol() { @@ -603,7 +603,7 @@ public class ExpenseSheetCRUDController } private String getType(ExpenseSheet expenseSheet) { - return expenseSheet != null && expenseSheet.isPersonal() ? _("Personal") : _("Regular"); + return expenseSheet != null && expenseSheet.isPersonal() ? tr("Personal") : tr("Regular"); } public RowRenderer getExpenseSheetsRenderer() { diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/externalcompanies/ExternalCompanyCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/externalcompanies/ExternalCompanyCRUDController.java index fa6ff4dc3..d01a24dd7 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/externalcompanies/ExternalCompanyCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/externalcompanies/ExternalCompanyCRUDController.java @@ -21,7 +21,7 @@ package org.libreplan.web.externalcompanies; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.List; @@ -119,9 +119,9 @@ public class ExternalCompanyCRUDController extends BaseCRUDController { public void onChangeLabelName(Event e) { InputEvent ie = (InputEvent) e; if ( !labelTypeModel.labelNameIsUnique(ie.getValue()) ) { - throw new WrongValueException(e.getTarget(), _("{0} already exists", ie.getValue())); + throw new WrongValueException(e.getTarget(), tr("{0} already exists", ie.getValue())); } } @@ -286,12 +286,12 @@ public class LabelTypeCRUDController extends BaseCRUDController { @Override protected String getEntityType() { - return _("Label Type"); + return tr("Label Type"); } @Override protected String getPluralEntityType() { - return _("Label Types"); + return tr("Label Types"); } @Override diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/labels/LabelTypeModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/labels/LabelTypeModel.java index 588979c35..6331d63a8 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/labels/LabelTypeModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/labels/LabelTypeModel.java @@ -22,7 +22,7 @@ package org.libreplan.web.labels; import static org.libreplan.business.common.exceptions.ValidationException.invalidValue; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.Collections; @@ -151,7 +151,7 @@ public class LabelTypeModel extends IntegrationEntityModel implements } private InvalidValue createInvalidValue(LabelType labelType) { - return invalidValue(_("{0} already exists", labelType.getName()), + return invalidValue(tr("{0} already exists", labelType.getName()), "name", labelType.getName(), labelType); } @@ -177,7 +177,7 @@ public class LabelTypeModel extends IntegrationEntityModel implements } private InvalidValue createInvalidValue(Label label) { - return invalidValue(_("{0} already exists", label.getName()), "name", + return invalidValue(tr("{0} already exists", label.getName()), "name", label.getName(), label); } @@ -264,7 +264,7 @@ public class LabelTypeModel extends IntegrationEntityModel implements for (Label label : labelType.getLabels()) { if (name.equals(label.getName())) { throw new ValidationException( - invalidValue(_("Already exists other " + invalidValue(tr("Already exists other " + "label with the same name"), "name", name, getLabelType())); } @@ -275,7 +275,7 @@ public class LabelTypeModel extends IntegrationEntityModel implements public void validateNameNotEmpty(String name) throws ValidationException { if (name.isEmpty()) { throw new ValidationException(invalidValue( - _("The name of the label is empty."), + tr("The name of the label is empty."), "name", "", getLabelType())); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/limitingresources/LimitingResourcesController.java b/libreplan-webapp/src/main/java/org/libreplan/web/limitingresources/LimitingResourcesController.java index 9064fd304..9f04757b6 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/limitingresources/LimitingResourcesController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/limitingresources/LimitingResourcesController.java @@ -21,7 +21,7 @@ package org.libreplan.web.limitingresources; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.Arrays; @@ -328,7 +328,7 @@ public class LimitingResourcesController extends GenericForwardComposer { LimitingResourceQueueElement queueElement = element.getOriginal(); @@ -448,9 +448,9 @@ public class LimitingResourcesController extends GenericForwardComposer showManualAllocationWindow(element.getOriginal())); @@ -461,7 +461,7 @@ public class LimitingResourcesController extends GenericForwardComposer removeUnassignedLimitingResourceQueueElement(element)); @@ -476,9 +476,9 @@ public class LimitingResourcesController extends GenericForwardComposer assignLimitingResourceQueueElement(element)); @@ -492,7 +492,7 @@ public class LimitingResourcesController extends GenericForwardComposer resourceAllocation = element.getResourceAllocation(); if ( resourceAllocation instanceof SpecificResourceAllocation ) { final SpecificResourceAllocation specific = (SpecificResourceAllocation) resourceAllocation; - result.append(_("Resource: {0}", specific.getResource().getName())).append(" "); + result.append(tr("Resource: {0}", specific.getResource().getName())).append(" "); } else if ( resourceAllocation instanceof GenericResourceAllocation ) { final GenericResourceAllocation generic = (GenericResourceAllocation) resourceAllocation; /* TODO resolve deprecated */ - result.append(_("Criteria: {0}", Criterion.getCaptionFor(generic.getCriterions()))).append(" "); + result.append(tr("Criteria: {0}", Criterion.getCaptionFor(generic.getCriterions()))).append(" "); } - result.append(_("Allocation: [{0},{1}]", element.getStartDate().toString(), element.getEndDate())); + result.append(tr("Allocation: [{0},{1}]", element.getStartDate().toString(), element.getEndDate())); return result.toString(); } @@ -393,7 +393,7 @@ public class QueueComponent extends XulElement implements AfterCompose { Div notWorkableHoursShade = new Div(); - notWorkableHoursShade.setTooltiptext(_("Workable capacity for this period ") + workableHours + _(" hours")); + notWorkableHoursShade.setTooltiptext(tr("Workable capacity for this period ") + workableHours + tr(" hours")); notWorkableHoursShade.setContext(""); notWorkableHoursShade.setSclass("not-workable-hours"); notWorkableHoursShade.setStyle("left: " + shadeLeft + "px; width: " + shadeWidth.intValue() + "px;"); @@ -490,7 +490,7 @@ public class QueueComponent extends XulElement implements AfterCompose { private static void validateQueueElement(LimitingResourceQueueElement queueElement) { if ( (queueElement.getStartDate() == null ) || ( queueElement.getEndDate() == null) ) { - throw new ValidationException(_("Invalid queue element")); + throw new ValidationException(tr("Invalid queue element")); } } @@ -499,11 +499,11 @@ public class QueueComponent extends XulElement implements AfterCompose { MenuBuilder menuBuilder = MenuBuilder.on(divElement.getPage(), divElement); menuBuilder.item( - _("Edit"), "/common/img/ico_editar.png", (chosen, event) -> editResourceAllocation(chosen)); + tr("Edit"), "/common/img/ico_editar.png", (chosen, event) -> editResourceAllocation(chosen)); - menuBuilder.item(_("Unassign"), "/common/img/ico_borrar.png", (chosen, event) -> unassign(chosen)); + menuBuilder.item(tr("Unassign"), "/common/img/ico_borrar.png", (chosen, event) -> unassign(chosen)); - menuBuilder.item(_("Move"), "", (chosen, event) -> moveQueueTask(chosen)); + menuBuilder.item(tr("Move"), "", (chosen, event) -> moveQueueTask(chosen)); divElement.setContext(menuBuilder.createWithoutSettingContext()); } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/logs/IssueLogCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/logs/IssueLogCRUDController.java index 02c2f28bb..a63d8de52 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/logs/IssueLogCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/logs/IssueLogCRUDController.java @@ -48,7 +48,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** @@ -257,25 +257,25 @@ public class IssueLogCRUDController extends BaseCRUDController { public ArrayList getIssueStatusEnum() { ArrayList result = new ArrayList<>(); if (getIssueLog().getType() == IssueTypeEnum.REQUEST_FOR_CHANGE){ - result.add(_("Must have")); - result.add(_("Should have")); - result.add(_("Could have")); - result.add(_("Won't have")); + result.add(tr("Must have")); + result.add(tr("Should have")); + result.add(tr("Could have")); + result.add(tr("Won't have")); return result; } if (getIssueLog().getType() == IssueTypeEnum.PROBLEM_OR_CONCERN) { - result.add(_("Minor")); - result.add(_("Significant")); - result.add(_("Major")); - result.add(_("Critical")); + result.add(tr("Minor")); + result.add(tr("Significant")); + result.add(tr("Major")); + result.add(tr("Critical")); return result; } - result.add(_("Low")); - result.add(_("Medium")); - result.add(_("High")); + result.add(tr("Low")); + result.add(tr("Medium")); + result.add(tr("High")); return result; } @@ -407,12 +407,12 @@ public class IssueLogCRUDController extends BaseCRUDController { @Override protected String getEntityType() { - return _("issuelog-number"); + return tr("issuelog-number"); } @Override protected String getPluralEntityType() { - return _("Issue logs"); + return tr("Issue logs"); } @Override @@ -430,11 +430,11 @@ public class IssueLogCRUDController extends BaseCRUDController { @Override protected void save() throws ValidationException { if (getIssueLog().getOrder() == null) { - throw new WrongValueException(bdProjectIssueLog, _("please select a project")); + throw new WrongValueException(bdProjectIssueLog, tr("please select a project")); } if (getIssueLog().getCreatedBy() == null) { - throw new WrongValueException(bdUserIssueLog, _("please select an author")); + throw new WrongValueException(bdUserIssueLog, tr("please select an author")); } getIssueLog().setStatus(status.getSelectedItem().getLabel()); issueLogModel.confirmSave(); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/logs/RiskLogCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/logs/RiskLogCRUDController.java index 75ff58802..d42681537 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/logs/RiskLogCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/logs/RiskLogCRUDController.java @@ -48,7 +48,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * Controller for RiskLog CRUD actions. @@ -389,12 +389,12 @@ public class RiskLogCRUDController extends BaseCRUDController { @Override protected String getEntityType() { - return _("Issue log"); + return tr("Issue log"); } @Override protected String getPluralEntityType() { - return _("Issue logs"); + return tr("Issue logs"); } @Override @@ -410,11 +410,11 @@ public class RiskLogCRUDController extends BaseCRUDController { @Override protected void save() throws ValidationException { if (getRiskLog().getOrder() == null) { - throw new WrongValueException(bdProjectRiskLog, _("please select a project")); + throw new WrongValueException(bdProjectRiskLog, tr("please select a project")); } if (getRiskLog().getCreatedBy() == null) { - throw new WrongValueException(bdUserRiskLog, _("please select an author")); + throw new WrongValueException(bdUserRiskLog, tr("please select an author")); } riskLogModel.confirmSave(); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/materials/MaterialsController.java b/libreplan-webapp/src/main/java/org/libreplan/web/materials/MaterialsController.java index 2447394c6..801ca94da 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/materials/MaterialsController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/materials/MaterialsController.java @@ -65,7 +65,7 @@ import java.util.List; import java.util.Set; import java.util.ArrayList; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * Controller for {@link Material} materials @@ -244,7 +244,7 @@ public class MaterialsController extends GenericForwardComposer { Button btnDelete = new Button("", "/common/img/ico_borrar1.png"); btnDelete.setHoverImage("/common/img/ico_borrar.png"); btnDelete.setSclass("icono"); - btnDelete.setTooltiptext(_("Delete")); + btnDelete.setTooltiptext(tr("Delete")); btnDelete.addEventListener(Events.ON_CLICK, event -> confirmRemove(materialCategory)); btnDelete.setDisabled(hasSubcategoriesOrMaterials(materialCategory)); Treecell tc = new Treecell(); @@ -258,8 +258,8 @@ public class MaterialsController extends GenericForwardComposer { public void confirmRemove(MaterialCategory materialCategory) { - int status = Messagebox.show(_("Confirm deleting {0}. Are you sure?", - materialCategory.getName()), _("Delete"), + int status = Messagebox.show(tr("Confirm deleting {0}. Are you sure?", + materialCategory.getName()), tr("Delete"), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION); if (Messagebox.OK == status) { @@ -275,7 +275,7 @@ public class MaterialsController extends GenericForwardComposer { public void addMaterialCategory() { String categoryName = txtCategory.getValue(); if (categoryName == null || categoryName.isEmpty()) { - throw new WrongValueException(txtCategory, _("cannot be empty")); + throw new WrongValueException(txtCategory, tr("cannot be empty")); } MaterialCategory parent = null; @@ -294,7 +294,7 @@ public class MaterialsController extends GenericForwardComposer { MaterialCategory materialCategory = (MaterialCategory) value; Component comp = findInMaterialCategoryTree(materialCategory); if (comp != null) { - throw new WrongValueException(comp, _(invalidValue.getMessage())); + throw new WrongValueException(comp, tr(invalidValue.getMessage())); } } } @@ -332,7 +332,7 @@ public class MaterialsController extends GenericForwardComposer { public void addMaterialToMaterialCategory(Treeitem treeitem) { if (treeitem == null) { - throw new WrongValueException(btnAddMaterial, _("Cannot insert material in general view. Please, select a category")); + throw new WrongValueException(btnAddMaterial, tr("Cannot insert material in general view. Please, select a category")); } final MaterialCategory materialCategory = treeitem.getValue(); materialsModel.addMaterialToMaterialCategory(materialCategory); @@ -341,7 +341,7 @@ public class MaterialsController extends GenericForwardComposer { public void saveAndContinue() { if (save()) { - messagesForUser.showMessage(Level.INFO, _("Materials saved")); + messagesForUser.showMessage(Level.INFO, tr("Materials saved")); // Reload materials and categories, keep track of category currently being selected final Treeitem treeitem = categoriesTree.getSelectedItem(); materialsModel.reloadMaterialCategories(); @@ -390,10 +390,10 @@ public class MaterialsController extends GenericForwardComposer { final Treeitem treeitem = findTreeItemByMaterialCategory(categoriesTree, materialCategory); if (treeitem != null) { if (each.getPropertyPath().equals("name")) { - throw new WrongValueException(getCategoryTextbox(treeitem), _(each.getMessage())); + throw new WrongValueException(getCategoryTextbox(treeitem), tr(each.getMessage())); } if (each.getPropertyPath().equals("code")) { - throw new WrongValueException(getCategoryCodeTextbox(treeitem), _(each.getMessage())); + throw new WrongValueException(getCategoryCodeTextbox(treeitem), tr(each.getMessage())); } } } @@ -458,10 +458,10 @@ public class MaterialsController extends GenericForwardComposer { Treeitem treeitem = categoriesTree.getSelectedItem(); if (treeitem != null) { materialsCaption.setLabel( - _("List of materials for category: {0}", ((MaterialCategory) treeitem.getValue()).getName())); + tr("List of materials for category: {0}", ((MaterialCategory) treeitem.getValue()).getName())); } else { - materialsCaption.setLabel(_("List of materials for all categories (select one to filter)")); + materialsCaption.setLabel(tr("List of materials for all categories (select one to filter)")); } } @@ -490,7 +490,7 @@ public class MaterialsController extends GenericForwardComposer { Util.reloadBindings(gridMaterials); } else { - messagesForUser.showMessage(Level.ERROR, _("Cannot delete that material because it is assigned to a project.")); + messagesForUser.showMessage(Level.ERROR, tr("Cannot delete that material because it is assigned to a project.")); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/materials/MaterialsModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/materials/MaterialsModel.java index 946413a99..09601d8d1 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/materials/MaterialsModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/materials/MaterialsModel.java @@ -22,7 +22,7 @@ package org.libreplan.web.materials; import static org.libreplan.business.common.exceptions.ValidationException.invalidValue; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.Collection; @@ -166,7 +166,7 @@ public class MaterialsModel extends IntegrationEntityModel implements IMaterials Validate.notNull(categoryName); Boolean generateCode = configurationDAO.getConfiguration().getGenerateCodeForMaterialCategories(); - MaterialCategory child = MaterialCategory.createUnvalidated("", _(categoryName)); + MaterialCategory child = MaterialCategory.createUnvalidated("", tr(categoryName)); if ( generateCode ) { setCurrentMaterialCategory(child); setDefaultCode(); @@ -176,7 +176,7 @@ public class MaterialsModel extends IntegrationEntityModel implements IMaterials final MaterialCategory materialCategory = findMaterialCategory(child); if ( materialCategory != null ) { throw new ValidationException(invalidValue( - _("{0} already exists", materialCategory.getName()), + tr("{0} already exists", materialCategory.getName()), "name", materialCategory.getName(), materialCategory)); } @@ -278,7 +278,7 @@ public class MaterialsModel extends IntegrationEntityModel implements IMaterials } private String sameCodeMessage(Material first, Material second) { - return _( + return tr( "both {0} of category {1} and {2} of category {3} have the same code", asStringForUser(first), first.getCategory().getName(), asStringForUser(second), second.getCategory().getName()); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/materials/UnitTypeController.java b/libreplan-webapp/src/main/java/org/libreplan/web/materials/UnitTypeController.java index b3daee4be..e3d3dc701 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/materials/UnitTypeController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/materials/UnitTypeController.java @@ -44,7 +44,7 @@ import org.zkoss.zkplus.spring.SpringUtil; import java.util.ConcurrentModificationException; import java.util.List; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * Controller for the listing and editing unit types. @@ -123,12 +123,12 @@ public class UnitTypeController extends BaseCRUDController { public void validate(Component comp, Object value) { String strValue = (String) value; if (StringUtils.isBlank(strValue)) { - throw new WrongValueException(comp, _("cannot be empty")); + throw new WrongValueException(comp, tr("cannot be empty")); } if (unitTypeModel.existsAnotherUnitTypeWithName(strValue)) { throw new WrongValueException(comp, - _("The meausure name is not valid. There is " + + tr("The meausure name is not valid. There is " + "another unit type with the same " + "measure name")); } @@ -143,12 +143,12 @@ public class UnitTypeController extends BaseCRUDController { public void validate(Component comp, Object value) { String strValue = (String) value; if (StringUtils.isBlank(strValue)) { - throw new WrongValueException(comp, _("cannot be empty")); + throw new WrongValueException(comp, tr("cannot be empty")); } if (unitTypeModel.existsAnotherUnitTypeWithCode(strValue)) { throw new WrongValueException(comp, - _("The code is not valid. There is another " + + tr("The code is not valid. There is another " + "unit type with the same code")); } } @@ -176,12 +176,12 @@ public class UnitTypeController extends BaseCRUDController { @Override protected String getEntityType() { - return _("Material Unit"); + return tr("Material Unit"); } @Override protected String getPluralEntityType() { - return _("Material Units"); + return tr("Material Units"); } @Override diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/montecarlo/MonteCarloController.java b/libreplan-webapp/src/main/java/org/libreplan/web/montecarlo/MonteCarloController.java index 70f7f336a..1bb3d0de1 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/montecarlo/MonteCarloController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/montecarlo/MonteCarloController.java @@ -21,7 +21,7 @@ package org.libreplan.web.montecarlo; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.math.BigDecimal; import java.util.HashMap; @@ -137,11 +137,11 @@ public class MonteCarloController extends GenericForwardComposer { int iterations = ibIterations.getValue() != null ? ibIterations.getValue().intValue() : 0; if ( iterations == 0 ) { - throw new WrongValueException(ibIterations, _("cannot be empty")); + throw new WrongValueException(ibIterations, tr("cannot be empty")); } if ( iterations < 0 || iterations > MAX_NUMBER_ITERATIONS ) { - throw new WrongValueException(ibIterations, _("Number of iterations should be between 1 and {0}", + throw new WrongValueException(ibIterations, tr("Number of iterations should be between 1 and {0}", MAX_NUMBER_ITERATIONS)); } @@ -169,7 +169,7 @@ public class MonteCarloController extends GenericForwardComposer { if ( sum != 100 ) { gridCriticalPathTasks.setActivePage(page); - throw new WrongValueException(row, _("Percentages should sum 100")); + throw new WrongValueException(row, tr("Percentages should sum 100")); } counter++; @@ -268,9 +268,9 @@ public class MonteCarloController extends GenericForwardComposer { Integer iterationNumber = value != null ? (Integer) value : -1; if (iterationNumber == -1) { - throw new WrongValueException(comp, _("cannot be empty")); + throw new WrongValueException(comp, tr("cannot be empty")); } else if (iterationNumber < 1 || iterationNumber > 100_000) { - throw new WrongValueException(comp, _("Number of iterations should be between 1 and {0}", + throw new WrongValueException(comp, tr("Number of iterations should be between 1 and {0}", MAX_NUMBER_ITERATIONS)); } }; diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/montecarlo/MonteCarloModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/montecarlo/MonteCarloModel.java index a1e81e4c2..580ecf324 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/montecarlo/MonteCarloModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/montecarlo/MonteCarloModel.java @@ -21,7 +21,7 @@ package org.libreplan.web.montecarlo; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.math.BigDecimal; import java.math.RoundingMode; @@ -65,7 +65,7 @@ public class MonteCarloModel implements IMonteCarloModel { @Autowired private ITaskElementDAO taskDAO; - private static String criticalPath = _("Critical path"); + private static String criticalPath = tr("Critical path"); private static String defaultCriticalPath = criticalPath + " 1"; diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/AssignedTaskQualityFormsToOrderElementController.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/AssignedTaskQualityFormsToOrderElementController.java index 358f18c58..daa1d0175 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/AssignedTaskQualityFormsToOrderElementController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/AssignedTaskQualityFormsToOrderElementController.java @@ -59,7 +59,7 @@ import java.util.List; import com.libreplan.java.zk.components.customdetailrowcomponent.Detail; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * Controller for showing OrderElement assigned task quality forms. @@ -168,11 +168,11 @@ public class AssignedTaskQualityFormsToOrderElementController extends GenericFor QualityForm qualityForm = (QualityForm) qualityFormFinder.getSelectedElement(); if (qualityForm == null) { - throw new WrongValueException(qualityFormFinder, _("please, select a quality form")); + throw new WrongValueException(qualityFormFinder, tr("please, select a quality form")); } if (checkQualityFormAssigned.isAssigned(qualityForm)) { - throw new WrongValueException(qualityFormFinder, _("already assigned")); + throw new WrongValueException(qualityFormFinder, tr("already assigned")); } qualityFormFinder.clear(); @@ -190,8 +190,8 @@ public class AssignedTaskQualityFormsToOrderElementController extends GenericFor public void confirmRemove(TaskQualityForm taskQualityForm) { int status = Messagebox.show( - _("Confirm deleting {0}. Are you sure?", getTaskQualityFormName(taskQualityForm)), - _(DELETE_ACTION), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION); + tr("Confirm deleting {0}. Are you sure?", getTaskQualityFormName(taskQualityForm)), + tr(DELETE_ACTION), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION); if (Messagebox.OK == status) { deleteTaskQualityForm(taskQualityForm); @@ -268,7 +268,7 @@ public class AssignedTaskQualityFormsToOrderElementController extends GenericFor appendDetails(row, taskQualityForm); appendNewLabel(row, taskQualityForm.getQualityForm().getName()); - appendNewLabel(row, _(taskQualityForm.getQualityForm().getQualityFormType().toString())); + appendNewLabel(row, tr(taskQualityForm.getQualityForm().getQualityFormType().toString())); appendCheckboxReportAdvance(row, taskQualityForm); appendOperations(row); } @@ -299,7 +299,7 @@ public class AssignedTaskQualityFormsToOrderElementController extends GenericFor } catch (DuplicateAdvanceAssignmentForOrderElementException e) { messages.showMessage( Level.ERROR, - _("Another task in the same branch is already reporting progress" + + tr("Another task in the same branch is already reporting progress" + " for this quality form")); tmpCheckbox.setChecked(false); @@ -350,25 +350,25 @@ public class AssignedTaskQualityFormsToOrderElementController extends GenericFor // Add static headers Column columnName = new Column(); - columnName.setLabel(_("Name")); + columnName.setLabel(tr("Name")); Util.setSort(columnName, "auto=(name)"); columnName.setSortDirection(ASCENDING); columns.appendChild(columnName); Column columnPosition = new Column(); - columnPosition.setLabel(_("Position")); + columnPosition.setLabel(tr("Position")); columns.appendChild(columnPosition); Column columnPercentage = new Column(); - columnPercentage.setLabel(_("Percentage")); + columnPercentage.setLabel(tr("Percentage")); columns.appendChild(columnPercentage); Column columnPassed = new Column(); - columnPassed.setLabel(_("Checked")); + columnPassed.setLabel(tr("Checked")); columns.appendChild(columnPassed); Column columnDate = new Column(); - columnDate.setLabel(_("Date")); + columnDate.setLabel(tr("Date")); columns.appendChild(columnDate); columns.setParent(gridItems); @@ -380,7 +380,7 @@ public class AssignedTaskQualityFormsToOrderElementController extends GenericFor buttonRemove.setClass("icono"); buttonRemove.setImage("/common/img/ico_borrar1.png"); buttonRemove.setHoverImage("/common/img/ico_borrar.png"); - buttonRemove.setTooltiptext(_(DELETE_ACTION)); + buttonRemove.setTooltiptext(tr(DELETE_ACTION)); buttonRemove.addEventListener(Events.ON_CLICK, event -> confirmRemove(row.getValue())); } @@ -391,7 +391,7 @@ public class AssignedTaskQualityFormsToOrderElementController extends GenericFor } private void showInformativeMessage(String message) { - Messagebox.show(_(message), _(DELETE_ACTION), Messagebox.OK, Messagebox.ERROR); + Messagebox.show(tr(message), tr(DELETE_ACTION), Messagebox.OK, Messagebox.ERROR); } private class TaskQualityFormItemsRowRenderer implements RowRenderer { @@ -465,11 +465,11 @@ public class AssignedTaskQualityFormsToOrderElementController extends GenericFor if ((value == null) && (!item.isIfDateCanBeNullConstraint())) { item.setDate(null); - throw new WrongValueException(comp, _("date not specified")); + throw new WrongValueException(comp, tr("date not specified")); } if (!assignedTaskQualityFormsToOrderElementModel.isCorrectConsecutiveDate(taskQualityForm, item)) { item.setDate(null); - throw new WrongValueException(comp, _("must be after the previous date")); + throw new WrongValueException(comp, tr("must be after the previous date")); } } }; @@ -562,13 +562,13 @@ public class AssignedTaskQualityFormsToOrderElementController extends GenericFor if (TaskQualityFormItem.propertyDate.equals(propertyName)) { openDetails(rowItem); Datebox datebox = getDatebox(rowItem); - throw new WrongValueException(datebox, _(invalidValue.getMessage())); + throw new WrongValueException(datebox, tr(invalidValue.getMessage())); } if (TaskQualityFormItem.propertyPassed.equals(propertyName)) { openDetails(rowItem); Checkbox checkbox = getCheckbox(rowItem); - throw new WrongValueException(checkbox, _(invalidValue.getMessage())); + throw new WrongValueException(checkbox, tr(invalidValue.getMessage())); } } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/AssignedTaskQualityFormsToOrderElementModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/AssignedTaskQualityFormsToOrderElementModel.java index 2bd3714cc..2492b3247 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/AssignedTaskQualityFormsToOrderElementModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/AssignedTaskQualityFormsToOrderElementModel.java @@ -22,7 +22,7 @@ package org.libreplan.web.orders; import static org.libreplan.business.common.exceptions.ValidationException.invalidValue; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.math.BigDecimal; import java.util.ArrayList; @@ -273,7 +273,7 @@ public class AssignedTaskQualityFormsToOrderElementModel implements IAssignedTas if ((!taskQualityForm.isByItems()) && (!taskQualityForm.isCorrectConsecutivePassed(item))) { throw new ValidationException(invalidValue( - _("cannot be checked until the previous item is checked before"), + tr("cannot be checked until the previous item is checked before"), "passed", item.getName(), taskQualityForm)); @@ -282,7 +282,7 @@ public class AssignedTaskQualityFormsToOrderElementModel implements IAssignedTas if ((!taskQualityForm.isByItems()) && (!taskQualityForm.isCorrectConsecutiveDate(item))) { throw new ValidationException(invalidValue( - _("must be after the previous date"), + tr("must be after the previous date"), "date", item.getName(), taskQualityForm)); @@ -290,7 +290,7 @@ public class AssignedTaskQualityFormsToOrderElementModel implements IAssignedTas if (!item.isIfDateCanBeNullConstraint()) { throw new ValidationException(invalidValue( - _("date not specified"), + tr("date not specified"), "date", item.getName(), taskQualityForm)); @@ -341,7 +341,7 @@ public class AssignedTaskQualityFormsToOrderElementModel implements IAssignedTas } private void showMessageDeleteSpread() throws ValidationException { - throw new ValidationException(_("Quality form cannot be removed as it is spreading progress")); + throw new ValidationException(tr("Quality form cannot be removed as it is spreading progress")); } @Override diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/CriterionRequirementWrapper.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/CriterionRequirementWrapper.java index c1140dc1d..6d41c2886 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/CriterionRequirementWrapper.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/CriterionRequirementWrapper.java @@ -25,7 +25,7 @@ package org.libreplan.web.orders; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import org.libreplan.business.INewObject; import org.libreplan.business.requirements.entities.CriterionRequirement; @@ -43,7 +43,7 @@ import org.libreplan.business.resources.entities.ResourceEnum; */ public class CriterionRequirementWrapper implements INewObject { - private final String DIRECT = _("Direct"); + private final String DIRECT = tr("Direct"); private String type; @@ -84,7 +84,7 @@ public class CriterionRequirementWrapper implements INewObject { } public static String getIndirectTypeLabel() { - return _("Inherited"); + return tr("Inherited"); } public CriterionWithItsType getCriterionWithItsType() { @@ -213,7 +213,7 @@ public class CriterionRequirementWrapper implements INewObject { } public String getLabelValidate() { - return isValid() ? _("Invalidate") : _("Validate"); + return isValid() ? tr("Invalidate") : tr("Validate"); } public boolean isUpdatable(){ diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/DetailsOrderElementController.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/DetailsOrderElementController.java index 705126070..0e0498b95 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/DetailsOrderElementController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/DetailsOrderElementController.java @@ -32,7 +32,7 @@ import org.zkoss.zul.Datebox; import java.util.Date; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * Controller for {@link OrderElement} details. @@ -117,7 +117,7 @@ public class DetailsOrderElementController extends GenericForwardComposer { if ( startBefore2010 ) { initDate.setValue(null); getOrderElement().setInitDate(null); - throw new WrongValueException(comp, _("Must be after 2010!")); + throw new WrongValueException(comp, tr("Must be after 2010!")); } } }; @@ -140,7 +140,7 @@ public class DetailsOrderElementController extends GenericForwardComposer { if ( deadlineBeforeStart ) { deadline.setValue(null); getOrderElement().setDeadline(null); - throw new WrongValueException(comp, _("must be after starting date")); + throw new WrongValueException(comp, tr("must be after starting date")); } } }; diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/DynamicDatebox.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/DynamicDatebox.java index 53fd6a9d5..bcf5df207 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/DynamicDatebox.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/DynamicDatebox.java @@ -21,7 +21,7 @@ package org.libreplan.web.orders; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.text.DateFormat; import java.text.ParseException; @@ -149,7 +149,7 @@ public class DynamicDatebox extends GenericForwardComposer { } catch (ParseException e) { throw new WrongValueException( dateTextBox, - _("Date format is wrong. Please, use the following format: {0}", asString(new Date()))); + tr("Date format is wrong. Please, use the following format: {0}", asString(new Date()))); } } }); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/JiraSynchronizationController.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/JiraSynchronizationController.java index 189b89cac..390051f2a 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/JiraSynchronizationController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/JiraSynchronizationController.java @@ -19,7 +19,7 @@ package org.libreplan.web.orders; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.HashMap; import java.util.LinkedList; @@ -172,10 +172,10 @@ public class JiraSynchronizationController extends GenericForwardComposer { jirasyncPopup.open(syncWithJiraButton, "before_start"); } catch (ConnectorException e) { - messagesForUser.showMessage(Level.ERROR, _("Failed: {0}", e.getMessage())); + messagesForUser.showMessage(Level.ERROR, tr("Failed: {0}", e.getMessage())); } catch (WebApplicationException e) { LOG.info(e); - messagesForUser.showMessage(Level.ERROR, _("Cannot connect to JIRA server")); + messagesForUser.showMessage(Level.ERROR, tr("Cannot connect to JIRA server")); } } @@ -192,7 +192,7 @@ public class JiraSynchronizationController extends GenericForwardComposer { List issues = jiraOrderElementSynchronizer.getJiraIssues(label); if ( issues == null || issues.isEmpty() ) { - messagesForUser.showMessage(Level.ERROR, _("No JIRA issues to import")); + messagesForUser.showMessage(Level.ERROR, tr("No JIRA issues to import")); return; } @@ -219,10 +219,10 @@ public class JiraSynchronizationController extends GenericForwardComposer { orderController.initEdit(order); orderController.selectTab(previousTab.getId()); } catch (ConnectorException e) { - messagesForUser.showMessage(Level.ERROR, _("Failed: {0}", e.getMessage())); + messagesForUser.showMessage(Level.ERROR, tr("Failed: {0}", e.getMessage())); } catch (WebApplicationException e) { LOG.info(e); - messagesForUser.showMessage(Level.ERROR, _("Cannot connect to JIRA server")); + messagesForUser.showMessage(Level.ERROR, tr("Cannot connect to JIRA server")); } } @@ -275,12 +275,12 @@ public class JiraSynchronizationController extends GenericForwardComposer { private void setupJiraSyncPopup(Component comp, ListModel model) { startJiraSyncButton = (Button) comp.getFellow("startJiraSyncButton"); - startJiraSyncButton.setLabel(_("Start sync")); + startJiraSyncButton.setLabel(tr("Start sync")); startJiraSyncButton.addEventListener(Events.ON_CLICK, event -> startSyncWithJira(comboJiraLabel.getValue())); cancelJiraSyncButton = (Button) comp.getFellow("cancelJiraSyncButton"); - cancelJiraSyncButton.setLabel(_("Cancel")); + cancelJiraSyncButton.setLabel(tr("Cancel")); cancelJiraSyncButton.addEventListener(Events.ON_CLICK, event -> jirasyncPopup.close()); comboJiraLabel = (Combobox) comp.getFellowIfAny("comboJiraLabel"); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/ManageOrderElementAdvancesController.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/ManageOrderElementAdvancesController.java index 124580804..7de7c1fe7 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/ManageOrderElementAdvancesController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/ManageOrderElementAdvancesController.java @@ -22,7 +22,7 @@ package org.libreplan.web.orders; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.math.BigDecimal; import java.util.Collections; @@ -137,11 +137,11 @@ public class ManageOrderElementAdvancesController extends GenericForwardComposer private void validate() { if ( !validateDataForm() ) - throw new IllegalSyntaxException(_("values are not valid, the values must not be null")); + throw new IllegalSyntaxException(tr("values are not valid, the values must not be null")); if ( !validateReportGlobalAdvance() ) - throw new IllegalSyntaxException(_("Invalid Spread values. At least one value should be true")); + throw new IllegalSyntaxException(tr("Invalid Spread values. At least one value should be true")); } public boolean save() { @@ -151,9 +151,9 @@ public class ManageOrderElementAdvancesController extends GenericForwardComposer return true; } catch (DuplicateAdvanceAssignmentForOrderElementException e) { - messagesForUser.showMessage(Level.ERROR, _("Cannot create another progress of the same type")); + messagesForUser.showMessage(Level.ERROR, tr("Cannot create another progress of the same type")); } catch (DuplicateValueTrueReportGlobalAdvanceException e) { - messagesForUser.showMessage(Level.ERROR, _("Invalid Spread values. At least one value should be true")); + messagesForUser.showMessage(Level.ERROR, tr("Invalid Spread values. At least one value should be true")); } catch (IllegalSyntaxException e) { messagesForUser.showMessage(Level.ERROR, e.getMessage()); } catch (InstanceNotFoundException e) { @@ -257,7 +257,7 @@ public class ManageOrderElementAdvancesController extends GenericForwardComposer private void showInfoAbout(AdvanceAssignment advance) { if ( manageOrderElementAdvancesModel.isSubcontractedAdvanceTypeAndSubcontractedTask(advance) ) - showErrorMessage(_("Subcontractor values are read only " + + showErrorMessage(tr("Subcontractor values are read only " + "because they were reported by the subcontractor company.")); } @@ -297,7 +297,7 @@ public class ManageOrderElementAdvancesController extends GenericForwardComposer showMessageDeleteSpread(); else if ( manageOrderElementAdvancesModel.hasConsolidatedAdvances(advance) ) - showErrorMessage(_("Progress Assignment cannot be deleted or changed. " + + showErrorMessage(tr("Progress Assignment cannot be deleted or changed. " + "Progress Assignment contains Progress Consolidations values")); else { manageOrderElementAdvancesModel.removeLineAdvanceAssignment(advance); @@ -322,7 +322,7 @@ public class ManageOrderElementAdvancesController extends GenericForwardComposer manageOrderElementAdvancesModel.removeLineAdvanceMeasurement(advance); reloadAdvances(); } else - showErrorMessage(_("Progress Measurement cannot be deleted. Progress Measurement already consolidated")); + showErrorMessage(tr("Progress Measurement cannot be deleted. Progress Measurement already consolidated")); } /** It should be public! */ @@ -330,8 +330,8 @@ public class ManageOrderElementAdvancesController extends GenericForwardComposer String infoAdvanceAssignment = manageOrderElementAdvancesModel.getInfoAdvanceAssignment(); return infoAdvanceAssignment.isEmpty() - ? _("Progress measurements") - : _("Progress measurements") + ": " + infoAdvanceAssignment; + ? tr("Progress measurements") + : tr("Progress measurements") + ": " + infoAdvanceAssignment; } public boolean isReadOnlyAdvanceMeasurements() { @@ -426,7 +426,7 @@ public class ManageOrderElementAdvancesController extends GenericForwardComposer if (manageOrderElementAdvancesModel.hasConsolidatedAdvances(advanceAssignment)) throw new WrongValueException( maxValue, - _("Progress Assignment cannot be deleted or changed. " + + tr("Progress Assignment cannot be deleted or changed. " + "Progress Assignment contains Progress Consolidations values")); else { setPercentage(); @@ -662,19 +662,19 @@ public class ManageOrderElementAdvancesController extends GenericForwardComposer if ( (advance.getAdvanceType() != null) && (advance.getAdvanceType().isQualityForm()) ) { addMeasurementButton.setDisabled(true); - addMeasurementButton.setTooltiptext(_("Progress that are reported by quality forms can not be modified")); + addMeasurementButton.setTooltiptext(tr("Progress that are reported by quality forms can not be modified")); } else if ( (advance.getAdvanceType() != null) && (advance.getAdvanceType().isReadOnly()) ) { addMeasurementButton.setDisabled(true); - addMeasurementButton.setTooltiptext(_("This progress type cannot be modified")); + addMeasurementButton.setTooltiptext(tr("This progress type cannot be modified")); } else if ( advance instanceof IndirectAdvanceAssignment ) { addMeasurementButton.setDisabled(true); - addMeasurementButton.setTooltiptext(_("Calculated progress can not be modified")); + addMeasurementButton.setTooltiptext(tr("Calculated progress can not be modified")); } else if ( readOnly ) { addMeasurementButton.setDisabled(true); - addMeasurementButton.setTooltiptext(_("Subcontractor values are read only " + + addMeasurementButton.setTooltiptext(tr("Subcontractor values are read only " + "because they were reported by the subcontractor company.")); } @@ -690,28 +690,28 @@ public class ManageOrderElementAdvancesController extends GenericForwardComposer if ( (advance.getAdvanceType() != null) && (advance.getAdvanceType().isQualityForm()) ) { removeButton.setDisabled(true); - removeButton.setTooltiptext(_("Progress that are reported by quality forms cannot be modified")); + removeButton.setTooltiptext(tr("Progress that are reported by quality forms cannot be modified")); } else if ( (advance.getAdvanceType() != null) && (advance.getAdvanceType().isReadOnly()) ) { removeButton.setDisabled(true); - removeButton.setTooltiptext(_("This progress type cannot be modified")); + removeButton.setTooltiptext(tr("This progress type cannot be modified")); } else if ( advance instanceof IndirectAdvanceAssignment ) { removeButton.setDisabled(true); - removeButton.setTooltiptext(_("Calculated progress cannot be removed")); + removeButton.setTooltiptext(tr("Calculated progress cannot be removed")); } else if ( manageOrderElementAdvancesModel.hasConsolidatedAdvances(advance) ) { removeButton.setDisabled(true); - removeButton.setTooltiptext(_("Consolidated progress cannot be removed")); + removeButton.setTooltiptext(tr("Consolidated progress cannot be removed")); } else if ( readOnly ) { removeButton.setDisabled(true); - removeButton.setTooltiptext(_("Subcontractor values are read only " + + removeButton.setTooltiptext(tr("Subcontractor values are read only " + "because they were reported by the subcontractor company")); } else if ( manageOrderElementAdvancesModel.hasReportedProgress(advance) ) { removeButton.setDisabled(true); - removeButton.setTooltiptext(_("Advance assignment cannot be removed as " + + removeButton.setTooltiptext(tr("Advance assignment cannot be removed as " + "it has advance measures that have already been reported to the customer")); } @@ -722,7 +722,7 @@ public class ManageOrderElementAdvancesController extends GenericForwardComposer boolean spread = true; if ( manageOrderElementAdvancesModel.hasAnyConsolidatedAdvanceCurrentOrderElement() ) { - showErrorMessage(_("Spread progress cannot be changed " + + showErrorMessage(tr("Spread progress cannot be changed " + "if there is a consolidation in any progress assignment from root task")); spread = false; } else if ( !radioSpreadIsConsolidated() ) @@ -745,7 +745,7 @@ public class ManageOrderElementAdvancesController extends GenericForwardComposer if ( (advance.getReportGlobalAdvance()) && (manageOrderElementAdvancesModel.hasConsolidatedAdvances(advance)) ) { - showErrorMessage(_("Spread progress cannot be changed " + + showErrorMessage(tr("Spread progress cannot be changed " + "if there is a consolidation in any progress assignment")); return true; @@ -781,7 +781,7 @@ public class ManageOrderElementAdvancesController extends GenericForwardComposer (value == null || (BigDecimal.ZERO.compareTo((BigDecimal) value) >= 0)) ){ ((Decimalbox) comp).setValue(advance.getAdvanceType().getDefaultMaxValue());(comp).invalidate(); - throw new WrongValueException(comp, _("The max value must be greater than 0")); + throw new WrongValueException(comp, tr("The max value must be greater than 0")); } }; } @@ -873,7 +873,7 @@ public class ManageOrderElementAdvancesController extends GenericForwardComposer if ( advance != null ) { if (advance.getAdvanceType() == null ) - throw new WrongValueException(getComboboxTypeBy(listItem), _("cannot be empty")); + throw new WrongValueException(getComboboxTypeBy(listItem), tr("cannot be empty")); DirectAdvanceAssignment directAdvanceAssignment; @@ -885,7 +885,7 @@ public class ManageOrderElementAdvancesController extends GenericForwardComposer directAdvanceAssignment = (DirectAdvanceAssignment) advance; if ( directAdvanceAssignment != null && directAdvanceAssignment.getMaxValue() == null ) - throw new WrongValueException(getDecimalboxMaxValueBy(listItem), _("cannot be empty")); + throw new WrongValueException(getDecimalboxMaxValueBy(listItem), tr("cannot be empty")); } } @@ -1004,7 +1004,7 @@ public class ManageOrderElementAdvancesController extends GenericForwardComposer updatesValue(); validateMeasurementValue(decimalbox, decimalbox.getValue()); } else - throw new WrongValueException(decimalbox, _("Progress Measurement cannot be deleted." + + throw new WrongValueException(decimalbox, tr("Progress Measurement cannot be deleted." + " Progress Measurement already consolidated")); }); @@ -1049,7 +1049,7 @@ public class ManageOrderElementAdvancesController extends GenericForwardComposer validateMeasurementDate(date, date.getValue()); setCurrentDate(); } else - throw new WrongValueException(date, _("Progress Measurement cannot be deleted." + + throw new WrongValueException(date, tr("Progress Measurement cannot be deleted." + " Progress Measurement already consolidated")); }); @@ -1085,29 +1085,29 @@ public class ManageOrderElementAdvancesController extends GenericForwardComposer if ( (advance.getAdvanceType() != null) && (advance.getAdvanceType().isQualityForm()) ) { removeButton.setDisabled(true); - removeButton.setTooltiptext(_("Progress measurements that are reported " + + removeButton.setTooltiptext(tr("Progress measurements that are reported " + "by quality forms cannot be removed")); } else if ( (advance.getAdvanceType() != null) && (advance.getAdvanceType().isReadOnly()) ) { removeButton.setDisabled(true); - removeButton.setTooltiptext(_("This progress type cannot cannot be removed")); + removeButton.setTooltiptext(tr("This progress type cannot cannot be removed")); } else if ( advance.isFake() ) { removeButton.setDisabled(true); - removeButton.setTooltiptext(_("Calculated progress measurements cannot be removed") ); + removeButton.setTooltiptext(tr("Calculated progress measurements cannot be removed") ); } else if ( manageOrderElementAdvancesModel.hasConsolidatedAdvances(measure) ) { removeButton.setDisabled(true); - removeButton.setTooltiptext(_("Consolidated progress measurement cannot be removed")); + removeButton.setTooltiptext(tr("Consolidated progress measurement cannot be removed")); } else if ( manageOrderElementAdvancesModel.isAlreadyReportedProgress(measure) ) { removeButton.setDisabled(true); - removeButton.setTooltiptext(_("Values already sent to the customer. Values cannot be changed ")); + removeButton.setTooltiptext(tr("Values already sent to the customer. Values cannot be changed ")); } else if ( isReadOnlyAdvanceMeasurements() ) { removeButton.setDisabled(isReadOnlyAdvanceMeasurements()); - removeButton.setTooltiptext(_("Subcontractor values are read only" + + removeButton.setTooltiptext(tr("Subcontractor values are read only" + " because they were reported by the subcontractor company.")); } @@ -1128,7 +1128,7 @@ public class ManageOrderElementAdvancesController extends GenericForwardComposer } private void showMessagesConsolidation(LocalDate date) { - String message = _("Progress measurement cannot be canged to {0}, because it is consolidated", date); + String message = tr("Progress measurement cannot be canged to {0}, because it is consolidated", date); showErrorMessage(message); } @@ -1136,9 +1136,9 @@ public class ManageOrderElementAdvancesController extends GenericForwardComposer private Button createAddMeasurementButton() { Button addButton = new Button(); - addButton.setLabel(_("Add measure")); + addButton.setLabel(tr("Add measure")); addButton.setClass("add-button"); - addButton.setTooltiptext(_("Add new progress measurement")); + addButton.setTooltiptext(tr("Add new progress measurement")); return addButton; } @@ -1153,7 +1153,7 @@ public class ManageOrderElementAdvancesController extends GenericForwardComposer removeButton.setSclass("icono"); removeButton.setImage("/common/img/ico_borrar1.png"); removeButton.setHoverImage("/common/img/ico_borrar.png"); - removeButton.setTooltiptext(_("Delete")); + removeButton.setTooltiptext(tr("Delete")); return removeButton; } @@ -1163,7 +1163,7 @@ public class ManageOrderElementAdvancesController extends GenericForwardComposer } private void showMessageNotAddMoreAdvances() { - String message = _("All progress types have already been assigned."); + String message = tr("All progress types have already been assigned."); increaseScreenHeight(); messagesForUser.showMessage(Level.ERROR, message); } @@ -1176,7 +1176,7 @@ public class ManageOrderElementAdvancesController extends GenericForwardComposer } private void showMessageDeleteSpread() { - String message = _("Spread progress cannot be removed. Please select another progress as spread."); + String message = tr("Spread progress cannot be removed. Please select another progress as spread."); showErrorMessage(message); } @@ -1187,14 +1187,14 @@ public class ManageOrderElementAdvancesController extends GenericForwardComposer private String validateValueAdvanceMeasurement(AdvanceMeasurement measurement) { if ( manageOrderElementAdvancesModel.greatThanMaxValue(measurement) ) - return _("Value is not valid. It must be smaller than max value"); + return tr("Value is not valid. It must be smaller than max value"); if ( !manageOrderElementAdvancesModel.isPrecisionValid(measurement) ) - return _("Value must be a multiple of the precision value of the progress type: {0}", + return tr("Value must be a multiple of the precision value of the progress type: {0}", manageOrderElementAdvancesModel.getUnitPrecision().stripTrailingZeros().toPlainString()); if ( manageOrderElementAdvancesModel.lessThanPreviousMeasurements() ) - return _("Invalid value. Value must be greater than the value of previous progress."); + return tr("Invalid value. Value must be greater than the value of previous progress."); return null; } @@ -1204,14 +1204,14 @@ public class ManageOrderElementAdvancesController extends GenericForwardComposer measurement.setDate(value); if ( !manageOrderElementAdvancesModel.isDistinctValidDate(value, measurement)) - return _("Invalid date. Date must be unique for this Progress Assignment"); + return tr("Invalid date. Date must be unique for this Progress Assignment"); if ( manageOrderElementAdvancesModel.hasConsolidatedAdvances(measurement) ) measurement.setDate(oldDate); else { manageOrderElementAdvancesModel.sortListAdvanceMeasurement(); if ( manageOrderElementAdvancesModel.lessThanPreviousMeasurements() ) - return _("Invalid value. Value must be greater than the value of previous progress."); + return tr("Invalid value. Value must be greater than the value of previous progress."); } if ( !isReadOnlyAdvanceMeasurements() ) { @@ -1220,10 +1220,10 @@ public class ManageOrderElementAdvancesController extends GenericForwardComposer .getLastConsolidatedMeasurementDate(measurement.getAdvanceAssignment()); if ( consolidatedUntil != null && consolidatedUntil.compareTo(measurement.getDate()) >= 0 ) { - return _("Date is not valid, it must be later than the last progress consolidation"); + return tr("Date is not valid, it must be later than the last progress consolidation"); } if ( manageOrderElementAdvancesModel.isAlreadyReportedProgressWith(value) ) { - return _("Date is not valid, it must be later than the last progress reported to the customer"); + return tr("Date is not valid, it must be later than the last progress reported to the customer"); } } @@ -1284,7 +1284,7 @@ public class ManageOrderElementAdvancesController extends GenericForwardComposer if ( value == null && advanceMeasurement != null ) { advanceMeasurement.setDate(null); ((Datebox) comp).setValue(null); - throw new WrongValueException(comp, _("cannot be empty")); + throw new WrongValueException(comp, tr("cannot be empty")); } else { String errorMessage = validateDateAdvanceMeasurement(new LocalDate(value), advanceMeasurement); @@ -1310,7 +1310,7 @@ public class ManageOrderElementAdvancesController extends GenericForwardComposer ((Decimalbox) comp).setValue((BigDecimal) value); if ( (value) == null ) - throw new WrongValueException(comp, _("cannot be empty")); + throw new WrongValueException(comp, tr("cannot be empty")); else { String errorMessage = validateValueAdvanceMeasurement(advanceMeasurement); if ( errorMessage != null ) diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/ManageOrderElementAdvancesModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/ManageOrderElementAdvancesModel.java index 0f6179a2d..2a6b6c97c 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/ManageOrderElementAdvancesModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/ManageOrderElementAdvancesModel.java @@ -24,7 +24,7 @@ package org.libreplan.web.orders; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.math.BigDecimal; import java.math.RoundingMode; @@ -125,7 +125,7 @@ public class ManageOrderElementAdvancesModel implements IManageOrderElementAdvan if ((assignment.getAdvanceType() == null) || assignment.getMaxValue() == null) { return ""; } - return _("{0} (max: {1})", assignment.getAdvanceType().getUnitName(), assignment.getMaxValue()); + return tr("{0} (max: {1})", assignment.getAdvanceType().getUnitName(), assignment.getMaxValue()); } @Override diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderCRUDController.java index 02bcf9ca3..c3fd0f08d 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderCRUDController.java @@ -116,7 +116,7 @@ import java.util.Map; import java.util.SortedSet; import java.util.TreeSet; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * Controller for CRUD actions. @@ -375,7 +375,7 @@ public class OrderCRUDController extends GenericForwardComposer { saveOrderAndContinueButton.addEventListener(Events.ON_CLICK, event -> saveAndContinue()); cancelEditionButton.addEventListener(Events.ON_CLICK, event -> Messagebox.show( - _("Unsaved changes will be lost. Are you sure?"), _("Confirm exit dialog"), + tr("Unsaved changes will be lost. Are you sure?"), tr("Confirm exit dialog"), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION, evt -> { if ( "onOK".equals(evt.getName()) ) { @@ -441,10 +441,10 @@ public class OrderCRUDController extends GenericForwardComposer { if ( options != null && options.isEmpty() ) { schedulingMode.appendChild(createCombo( - SchedulingMode.FORWARD, _("Forward"), _("Schedule from start to deadline"))); + SchedulingMode.FORWARD, tr("Forward"), tr("Schedule from start to deadline"))); schedulingMode.appendChild(createCombo( - SchedulingMode.BACKWARDS, _("Backwards"), _("Schedule from deadline to start"))); + SchedulingMode.BACKWARDS, tr("Backwards"), tr("Schedule from deadline to start"))); } } @@ -489,13 +489,13 @@ public class OrderCRUDController extends GenericForwardComposer { if (value == null) { if (mode == SchedulingMode.FORWARD) { - throw new WrongValueException(comp, _("Starting date cannot be empty in forward mode")); + throw new WrongValueException(comp, tr("Starting date cannot be empty in forward mode")); } if ( orderModel.isAnyTaskWithConstraint(PositionConstraintType.AS_SOON_AS_POSSIBLE) ) { throw new WrongValueException( comp, - _("Starting date cannot be empty because there is a task with constraint " + + tr("Starting date cannot be empty because there is a task with constraint " + "\"as soon as possible\"")); } } @@ -504,13 +504,13 @@ public class OrderCRUDController extends GenericForwardComposer { deadline.setConstraint((comp, value) -> { if (value == null) { if (mode == SchedulingMode.BACKWARDS) { - throw new WrongValueException(comp, _("Deadline cannot be empty in backwards mode")); + throw new WrongValueException(comp, tr("Deadline cannot be empty in backwards mode")); } if (orderModel.isAnyTaskWithConstraint(PositionConstraintType.AS_LATE_AS_POSSIBLE)) { throw new WrongValueException( comp, - _("Deadline cannot be empty because there is a task with constraint " + + tr("Deadline cannot be empty because there is a task with constraint " + "\"as late as possible\"")); } } @@ -531,7 +531,7 @@ public class OrderCRUDController extends GenericForwardComposer { deadline.setValue(null); getOrder().setDeadline(null); - throw new WrongValueException(comp, _("must be after start date")); + throw new WrongValueException(comp, tr("must be after start date")); } }; } @@ -545,7 +545,7 @@ public class OrderCRUDController extends GenericForwardComposer { initDate.setValue(null); getOrder().setInitDate(null); - throw new WrongValueException(comp, _("must be lower than end date")); + throw new WrongValueException(comp, tr("must be lower than end date")); } }; } @@ -885,7 +885,7 @@ public class OrderCRUDController extends GenericForwardComposer { } } else { Messagebox.show( - _("You don't have read access to this project"), _(INFORMATION), + tr("You don't have read access to this project"), tr(INFORMATION), Messagebox.OK, Messagebox.INFORMATION); goToList(); @@ -1015,7 +1015,7 @@ public class OrderCRUDController extends GenericForwardComposer { if ( orderModel.userCanWrite(order) ) { int status = Messagebox.show( - _("Confirm deleting {0}. Are you sure?", order.getName()), DELETE, + tr("Confirm deleting {0}. Are you sure?", order.getName()), DELETE, Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION); if ( Messagebox.OK == status ) { @@ -1024,7 +1024,7 @@ public class OrderCRUDController extends GenericForwardComposer { } else { Messagebox.show( - _("Not enough permissions to edit this project"), _(INFORMATION), + tr("Not enough permissions to edit this project"), tr(INFORMATION), Messagebox.OK, Messagebox.INFORMATION); } } @@ -1036,7 +1036,7 @@ public class OrderCRUDController extends GenericForwardComposer { messagesForUser.showMessage( Level.ERROR, - _("You can not remove the project \"{0}\" because this one has imputed expense sheets.", + tr("You can not remove the project \"{0}\" because this one has imputed expense sheets.", order.getName())); return; } @@ -1046,15 +1046,15 @@ public class OrderCRUDController extends GenericForwardComposer { messagesForUser.showMessage( Level.ERROR, - _("You can not remove the project \"{0}\" because it has time tracked at some of its tasks", + tr("You can not remove the project \"{0}\" because it has time tracked at some of its tasks", order.getName())); } else { if ( !StringUtils.isBlank(order.getExternalCode()) ) { if ( Messagebox.show( - _("This project is a subcontracted project. If you delete it, " + + tr("This project is a subcontracted project. If you delete it, " + "you won't be able to report progress anymore. Are you sure?"), - _("Confirm"), + tr("Confirm"), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION) == Messagebox.CANCEL ) { return; } @@ -1064,7 +1064,7 @@ public class OrderCRUDController extends GenericForwardComposer { Util.reloadBindings(self); messagesForUser.clearMessages(); - messagesForUser.showMessage(Level.INFO, _("Removed {0}", order.getName())); + messagesForUser.showMessage(Level.INFO, tr("Removed {0}", order.getName())); } } @@ -1078,12 +1078,12 @@ public class OrderCRUDController extends GenericForwardComposer { } else { Messagebox.show( - _("The project has no scheduled elements"), _(INFORMATION), + tr("The project has no scheduled elements"), tr(INFORMATION), Messagebox.OK, Messagebox.INFORMATION); } } else { Messagebox.show( - _("You don't have read access to this project"), _(INFORMATION), + tr("You don't have read access to this project"), tr(INFORMATION), Messagebox.OK, Messagebox.INFORMATION); } } @@ -1111,7 +1111,7 @@ public class OrderCRUDController extends GenericForwardComposer { public void checkUserCanRead(Order order) { if ( !orderModel.userCanRead(order, SecurityUtils.getSessionUserLoginName()) ) { Messagebox.show( - _("Sorry, you do not have permissions to access this project"), _(INFORMATION), + tr("Sorry, you do not have permissions to access this project"), tr(INFORMATION), Messagebox.OK, Messagebox.INFORMATION); } } @@ -1296,7 +1296,7 @@ public class OrderCRUDController extends GenericForwardComposer { appendObject(row, Util.addCurrencySymbol(order.getTotalManualBudget())); appendObject(row, Util.addCurrencySymbol(order.getTotalBudget())); appendObject(row, order.getTotalHours()); - appendObject(row, _(order.getState().toString())); + appendObject(row, tr(order.getState().toString())); appendOperations(row, order); row.setTooltiptext(getTooltipText(order)); @@ -1346,7 +1346,7 @@ public class OrderCRUDController extends GenericForwardComposer { buttonEdit.setSclass(ICONO_CLASS); buttonEdit.setImage("/common/img/ico_editar1.png"); buttonEdit.setHoverImage("/common/img/ico_editar.png"); - buttonEdit.setTooltiptext(_("Edit")); + buttonEdit.setTooltiptext(tr("Edit")); buttonEdit.addEventListener(ON_CLICK_EVENT, event -> goToEditForm(order)); hbox.appendChild(buttonEdit); } @@ -1357,7 +1357,7 @@ public class OrderCRUDController extends GenericForwardComposer { buttonDelete.setSclass(ICONO_CLASS); buttonDelete.setImage("/common/img/ico_borrar1.png"); buttonDelete.setHoverImage("/common/img/ico_borrar.png"); - buttonDelete.setTooltiptext(_(DELETE)); + buttonDelete.setTooltiptext(tr(DELETE)); buttonDelete.addEventListener(ON_CLICK_EVENT, event -> confirmRemove(order)); hbox.appendChild(buttonDelete); } @@ -1368,7 +1368,7 @@ public class OrderCRUDController extends GenericForwardComposer { buttonPlan.setSclass(ICONO_CLASS); buttonPlan.setImage("/common/img/ico_planificador1.png"); buttonPlan.setHoverImage("/common/img/ico_planificador.png"); - buttonPlan.setTooltiptext(_("See scheduling")); + buttonPlan.setTooltiptext(tr("See scheduling")); buttonPlan.addEventListener(ON_CLICK_EVENT, event -> schedule(order)); hbox.appendChild(buttonPlan); } @@ -1378,12 +1378,12 @@ public class OrderCRUDController extends GenericForwardComposer { buttonDerived.setSclass(ICONO_CLASS); buttonDerived.setImage("/common/img/ico_derived1.png"); buttonDerived.setHoverImage("/common/img/ico_derived.png"); - buttonDerived.setTooltiptext(_("Create Template")); + buttonDerived.setTooltiptext(tr("Create Template")); buttonDerived.addEventListener(ON_CLICK_EVENT, event -> createTemplate(order)); if ( !SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_TEMPLATES) ) { buttonDerived.setDisabled(true); - buttonDerived.setTooltiptext(_("Not enough permissions to create templates")); + buttonDerived.setTooltiptext(tr("Not enough permissions to create templates")); } hbox.appendChild(buttonDerived); @@ -1409,7 +1409,7 @@ public class OrderCRUDController extends GenericForwardComposer { if ( (finishDate != null) && (filterStartDate.getRawValue() != null) && (finishDate.compareTo((Date) filterStartDate.getRawValue()) < 0) ) { - throw new WrongValueException(comp, _("must be after start date")); + throw new WrongValueException(comp, tr("must be after start date")); } }; } @@ -1421,7 +1421,7 @@ public class OrderCRUDController extends GenericForwardComposer { if ( (startDate != null) && (filterFinishDate.getRawValue() != null) && (startDate.compareTo((Date) filterFinishDate.getRawValue()) > 0) ) { - throw new WrongValueException(comp, _("must be lower than end date")); + throw new WrongValueException(comp, tr("must be lower than end date")); } }; } @@ -1609,13 +1609,13 @@ public class OrderCRUDController extends GenericForwardComposer { return (comp, value) -> { if ( StringUtils.isBlank((String) value) ) { - throw new WrongValueException(comp, _("cannot be empty")); + throw new WrongValueException(comp, tr("cannot be empty")); } try { Order found = orderDAO.findByNameAnotherTransaction((String) value); if ( !found.getId().equals(getOrder().getId()) ) { - throw new WrongValueException(comp, _("project name already being used")); + throw new WrongValueException(comp, tr("project name already being used")); } } catch (InstanceNotFoundException ignored) {} }; @@ -1625,13 +1625,13 @@ public class OrderCRUDController extends GenericForwardComposer { return (comp, value) -> { if ( StringUtils.isBlank((String) value) ) { - throw new WrongValueException(comp, _("cannot be empty")); + throw new WrongValueException(comp, tr("cannot be empty")); } try { Order found = orderDAO.findByCodeAnotherTransaction((String) value); if ( !found.getId().equals(getOrder().getId()) ) { - throw new WrongValueException(comp, _("project code already being used")); + throw new WrongValueException(comp, tr("project code already being used")); } } catch (InstanceNotFoundException ignored) {} }; @@ -1642,7 +1642,7 @@ public class OrderCRUDController extends GenericForwardComposer { } public String getProjectType() { - return isSubcontractedProject() ? _("Subcontracted by client") : _("Regular project"); + return isSubcontractedProject() ? tr("Subcontracted by client") : tr("Regular project"); } public void setCurrentDeliveryDate(Grid listDeliveryDates) { @@ -1676,7 +1676,7 @@ public class OrderCRUDController extends GenericForwardComposer { public void addAskedEndDate(Datebox newEndDate) { if ( newEndDate == null || newEndDate.getValue() == null ) { - messagesForUser.showMessage(Level.ERROR, _("You must select a valid date. ")); + messagesForUser.showMessage(Level.ERROR, tr("You must select a valid date. ")); return; } @@ -1684,13 +1684,13 @@ public class OrderCRUDController extends GenericForwardComposer { if ( thereIsSomeCommunicationDateEmpty() ) { messagesForUser.showMessage( Level.ERROR, - _("It will only be possible to add an end date if all the exiting ones in the table " + + tr("It will only be possible to add an end date if all the exiting ones in the table " + "have already been sent to the customer.")); return; } if ( orderModel.alreadyExistsRepeatedEndDate(newEndDate.getValue()) ) { - messagesForUser.showMessage(Level.ERROR, _("It already exists a end date with the same date. ")); + messagesForUser.showMessage(Level.ERROR, tr("It already exists a end date with the same date. ")); return; } @@ -1745,7 +1745,7 @@ public class OrderCRUDController extends GenericForwardComposer { deleteButton.setSclass(ICONO_CLASS); deleteButton.setImage("/common/img/ico_borrar1.png"); deleteButton.setHoverImage("/common/img/ico_borrar.png"); - deleteButton.setTooltiptext(_(DELETE)); + deleteButton.setTooltiptext(tr(DELETE)); deleteButton.addEventListener(Events.ON_CLICK, event -> removeAskedEndDate(endDate)); return deleteButton; diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderElementController.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderElementController.java index 592458884..6ca962181 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderElementController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderElementController.java @@ -43,7 +43,7 @@ import org.zkoss.zul.Tab; import org.zkoss.zul.Tabpanel; import org.zkoss.zul.Window; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * Controller for {@link OrderElement} view of {@link Order} entities. @@ -130,7 +130,7 @@ public class OrderElementController extends GenericForwardComposer { name = ": " + getOrderElement().getName(); } - return _("Edit task {0}", name); + return tr("Edit task {0}", name); } public void setupManageOrderElementAdvancesController() { diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderElementTreeController.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderElementTreeController.java index 21364d729..24b6cfa50 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderElementTreeController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderElementTreeController.java @@ -21,7 +21,7 @@ package org.libreplan.web.orders; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.math.BigDecimal; import java.util.ArrayList; @@ -317,7 +317,7 @@ public class OrderElementTreeController extends TreeController { if ( createTemplateButton != null ) { if ( !SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_TEMPLATES) ) { createTemplateButton.setDisabled(true); - createTemplateButton.setTooltiptext(_("Not enough permissions to create templates")); + createTemplateButton.setTooltiptext(tr("Not enough permissions to create templates")); } } } @@ -339,7 +339,7 @@ public class OrderElementTreeController extends TreeController { final Button expandAllButton = new Button(); expandAllButton.setId("expandAllButton"); expandAllButton.setClass("planner-command"); - expandAllButton.setTooltiptext(_("Expand/Collapse all")); + expandAllButton.setTooltiptext(tr("Expand/Collapse all")); expandAllButton.setImage("/common/img/ico_expand.png"); expandAllButton.addEventListener("onClick", event -> { @@ -412,7 +412,7 @@ public class OrderElementTreeController extends TreeController { textBox.setDisabled(true); } - textBox.setConstraint("no empty:" + _("cannot be empty")); + textBox.setConstraint("no empty:" + tr("cannot be empty")); addCell(cssClass, textBox); putNameTextbox(orderElementForThisRow, textBox); } @@ -452,7 +452,7 @@ public class OrderElementTreeController extends TreeController { throw new WrongValueException( comp, - _("Value is not valid.\n Code cannot contain chars like '_' \n " + + tr("Value is not valid.\n Code cannot contain chars like '_' \n " + "and should not be empty")); } }); @@ -536,7 +536,7 @@ public class OrderElementTreeController extends TreeController { return createButton( "/common/img/ico_editar1.png", - _("Edit"), + tr("Edit"), "/common/img/ico_editar.png", "icono", event -> showEditionOrderElement(item)); @@ -678,7 +678,7 @@ public class OrderElementTreeController extends TreeController { } if ( (elem.getLabels() != null) && (!elem.getLabels().isEmpty()) ) { - tooltipText.append(" ").append(_("Labels")).append(":"); + tooltipText.append(" ").append(tr("Labels")).append(":"); tooltipText.append(StringUtils.join(elem.getLabels(), ",")); tooltipText.append("."); } @@ -694,13 +694,13 @@ public class OrderElementTreeController extends TreeController { } if ( !criterionNames.isEmpty() ) { - tooltipText.append(" " + _("Criteria") + ":"); + tooltipText.append(" " + tr("Criteria") + ":"); tooltipText.append(StringUtils.join(criterionNames, ",")); tooltipText.append("."); } } // To calculate other unit advances implement getOtherAdvancesPercentage() - tooltipText.append(" ").append(_("Progress")).append(":").append(elem.getAdvancePercentage()); + tooltipText.append(" ").append(tr("Progress")).append(":").append(elem.getAdvancePercentage()); tooltipText.append("."); return tooltipText.toString(); @@ -747,7 +747,7 @@ public class OrderElementTreeController extends TreeController { (finishDate.compareTo(filterStartDateOrderElement.getValue()) < 0) ) { filterFinishDateOrderElement.setValue(null); - throw new WrongValueException(comp, _("must be after start date")); + throw new WrongValueException(comp, tr("must be after start date")); } }; } @@ -761,7 +761,7 @@ public class OrderElementTreeController extends TreeController { (startDate.compareTo(filterFinishDateOrderElement.getValue()) > 0) ) { filterStartDateOrderElement.setValue(null); - throw new WrongValueException(comp, _("must be lower than end date")); + throw new WrongValueException(comp, tr("must be lower than end date")); } }; } @@ -773,7 +773,7 @@ public class OrderElementTreeController extends TreeController { if ( hasImputedExpenseSheets ) { messagesForUser.showMessage( Level.ERROR, - _("You can not remove the project \"{0}\" because this one has imputed expense sheets.", + tr("You can not remove the project \"{0}\" because this one has imputed expense sheets.", element.getName())); return; } @@ -782,7 +782,7 @@ public class OrderElementTreeController extends TreeController { if ( alreadyInUse ) { messagesForUser.showMessage( Level.ERROR, - _("You cannot remove the task \"{0}\" because it has work reported on it or any of its children", + tr("You cannot remove the task \"{0}\" because it has work reported on it or any of its children", element.getName())); return; } @@ -793,7 +793,7 @@ public class OrderElementTreeController extends TreeController { if ( onlyChildAndParentAlreadyInUseByHoursOrExpenses ) { messagesForUser.showMessage( Level.ERROR, - _("You cannot remove the task \"{0}\" because it is the only child of its parent " + + tr("You cannot remove the task \"{0}\" because it is the only child of its parent " + "and its parent has tracked time or imputed expenses", element.getName())); return; diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderElementTreeModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderElementTreeModel.java index 6b43e19bd..769b99954 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderElementTreeModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderElementTreeModel.java @@ -21,7 +21,7 @@ package org.libreplan.web.orders; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.List; @@ -50,7 +50,7 @@ public class OrderElementTreeModel extends EntitiesTree { protected OrderElement createNewElement() { OrderElement newOrderElement = OrderLine .createOrderLineWithUnfixedPercentage(0); - newOrderElement.setName(_("New task")); + newOrderElement.setName(tr("New task")); return newOrderElement; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderModel.java index 6a8cd1780..74110ee82 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderModel.java @@ -21,7 +21,7 @@ package org.libreplan.web.orders; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.math.BigDecimal; import java.util.ArrayList; @@ -749,16 +749,16 @@ public class OrderModel extends IntegrationEntityModel implements IOrderModel { public String gettooltipText(Order order) { orderDAO.reattachUnmodifiedEntity(order); StringBuilder result = new StringBuilder(); - result.append(_("Progress") + ": ").append(getEstimatedAdvance(order)).append("% , "); - result.append(_("Hours invested")).append(": ").append(getHoursAdvancePercentage(order)).append("%\n"); + result.append(tr("Progress") + ": ").append(getEstimatedAdvance(order)).append("% , "); + result.append(tr("Hours invested")).append(": ").append(getHoursAdvancePercentage(order)).append("%\n"); if (!getDescription(order).equals("")) { - result.append(" , " + _("Description") + ": " + getDescription(order) + "\n"); + result.append(" , " + tr("Description") + ": " + getDescription(order) + "\n"); } String labels = buildLabelsText(order); if (!labels.equals("")) { - result.append(" , " + _("Labels") + ": " + labels); + result.append(" , " + tr("Labels") + ": " + labels); } return result.toString(); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrdersTreeComponent.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrdersTreeComponent.java index 3e2afb111..f2bf2b81d 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrdersTreeComponent.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrdersTreeComponent.java @@ -20,7 +20,7 @@ */ package org.libreplan.web.orders; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.List; @@ -66,14 +66,14 @@ public class OrdersTreeComponent extends TreeComponent { columns.add(codeColumn); columns.add(nameAndDescriptionColumn); - columns.add(new OrdersTreeColumn(_("Hours"), "hours", _("Total task hours")) { + columns.add(new OrdersTreeColumn(tr("Hours"), "hours", tr("Total task hours")) { @Override protected void doCell(OrderElementTreeitemRenderer treeRenderer, OrderElement currentElement) { treeRenderer.addHoursCell(currentElement); } }); - columns.add(new OrdersTreeColumn(_("Budget"), "budget", _("Total task budget")) { + columns.add(new OrdersTreeColumn(tr("Budget"), "budget", tr("Total task budget")) { @Override protected void doCell(OrderElementTreeitemRenderer treeRenderer, OrderElement currentElement) { treeRenderer.addBudgetCell(currentElement); @@ -81,7 +81,7 @@ public class OrdersTreeComponent extends TreeComponent { }); if (resourcesBudgetEnabled) { - columns.add(new OrdersTreeColumn(_("Expenses"), "budget", _("Budget minus resources costs")) { + columns.add(new OrdersTreeColumn(tr("Expenses"), "budget", tr("Budget minus resources costs")) { @Override protected void doCell(OrderElementTreeitemRenderer treeRenderer, OrderElement currentElement) { treeRenderer.addResourcesBudgetCell(currentElement); @@ -90,9 +90,9 @@ public class OrdersTreeComponent extends TreeComponent { } columns.add(new OrdersTreeColumn( - _("Must start after"), + tr("Must start after"), "estimated_init", - _("Estimated start date for the task " + + tr("Estimated start date for the task " + "(press enter in textbox to open calendar popup or type in date directly)")) { @Override @@ -102,9 +102,9 @@ public class OrdersTreeComponent extends TreeComponent { }); columns.add(new OrdersTreeColumn( - _("Deadline"), + tr("Deadline"), "estimated_end", - _("Estimated end date for the task " + + tr("Estimated end date for the task " + "(press enter in textbox to open calendar popup or type in date directly)")) { @Override diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/ProjectDetailsController.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/ProjectDetailsController.java index 0d9b2798c..b30076576 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/ProjectDetailsController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/ProjectDetailsController.java @@ -21,7 +21,7 @@ package org.libreplan.web.orders; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.Date; import java.util.HashMap; @@ -162,11 +162,11 @@ public class ProjectDetailsController extends GenericForwardComposer } private void showWrongValue() { - throw new WrongValueException(initDate, _("cannot be empty")); + throw new WrongValueException(initDate, tr("cannot be empty")); } private void showWrongName() { - throw new WrongValueException(txtName, _("project name already being used")); + throw new WrongValueException(txtName, tr("project name already being used")); } private void close() { @@ -234,7 +234,7 @@ public class ProjectDetailsController extends GenericForwardComposer if ( deadlineBeforeStart ) { deadline.setValue(null); getOrder().setDeadline(null); - throw new WrongValueException(comp, _("must be after start date")); + throw new WrongValueException(comp, tr("must be after start date")); } }; } @@ -250,7 +250,7 @@ public class ProjectDetailsController extends GenericForwardComposer if ( startAfterDeadline ) { initDate.setValue(null); getOrder().setInitDate(null); - throw new WrongValueException(comp, _("must be lower than end date")); + throw new WrongValueException(comp, tr("must be lower than end date")); } Date year2010 = new Date(1262296800000L); @@ -259,7 +259,7 @@ public class ProjectDetailsController extends GenericForwardComposer if ( startBefore2010 ) { initDate.setValue(null); getOrder().setInitDate(null); - throw new WrongValueException(comp, _("Must be after 2010!")); + throw new WrongValueException(comp, tr("Must be after 2010!")); } }; } @@ -296,7 +296,7 @@ public class ProjectDetailsController extends GenericForwardComposer setCodeAutogenerated(true); } generateCode.setDisabled(true); - generateCode.setTooltiptext(_("Set Code as autogenerated to create a new project from templates")); + generateCode.setTooltiptext(tr("Set Code as autogenerated to create a new project from templates")); generateCode.setChecked(true); calculateProjectDates(template); setCalendarFromTemplate(template); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/TimSynchronizationController.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/TimSynchronizationController.java index 637b617e5..59723ad84 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/TimSynchronizationController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/TimSynchronizationController.java @@ -19,7 +19,7 @@ package org.libreplan.web.orders; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.HashMap; import java.util.Map; @@ -135,7 +135,7 @@ class TimSynchronizationController extends GenericForwardComposer { public void startExportToTim() { - txtProductCode.setConstraint("no empty:" + _("cannot be empty")); + txtProductCode.setConstraint("no empty:" + tr("cannot be empty")); try { exportTimesheetsToTim.exportTimesheets(txtProductCode.getValue(), getOrder()); @@ -144,7 +144,7 @@ class TimSynchronizationController extends GenericForwardComposer { shwoImpExpInfo(); } catch (ConnectorException e) { - messagesForUser.showMessage(Level.ERROR, _("Exporting timesheets to Tim failed. Check the Tim connector")); + messagesForUser.showMessage(Level.ERROR, tr("Exporting timesheets to Tim failed. Check the Tim connector")); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/TreeElementOperationsController.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/TreeElementOperationsController.java index 962f4ee85..d7795f64e 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/TreeElementOperationsController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/TreeElementOperationsController.java @@ -28,7 +28,7 @@ import org.zkoss.zul.Messagebox; import org.zkoss.zul.Tree; import org.zkoss.zul.Treeitem; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * Encapsulates the operations (up, down, indent, unindent, etc) for an element of the tree. @@ -49,7 +49,7 @@ public abstract class TreeElementOperationsController { } protected void showSelectAnElementError() { - Messagebox.show(_("Please select a task")); + Messagebox.show(tr("Please select a task")); } protected abstract void showEditElement(Treeitem treeitem); @@ -236,16 +236,16 @@ class OrderElementOperations extends TreeElementOperationsController onAccept()); cancelButton = (Button) getFellow("cancelButton"); - cancelButton.setLabel(_("Cancel")); + cancelButton.setLabel(tr("Cancel")); cancelButton.setClass("add-button"); cancelButton.addEventListener(Events.ON_CLICK, event -> onCancel()); @@ -131,7 +131,7 @@ public class TemplateFinderPopup extends HtmlMacroComponent { popup = (Popup) getFellow("finderPopup"); caption = (Caption) getFellow("finderCaption"); - caption.setLabel(_("Choosing Template")); + caption.setLabel(tr("Choosing Template")); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/criterionrequirements/AssignedCriterionRequirementController.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/criterionrequirements/AssignedCriterionRequirementController.java index e87105fcb..f93e5e642 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/criterionrequirements/AssignedCriterionRequirementController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/criterionrequirements/AssignedCriterionRequirementController.java @@ -21,7 +21,7 @@ package org.libreplan.web.orders.criterionrequirements; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.math.BigDecimal; import java.util.ArrayList; @@ -256,7 +256,7 @@ public abstract class AssignedCriterionRequirementController extends Gener if (combobox.getSelectedItem() != null) { int status = Messagebox.show( - _("Are you sure of changing the resource type? " + + tr("Are you sure of changing the resource type? " + "You will lose the criteria with different resource type."), "Question", Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION); @@ -329,7 +329,7 @@ public abstract class AssignedCriterionRequirementController extends Gener if (row != null) { Bandbox bandType = getBandType(requirementWrapper, row); bandType.setValue(null); - throw new WrongValueException(bandType, _("cannot be empty")); + throw new WrongValueException(bandType, tr("cannot be empty")); } } @@ -408,8 +408,8 @@ public abstract class AssignedCriterionRequirementController extends Gener if (getHoursGroupWrappers().size() < 2) { Messagebox.show( - _("At least one HoursGroup is needed"), - _("Error"), Messagebox.OK, Messagebox.ERROR); + tr("At least one HoursGroup is needed"), + tr("Error"), Messagebox.OK, Messagebox.ERROR); return; } @@ -497,7 +497,7 @@ public abstract class AssignedCriterionRequirementController extends Gener private void showInvalidConstraint(Bandbox bandbox, IllegalStateException e) { bandbox.setValue(""); - throw new WrongValueException(bandbox, _(e.getMessage())); + throw new WrongValueException(bandbox, tr(e.getMessage())); } /** @@ -526,7 +526,7 @@ public abstract class AssignedCriterionRequirementController extends Gener ((OrderLine) getElement()).setWorkHours(intValue); } } catch (IllegalArgumentException e) { - throw new WrongValueException(comp, _(e.getMessage())); + throw new WrongValueException(comp, tr(e.getMessage())); } } }; @@ -538,7 +538,7 @@ public abstract class AssignedCriterionRequirementController extends Gener try { hoursGroupWrapper.setPercentage((BigDecimal) value); } catch (IllegalArgumentException e) { - throw new WrongValueException(comp, _(e.getMessage())); + throw new WrongValueException(comp, tr(e.getMessage())); } }; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/criterionrequirements/AssignedCriterionRequirementModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/criterionrequirements/AssignedCriterionRequirementModel.java index cd70106bc..cc69f82f6 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/criterionrequirements/AssignedCriterionRequirementModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/criterionrequirements/AssignedCriterionRequirementModel.java @@ -21,7 +21,7 @@ package org.libreplan.web.orders.criterionrequirements; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.List; @@ -184,7 +184,7 @@ public abstract class AssignedCriterionRequirementModel implements IAssign // Set generated name int number = (asOrderLine()).getHoursGroups().size() - 1; - newHoursGroup.setCode(_("New hours group ") + number); + newHoursGroup.setCode(tr("New hours group ") + number); return newHoursGroup; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/files/OrderFilesController.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/files/OrderFilesController.java index eb640ec0b..3583976b8 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/files/OrderFilesController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/files/OrderFilesController.java @@ -57,7 +57,7 @@ import java.io.OutputStream; import java.text.SimpleDateFormat; import java.util.Date; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * Controller for managing Order files. @@ -180,7 +180,7 @@ public class OrderFilesController extends GenericForwardComposer { public void confirmRemove(OrderFile file){ int status = Messagebox.show( - _("Confirm deleting this file. Are you sure?"), _("Delete"), + tr("Confirm deleting this file. Are you sure?"), tr("Delete"), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION); if ( Messagebox.OK != status ) { @@ -280,7 +280,7 @@ public class OrderFilesController extends GenericForwardComposer { updateListbox(); } - } else messages.showMessage(Level.ERROR, _("Please, make repository")); + } else messages.showMessage(Level.ERROR, tr("Please, make repository")); } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/labels/AssignedLabelsController.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/labels/AssignedLabelsController.java index c9edd1e3f..c933402bb 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/labels/AssignedLabelsController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/labels/AssignedLabelsController.java @@ -20,7 +20,7 @@ */ package org.libreplan.web.orders.labels; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.List; @@ -81,10 +81,10 @@ public abstract class AssignedLabelsController extends GenericForwardCompo public void onAssignLabel() { Label label = (Label) bdLabels.getSelectedElement(); if (label == null) { - throw new WrongValueException(bdLabels, _("please, select a label")); + throw new WrongValueException(bdLabels, tr("please, select a label")); } if (isAssigned(label)) { - throw new WrongValueException(bdLabels, _("already assigned")); + throw new WrongValueException(bdLabels, tr("already assigned")); } try { assignLabel(label); @@ -103,19 +103,19 @@ public abstract class AssignedLabelsController extends GenericForwardCompo // Check if user has permissions to create labels if (!SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_LABELS)) { throw new WrongValueException(buttonCreateAndAssign, - _("you do not have permissions to create new labels")); + tr("you do not have permissions to create new labels")); } // Check LabelType is not null final Comboitem comboitem = cbLabelType.getSelectedItem(); if (comboitem == null || comboitem.getValue() == null) { - throw new WrongValueException(cbLabelType, _("please, select an item")); + throw new WrongValueException(cbLabelType, tr("please, select an item")); } // Check Label is not null or empty final String labelName = txtLabelName.getValue(); if (labelName == null || labelName.isEmpty()) { - throw new WrongValueException(txtLabelName, _("cannot be empty")); + throw new WrongValueException(txtLabelName, tr("cannot be empty")); } // Label does not exist, create @@ -125,7 +125,7 @@ public abstract class AssignedLabelsController extends GenericForwardCompo label = addLabel(labelName, labelType); } else { if (isAssigned(label)) { - throw new WrongValueException(txtLabelName, _("already assigned")); + throw new WrongValueException(txtLabelName, tr("already assigned")); } } try { diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/materials/AssignedMaterialsController.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/materials/AssignedMaterialsController.java index eb5dd2124..c7c51a1da 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/materials/AssignedMaterialsController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/materials/AssignedMaterialsController.java @@ -58,7 +58,7 @@ import java.util.List; import java.util.Map; import java.util.Set; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * @author Óscar González Fernández @@ -377,8 +377,8 @@ public abstract class AssignedMaterialsController extends GenericForwardCo */ public void showRemoveMaterialAssignmentDlg(A materialAssignment) { int status = Messagebox.show( - _("Delete item {0}. Are you sure?", getMaterial(materialAssignment).getCode()), - _("Delete"), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION); + tr("Delete item {0}. Are you sure?", getMaterial(materialAssignment).getCode()), + tr("Delete"), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION); if ( Messagebox.OK == status ) { removeMaterialAssignment(materialAssignment); @@ -447,11 +447,11 @@ public abstract class AssignedMaterialsController extends GenericForwardCo MessageboxDlg dialogSplitAssignment; final String message = - _("Do you want to split the material assignment {0}?", getMaterial(materialAssignment).getCode()); + tr("Do you want to split the material assignment {0}?", getMaterial(materialAssignment).getCode()); Map args = new HashMap<>(); args.put("message", message); - args.put("title", _("Split new assignment")); + args.put("title", tr("Split new assignment")); args.put("OK", Messagebox.OK); args.put("CANCEL", Messagebox.CANCEL); args.put("icon", Messagebox.QUESTION); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/TaskElementAdapter.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/TaskElementAdapter.java index 6bd7d34be..c7bf16abf 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/TaskElementAdapter.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/TaskElementAdapter.java @@ -21,7 +21,7 @@ package org.libreplan.web.planner; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import static org.libreplan.web.common.Util.addCurrencySymbol; import static org.zkoss.ganttz.data.constraint.ConstraintOnComparableValues.biggerOrEqualThan; import static org.zkoss.ganttz.data.constraint.ConstraintOnComparableValues.equalTo; @@ -795,7 +795,7 @@ public class TaskElementAdapter { forCriterionRepresentations.add(c.getName()); } } else { - forCriterionRepresentations.add(_("All workers")); + forCriterionRepresentations.add(tr("All workers")); } return "[" + StringUtils.join(forCriterionRepresentations, ", ") + "]"; @@ -843,13 +843,13 @@ public class TaskElementAdapter { .append("
"); result - .append(_("Progress")) + .append(tr("Progress")) .append(": ") .append(progressPercentage) .append("% , "); result - .append(_("Hours invested")) + .append(tr("Hours invested")) .append(": ") .append(getHoursAdvanceBarPercentage().multiply(new BigDecimal(100))) .append("%
"); @@ -857,7 +857,7 @@ public class TaskElementAdapter { if ( taskElement.getOrderElement() instanceof Order ) { result - .append(_("State")) + .append(tr("State")) .append(": ") .append(getOrderState()); } else { @@ -868,11 +868,11 @@ public class TaskElementAdapter { String costExpenses = addCurrencySymbol(getExpensesMoneyCost()); result - .append(_("Budget: {0}, Consumed: {1} ({2}%)", + .append(tr("Budget: {0}, Consumed: {1} ({2}%)", budget, moneyCost, getMoneyCostBarPercentage().multiply(new BigDecimal(100)))) .append("
"); - result.append(_("Hours cost: {0}, Expenses cost: {1}", costHours, costExpenses)); + result.append(tr("Hours cost: {0}, Expenses cost: {1}", costHours, costExpenses)); } String labels = buildLabelsText(); @@ -880,7 +880,7 @@ public class TaskElementAdapter { result .append("
") - .append(_("Labels")) + .append(tr("Labels")) .append(": ") .append(labels) .append("
"); @@ -911,7 +911,7 @@ public class TaskElementAdapter { } else { cssClass = "order-closed"; } - return "" + _(state.toString()) + ""; + return "" + tr(state.toString()) + ""; } @Override @@ -1210,14 +1210,14 @@ public class TaskElementAdapter { boolean condition = orderElement.getOrder().getHoursMargin() != null; Integer margin = condition ? orderElement.getOrder().getHoursMargin() : 0; - result.append(_("Hours-status")).append("\n"); + result.append(tr("Hours-status")).append("\n"); - result.append(_("Project margin: {0}% ({1} hours)={2} hours", + result.append(tr("Project margin: {0}% ({1} hours)={2} hours", margin, orderElement.getWorkHours(), orderElement.getWithMarginCalculatedHours())); String totalEffortHours = orderElement.getEffortAsString(); - result.append(_(". Already registered: {0} hours", totalEffortHours)); + result.append(tr(". Already registered: {0} hours", totalEffortHours)); return result.toString(); } @@ -1229,16 +1229,16 @@ public class TaskElementAdapter { Integer margin = condition ? orderElement.getOrder().getBudgetMargin() : 0; - result.append(_("Budget-status")).append("\n"); + result.append(tr("Budget-status")).append("\n"); - result.append(_("Project margin: {0}% ({1})={2}", + result.append(tr("Project margin: {0}% ({1})={2}", margin, addCurrencySymbol(orderElement.getBudget()), addCurrencySymbol(orderElement.getWithMarginCalculatedBudget()))); BigDecimal totalExpense = getTotalExpense(orderElement); - result.append(_(". Already spent: {0}", addCurrencySymbol(totalExpense))); + result.append(tr(". Already spent: {0}", addCurrencySymbol(totalExpense))); return result.toString(); } @@ -1288,7 +1288,7 @@ public class TaskElementAdapter { return DependencyType.END_END; default: - throw new RuntimeException(_("{0} not supported yet", type)); + throw new RuntimeException(tr("{0} not supported yet", type)); } } @@ -1308,7 +1308,7 @@ public class TaskElementAdapter { return Type.END_END; default: - throw new RuntimeException(_("{0} not supported yet", type)); + throw new RuntimeException(tr("{0} not supported yet", type)); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/adaptplanning/AdaptPlanningCommand.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/adaptplanning/AdaptPlanningCommand.java index 74600e140..19743497d 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/adaptplanning/AdaptPlanningCommand.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/adaptplanning/AdaptPlanningCommand.java @@ -18,7 +18,7 @@ */ package org.libreplan.web.planner.adaptplanning; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.Date; import java.util.List; @@ -57,7 +57,7 @@ public class AdaptPlanningCommand implements IAdaptPlanningCommand { @Override public String getName() { - return _("Adapt planning according to timesheets"); + return tr("Adapt planning according to timesheets"); } @Override @@ -67,7 +67,7 @@ public class AdaptPlanningCommand implements IAdaptPlanningCommand { @Override public String getName() { - return _("Adapting planning according to timesheets"); + return tr("Adapting planning according to timesheets"); } @Override diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/advances/AdvanceAssignmentPlanningCommand.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/advances/AdvanceAssignmentPlanningCommand.java index 230a8a615..ead6cea84 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/advances/AdvanceAssignmentPlanningCommand.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/advances/AdvanceAssignmentPlanningCommand.java @@ -21,7 +21,7 @@ package org.libreplan.web.planner.advances; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import org.libreplan.business.planner.entities.Task; import org.libreplan.business.planner.entities.TaskElement; @@ -66,7 +66,7 @@ public class AdvanceAssignmentPlanningCommand implements IAdvanceAssignmentPlann @Override public String getName() { - return _("Progress assignment"); + return tr("Progress assignment"); } @Override diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/AdvancedAllocationCommand.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/AdvancedAllocationCommand.java index 886633ea8..cdd96472c 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/AdvancedAllocationCommand.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/AdvancedAllocationCommand.java @@ -19,7 +19,7 @@ package org.libreplan.web.planner.allocation; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import org.libreplan.business.planner.entities.Task; import org.libreplan.business.planner.entities.TaskElement; @@ -44,7 +44,7 @@ public class AdvancedAllocationCommand implements IAdvancedAllocationCommand { @Override public String getName() { - return _("Advanced allocation"); + return tr("Advanced allocation"); } @Override diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/AdvancedAllocationController.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/AdvancedAllocationController.java index 62e571e5a..2b4452782 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/AdvancedAllocationController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/AdvancedAllocationController.java @@ -21,7 +21,7 @@ package org.libreplan.web.planner.allocation; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.Arrays; @@ -761,7 +761,7 @@ public class AdvancedAllocationController extends GenericForwardComposer { for (AllocationInput allocationInput : allocationInputs) allocationInput.getResultReceiver().accepted(allocationInput.getAggregate()); - Messagebox.show(_("Changes applied"), _("Information"), Messagebox.OK, Messagebox.INFORMATION); + Messagebox.show(tr("Changes applied"), tr("Information"), Messagebox.OK, Messagebox.INFORMATION); } /** @@ -1010,7 +1010,7 @@ public class AdvancedAllocationController extends GenericForwardComposer { private List getColumnsForLeft() { List result = new ArrayList<>(); - result.add(new ColumnOnRow(_("Name")) { + result.add(new ColumnOnRow(tr("Name")) { @Override public Component cellFor(Row row) { @@ -1018,14 +1018,14 @@ public class AdvancedAllocationController extends GenericForwardComposer { } }); - result.add(new ColumnOnRow(_("Efforts"), "52px") { + result.add(new ColumnOnRow(tr("Efforts"), "52px") { @Override public Component cellFor(Row row) { return row.getAllEffort(); } }); - result.add(new ColumnOnRow(_("Function"), "130px") { + result.add(new ColumnOnRow(tr("Function"), "130px") { @Override public Component cellFor(Row row) { return row.getFunction(); @@ -1104,7 +1104,7 @@ abstract class ColumnOnRow implements IConvertibleToColumn { @Override public Column toColumn() { Column column = new Column(); - column.setLabel(_(columnName)); + column.setLabel(tr(columnName)); column.setSclass(columnName.toLowerCase()); if ( width != null ) @@ -1259,7 +1259,7 @@ class Row { @Override protected String getTitle() { - return _("Stretches list"); + return tr("Stretches list"); } @Override @@ -1282,7 +1282,7 @@ class Row { @Override protected String getTitle() { - return _("Stretches with Interpolation"); + return tr("Stretches with Interpolation"); } @Override @@ -1514,7 +1514,7 @@ class Row { return new Label(); else if ( isLimiting ) - return new Label(_("Queue-based assignment")); + return new Label(tr("Queue-based assignment")); else { if ( hboxAssignmentFunctionsCombo == null ) @@ -1571,7 +1571,7 @@ class Row { } private Listitem listItem(IAssignmentFunctionConfiguration assignmentFunction) { - Listitem listitem = new Listitem(_(assignmentFunction.getName())); + Listitem listitem = new Listitem(tr(assignmentFunction.getName())); listitem.setValue(assignmentFunction); return listitem; @@ -1617,13 +1617,13 @@ class Row { private void showCannotApplySigmoidFunction() { Messagebox.show( - _("Task contains consolidated progress. Cannot apply sigmoid function."), _("Error"), + tr("Task contains consolidated progress. Cannot apply sigmoid function."), tr("Error"), Messagebox.OK, Messagebox.ERROR); } private int showConfirmChangeFunctionDialog() throws InterruptedException { return Messagebox.show( - _("Assignment function will be changed. Are you sure?"), _("Confirm change"), + tr("Assignment function will be changed. Are you sure?"), tr("Confirm change"), Messagebox.YES | Messagebox.NO, Messagebox.QUESTION); } @@ -1656,10 +1656,10 @@ class Row { private void updateAssignmentFunctionsConfigureButton(Button button, boolean configurable) { if ( configurable ) { - button.setTooltiptext(_("Configure")); + button.setTooltiptext(tr("Configure")); button.setDisabled(false); } else { - button.setTooltiptext(_("Not configurable")); + button.setTooltiptext(tr("Not configurable")); button.setDisabled(true); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/AllocationRow.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/AllocationRow.java index 637b577e3..952823c17 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/AllocationRow.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/AllocationRow.java @@ -82,7 +82,7 @@ import java.util.List; import com.libreplan.java.zk.components.customdetailrowcomponent.Detail; import static org.libreplan.business.workingday.EffortDuration.zero; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * It connects the GUI widgets of the allocation row in the GUI with the @@ -409,7 +409,7 @@ public abstract class AllocationRow { AssignmentFunction function = getAssignmentFunction(); if (function != null) { - Listitem listitem = new Listitem(_(function.getName())); + Listitem listitem = new Listitem(tr(function.getName())); listitem.setDisabled(true); assignmentFunctionListbox.appendChild(listitem); assignmentFunctionListbox.setSelectedItem(listitem); @@ -417,7 +417,7 @@ public abstract class AllocationRow { } private void initializeAndAppendFlatFunction() { - Listitem listitem = new Listitem(_(AssignmentFunctionName.FLAT.toString())); + Listitem listitem = new Listitem(tr(AssignmentFunctionName.FLAT.toString())); assignmentFunctionListbox.getChildren().clear(); assignmentFunctionListbox.appendChild(listitem); assignmentFunctionListbox.setSelectedItem(listitem); @@ -442,7 +442,7 @@ public abstract class AllocationRow { private void onDifferentRealResourcesPerDay(ResourcesPerDay realResourcesPerDay) { this.realResourcesPerDay.setSclass("assigned-resources-label"); - this.realResourcesPerDay.setTooltiptext(_( + this.realResourcesPerDay.setTooltiptext(tr( "Only {0} resources per day were achieved for current allocation", realResourcesPerDay.getAmount().toPlainString())); @@ -625,7 +625,7 @@ public abstract class AllocationRow { @Override public Void onHours(EffortModification modification) { EffortDuration goal = modification.getEffort(); - Clients.response(new AuWrongValue(effortInput, _("{0} cannot be fulfilled", goal.toFormattedString()))); + Clients.response(new AuWrongValue(effortInput, tr("{0} cannot be fulfilled", goal.toFormattedString()))); return null; } @@ -811,7 +811,7 @@ public abstract class AllocationRow { AvailabilityTimeLine otherAvailability = result.getSpecifiedAdditionalAvailability(); if (calendarValidPeriods.isEmpty()) { - throw new WrongValueException(row, _("there are no valid periods for this calendar")); + throw new WrongValueException(row, tr("there are no valid periods for this calendar")); } else if (otherAvailability.getValidPeriods().isEmpty()) { throw new WrongValueException(row, allocationAttempt.getNoValidPeriodsMessage()); } else { @@ -825,23 +825,23 @@ public abstract class AllocationRow { EffortDuration sumReached = result.getSumReached(); List validPeriods = result.getValidPeriods(); - String firstLine = _( + String firstLine = tr( "In the available periods {0} only {1} hours are available.", validPeriods, sumReached.getHours()); String secondLine = isGeneric() - ? _("Periods available depend on the satisfaction of " + + ? tr("Periods available depend on the satisfaction of " + "the criteria of resources and their calendars.") - : _("Periods available depend on resources' calendar."); + : tr("Periods available depend on resources' calendar."); throw new WrongValueException(effortInput, firstLine + "\n" + secondLine); } @Override public Void on(ResourcesPerDayIsZero result) { - throw new WrongValueException(intendedResourcesPerDayInput, _("Resources per day are zero")); + throw new WrongValueException(intendedResourcesPerDayInput, tr("Resources per day are zero")); } }); } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/FormBinder.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/FormBinder.java index b3925ccc6..12920aadf 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/FormBinder.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/FormBinder.java @@ -23,7 +23,7 @@ package org.libreplan.web.planner.allocation; import static org.libreplan.business.workingday.EffortDuration.hours; import static org.libreplan.business.workingday.EffortDuration.zero; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import static org.libreplan.web.planner.allocation.AllocationRow.assignEfforts; import static org.libreplan.web.planner.allocation.AllocationRow.sumAllEffortFromInputs; import static org.libreplan.web.planner.allocation.AllocationRow.sumAllOriginalEffort; @@ -336,7 +336,7 @@ public class FormBinder { Clients.response(new AuWrongValue( taskWorkableDays, - _("The original workable days value {0} cannot be modified as it has consolidations", + tr("The original workable days value {0} cannot be modified as it has consolidations", specifiedWorkableDays)) ); taskWorkableDays.setValue(effectiveWorkableDays); @@ -631,13 +631,13 @@ public class FormBinder { } void markAssignedHoursMustBePositive() { - throw new WrongValueException(effortInput, _("it must be greater than zero")); + throw new WrongValueException(effortInput, tr("it must be greater than zero")); } void markRepeatedResources(List resources) { messagesForUser.showMessage( Level.ERROR, - _("{0} already assigned to resource allocation list", + tr("{0} already assigned to resource allocation list", StringUtils.join(getResourcesDescriptions(resources), ", "))); } @@ -652,18 +652,18 @@ public class FormBinder { void markNoResourcesMatchedByCriterions(ResourceEnum resourceType, Collection criterions) { messagesForUser.showMessage(Level.ERROR, - _("there are no resources for required criteria: {0}. So the generic allocation can't be added", + tr("there are no resources for required criteria: {0}. So the generic allocation can't be added", Criterion.getCaptionFor(resourceType, criterions))); } void markThereisAlreadyAssignmentWith(ResourceEnum resourceType, Collection criterions) { messagesForUser.showMessage(Level.ERROR, - _("already exists an allocation for criteria {0}", Criterion.getCaptionFor(resourceType, criterions))); + tr("already exists an allocation for criteria {0}", Criterion.getCaptionFor(resourceType, criterions))); } void markNoEmptyResourcesPerDay(List rows) { Validate.isTrue(!rows.isEmpty()); - final String message = _("resources per day cannot be empty or less than zero"); + final String message = tr("resources per day cannot be empty or less than zero"); if ( !recommendedAllocation ) { AllocationRow first = rows.get(0); throw new WrongValueException(first.getIntendedResourcesPerDayInput(), message); @@ -896,7 +896,7 @@ public class FormBinder { public void cannotAllocateMoreThanOneResource(List resources) { messagesForUser.showMessage(Level.ERROR, - _("{0} could not be allocated. " + "Cannot allocate more than one resource", + tr("{0} could not be allocated. " + "Cannot allocate more than one resource", Resource.getCaptionFor(resources))); } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/GenericAllocationRow.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/GenericAllocationRow.java index c8ed1146e..c743e8d88 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/GenericAllocationRow.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/GenericAllocationRow.java @@ -21,7 +21,7 @@ package org.libreplan.web.planner.allocation; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.Collection; @@ -52,7 +52,7 @@ public class GenericAllocationRow extends AllocationRow { private static GenericAllocationRow initializeDefault( GenericAllocationRow result, ResourceEnum resourceType) { Validate.notNull(resourceType); - result.setName(_("Generic")); + result.setName(tr("Generic")); result.resourceType = resourceType; return result; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/ResourceAllocationCommand.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/ResourceAllocationCommand.java index e6ea85c99..684b0ce3f 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/ResourceAllocationCommand.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/ResourceAllocationCommand.java @@ -21,7 +21,7 @@ package org.libreplan.web.planner.allocation; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import org.libreplan.business.planner.entities.Task; import org.libreplan.business.planner.entities.TaskElement; @@ -68,7 +68,7 @@ public class ResourceAllocationCommand implements IResourceAllocationCommand { @Override public String getName() { - return _("Resource allocation"); + return tr("Resource allocation"); } @Override diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/ResourceAllocationController.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/ResourceAllocationController.java index e1ff55c77..aeecfa804 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/ResourceAllocationController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/ResourceAllocationController.java @@ -21,7 +21,7 @@ package org.libreplan.web.planner.allocation; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.Arrays; @@ -287,7 +287,7 @@ public class ResourceAllocationController extends GenericForwardComposer { case MACHINE: case WORKER: - return _(resourceType.getDisplayName()); + return tr(resourceType.getDisplayName()); default: LOG.warn("no i18n for " + resourceType.name()); @@ -365,7 +365,7 @@ public class ResourceAllocationController extends GenericForwardComposer { WORKABLE_DAYS(CalculatedValue.END_DATE) { @Override public String getName() { - return _("Calculate Workable Days"); + return tr("Calculate Workable Days"); } @Override @@ -377,7 +377,7 @@ public class ResourceAllocationController extends GenericForwardComposer { NUMBER_OF_HOURS(CalculatedValue.NUMBER_OF_HOURS) { @Override public String getName() { - return _("Calculate Number of Hours"); + return tr("Calculate Number of Hours"); } @Override @@ -389,7 +389,7 @@ public class ResourceAllocationController extends GenericForwardComposer { RESOURCES_PER_DAY(CalculatedValue.RESOURCES_PER_DAY) { @Override public String getName() { - return _("Calculate Resources per Day"); + return tr("Calculate Resources per Day"); } @Override @@ -435,21 +435,21 @@ public class ResourceAllocationController extends GenericForwardComposer { } public enum DerivedAllocationColumn implements IConvertibleToColumn { - NAME(_("Name")) { + NAME(tr("Name")) { @Override public Component cellFor(DerivedAllocation data) { return new Label(data.getName()); } }, - ALPHA(_("Alpha")) { + ALPHA(tr("Alpha")) { @Override public Component cellFor(DerivedAllocation data) { return new Label(String.format("%3.2f", data.getAlpha())); } }, - HOURS(_("Total Hours")) { + HOURS(tr("Total Hours")) { @Override public Component cellFor(DerivedAllocation data) { return new Label(Integer.toString(data.getHours())); @@ -468,12 +468,12 @@ public class ResourceAllocationController extends GenericForwardComposer { /** * Forces to mark the string as needing translation. */ - private static String _(String string) { + private static String tr(String string) { return string; } public String getName() { - return I18nHelper._(name); + return I18nHelper.tr(name); } @Override @@ -605,7 +605,7 @@ public class ResourceAllocationController extends GenericForwardComposer { private void renderAggregatingRow(Row row) { ResourceAllocationController controller = ResourceAllocationController.this; append(row, new Label()); - append(row, new Label(_("Total"))); + append(row, new Label(tr("Total"))); append(row, allOriginalEffort); append(row, allTotalEffort); append(row, allConsolidatedEffort); @@ -626,7 +626,7 @@ public class ResourceAllocationController extends GenericForwardComposer { button.setSclass("icono"); button.setImage("/common/img/ico_borrar1.png"); button.setHoverImage("/common/img/ico_borrar.png"); - button.setTooltiptext(_("Delete")); + button.setTooltiptext(tr("Delete")); return append(row, button); } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/stretches/StretchesFunctionController.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/stretches/StretchesFunctionController.java index a8a98e3e8..29ffe05e9 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/stretches/StretchesFunctionController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/stretches/StretchesFunctionController.java @@ -21,7 +21,7 @@ package org.libreplan.web.planner.allocation.stretches; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.math.BigDecimal; import java.math.RoundingMode; @@ -118,13 +118,13 @@ public class StretchesFunctionController extends GenericForwardComposer { stretchesFunctionModel.confirm(); exit(); } catch (ValidationException e) { - Messagebox.show(e.getMessage(), _("Error"), Messagebox.OK, Messagebox.ERROR); + Messagebox.show(e.getMessage(), tr("Error"), Messagebox.OK, Messagebox.ERROR); } } public void cancel() throws InterruptedException { - int status = Messagebox.show(_("All changes will be lost. Are you sure?"), - _("Confirm cancel"), Messagebox.YES | Messagebox.NO, Messagebox.QUESTION); + int status = Messagebox.show(tr("All changes will be lost. Are you sure?"), + tr("Confirm cancel"), Messagebox.YES | Messagebox.NO, Messagebox.QUESTION); if ( Messagebox.YES == status ) { stretchesFunctionModel.cancel(); close(); @@ -325,7 +325,7 @@ public class StretchesFunctionController extends GenericForwardComposer { private void checkBetweenZeroAndOneHundred(BigDecimal percent) { if (percent.toBigInteger().intValue() > 100 || percent.toBigInteger().intValue() < 0) { throw new WrongValueException(tempDecimalbox, - _("Length percentage should be between 0 and 100")); + tr("Length percentage should be between 0 and 100")); } } @@ -364,7 +364,7 @@ public class StretchesFunctionController extends GenericForwardComposer { } catch (IllegalArgumentException e) { throw new WrongValueException( decimalBox, - _("Amount work percentage should be between 0 and 100")); + tr("Amount work percentage should be between 0 and 100")); } }); @@ -384,7 +384,7 @@ public class StretchesFunctionController extends GenericForwardComposer { button = new Button("", "/common/img/ico_borrar1.png"); button.setHoverImage("/common/img/ico_borrar.png"); button.setSclass("icono"); - button.setTooltiptext(_("Delete")); + button.setTooltiptext(tr("Delete")); button.addEventListener(Events.ON_CLICK, event -> { stretchesFunctionModel.removeStretch(stretch); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/stretches/StretchesFunctionModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/stretches/StretchesFunctionModel.java index d9392626c..f8cca2ce3 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/stretches/StretchesFunctionModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/stretches/StretchesFunctionModel.java @@ -21,7 +21,7 @@ package org.libreplan.web.planner.allocation.stretches; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.math.BigDecimal; import java.text.DateFormat; @@ -162,21 +162,21 @@ public class StretchesFunctionModel implements IStretchesFunctionModel { if (stretchesFunction != null) { if (!stretchesFunction.isNoEmptyConstraint()) { throw new ValidationException( - _("At least one stretch is needed")); + tr("At least one stretch is needed")); } if (!stretchesFunction.isStretchesOrderConstraint()) { throw new ValidationException( - _("Some stretch has higher or equal values than the " + tr("Some stretch has higher or equal values than the " + "previous stretch")); } if (!stretchesFunction.isOneHundredPercentConstraint()) { throw new ValidationException( - _("Last stretch should have 100% for length and amount of work")); + tr("Last stretch should have 100% for length and amount of work")); } if (stretchesFunction.isInterpolated()) { if (!stretchesFunction.checkHasAtLeastTwoStretches()) { throw new ValidationException( - _("There must be at least 2 stretches for doing interpolation")); + tr("There must be at least 2 stretches for doing interpolation")); } } if (originalStretchesFunction != null) { @@ -275,13 +275,13 @@ public class StretchesFunctionModel implements IStretchesFunctionModel { throws IllegalArgumentException { if (date.compareTo(task.getStartDate()) < 0) { throw new IllegalArgumentException( - _("Stretch date must not be before task start date: " + tr("Stretch date must not be before task start date: " + sameFormatAsDefaultZK(task.getStartDate()))); } if (date.compareTo(taskEndDate) > 0) { throw new IllegalArgumentException( - _("Stretch date must be earlier than End date: " + tr("Stretch date must be earlier than End date: " + sameFormatAsDefaultZK(taskEndDate))); } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/calendar/CalendarAllocationCommand.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/calendar/CalendarAllocationCommand.java index 2a7a10916..ef0347eff 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/calendar/CalendarAllocationCommand.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/calendar/CalendarAllocationCommand.java @@ -21,7 +21,7 @@ package org.libreplan.web.planner.calendar; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import org.libreplan.business.planner.entities.Task; import org.libreplan.business.planner.entities.TaskElement; @@ -52,7 +52,7 @@ public class CalendarAllocationCommand implements ICalendarAllocationCommand { @Override public String getName() { - return _("Calendar allocation"); + return tr("Calendar allocation"); } @Override diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/chart/EarnedValueChartFiller.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/chart/EarnedValueChartFiller.java index 069cf8fbd..f81488a29 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/chart/EarnedValueChartFiller.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/chart/EarnedValueChartFiller.java @@ -242,23 +242,23 @@ public abstract class EarnedValueChartFiller extends ChartFiller { */ public enum EarnedValueType { - BCWS(_("BCWS"), _("Budgeted Cost Work Scheduled"), "#0000FF"), ACWP( - _("ACWP"), _("Actual Cost Work Performed"), "#FF0000"), BCWP( - _("BCWP"), _("Budgeted Cost Work Performed"), "#00FF00"), CV( - _("CV"), _("Cost Variance"), "#FF8800"), SV(_("SV"), - _("Schedule Variance"), "#00FFFF"), BAC(_("BAC"), - _("Budget At Completion"), "#FF00FF"), EAC(_("EAC"), - _("Estimate At Completion"), "#880000"), VAC(_("VAC"), - _("Variance At Completion"), "#000088"), ETC(_("ETC"), - _("Estimate To Complete"), "#008800"), CPI(_("CPI"), - _("Cost Performance Index"), "#888800"), SPI(_("SPI"), - _("Schedule Performance Index"), "#008888") + BCWS(tr("BCWS"), tr("Budgeted Cost Work Scheduled"), "#0000FF"), ACWP( + tr("ACWP"), tr("Actual Cost Work Performed"), "#FF0000"), BCWP( + tr("BCWP"), tr("Budgeted Cost Work Performed"), "#00FF00"), CV( + tr("CV"), tr("Cost Variance"), "#FF8800"), SV(tr("SV"), + tr("Schedule Variance"), "#00FFFF"), BAC(tr("BAC"), + tr("Budget At Completion"), "#FF00FF"), EAC(tr("EAC"), + tr("Estimate At Completion"), "#880000"), VAC(tr("VAC"), + tr("Variance At Completion"), "#000088"), ETC(tr("ETC"), + tr("Estimate To Complete"), "#008800"), CPI(tr("CPI"), + tr("Cost Performance Index"), "#888800"), SPI(tr("SPI"), + tr("Schedule Performance Index"), "#008888") ; /** * Forces to mark the string as needing translation */ - private static String _(String string) { + private static String tr(String string) { return string; } @@ -273,11 +273,11 @@ public abstract class EarnedValueChartFiller extends ChartFiller { } public String getAcronym() { - return I18nHelper._(acronym); + return I18nHelper.tr(acronym); } public String getName() { - return I18nHelper._(name); + return I18nHelper.tr(name); } public String getColor() { diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/company/CompanyPlanningController.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/company/CompanyPlanningController.java index 828d82c50..b8394d8b1 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/company/CompanyPlanningController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/company/CompanyPlanningController.java @@ -21,7 +21,7 @@ package org.libreplan.web.planner.company; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.Date; @@ -241,7 +241,7 @@ public class CompanyPlanningController implements Composer { public void render(Comboitem item, Object data, int i) { final ProgressType progressType = (ProgressType) data; item.setValue(progressType); - item.setLabel(_(progressType.getValue())); + item.setLabel(tr(progressType.getValue())); ProgressType configuredProgressType = getProgressTypeFromConfiguration(); if ( (configuredProgressType != null) && configuredProgressType.equals(progressType) ) { @@ -290,7 +290,7 @@ public class CompanyPlanningController implements Composer { (finishDate.compareTo((Date) filterStartDate.getRawValue()) < 0)) { filterFinishDate.setValue(null); - throw new WrongValueException(comp, _("must be after start date")); + throw new WrongValueException(comp, tr("must be after start date")); } } }; @@ -306,7 +306,7 @@ public class CompanyPlanningController implements Composer { (startDate.compareTo((Date) filterFinishDate.getRawValue()) > 0)) { filterStartDate.setValue(null); - throw new WrongValueException(comp, _("must be lower than end date")); + throw new WrongValueException(comp, tr("must be lower than end date")); } } }; diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/company/CompanyPlanningModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/company/CompanyPlanningModel.java index 648189be3..4a0862b5e 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/company/CompanyPlanningModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/company/CompanyPlanningModel.java @@ -21,7 +21,7 @@ package org.libreplan.web.planner.company; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.io.IOException; import java.io.StringWriter; @@ -344,8 +344,8 @@ public class CompanyPlanningModel implements ICompanyPlanningModel { private void appendTabs(Tabbox chartComponent) { Tabs chartTabs = new Tabs(); - chartTabs.appendChild(new Tab(_("Load"))); - chartTabs.appendChild(new Tab(_("Earned value"))); + chartTabs.appendChild(new Tab(tr("Load"))); + chartTabs.appendChild(new Tab(tr("Earned value"))); chartComponent.appendChild(chartTabs); chartTabs.setWidth("124px"); @@ -385,7 +385,7 @@ public class CompanyPlanningModel implements ICompanyPlanningModel { Date today = LocalDate.fromDateFields(new Date()).toDateTimeAtStartOfDay().toDate(); if ( value != null && (value.compareTo(today) > 0) ) { - throw new WrongValueException(datebox, _("date in the future")); + throw new WrongValueException(datebox, tr("date in the future")); } } @@ -439,7 +439,7 @@ public class CompanyPlanningModel implements ICompanyPlanningModel { vbox.setPack(CENTER); Hbox dateHbox = new Hbox(); - dateHbox.appendChild(new Label(_("Select date"))); + dateHbox.appendChild(new Label(tr("Select date"))); LocalDate initialDate = earnedValueChartFiller.initialDateForIndicatorValues(); Datebox datebox = new Datebox(initialDate.toDateTimeAtStartOfDay().toDate()); @@ -535,7 +535,7 @@ public class CompanyPlanningModel implements ICompanyPlanningModel { ? earnedValueChartFiller.getIndicator(type, date) : BigDecimal.ZERO; - String units = _("h"); + String units = tr("h"); if (type.equals(EarnedValueType.CPI) || type.equals(EarnedValueType.SPI)) { value = value.multiply(new BigDecimal(100)); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/consolidations/AdvanceConsolidationCommand.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/consolidations/AdvanceConsolidationCommand.java index 69523d046..62c1ef3f3 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/consolidations/AdvanceConsolidationCommand.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/consolidations/AdvanceConsolidationCommand.java @@ -21,7 +21,7 @@ package org.libreplan.web.planner.consolidations; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import org.libreplan.business.planner.entities.Task; import org.libreplan.business.planner.entities.TaskElement; @@ -64,7 +64,7 @@ public class AdvanceConsolidationCommand implements @Override public String getName() { - return _("Progress consolidation"); + return tr("Progress consolidation"); } @Override diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/consolidations/AdvanceConsolidationController.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/consolidations/AdvanceConsolidationController.java index bd0557471..9964d6b19 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/consolidations/AdvanceConsolidationController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/consolidations/AdvanceConsolidationController.java @@ -21,7 +21,7 @@ package org.libreplan.web.planner.consolidations; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.List; @@ -106,8 +106,8 @@ public class AdvanceConsolidationController extends GenericForwardComposer { String infoAdvanceAssignment = advanceConsolidationModel.getInfoAdvanceAssignment(); return infoAdvanceAssignment.isEmpty() - ? _("Progress measurements") - : _("Progress measurements") + ": " + infoAdvanceAssignment; + ? tr("Progress measurements") + : tr("Progress measurements") + ": " + infoAdvanceAssignment; } public List getAdvances() { diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/consolidations/AdvanceConsolidationModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/consolidations/AdvanceConsolidationModel.java index fe31525f4..44dcbafbe 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/consolidations/AdvanceConsolidationModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/consolidations/AdvanceConsolidationModel.java @@ -21,7 +21,7 @@ package org.libreplan.web.planner.consolidations; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.Collection; @@ -455,7 +455,7 @@ public class AdvanceConsolidationModel implements IAdvanceConsolidationModel { } private String getInfoAdvanceAssignment(DirectAdvanceAssignment assignment) { - return assignment == null || assignment.getMaxValue() == null ? "" : _("( max: {0} )", assignment.getMaxValue()); + return assignment == null || assignment.getMaxValue() == null ? "" : tr("( max: {0} )", assignment.getMaxValue()); } private List getAdvances() { @@ -478,8 +478,8 @@ public class AdvanceConsolidationModel implements IAdvanceConsolidationModel { public String infoMessages() { return !getAdvances().isEmpty() - ? _("Progress cannot be consolidated.") - : _("There is not any assigned progress to current task"); + ? tr("Progress cannot be consolidated.") + : tr("There is not any assigned progress to current task"); } public void setConsolidationDTOs(List consolidationDTOs) { diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/limiting/allocation/LimitingResourceAllocationModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/limiting/allocation/LimitingResourceAllocationModel.java index bf7829a89..199df62f1 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/limiting/allocation/LimitingResourceAllocationModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/limiting/allocation/LimitingResourceAllocationModel.java @@ -21,7 +21,7 @@ package org.libreplan.web.planner.limiting.allocation; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.Collection; @@ -150,7 +150,7 @@ public class LimitingResourceAllocationModel implements ILimitingResourceAllocat if (resources.isEmpty()) { getMessagesForUser() .showMessage(Level.ERROR, - _("there are no resources for required criteria: {0}. " + + tr("there are no resources for required criteria: {0}. " + "So the generic allocation can't be added", Criterion.getCaptionFor(resourceType, criteria))); } @@ -219,7 +219,7 @@ public class LimitingResourceAllocationModel implements ILimitingResourceAllocat if (!areAllLimitingResources(resources)) { getMessagesForUser().showMessage(Level.ERROR, - _("All resources must be queue-based")); + tr("All resources must be queue-based")); return; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/milestone/AddMilestoneCommand.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/milestone/AddMilestoneCommand.java index e2afa7ea6..0ed4ceec7 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/milestone/AddMilestoneCommand.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/milestone/AddMilestoneCommand.java @@ -21,7 +21,7 @@ package org.libreplan.web.planner.milestone; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import org.libreplan.business.planner.daos.ITaskElementDAO; import org.libreplan.business.planner.entities.TaskElement; @@ -51,7 +51,7 @@ public class AddMilestoneCommand implements IAddMilestoneCommand { @Transactional(readOnly = true) public void doAction(IContextWithPlannerTask context, TaskElement task) { TaskMilestone milestone = TaskMilestone.create(task.getEndDate()); - milestone.setName(_("new milestone")); + milestone.setName(tr("new milestone")); taskElementDAO.reattach(task); Position taskPosition = context.getMapper().findPositionFor(task); @@ -64,7 +64,7 @@ public class AddMilestoneCommand implements IAddMilestoneCommand { @Override public String getName() { - return _("Add Milestone"); + return tr("Add Milestone"); } @Override diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/milestone/DeleteMilestoneCommand.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/milestone/DeleteMilestoneCommand.java index 8a68a7e8e..d71c9c590 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/milestone/DeleteMilestoneCommand.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/milestone/DeleteMilestoneCommand.java @@ -20,7 +20,7 @@ */ package org.libreplan.web.planner.milestone; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import org.libreplan.business.planner.entities.TaskElement; import org.libreplan.business.planner.entities.TaskMilestone; @@ -56,7 +56,7 @@ public class DeleteMilestoneCommand implements IDeleteMilestoneCommand { @Override public String getName() { - return (_("Delete Milestone")); + return (tr("Delete Milestone")); } @Override diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningController.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningController.java index c1db3aa38..efe398e84 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningController.java @@ -22,7 +22,7 @@ package org.libreplan.web.planner.order; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.Arrays; @@ -308,7 +308,7 @@ public class OrderPlanningController implements Composer { @Override public String getName() { - return _("filtering"); + return tr("filtering"); } }); @@ -342,7 +342,7 @@ public class OrderPlanningController implements Composer { (finishDate.compareTo(filterStartDateOrderElement.getValue()) < 0)) { filterFinishDateOrderElement.setRawValue(null); - throw new WrongValueException(comp, _("must be after start date")); + throw new WrongValueException(comp, tr("must be after start date")); } } @@ -358,7 +358,7 @@ public class OrderPlanningController implements Composer { (startDate.compareTo(filterFinishDateOrderElement.getValue()) > 0)) { filterStartDateOrderElement.setRawValue(null); - throw new WrongValueException(comp, _("must be lower than end date")); + throw new WrongValueException(comp, tr("must be lower than end date")); } } }; diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningModel.java index df90a3607..4dbd6ed50 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningModel.java @@ -134,7 +134,7 @@ import org.zkoss.zul.Vbox; import static org.libreplan.business.planner.chart.ContiguousDaysLine.toSortedMap; import static org.libreplan.business.planner.chart.ContiguousDaysLine.min; import static org.libreplan.business.planner.chart.ContiguousDaysLine.sum; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * @author Óscar González Fernández @@ -517,7 +517,7 @@ public class OrderPlanningModel implements IOrderPlanningModel { vbox.setPack(CENTER); Hbox dateHbox = new Hbox(); - dateHbox.appendChild(new Label(_("Select date"))); + dateHbox.appendChild(new Label(tr("Select date"))); LocalDate initialDateForIndicatorValues = earnedValueChartFiller.initialDateForIndicatorValues(); @@ -701,8 +701,8 @@ public class OrderPlanningModel implements IOrderPlanningModel { private void appendTabs(Tabbox chartComponent) { Tabs chartTabs = new Tabs(); - chartTabs.appendChild(createTab(_("Load"), "load_tab")); - chartTabs.appendChild(createTab(_("Earned value"), "earned_value_tab")); + chartTabs.appendChild(createTab(tr("Load"), "load_tab")); + chartTabs.appendChild(createTab(tr("Earned value"), "earned_value_tab")); chartComponent.appendChild(chartTabs); chartTabs.setSclass("charts-tabbox"); @@ -736,7 +736,7 @@ public class OrderPlanningModel implements IOrderPlanningModel { if ( value != null && !EarnedValueChartFiller.includes( earnedValueChartFiller.getIndicatorsDefinitionInterval(), LocalDate.fromDateFields(value)) ) { - throw new WrongValueException(comp, _("Date must be inside visualization area")); + throw new WrongValueException(comp, tr("Date must be inside visualization area")); } }; @@ -746,7 +746,7 @@ public class OrderPlanningModel implements IOrderPlanningModel { Date value = datebox.getValue(); Date today = LocalDate.fromDateFields(new Date()).toDateTimeAtStartOfDay().toDate(); if ( value != null && (value.compareTo(today) > 0) ) { - throw new WrongValueException(datebox, _("date in the future")); + throw new WrongValueException(datebox, tr("date in the future")); } } @@ -846,7 +846,7 @@ public class OrderPlanningModel implements IOrderPlanningModel { LocalDate date) { BigDecimal value = earnedValueChartFiller.getIndicator(type, date); - String units = _("h"); + String units = tr("h"); if ( type.equals(EarnedValueType.CPI) || type.equals(EarnedValueType.SPI) ) { value = value.multiply(new BigDecimal(100)); units = "%"; @@ -1017,14 +1017,14 @@ public class OrderPlanningModel implements IOrderPlanningModel { @Override public String getName() { - return _("Cancel"); + return tr("Cancel"); } @Override public void doAction(IContext context) { Messagebox.show( - _("Unsaved changes will be lost. Are you sure?"), _("Confirm exit dialog"), + tr("Unsaved changes will be lost. Are you sure?"), tr("Confirm exit dialog"), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION, evt -> { if ("onOK".equals(evt.getName())) { diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/SaveCommandBuilder.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/SaveCommandBuilder.java index 3f5261e65..d72f2a5b4 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/SaveCommandBuilder.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/SaveCommandBuilder.java @@ -109,7 +109,7 @@ import java.util.Set; import java.util.SortedSet; import static org.libreplan.business.planner.limiting.entities.LimitingResourceQueueDependency.toQueueDependencyType; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * Builds a command that saves the changes in the taskElements. @@ -325,8 +325,8 @@ public class SaveCommandBuilder { LOG.warn("Error saving the project", validationException); Messagebox.show( - _("Error saving the project\n{0}", message.toString()), - _("Error"), Messagebox.OK, Messagebox.ERROR); + tr("Error saving the project\n{0}", message.toString()), + tr("Error"), Messagebox.OK, Messagebox.ERROR); } @@ -344,7 +344,7 @@ public class SaveCommandBuilder { return; } - Messagebox.show(_("Project saved"), _("Information"), Messagebox.OK, Messagebox.INFORMATION); + Messagebox.show(tr("Project saved"), tr("Information"), Messagebox.OK, Messagebox.INFORMATION); if ( Executions.getCurrent() != null ) { // Reset timer of warning on leaving page ConfirmCloseUtil.resetConfirmClose(); @@ -352,7 +352,7 @@ public class SaveCommandBuilder { if ( SecurityUtils.loggedUserCanWrite(state.getOrder()) ) ConfirmCloseUtil.setConfirmClose( Executions.getCurrent().getDesktop(), - _("You are about to leave the planning editing. Unsaved changes will be lost!")); + tr("You are about to leave the planning editing. Unsaved changes will be lost!")); } @@ -491,7 +491,7 @@ public class SaveCommandBuilder { repeatedOrder = ((OrderLineGroup) order).findRepeatedOrderCode(); if (repeatedOrder != null) - throw new ValidationException(_("Repeated Project code {0} in Project {1}", repeatedOrder.getCode(), + throw new ValidationException(tr("Repeated Project code {0} in Project {1}", repeatedOrder.getCode(), repeatedOrder.getName())); } @@ -500,7 +500,7 @@ public class SaveCommandBuilder { repeatedOrder = Registry.getOrderElementDAO().findRepeatedOrderCodeInDB(order); if (repeatedOrder != null) - throw new ValidationException(_( + throw new ValidationException(tr( "Repeated Project code {0} in Project {1}", repeatedOrder.getCode(), repeatedOrder.getName())); } @@ -512,7 +512,7 @@ public class SaveCommandBuilder { repeatedHoursGroup = (order).findRepeatedHoursGroupCode(); if (repeatedHoursGroup != null) - throw new ValidationException(_( + throw new ValidationException(tr( "Repeated Hours Group code {0} in Project {1}", repeatedHoursGroup.getCode(), repeatedHoursGroup.getParentOrderLine().getName())); @@ -522,7 +522,7 @@ public class SaveCommandBuilder { repeatedHoursGroup = Registry.getHoursGroupDAO().findRepeatedHoursGroupCodeInDB(order.getHoursGroups()); if (repeatedHoursGroup != null) - throw new ValidationException(_( + throw new ValidationException(tr( "Repeated Hours Group code {0} in Project {1}", repeatedHoursGroup.getCode(), repeatedHoursGroup.getParentOrderLine().getName())); @@ -840,7 +840,7 @@ public class SaveCommandBuilder { @Override public String getName() { - return _("Save"); + return tr("Save"); } @Override @@ -860,8 +860,8 @@ public class SaveCommandBuilder { private boolean userAcceptsCreateANewOrderVersion() { int status = Messagebox.show( - _("Confirm creating a new project version for this scenario and derived. Are you sure?"), - _("New project version"), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION); + tr("Confirm creating a new project version for this scenario and derived. Are you sure?"), + tr("New project version"), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION); return Messagebox.OK == status; } @@ -1005,12 +1005,12 @@ public class SaveCommandBuilder { String orderElementName; if ( invalidValue.getRootBean() instanceof Order ) - orderElementName = _("Project"); + orderElementName = tr("Project"); else - orderElementName = _("Task {0}", ((OrderElement) invalidValue.getRootBean()).getName()); + orderElementName = tr("Task {0}", ((OrderElement) invalidValue.getRootBean()).getName()); - result.setValue(orderElementName + ": " + _(invalidValue.getMessage())); + result.setValue(orderElementName + ": " + tr(invalidValue.getMessage())); return result; @@ -1019,7 +1019,7 @@ public class SaveCommandBuilder { HoursGroup hoursGroup = (HoursGroup) invalidValue.getRootBean(); result.setValue( - _("Hours Group at {0}", getParentName(hoursGroup)) + ": " + _(invalidValue.getMessage())); + tr("Hours Group at {0}", getParentName(hoursGroup)) + ": " + tr(invalidValue.getMessage())); return result; } else { diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/SubcontractCommand.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/SubcontractCommand.java index 40b73963a..964f1e601 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/SubcontractCommand.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/SubcontractCommand.java @@ -21,7 +21,7 @@ package org.libreplan.web.planner.order; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import org.libreplan.business.planner.entities.Task; import org.libreplan.business.planner.entities.TaskElement; @@ -50,7 +50,7 @@ public class SubcontractCommand implements ISubcontractCommand { @Override public String getName() { - return _("Subcontract"); + return tr("Subcontract"); } @Override diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/SubcontractController.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/SubcontractController.java index 32c2ddd6c..e65864875 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/SubcontractController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/SubcontractController.java @@ -21,7 +21,7 @@ package org.libreplan.web.planner.order; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.Date; import java.util.List; @@ -136,7 +136,7 @@ public class SubcontractController extends GenericForwardComposer { public void addDeliverDate(Datebox newDeliverDate){ if ( newDeliverDate == null || newDeliverDate.getValue() == null ) { - messagesForUser.showMessage(Level.ERROR, _("You must select a valid date. ")); + messagesForUser.showMessage(Level.ERROR, tr("You must select a valid date. ")); return; } @@ -144,14 +144,14 @@ public class SubcontractController extends GenericForwardComposer { if ( thereIsSomeCommunicationDateEmpty() ) { messagesForUser.showMessage( Level.ERROR, - _("It will only be possible to add a Deliver Date if " + + tr("It will only be possible to add a Deliver Date if " + "all the deliver date exiting in the table have a CommunicationDate not empty. ")); return; } if ( subcontractModel.alreadyExistsRepeatedDeliverDate(newDeliverDate.getValue()) ) { messagesForUser.showMessage( Level.ERROR, - _("It already exists a deliver date with the same date. ")); + tr("It already exists a deliver date with the same date. ")); return; } @@ -204,7 +204,7 @@ public class SubcontractController extends GenericForwardComposer { deleteButton.setSclass("icono"); deleteButton.setImage("/common/img/ico_borrar1.png"); deleteButton.setHoverImage("/common/img/ico_borrar.png"); - deleteButton.setTooltiptext(_("Delete")); + deleteButton.setTooltiptext(tr("Delete")); deleteButton.addEventListener( Events.ON_CLICK, (EventListener) event -> removeRequiredDeliverDate(subcontractorDeliverDate)); @@ -267,10 +267,10 @@ public class SubcontractController extends GenericForwardComposer { private Button getUpdateButton(final EndDateCommunication endDateFromSubcontractor) { - Button updateButton = new Button(_("Update task end")); + Button updateButton = new Button(tr("Update task end")); updateButton.setDisabled(!isUpgradeable(endDateFromSubcontractor)); - updateButton.setTooltiptext(_("Update task end")); + updateButton.setTooltiptext(tr("Update task end")); updateButton.setSclass("add-button"); updateButton.addEventListener( diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/pert/IPertChartModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/pert/IPertChartModel.java new file mode 100644 index 000000000..c97b6efd8 --- /dev/null +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/pert/IPertChartModel.java @@ -0,0 +1,23 @@ +/* + * This file is part of TASKPM + * + * Copyright (C) 2026 TASKPM Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + */ + +package org.libreplan.web.planner.pert; + +import org.libreplan.business.orders.entities.Order; + +import java.util.List; + +public interface IPertChartModel { + + List getOrders(); + + Order getOrderWithTasks(Long orderId); +} diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/pert/PertChartController.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/pert/PertChartController.java new file mode 100644 index 000000000..d71c48e6a --- /dev/null +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/pert/PertChartController.java @@ -0,0 +1,230 @@ +/* + * This file is part of TASKPM + * + * Copyright (C) 2026 TASKPM Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * 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 . + */ + +package org.libreplan.web.planner.pert; + +import org.libreplan.business.orders.entities.Order; +import org.libreplan.business.planner.entities.Dependency; +import org.libreplan.business.planner.entities.Task; +import org.libreplan.business.planner.entities.TaskElement; +import org.libreplan.business.planner.entities.TaskGroup; +import org.zkoss.json.JSONArray; +import org.zkoss.json.JSONObject; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.select.SelectorComposer; +import org.zkoss.zk.ui.select.annotation.Listen; +import org.zkoss.zk.ui.select.annotation.Wire; +import org.zkoss.zk.ui.util.Clients; +import org.zkoss.zkplus.spring.SpringUtil; +import org.zkoss.zul.Button; +import org.zkoss.zul.Checkbox; +import org.zkoss.zul.Listbox; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.Window; + +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +/** + * Controller for the PERT Chart visualization. + * + * This controller loads project tasks and dependencies and renders them + * as a PERT/CPM network diagram using vis.js. + */ +public class PertChartController extends SelectorComposer { + + private IPertChartModel pertChartModel; + + @Wire + private Listbox projectSelector; + + @Wire + private Button btnRefresh; + + @Wire + private Button btnFit; + + @Wire + private Checkbox chkCriticalPath; + + private Long currentOrderId; + + @Override + public void doAfterCompose(Window comp) throws Exception { + super.doAfterCompose(comp); + pertChartModel = (IPertChartModel) SpringUtil.getBean("pertChartModel"); + loadProjects(); + } + + private void loadProjects() { + List orders = pertChartModel.getOrders(); + projectSelector.getItems().clear(); + + for (Order order : orders) { + Listitem item = new Listitem(order.getName()); + item.setValue(order.getId()); + projectSelector.appendChild(item); + } + + if (!orders.isEmpty()) { + projectSelector.setSelectedIndex(0); + } + } + + @Listen("onSelect = #projectSelector") + public void onProjectSelect(Event event) { + Listitem selected = projectSelector.getSelectedItem(); + if (selected != null) { + currentOrderId = selected.getValue(); + loadPertChart(); + } + } + + @Listen("onClick = #btnRefresh") + public void onRefresh(Event event) { + loadPertChart(); + } + + @Listen("onClick = #btnFit") + public void onFit(Event event) { + Clients.evalJavaScript("fitPertChart()"); + } + + @Listen("onCheck = #chkCriticalPath") + public void onCriticalPathToggle(Event event) { + boolean show = chkCriticalPath.isChecked(); + Clients.evalJavaScript("toggleCriticalPath(" + show + ")"); + } + + private void loadPertChart() { + if (currentOrderId == null) { + return; + } + + Order order = pertChartModel.getOrderWithTasks(currentOrderId); + if (order == null) { + return; + } + + TaskGroup rootTask = order.getAssociatedTaskElement(); + if (rootTask == null) { + return; + } + + JSONObject chartData = buildChartData(rootTask); + String json = chartData.toJSONString(); + + Clients.evalJavaScript("initPertChart(" + json + ")"); + } + + private JSONObject buildChartData(TaskGroup rootTask) { + JSONArray nodes = new JSONArray(); + JSONArray edges = new JSONArray(); + Set processedTasks = new HashSet<>(); + + // Recursively collect tasks + collectTasks(rootTask, nodes, edges, processedTasks); + + JSONObject result = new JSONObject(); + result.put("nodes", nodes); + result.put("edges", edges); + return result; + } + + private void collectTasks(TaskElement element, JSONArray nodes, JSONArray edges, Set processed) { + if (element == null || processed.contains(element.getId())) { + return; + } + processed.add(element.getId()); + + // Add node + JSONObject node = new JSONObject(); + node.put("id", element.getId()); + node.put("name", element.getName()); + node.put("startDate", formatDate(element)); + node.put("endDate", formatEndDate(element)); + node.put("progress", element.getAdvancePercentage() != null ? + element.getAdvancePercentage().doubleValue() : 0.0); + node.put("status", getTaskStatus(element)); + node.put("milestone", element instanceof org.libreplan.business.planner.entities.TaskMilestone); + node.put("critical", false); // TODO: implement critical path detection + + nodes.add(node); + + // Add dependencies (edges) + for (Dependency dep : element.getDependenciesWithThisOrigin()) { + JSONObject edge = new JSONObject(); + edge.put("from", element.getId()); + edge.put("to", dep.getDestination().getId()); + edge.put("type", mapDependencyType(dep.getType())); + edge.put("critical", false); // TODO: implement critical path detection + edges.add(edge); + } + + // Recurse into children if TaskGroup + if (element instanceof TaskGroup) { + TaskGroup group = (TaskGroup) element; + for (TaskElement child : group.getChildren()) { + collectTasks(child, nodes, edges, processed); + } + } + } + + private String formatDate(TaskElement element) { + if (element.getStartDate() != null) { + return new java.text.SimpleDateFormat("yyyy-MM-dd").format(element.getStartDate()); + } + return "N/A"; + } + + private String formatEndDate(TaskElement element) { + if (element.getEndDate() != null) { + return new java.text.SimpleDateFormat("yyyy-MM-dd").format(element.getEndDate()); + } + return "N/A"; + } + + private String getTaskStatus(TaskElement element) { + if (element instanceof Task) { + Task task = (Task) element; + if (task.isFinished()) return "FINISHED"; + if (task.isInProgress()) return "IN_PROGRESS"; + // Check if blocked by examining dependencies + for (Dependency dep : element.getDependenciesWithThisDestination()) { + TaskElement origin = dep.getOrigin(); + if (!origin.isFinished()) { + return "BLOCKED"; + } + } + return "READY"; + } + return "UNKNOWN"; + } + + private String mapDependencyType(Dependency.Type type) { + switch (type) { + case END_START: return "FS"; + case START_START: return "SS"; + case END_END: return "FF"; + case START_END: return "SF"; + default: return "FS"; + } + } +} diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/pert/PertChartModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/pert/PertChartModel.java new file mode 100644 index 000000000..be82ff207 --- /dev/null +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/pert/PertChartModel.java @@ -0,0 +1,77 @@ +/* + * This file is part of TASKPM + * + * Copyright (C) 2026 TASKPM Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + */ + +package org.libreplan.web.planner.pert; + +import org.libreplan.business.orders.daos.IOrderDAO; +import org.libreplan.business.orders.entities.Order; +import org.libreplan.business.planner.entities.Dependency; +import org.libreplan.business.planner.entities.TaskElement; +import org.libreplan.business.planner.entities.TaskGroup; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.config.BeanDefinition; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Service +@Scope(BeanDefinition.SCOPE_SINGLETON) +public class PertChartModel implements IPertChartModel { + + @Autowired + private IOrderDAO orderDAO; + + @Override + @Transactional(readOnly = true) + public List getOrders() { + return orderDAO.getOrders(); + } + + @Override + @Transactional(readOnly = true) + public Order getOrderWithTasks(Long orderId) { + try { + Order order = orderDAO.find(orderId); + // Force load the task tree + TaskGroup rootTask = order.getAssociatedTaskElement(); + if (rootTask != null) { + forceLoadTasks(rootTask); + } + return order; + } catch (Exception e) { + return null; + } + } + + private void forceLoadTasks(TaskElement element) { + // Force load basic properties + element.getName(); + element.getStartDate(); + element.getEndDate(); + element.getAdvancePercentage(); + + // Force load dependencies + for (Dependency dep : element.getDependenciesWithThisOrigin()) { + dep.getDestination().getId(); + dep.getType(); + } + + // Recurse into children + if (element instanceof TaskGroup) { + TaskGroup group = (TaskGroup) element; + for (TaskElement child : group.getChildren()) { + forceLoadTasks(child); + } + } + } +} diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/reassign/ReassignCommand.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/reassign/ReassignCommand.java index 8e93cc19e..73f0b2060 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/reassign/ReassignCommand.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/reassign/ReassignCommand.java @@ -20,7 +20,7 @@ */ package org.libreplan.web.planner.reassign; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import static org.zkoss.ganttz.util.LongOperationFeedback.and; import java.util.ArrayList; @@ -126,11 +126,11 @@ public class ReassignCommand implements IReassignCommand { doNotifications(notifications), reloadCharts(context), busyEnd(), - tellUserOnEnd(context, () -> _("{0} reassignations finished", reassignations.size())))); + tellUserOnEnd(context, () -> tr("{0} reassignations finished", reassignations.size())))); } else { updater.doUpdate(and( busyEnd(), - tellUserOnEnd(context, () -> _("Assignments could not be completed")))); + tellUserOnEnd(context, () -> tr("Assignments could not be completed")))); } } }; @@ -160,11 +160,11 @@ public class ReassignCommand implements IReassignCommand { } private IDesktopUpdate busyStart(final int total) { - return () -> Clients.showBusy(_("Doing {0} reassignations", total)); + return () -> Clients.showBusy(tr("Doing {0} reassignations", total)); } private IDesktopUpdate showCompleted(final int number, final int total) { - return () -> Clients.showBusy(_("Done {0} of {1}", number, total)); + return () -> Clients.showBusy(tr("Done {0} of {1}", number, total)); } private IDesktopUpdate reloadCharts(final IContext context) { @@ -206,7 +206,7 @@ public class ReassignCommand implements IReassignCommand { try { Messagebox.show( resolve(message), - _("Reassignation"), + tr("Reassignation"), Messagebox.OK, Messagebox.INFORMATION); } catch (Exception e) { throw new RuntimeException(e); @@ -310,7 +310,7 @@ public class ReassignCommand implements IReassignCommand { @Override public String getName() { - return _("Reassign"); + return tr("Reassign"); } @Override diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/reassign/ReassignController.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/reassign/ReassignController.java index 9ac2c928c..06efdd795 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/reassign/ReassignController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/reassign/ReassignController.java @@ -41,7 +41,7 @@ import org.zkoss.zul.Window; import java.util.Collections; import java.util.Date; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * When you are pushing reassign button ( green button on Project Scheduling page ), it will open Reassign window. * This controller handles that window. @@ -125,7 +125,7 @@ public class ReassignController extends GenericForwardComposer { if (currentType.needsAssociatedDate()) { Date value = associatedDate.getValue(); if (value == null) { - throw new WrongValueException(associatedDate, _("cannot be empty")); + throw new WrongValueException(associatedDate, tr("cannot be empty")); } } window.setVisible(false); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/reassign/Type.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/reassign/Type.java index c0f6117db..3d839cf10 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/reassign/Type.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/reassign/Type.java @@ -22,13 +22,13 @@ package org.libreplan.web.planner.reassign; import org.zkoss.zul.Radio; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; public enum Type { ALL { @Override public String getName() { - return _("All project tasks"); + return tr("All project tasks"); } @Override @@ -40,7 +40,7 @@ public enum Type { FROM_TODAY { @Override public String getName() { - return _("From today"); + return tr("From today"); } @Override @@ -52,7 +52,7 @@ public enum Type { FROM_CHOSEN { @Override public String getName() { - return _("From chosen date"); + return tr("From chosen date"); } @Override diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/AdvancedAllocationTabCreator.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/AdvancedAllocationTabCreator.java index e3a518b1f..3b508a863 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/AdvancedAllocationTabCreator.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/AdvancedAllocationTabCreator.java @@ -20,7 +20,7 @@ */ package org.libreplan.web.planner.tabs; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import static org.libreplan.web.planner.tabs.MultipleTabsPlannerController.BREADCRUMBS_SEPARATOR; import static org.libreplan.web.planner.tabs.MultipleTabsPlannerController.getSchedulingLabel; @@ -150,7 +150,7 @@ public class AdvancedAllocationTabCreator { } } - private final String ADVANCED_ALLOCATION_VIEW = _("Advanced Allocation"); + private final String ADVANCED_ALLOCATION_VIEW = tr("Advanced Allocation"); private final Mode mode; @@ -235,7 +235,7 @@ public class AdvancedAllocationTabCreator { breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); breadcrumbs.appendChild(new Label(getSchedulingLabel())); breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); - breadcrumbs.appendChild(new Label(_("Advanced Allocation"))); + breadcrumbs.appendChild(new Label(tr("Advanced Allocation"))); breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); breadcrumbs.appendChild(new Label(mode.getOrder().getName())); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/DashboardTabCreator.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/DashboardTabCreator.java index 21ecc1c92..2bb5b7047 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/DashboardTabCreator.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/DashboardTabCreator.java @@ -18,7 +18,7 @@ */ package org.libreplan.web.planner.tabs; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import static org.libreplan.web.planner.tabs.MultipleTabsPlannerController.BREADCRUMBS_SEPARATOR; import static org.libreplan.web.planner.tabs.MultipleTabsPlannerController.getSchedulingLabel; @@ -110,7 +110,7 @@ public class DashboardTabCreator { } }; - return new CreatedOnDemandTab(_("Dashboard"), "order-dashboard", + return new CreatedOnDemandTab(tr("Dashboard"), "order-dashboard", componentCreator) { @Override @@ -128,7 +128,7 @@ public class DashboardTabCreator { breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); breadcrumbs.appendChild(new Label(getSchedulingLabel())); breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); - breadcrumbs.appendChild(new Label(_("Dashboard"))); + breadcrumbs.appendChild(new Label(tr("Dashboard"))); breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); breadcrumbs.appendChild(new Label(currentOrder.getName())); } @@ -148,7 +148,7 @@ public class DashboardTabCreator { } }; - return new CreatedOnDemandTab(_("Dashboard"), "global-dashboard", + return new CreatedOnDemandTab(tr("Dashboard"), "global-dashboard", componentCreator) { @Override @@ -157,7 +157,7 @@ public class DashboardTabCreator { breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); breadcrumbs.appendChild(new Label(getSchedulingLabel())); breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); - breadcrumbs.appendChild(new Label(_("Dashboard"))); + breadcrumbs.appendChild(new Label(tr("Dashboard"))); } }; diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/LimitingResourcesTabCreator.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/LimitingResourcesTabCreator.java index 49aaaca60..786b708f9 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/LimitingResourcesTabCreator.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/LimitingResourcesTabCreator.java @@ -20,7 +20,7 @@ */ package org.libreplan.web.planner.tabs; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import static org.libreplan.web.planner.tabs.MultipleTabsPlannerController.BREADCRUMBS_SEPARATOR; import static org.libreplan.web.planner.tabs.MultipleTabsPlannerController.getSchedulingLabel; @@ -81,7 +81,7 @@ public class LimitingResourcesTabCreator { return Executions.createComponents("/limitingresources/_limitingresources.zul", parent, arguments); }; - return new CreatedOnDemandTab(_("Queue-based Resources Planning"), "limiting-resources", componentCreator) { + return new CreatedOnDemandTab(tr("Queue-based Resources Planning"), "limiting-resources", componentCreator) { @Override protected void beforeShowAction() { if (!SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_PLANNING)) { @@ -100,7 +100,7 @@ public class LimitingResourcesTabCreator { breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); breadcrumbs.appendChild(new Label(getSchedulingLabel())); breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); - breadcrumbs.appendChild(new Label(_("Queue-based Resources Planning"))); + breadcrumbs.appendChild(new Label(tr("Queue-based Resources Planning"))); } }; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/LogsTabCreator.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/LogsTabCreator.java index 67fea9d1d..e22f90b6a 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/LogsTabCreator.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/LogsTabCreator.java @@ -18,7 +18,7 @@ */ package org.libreplan.web.planner.tabs; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import static org.libreplan.web.planner.tabs.MultipleTabsPlannerController.BREADCRUMBS_SEPARATOR; import static org.libreplan.web.planner.tabs.MultipleTabsPlannerController.getSchedulingLabel; @@ -86,7 +86,7 @@ public class LogsTabCreator { } }; - return new CreatedOnDemandTab(_("Logs"), "logs-global", componentCreator) { + return new CreatedOnDemandTab(tr("Logs"), "logs-global", componentCreator) { @Override protected void beforeShowAction() { if (!SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_PLANNING)) { @@ -103,7 +103,7 @@ public class LogsTabCreator { breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); breadcrumbs.appendChild(new Label(getSchedulingLabel())); breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); - breadcrumbs.appendChild(new Label(_("Logs"))); + breadcrumbs.appendChild(new Label(tr("Logs"))); } }; } @@ -118,7 +118,7 @@ public class LogsTabCreator { } }; - return new CreatedOnDemandTab(_("Logs"), "logs-order", componentCreator) { + return new CreatedOnDemandTab(tr("Logs"), "logs-order", componentCreator) { @Override protected void beforeShowAction() { if (!SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_PLANNING)) { @@ -135,7 +135,7 @@ public class LogsTabCreator { breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); breadcrumbs.appendChild(new Label(getSchedulingLabel())); breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); - breadcrumbs.appendChild(new Label(_("Logs"))); + breadcrumbs.appendChild(new Label(tr("Logs"))); breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); breadcrumbs.appendChild(new Label(mode.getOrder().getName())); } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/MonteCarloTabCreator.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/MonteCarloTabCreator.java index 8727279c0..75afb5958 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/MonteCarloTabCreator.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/MonteCarloTabCreator.java @@ -20,7 +20,7 @@ */ package org.libreplan.web.planner.tabs; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import static org.libreplan.web.planner.tabs.MultipleTabsPlannerController.BREADCRUMBS_SEPARATOR; import static org.libreplan.web.planner.tabs.MultipleTabsPlannerController.getSchedulingLabel; @@ -48,7 +48,7 @@ import org.zkoss.zul.Label; */ public class MonteCarloTabCreator { - private String ORDER_LIMITING_RESOURCES_VIEW = _("MonteCarlo Method"); + private String ORDER_LIMITING_RESOURCES_VIEW = tr("MonteCarlo Method"); public static ITab create(Mode mode, PlanningStateCreator planningStateCreator, @@ -156,7 +156,7 @@ public class MonteCarloTabCreator { } }; - return new CreatedOnDemandTab(_("MonteCarlo Method"), + return new CreatedOnDemandTab(tr("MonteCarlo Method"), "montecarlo-simulation", componentCreator) { @Override protected void afterShowAction() { diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/MultipleTabsPlannerController.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/MultipleTabsPlannerController.java index 9ad8b71ed..cf3ebd318 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/MultipleTabsPlannerController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/MultipleTabsPlannerController.java @@ -74,7 +74,7 @@ import org.zkoss.zkplus.spring.SpringUtil; import java.util.Map; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import static org.zkoss.ganttz.adapters.TabsConfiguration.configure; /** @@ -210,7 +210,7 @@ public class MultipleTabsPlannerController implements Composer, IGlobalViewEntry LongOperationFeedback.execute(tabsSwitcher, new ILongOperation() { @Override public String getName() { - return _("changing perspective"); + return tr("changing perspective"); } @Override @@ -234,7 +234,7 @@ public class MultipleTabsPlannerController implements Composer, IGlobalViewEntry } public static String getSchedulingLabel() { - return _("Planning"); + return tr("Planning"); } public MultipleTabsPlannerController() { @@ -259,7 +259,7 @@ public class MultipleTabsPlannerController implements Composer, IGlobalViewEntry if ( SecurityUtils.loggedUserCanWrite(mode.getOrder()) ) { ConfirmCloseUtil.setConfirmClose( desktop, - _("You are about to leave the planning editing. Unsaved changes will be lost!")); + tr("You are about to leave the planning editing. Unsaved changes will be lost!")); } break; diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/OrdersTabCreator.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/OrdersTabCreator.java index 898655355..2d88d5537 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/OrdersTabCreator.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/OrdersTabCreator.java @@ -20,7 +20,7 @@ */ package org.libreplan.web.planner.tabs; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import static org.libreplan.web.planner.tabs.MultipleTabsPlannerController.BREADCRUMBS_SEPARATOR; import static org.libreplan.web.planner.tabs.MultipleTabsPlannerController.getSchedulingLabel; @@ -47,7 +47,7 @@ import org.zkoss.zul.Label; */ public class OrdersTabCreator { - private final String PROJECT_DETAILS = _("Project Details"); + private final String PROJECT_DETAILS = tr("Project Details"); public static ITab create(Mode mode, OrderCRUDController orderCRUDController, Component breadcrumbs, @@ -102,7 +102,7 @@ public class OrdersTabCreator { } private ITab createGlobalOrdersTab() { - return new CreatedOnDemandTab(_("Projects List"), "orders", + return new CreatedOnDemandTab(tr("Projects List"), "orders", ordersTabCreator) { @Override protected void beforeShowAction() { @@ -134,7 +134,7 @@ public class OrdersTabCreator { breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); breadcrumbs.appendChild(new Label(getSchedulingLabel())); breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); - breadcrumbs.appendChild(new Label(_("Projects List"))); + breadcrumbs.appendChild(new Label(tr("Projects List"))); } }; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/PlanningTabCreator.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/PlanningTabCreator.java index ba02790d8..262c1dff8 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/PlanningTabCreator.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/PlanningTabCreator.java @@ -44,7 +44,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import static org.libreplan.web.planner.tabs.MultipleTabsPlannerController.BREADCRUMBS_SEPARATOR; import static org.libreplan.web.planner.tabs.MultipleTabsPlannerController.getSchedulingLabel; @@ -148,7 +148,7 @@ public class PlanningTabCreator { @Override public String getName() { - return _("Schedule"); + return tr("Schedule"); } @Override @@ -178,7 +178,7 @@ public class PlanningTabCreator { @Override public String getName() { - return _("Project Details"); + return tr("Project Details"); } @Override @@ -194,7 +194,7 @@ public class PlanningTabCreator { } }; - return new CreatedOnDemandTab(_("Projects Planning"), "company-scheduling", componentCreator) { + return new CreatedOnDemandTab(tr("Projects Planning"), "company-scheduling", componentCreator) { @Override protected void beforeShowAction() { if (!SecurityUtils.isSuperuserOrRolePlanningOrHasAnyAuthorization()) { @@ -222,7 +222,7 @@ public class PlanningTabCreator { breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); breadcrumbs.appendChild(new Label(getSchedulingLabel())); breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); - breadcrumbs.appendChild(new Label(_("Projects Planning"))); + breadcrumbs.appendChild(new Label(tr("Projects Planning"))); } }; } @@ -237,7 +237,7 @@ public class PlanningTabCreator { Util.createBindingsFor(result); return result; }; - return new CreatedOnDemandTab(_("Project Scheduling"), "order-scheduling", componentCreator) { + return new CreatedOnDemandTab(tr("Project Scheduling"), "order-scheduling", componentCreator) { @Override protected void afterShowAction() { @@ -254,7 +254,7 @@ public class PlanningTabCreator { breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); breadcrumbs.appendChild(new Label(getSchedulingLabel())); breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); - breadcrumbs.appendChild(new Label(_("Project Scheduling"))); + breadcrumbs.appendChild(new Label(tr("Project Scheduling"))); if (mode.isOf(ModeType.ORDER)) { orderPlanningController.getOrderCRUDController().checkUserCanRead(order); @@ -262,10 +262,10 @@ public class PlanningTabCreator { nameLabel.setTooltiptext(order.getName() + "." + order.getDescription()); nameLabel.setMaxlength(MAX_ORDERNAME_LENGTH); - Label schedulingStateLabel = new Label(_(order.getState().toString())); + Label schedulingStateLabel = new Label(tr(order.getState().toString())); schedulingStateLabel.setSclass("scheduling-state " + order.getSchedulingState().getCssClass()); - schedulingStateLabel.setTooltiptext(_(order.getSchedulingState().getStateName())); + schedulingStateLabel.setTooltiptext(tr(order.getSchedulingState().getStateName())); breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); breadcrumbs.appendChild(nameLabel); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/ResourcesLoadTabCreator.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/ResourcesLoadTabCreator.java index 550c0a7e6..4d82caec8 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/ResourcesLoadTabCreator.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/ResourcesLoadTabCreator.java @@ -20,7 +20,7 @@ */ package org.libreplan.web.planner.tabs; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import static org.libreplan.web.planner.tabs.MultipleTabsPlannerController.BREADCRUMBS_SEPARATOR; import static org.libreplan.web.planner.tabs.MultipleTabsPlannerController.getSchedulingLabel; @@ -99,7 +99,7 @@ public class ResourcesLoadTabCreator { return Executions.createComponents("/resourceload/_resourceloadfororder.zul", parent, arguments); }; - return new CreatedOnDemandTab(_(RESOURCES_LOAD), "order-load", componentCreator) { + return new CreatedOnDemandTab(tr(RESOURCES_LOAD), "order-load", componentCreator) { @Override protected void afterShowAction() { @@ -107,7 +107,7 @@ public class ResourcesLoadTabCreator { breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); breadcrumbs.appendChild(new Label(getSchedulingLabel())); breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); - breadcrumbs.appendChild(new Label(_(RESOURCES_LOAD))); + breadcrumbs.appendChild(new Label(tr(RESOURCES_LOAD))); breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); Order currentOrder = mode.getOrder(); @@ -129,7 +129,7 @@ public class ResourcesLoadTabCreator { return Executions.createComponents("/resourceload/_resourceload.zul", parent, arguments); }; - return new CreatedOnDemandTab(_(RESOURCES_LOAD), "company-load", componentCreator) { + return new CreatedOnDemandTab(tr(RESOURCES_LOAD), "company-load", componentCreator) { @Override protected void beforeShowAction() { if (!SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_PLANNING)) { @@ -150,7 +150,7 @@ public class ResourcesLoadTabCreator { breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); breadcrumbs.appendChild(new Label(getSchedulingLabel())); breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); - breadcrumbs.appendChild(new Label(_(RESOURCES_LOAD))); + breadcrumbs.appendChild(new Label(tr(RESOURCES_LOAD))); } }; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/taskedition/AdvancedAllocationTaskController.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/taskedition/AdvancedAllocationTaskController.java index fa5fb5619..705fa1b29 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/taskedition/AdvancedAllocationTaskController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/taskedition/AdvancedAllocationTaskController.java @@ -39,7 +39,7 @@ import org.zkoss.ganttz.extensions.IContextWithPlannerTask; import org.zkoss.zk.ui.util.GenericForwardComposer; import org.zkoss.zul.Messagebox; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * Controller for advanced allocation of a {@link Task}. @@ -69,7 +69,7 @@ public class AdvancedAllocationTaskController extends GenericForwardComposer { planningState.getCurrentScenario(), task); if (allocationResult.getAggregate().isEmpty()) { - Messagebox.show(_("Some allocations needed"), _("Warning"), + Messagebox.show(tr("Some allocations needed"), tr("Warning"), Messagebox.OK, Messagebox.EXCLAMATION); return; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/taskedition/EditTaskController.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/taskedition/EditTaskController.java index 13a7f6b4e..95b690eaa 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/taskedition/EditTaskController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/taskedition/EditTaskController.java @@ -21,7 +21,7 @@ package org.libreplan.web.planner.taskedition; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import org.libreplan.business.common.exceptions.ValidationException; import org.libreplan.business.planner.entities.Task; @@ -161,7 +161,7 @@ public class EditTaskController extends GenericForwardComposer { taskPropertiesController.init(this, context, taskElement); - window.setTitle(_("Edit task: {0}", taskElement.getName())); + window.setTitle(tr("Edit task: {0}", taskElement.getName())); showSelectedTabPanel(); Util.createBindingsFor(window); Util.reloadBindings(window); @@ -368,10 +368,10 @@ public class EditTaskController extends GenericForwardComposer { } void showNonPermitChangeResourceAllocationType() { - String message = _("The task has got progress consolidations. " + + String message = tr("The task has got progress consolidations. " + "To change resource allocation type all consolidations must be removed before"); - Messagebox.show(message, _("Information"), Messagebox.OK, Messagebox.INFORMATION); + Messagebox.show(message, tr("Information"), Messagebox.OK, Messagebox.INFORMATION); } public void close(Event event) { diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/taskedition/TaskPropertiesCommand.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/taskedition/TaskPropertiesCommand.java index 1f34d7a69..40728159e 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/taskedition/TaskPropertiesCommand.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/taskedition/TaskPropertiesCommand.java @@ -21,7 +21,7 @@ package org.libreplan.web.planner.taskedition; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import org.libreplan.business.planner.entities.TaskElement; import org.libreplan.web.planner.order.IEditTaskUtilities; @@ -57,7 +57,7 @@ public class TaskPropertiesCommand implements ITaskPropertiesCommand { @Override public String getName() { - return _("Task Properties"); + return tr("Task Properties"); } @Override diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/taskedition/TaskPropertiesController.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/taskedition/TaskPropertiesController.java index e67edf56e..7a5db6bc8 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/taskedition/TaskPropertiesController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/taskedition/TaskPropertiesController.java @@ -21,7 +21,7 @@ package org.libreplan.web.planner.taskedition; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.Arrays; @@ -206,7 +206,7 @@ public class TaskPropertiesController extends GenericForwardComposer boolean thirdCondition = type == PositionConstraintType.AS_SOON_AS_POSSIBLE && order.getInitDate() != null; if (firstCondition || secondCondition || thirdCondition) { - Comboitem comboitem = new Comboitem(_(type.getName())); + Comboitem comboitem = new Comboitem(tr(type.getName())); comboitem.setValue(type); startConstraintTypes.appendChild(comboitem); } @@ -384,9 +384,9 @@ public class TaskPropertiesController extends GenericForwardComposer } else { if( newState.equals(ResourceAllocationTypeEnum.SUBCONTRACT ) && !checkCompatibleAllocation()){ restoreOldState(); - Messagebox.show(_("This resource allocation type is incompatible. The task has " + + Messagebox.show(tr("This resource allocation type is incompatible. The task has " + "an associated order element which has a progress that is of type subcontractor. "), - _("Error"), Messagebox.OK , Messagebox.ERROR); + tr("Error"), Messagebox.OK , Messagebox.ERROR); } else { changeResourceAllocationType(oldState,newState); editTaskController.selectAssignmentTab(lbResourceAllocationType.getSelectedIndex() + 1); @@ -478,9 +478,9 @@ public class TaskPropertiesController extends GenericForwardComposer * @author Diego Pino Garcia */ enum ResourceAllocationTypeEnum { - NON_LIMITING_RESOURCES(_("Normal resource assignment")), - LIMITING_RESOURCES(_("Queue-based resource assignation")), - SUBCONTRACT(_("Subcontract")); + NON_LIMITING_RESOURCES(tr("Normal resource assignment")), + LIMITING_RESOURCES(tr("Queue-based resource assignation")), + SUBCONTRACT(tr("Subcontract")); private String option; @@ -499,13 +499,13 @@ public class TaskPropertiesController extends GenericForwardComposer /** * Forces to mark the string as needing translation. */ - private static String _(String string) { + private static String tr(String string) { return string; } @Override public String toString() { - return I18nHelper._(option); + return I18nHelper.tr(option); } public static List getOptionList() { @@ -613,8 +613,8 @@ public class TaskPropertiesController extends GenericForwardComposer Task task = asTask(currentTaskElement); if ( task.hasResourceAllocations() ) { if ( Messagebox.show( - _("Assigned resources for this task will be deleted. Are you sure?"), - _(WARNING), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION) == Messagebox.OK) { + tr("Assigned resources for this task will be deleted. Are you sure?"), + tr(WARNING), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION) == Messagebox.OK) { task.removeAllResourceAllocations(); setStateTo(newState); } else { @@ -649,8 +649,8 @@ public class TaskPropertiesController extends GenericForwardComposer Task task = asTask(currentTaskElement); if (task.hasResourceAllocations()) { if (Messagebox.show( - _("Assigned resources for this task will be deleted. Are you sure?"), - _(WARNING), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION) == Messagebox.OK ) { + tr("Assigned resources for this task will be deleted. Are you sure?"), + tr(WARNING), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION) == Messagebox.OK ) { task.removeAllResourceAllocations(); setStateTo(newState); } else { @@ -679,8 +679,8 @@ public class TaskPropertiesController extends GenericForwardComposer if ( communicationDate != null ) { if ( Messagebox.show( - _("IMPORTANT: Don't forget to communicate to subcontractor that his contract has been cancelled"), - _(WARNING), Messagebox.OK, Messagebox.EXCLAMATION) == Messagebox.OK ) { + tr("IMPORTANT: Don't forget to communicate to subcontractor that his contract has been cancelled"), + tr(WARNING), Messagebox.OK, Messagebox.EXCLAMATION) == Messagebox.OK ) { setStateTo(newState); } else { @@ -805,7 +805,7 @@ public class TaskPropertiesController extends GenericForwardComposer emailNotificationModel.confirmSave(); } catch (DataIntegrityViolationException e) { Messagebox.show( - _("You cannot email user twice with the same info"), _("Error"), + tr("You cannot email user twice with the same info"), tr("Error"), Messagebox.OK, Messagebox.ERROR); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/qualityforms/QualityFormCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/qualityforms/QualityFormCRUDController.java index 6ef70239d..ad39a2200 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/qualityforms/QualityFormCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/qualityforms/QualityFormCRUDController.java @@ -21,7 +21,7 @@ package org.libreplan.web.qualityforms; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.math.BigDecimal; import java.util.List; @@ -152,7 +152,7 @@ public class QualityFormCRUDController extends BaseCRUDController { if (qualityFormModel.isTotalPercentage(item)) { if (Messagebox.show( - _("Deleting this item will disable the report progress option. Are you sure?"), _("Confirm"), + tr("Deleting this item will disable the report progress option. Are you sure?"), tr("Confirm"), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION) == Messagebox.OK) { Checkbox reportProgress = (Checkbox) editWindow.getFellowIfAny("checkBoxReportProgress"); @@ -184,10 +184,10 @@ public class QualityFormCRUDController extends BaseCRUDController { return (comp, value) -> { getQualityForm().setName((String) value); if ((value == null) || ((String)value).isEmpty()) { - throw new WrongValueException(comp, _(CANNOT_BE_EMPTY)); + throw new WrongValueException(comp, tr(CANNOT_BE_EMPTY)); } else if (!qualityFormModel.checkConstraintUniqueQualityFormName()) { getQualityForm().setName(null); - throw new WrongValueException(comp, _("{0} already exists", value)); + throw new WrongValueException(comp, tr("{0} already exists", value)); } }; } @@ -198,10 +198,10 @@ public class QualityFormCRUDController extends BaseCRUDController { item.setName((String)value); if ((value == null) || ((String) value).isEmpty()) { item.setName(null); - throw new WrongValueException(comp, _(CANNOT_BE_EMPTY)); + throw new WrongValueException(comp, tr(CANNOT_BE_EMPTY)); } else if (!qualityFormModel.checkConstraintUniqueQualityFormItemName()) { item.setName(null); - throw new WrongValueException(comp, _("{0} already exists", value)); + throw new WrongValueException(comp, tr("{0} already exists", value)); } }; } @@ -215,15 +215,15 @@ public class QualityFormCRUDController extends BaseCRUDController { if (newPercentage == null) { item.setPercentage(null); - throw new WrongValueException(comp, _(CANNOT_BE_EMPTY)); + throw new WrongValueException(comp, tr(CANNOT_BE_EMPTY)); } if (qualityFormModel.checkConstraintOutOfRangeQualityFormItemPercentage(item)) { item.setPercentage(null); - throw new WrongValueException(comp, _("percentage should be between 1 and 100")); + throw new WrongValueException(comp, tr("percentage should be between 1 and 100")); } if (!qualityFormModel.checkConstraintUniqueQualityFormItemPercentage()) { item.setPercentage(null); - throw new WrongValueException(comp, _("percentage must be unique")); + throw new WrongValueException(comp, tr("percentage must be unique")); } }; } @@ -269,7 +269,7 @@ public class QualityFormCRUDController extends BaseCRUDController { throw new WrongValueException( checkBoxReportProgress, - _("Quality form should include an item with a value of 100% in order to report progress")); + tr("Quality form should include an item with a value of 100% in order to report progress")); } } @@ -287,12 +287,12 @@ public class QualityFormCRUDController extends BaseCRUDController { @Override protected String getEntityType() { - return _("Quality Form"); + return tr("Quality Form"); } @Override protected String getPluralEntityType() { - return _("Quality Forms"); + return tr("Quality Forms"); } @Override @@ -336,6 +336,6 @@ public class QualityFormCRUDController extends BaseCRUDController { } private void showCannotDeleteQualityFormDialog(String message) { - Messagebox.show(_(message), _("Warning"), Messagebox.OK, Messagebox.EXCLAMATION); + Messagebox.show(tr(message), tr("Warning"), Messagebox.OK, Messagebox.EXCLAMATION); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/reports/CompletedEstimatedHoursPerTaskController.java b/libreplan-webapp/src/main/java/org/libreplan/web/reports/CompletedEstimatedHoursPerTaskController.java index 2154bee04..8addc606b 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/reports/CompletedEstimatedHoursPerTaskController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/reports/CompletedEstimatedHoursPerTaskController.java @@ -38,7 +38,7 @@ import java.util.Date; import java.util.List; import java.util.Map; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * @author Diego Pino Garcia @@ -119,7 +119,7 @@ public class CompletedEstimatedHoursPerTaskController extends LibrePlanReportCon public void showReport(JasperreportComponent jasperreport) { final Order order = getSelectedOrder(); if (order == null) { - throw new WrongValueException(bandboxSelectOrder, _("Please, select a project")); + throw new WrongValueException(bandboxSelectOrder, tr("Please, select a project")); } super.showReport(jasperreport); } @@ -131,12 +131,12 @@ public class CompletedEstimatedHoursPerTaskController extends LibrePlanReportCon public void onSelectLabel() { Label label = (Label) bdLabels.getSelectedElement(); if (label == null) { - throw new WrongValueException(bdLabels, _("please, select a label")); + throw new WrongValueException(bdLabels, tr("please, select a label")); } boolean result = completedEstimatedHoursPerTaskModel.addSelectedLabel(label); if (!result) { - throw new WrongValueException(bdLabels, _("Label has already been added.")); + throw new WrongValueException(bdLabels, tr("Label has already been added.")); } else { Util.reloadBindings(lbLabels); } @@ -163,13 +163,13 @@ public class CompletedEstimatedHoursPerTaskController extends LibrePlanReportCon public void onSelectCriterion() { Criterion criterion = (Criterion) bdCriterions.getSelectedElement(); if (criterion == null) { - throw new WrongValueException(bdCriterions, _("please, select a Criterion")); + throw new WrongValueException(bdCriterions, tr("please, select a Criterion")); } boolean result = completedEstimatedHoursPerTaskModel.addSelectedCriterion(criterion); if (!result) { - throw new WrongValueException(bdCriterions, _("This Criterion has already been added.")); + throw new WrongValueException(bdCriterions, tr("This Criterion has already been added.")); } else { Util.reloadBindings(lbCriterions); } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/reports/HoursWorkedPerWorkerController.java b/libreplan-webapp/src/main/java/org/libreplan/web/reports/HoursWorkedPerWorkerController.java index 0c4f2badb..e9680aa85 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/reports/HoursWorkedPerWorkerController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/reports/HoursWorkedPerWorkerController.java @@ -52,7 +52,7 @@ import java.util.List; import java.util.Map; import java.util.Set; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * Controller for page Hours Worked Per Resource. @@ -191,7 +191,7 @@ public class HoursWorkedPerWorkerController extends LibrePlanReportController { boolean result = hoursWorkedPerWorkerModel.addSelectedResource(resource); if ( !result ) { - throw new WrongValueException(filterResource, _("This resource has already been added.")); + throw new WrongValueException(filterResource, tr("This resource has already been added.")); } else { Util.reloadBindings(lbResources); } @@ -277,7 +277,7 @@ public class HoursWorkedPerWorkerController extends LibrePlanReportController { Button delete = new Button("", "/common/img/ico_borrar1.png"); delete.setHoverImage("/common/img/ico_borrar.png"); delete.setSclass("icono"); - delete.setTooltiptext(_("Delete")); + delete.setTooltiptext(tr("Delete")); delete.addEventListener(Events.ON_CLICK, event -> onRemoveResource(item.getValue())); Listcell deleteResourceCell = new Listcell(); @@ -294,9 +294,9 @@ public class HoursWorkedPerWorkerController extends LibrePlanReportController { private String getType(Resource resource) { if ( resource instanceof Worker ) if ( ((Worker) resource).isReal() ) - return _("Worker"); + return tr("Worker"); else - return _("Virtual worker"); + return tr("Virtual worker"); return "Machine"; } @@ -309,13 +309,13 @@ public class HoursWorkedPerWorkerController extends LibrePlanReportController { Label label = (Label) bdLabels.getSelectedElement(); if ( label == null ) { - throw new WrongValueException(bdLabels, _("please, select a label")); + throw new WrongValueException(bdLabels, tr("please, select a label")); } boolean result = hoursWorkedPerWorkerModel.addSelectedLabel(label); if ( !result ) { - throw new WrongValueException(bdLabels, _("Label has already been added.")); + throw new WrongValueException(bdLabels, tr("Label has already been added.")); } else { Util.reloadBindings(lbLabels); } @@ -339,13 +339,13 @@ public class HoursWorkedPerWorkerController extends LibrePlanReportController { Criterion criterion = (Criterion) bdCriterions.getSelectedElement(); if ( criterion == null ) - throw new WrongValueException(bdCriterions, _("please, select a Criterion")); + throw new WrongValueException(bdCriterions, tr("please, select a Criterion")); boolean result = hoursWorkedPerWorkerModel.addSelectedCriterion(criterion); if ( !result ) { - throw new WrongValueException(bdCriterions, _("This Criterion has already been added.")); + throw new WrongValueException(bdCriterions, tr("This Criterion has already been added.")); } else { Util.reloadBindings(lbCriterions); } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/reports/OrderCostsPerResourceController.java b/libreplan-webapp/src/main/java/org/libreplan/web/reports/OrderCostsPerResourceController.java index 8c017fc8d..cbfe88ffc 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/reports/OrderCostsPerResourceController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/reports/OrderCostsPerResourceController.java @@ -39,7 +39,7 @@ import java.util.Date; import java.util.List; import java.util.Map; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * @author Lorenzo Tilve Álvaro @@ -110,11 +110,11 @@ public class OrderCostsPerResourceController extends LibrePlanReportController { public void onSelectOrder() { Order order = (Order) bdOrders.getSelectedElement(); if (order == null) { - throw new WrongValueException(bdOrders, _("please, select a project")); + throw new WrongValueException(bdOrders, tr("please, select a project")); } boolean result = orderCostsPerResourceModel.addSelectedOrder(order); if (!result) { - throw new WrongValueException(bdOrders, _("This project has already been added.")); + throw new WrongValueException(bdOrders, tr("This project has already been added.")); } else { Util.reloadBindings(lbOrders); } @@ -143,7 +143,7 @@ public class OrderCostsPerResourceController extends LibrePlanReportController { (startDateLine.compareTo(getEndingDate()) > 0)) { ((Datebox) comp).setValue(null); - throw new WrongValueException(comp, _("must be lower than end date")); + throw new WrongValueException(comp, tr("must be lower than end date")); } } }; @@ -157,7 +157,7 @@ public class OrderCostsPerResourceController extends LibrePlanReportController { if ((endingDate != null) && (getStartingDate() != null) && (endingDate.compareTo(getStartingDate()) < 0)) { ((Datebox) comp).setValue(null); - throw new WrongValueException(comp, _("must be after end date")); + throw new WrongValueException(comp, tr("must be after end date")); } } }; @@ -170,11 +170,11 @@ public class OrderCostsPerResourceController extends LibrePlanReportController { public void onSelectLabel() { Label label = (Label) bdLabels.getSelectedElement(); if (label == null) { - throw new WrongValueException(bdLabels, _("please, select a label")); + throw new WrongValueException(bdLabels, tr("please, select a label")); } boolean result = orderCostsPerResourceModel.addSelectedLabel(label); if (!result) { - throw new WrongValueException(bdLabels, _("Label has already been added.")); + throw new WrongValueException(bdLabels, tr("Label has already been added.")); } else { Util.reloadBindings(lbLabels); } @@ -201,11 +201,11 @@ public class OrderCostsPerResourceController extends LibrePlanReportController { public void onSelectCriterion() { Criterion criterion = (Criterion) bdCriterions.getSelectedElement(); if (criterion == null) { - throw new WrongValueException(bdCriterions, _("please, select a Criterion")); + throw new WrongValueException(bdCriterions, tr("please, select a Criterion")); } boolean result = orderCostsPerResourceModel.addSelectedCriterion(criterion); if (!result) { - throw new WrongValueException(bdCriterions, _("This Criterion has already been added.")); + throw new WrongValueException(bdCriterions, tr("This Criterion has already been added.")); } else { Util.reloadBindings(lbCriterions); } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/reports/OrderCostsPerResourceModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/reports/OrderCostsPerResourceModel.java index cbf710791..025a782b0 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/reports/OrderCostsPerResourceModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/reports/OrderCostsPerResourceModel.java @@ -21,7 +21,7 @@ package org.libreplan.web.reports; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.math.BigDecimal; import java.util.ArrayList; @@ -156,7 +156,7 @@ public class OrderCostsPerResourceModel implements IOrderCostsPerResourceModel { List listWorkReportLineDTO = mapWRL.get(orderElement); if (listWorkReportLineDTO == null || listWorkReportLineDTO.isEmpty()) { Order order = Order.create(); - order.setName(_("All projects")); + order.setName(tr("All projects")); listWorkReportLineDTO = createEmptyWorkReportLineList(order); } @@ -259,7 +259,7 @@ public class OrderCostsPerResourceModel implements IOrderCostsPerResourceModel { private OrderCostMasterDTO createEmptyOrderCostMasterDTO() { // Create empty order Order order = Order.create(); - order.setName(_("All projects")); + order.setName(tr("All projects")); // Create empty subreport to expense sheets JRDataSource emptyES = new JRBeanCollectionDataSource( @@ -305,7 +305,7 @@ public class OrderCostsPerResourceModel implements IOrderCostsPerResourceModel { private WorkReportLine createEmptyWorkReportLine(Worker worker) { OrderLine leaf = OrderLine.create(); - leaf.setCode(_("All project tasks")); + leaf.setCode(tr("All project tasks")); TypeOfWorkHours w = TypeOfWorkHours.create(); w.setDefaultPrice(new BigDecimal(0)); @@ -320,7 +320,7 @@ public class OrderCostsPerResourceModel implements IOrderCostsPerResourceModel { private Worker createFictitiousWorker() { Worker unassigned = new Worker(); - unassigned.setFirstName(_("Total dedication")); + unassigned.setFirstName(tr("Total dedication")); unassigned.setSurname(" "); return unassigned; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/reports/ProjectStatusReportController.java b/libreplan-webapp/src/main/java/org/libreplan/web/reports/ProjectStatusReportController.java index 37c4ebbfc..4ffad58f6 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/reports/ProjectStatusReportController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/reports/ProjectStatusReportController.java @@ -19,7 +19,7 @@ package org.libreplan.web.reports; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.List; @@ -111,7 +111,7 @@ public class ProjectStatusReportController extends LibrePlanReportController { public void showReport(JasperreportComponent jasperreport) { final Order order = getSelectedOrder(); if (order == null && projectStatusReportModel.isNotFiltering()) { - messagesForUser.showMessage(Level.ERROR, _("You should filter the report by project, labels or criteria")); + messagesForUser.showMessage(Level.ERROR, tr("You should filter the report by project, labels or criteria")); } else { super.showReport(jasperreport); } @@ -164,7 +164,7 @@ public class ProjectStatusReportController extends LibrePlanReportController { for (Label label : labels) { labelNames.add(label.getName()); } - filter += _("Labels") + ": " + StringUtils.join(labelNames.toArray(), ", "); + filter += tr("Labels") + ": " + StringUtils.join(labelNames.toArray(), ", "); } Set criteria = projectStatusReportModel.getSelectedCriteria(); @@ -176,7 +176,7 @@ public class ProjectStatusReportController extends LibrePlanReportController { if (!filter.isEmpty()) { filter += ". "; } - filter += _("Criteria") + ": " + StringUtils.join(criterionNames.toArray(), ", "); + filter += tr("Criteria") + ": " + StringUtils.join(criterionNames.toArray(), ", "); } return filter; @@ -189,7 +189,7 @@ public class ProjectStatusReportController extends LibrePlanReportController { public void addLabel() { Label label = (Label) bandboxLabels.getSelectedElement(); if (label == null) { - throw new WrongValueException(bandboxLabels, _("please, select a label")); + throw new WrongValueException(bandboxLabels, tr("please, select a label")); } projectStatusReportModel.addSelectedLabel(label); Util.reloadBindings(listboxLabels); @@ -212,7 +212,7 @@ public class ProjectStatusReportController extends LibrePlanReportController { public void addCriterion() { Criterion criterion = (Criterion) bandboxCriteria.getSelectedElement(); if (criterion == null) { - throw new WrongValueException(bandboxCriteria, _("please, select a criterion")); + throw new WrongValueException(bandboxCriteria, tr("please, select a criterion")); } projectStatusReportModel.addSelectedCriterion(criterion); Util.reloadBindings(listboxCriteria); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/reports/SchedulingProgressPerOrderController.java b/libreplan-webapp/src/main/java/org/libreplan/web/reports/SchedulingProgressPerOrderController.java index e997f4202..bda1d8192 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/reports/SchedulingProgressPerOrderController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/reports/SchedulingProgressPerOrderController.java @@ -42,7 +42,7 @@ import java.util.Date; import java.util.List; import java.util.Map; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * @author Diego Pino Garcia @@ -99,12 +99,12 @@ public class SchedulingProgressPerOrderController extends LibrePlanReportControl public void onSelectOrder() { Order order = (Order) bdOrders.getSelectedElement(); if (order == null) { - throw new WrongValueException(bdOrders, _("please, select a project")); + throw new WrongValueException(bdOrders, tr("please, select a project")); } boolean result = schedulingProgressPerOrderModel.addSelectedOrder(order); if (!result) { - throw new WrongValueException(bdOrders, _("This project has already been added.")); + throw new WrongValueException(bdOrders, tr("This project has already been added.")); } else { Util.reloadBindings(lbOrders); } @@ -166,7 +166,7 @@ public class SchedulingProgressPerOrderController extends LibrePlanReportControl } private String asString(AdvanceTypeDTO advanceTypeDTO) { - return (advanceTypeDTO != null) ? advanceTypeDTO.getName() : _("SPREAD"); + return (advanceTypeDTO != null) ? advanceTypeDTO.getName() : tr("SPREAD"); } public AdvanceType getAdvanceType() { @@ -183,7 +183,7 @@ public class SchedulingProgressPerOrderController extends LibrePlanReportControl orderNames.add(order.getName()); } - return (!orderNames.isEmpty()) ? StringUtils.join(orderNames, ",") : _("All"); + return (!orderNames.isEmpty()) ? StringUtils.join(orderNames, ",") : tr("All"); } public List getAdvanceTypeDTOs() { @@ -192,7 +192,7 @@ public class SchedulingProgressPerOrderController extends LibrePlanReportControl // Add value Spread AdvanceTypeDTO advanceTypeDTO = new AdvanceTypeDTO(); advanceTypeDTO.setAdvanceType(null); - advanceTypeDTO.setName(_("SPREAD")); + advanceTypeDTO.setName(tr("SPREAD")); result.add(advanceTypeDTO); final List advanceTypes = schedulingProgressPerOrderModel.getAdvanceTypes(); @@ -211,7 +211,7 @@ public class SchedulingProgressPerOrderController extends LibrePlanReportControl final Date endingDate = dbEnding.getValue(); if (endingDate != null && startingDate != null && startingDate.compareTo(endingDate) > 0) { - throw new WrongValueException(dbStarting, _("Cannot be higher than Ending Date")); + throw new WrongValueException(dbStarting, tr("Cannot be higher than Ending Date")); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/reports/TimeLineRequiredMaterialController.java b/libreplan-webapp/src/main/java/org/libreplan/web/reports/TimeLineRequiredMaterialController.java index f39e6b0c2..aa6ab93cd 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/reports/TimeLineRequiredMaterialController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/reports/TimeLineRequiredMaterialController.java @@ -51,7 +51,7 @@ import java.util.List; import java.util.Map; import java.util.Set; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * @author Susana Montes Pedreira @@ -104,13 +104,13 @@ public class TimeLineRequiredMaterialController extends LibrePlanReportControlle public void onSelectOrder() { Order order = (Order) bdOrders.getSelectedElement(); if (order == null) { - throw new WrongValueException(bdOrders, _("please, select a project")); + throw new WrongValueException(bdOrders, tr("please, select a project")); } boolean result = timeLineRequiredMaterialModel.addSelectedOrder(order); if (!result) { throw new WrongValueException(bdOrders, - _("This project has already been added.")); + tr("This project has already been added.")); } else { Util.reloadBindings(lbOrders); } @@ -209,7 +209,7 @@ public class TimeLineRequiredMaterialController extends LibrePlanReportControlle } private String getDefaultStatus() { - return _("All"); + return tr("All"); } public String getSelectedStatus(){ diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/reports/WorkingArrangementsPerOrderController.java b/libreplan-webapp/src/main/java/org/libreplan/web/reports/WorkingArrangementsPerOrderController.java index 0d99aa138..14848d8a0 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/reports/WorkingArrangementsPerOrderController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/reports/WorkingArrangementsPerOrderController.java @@ -44,7 +44,7 @@ import java.util.Comparator; import java.util.List; import java.util.Map; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * @author Diego Pino Garcia @@ -88,7 +88,7 @@ public class WorkingArrangementsPerOrderController extends LibrePlanReportContro Listitem item = new Listitem(); item.setParent(lbTaskStatus); item.setValue(status); - item.appendChild(new Listcell(_(status.toString()))); + item.appendChild(new Listcell(tr(status.toString()))); lbTaskStatus.appendChild(item); if (status.equals(TaskStatusEnum.ALL)) { @@ -137,14 +137,14 @@ public class WorkingArrangementsPerOrderController extends LibrePlanReportContro // Task status final TaskStatusEnum taskStatus = getSelectedTaskStatus(); - result.put("taskStatus", _(taskStatus.toString())); + result.put("taskStatus", tr(taskStatus.toString())); return result; } public void showReport(JasperreportComponent jasperreport){ if (getSelectedOrder() == null) { - throw new WrongValueException(bdOrder, _("Please, select a project")); + throw new WrongValueException(bdOrder, tr("Please, select a project")); } super.showReport(jasperreport); } @@ -171,12 +171,12 @@ public class WorkingArrangementsPerOrderController extends LibrePlanReportContro public void onSelectLabel() { Label label = (Label) bdLabels.getSelectedElement(); if (label == null) { - throw new WrongValueException(bdLabels, _("please, select a label")); + throw new WrongValueException(bdLabels, tr("please, select a label")); } boolean result = workingArrangementsPerOrderModel.addSelectedLabel(label); if (!result) { - throw new WrongValueException(bdLabels, _("Label has already been added.")); + throw new WrongValueException(bdLabels, tr("Label has already been added.")); } else { Util.reloadBindings(lbLabels); } @@ -203,12 +203,12 @@ public class WorkingArrangementsPerOrderController extends LibrePlanReportContro public void onSelectCriterion() { Criterion criterion = (Criterion) bdCriterions.getSelectedElement(); if (criterion == null) { - throw new WrongValueException(bdCriterions, _("please, select a Criterion")); + throw new WrongValueException(bdCriterions, tr("please, select a Criterion")); } boolean result = workingArrangementsPerOrderModel.addSelectedCriterion(criterion); if (!result) { - throw new WrongValueException(bdCriterions, _("This Criterion has already been added.")); + throw new WrongValueException(bdCriterions, tr("This Criterion has already been added.")); } else { Util.reloadBindings(lbCriterions); } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/reports/WorkingArrangementsPerOrderModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/reports/WorkingArrangementsPerOrderModel.java index 13d8e4e27..6cb586796 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/reports/WorkingArrangementsPerOrderModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/reports/WorkingArrangementsPerOrderModel.java @@ -21,7 +21,7 @@ package org.libreplan.web.reports; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.math.BigDecimal; import java.util.ArrayList; @@ -247,7 +247,7 @@ Order order, WorkingArrangementPerOrderDTO workingArrangementPerOrderDTO = new WorkingArrangementPerOrderDTO( deadLineOrder, task, taskStatus, showDependencies && !dependencies.isEmpty()); - workingArrangementPerOrderDTO.setStatus(_(workingArrangementPerOrderDTO + workingArrangementPerOrderDTO.setStatus(tr(workingArrangementPerOrderDTO .getStatus())); result.add(workingArrangementPerOrderDTO); @@ -263,7 +263,7 @@ Order order, .getAdvancePercentage()); WorkingArrangementPerOrderDTO dto = new WorkingArrangementPerOrderDTO( task, taskStatus, dependencyDTO); - dto.setStatus(_(dto.getStatus())); + dto.setStatus(tr(dto.getStatus())); result.add(dto); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/reports/WorkingProgressPerTaskController.java b/libreplan-webapp/src/main/java/org/libreplan/web/reports/WorkingProgressPerTaskController.java index ae0ab34b4..ec6a82947 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/reports/WorkingProgressPerTaskController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/reports/WorkingProgressPerTaskController.java @@ -38,7 +38,7 @@ import java.util.Date; import java.util.List; import java.util.Map; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * @author Diego Pino Garcia @@ -113,7 +113,7 @@ public class WorkingProgressPerTaskController extends LibrePlanReportController public void showReport(JasperreportComponent jasperreport){ final Order order = getSelectedOrder(); if (order == null) { - throw new WrongValueException(bandboxSelectOrder, _("Please, select a project")); + throw new WrongValueException(bandboxSelectOrder, tr("Please, select a project")); } super.showReport(jasperreport); } @@ -125,12 +125,12 @@ public class WorkingProgressPerTaskController extends LibrePlanReportController public void onSelectLabel() { Label label = (Label) bdLabels.getSelectedElement(); if (label == null) { - throw new WrongValueException(bdLabels, _("please, select a label")); + throw new WrongValueException(bdLabels, tr("please, select a label")); } boolean result = workingProgressPerTaskModel.addSelectedLabel(label); if (!result) { - throw new WrongValueException(bdLabels, _("Label has already been added.")); + throw new WrongValueException(bdLabels, tr("Label has already been added.")); } else { Util.reloadBindings(lbLabels); } @@ -157,12 +157,12 @@ public class WorkingProgressPerTaskController extends LibrePlanReportController public void onSelectCriterion() { Criterion criterion = (Criterion) bdCriterions.getSelectedElement(); if (criterion == null) { - throw new WrongValueException(bdCriterions, _("please, select a Criterion")); + throw new WrongValueException(bdCriterions, tr("please, select a Criterion")); } boolean result = workingProgressPerTaskModel.addSelectedCriterion(criterion); if (!result) { - throw new WrongValueException(bdCriterions, _("This Criterion has already been added.")); + throw new WrongValueException(bdCriterions, tr("This Criterion has already been added.")); } else { Util.reloadBindings(lbCriterions); } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/resourceload/ResourceLoadController.java b/libreplan-webapp/src/main/java/org/libreplan/web/resourceload/ResourceLoadController.java index 4f901c726..b5fbbe566 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/resourceload/ResourceLoadController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/resourceload/ResourceLoadController.java @@ -21,7 +21,7 @@ package org.libreplan.web.resourceload; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import static org.libreplan.web.resourceload.ResourceLoadModel.asDate; import static org.libreplan.web.resourceload.ResourceLoadModel.toLocal; @@ -225,7 +225,7 @@ public class ResourceLoadController implements Composer { chartComponent.setHeight("200px"); Tabs chartTabs = new Tabs(); - chartTabs.appendChild(new Tab(_("Load"))); + chartTabs.appendChild(new Tab(tr("Load"))); chartComponent.appendChild(chartTabs); chartTabs.setWidth("124px"); @@ -452,9 +452,9 @@ public class ResourceLoadController implements Composer { }); Hbox hbox = new Hbox(); - hbox.appendChild(new Label(_("From") + ":")); + hbox.appendChild(new Label(tr("From") + ":")); hbox.appendChild(startBox); - hbox.appendChild(new Label(_("To") + ":")); + hbox.appendChild(new Label(tr("To") + ":")); hbox.appendChild(endBox); hbox.setAlign("center"); @@ -548,9 +548,9 @@ public class ResourceLoadController implements Composer { private void updateLabelValue() { if ( isFilteringByResource() ) { - label.setValue(_("Resources or criteria") + ":"); + label.setValue(tr("Resources or criteria") + ":"); } else { - label.setValue(_("Criteria") + ":"); + label.setValue(tr("Criteria") + ":"); } } @@ -724,8 +724,8 @@ public class ResourceLoadController implements Composer { filterByNameCombo.getChildren().clear(); Comboitem lastItem = new Comboitem(); - lastItem.setLabel(_("All")); - lastItem.setDescription(_("Show all elements")); + lastItem.setLabel(tr("All")); + lastItem.setDescription(tr("Show all elements")); lastItem.setValue(ALL); pages.add(lastItem); @@ -1050,12 +1050,12 @@ public class ResourceLoadController implements Composer { planningControllerEntryPoints.goToTaskResourceAllocation(order, task); } else { Messagebox.show( - _("The project has no scheduled elements"), _("Information"), + tr("The project has no scheduled elements"), tr("Information"), Messagebox.OK, Messagebox.INFORMATION); } } else { Messagebox.show( - _("You don't have read access to this project"), _("Information"), + tr("You don't have read access to this project"), tr("Information"), Messagebox.OK, Messagebox.INFORMATION); } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/resourceload/ResourceLoadModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/resourceload/ResourceLoadModel.java index 1bc752904..bb90cdff7 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/resourceload/ResourceLoadModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/resourceload/ResourceLoadModel.java @@ -22,7 +22,7 @@ package org.libreplan.web.resourceload; import static org.libreplan.business.planner.entities.TaskElement.justTasks; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import static org.libreplan.web.planner.order.PlanningStateCreator.and; import java.util.ArrayList; @@ -691,7 +691,7 @@ public class ResourceLoadModel implements IResourceLoadModel { TimeLineRole role = getCurrentTimeLineRole(null); return new LoadTimeLine( - buildTimeLine(resource, _("Other projects"), resourceAllocations, TYPE_RESOURCE, role), + buildTimeLine(resource, tr("Other projects"), resourceAllocations, TYPE_RESOURCE, role), buildTimeLinesGroupForOrder(resource, byOrder)); } @@ -981,7 +981,7 @@ public class ResourceLoadModel implements IResourceLoadModel { ResourceAllocation.getOfType(SpecificResourceAllocation.class, allocations); LoadTimeLine main = new LoadTimeLine( - _("Specific Allocations"), + tr("Specific Allocations"), createPeriods(criterion, specific), "related-specific", getCurrentTimeLineRole(criterion)); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/resources/criterion/CriterionAdminController.java b/libreplan-webapp/src/main/java/org/libreplan/web/resources/criterion/CriterionAdminController.java index ff6ce3c50..e4ef4d666 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/resources/criterion/CriterionAdminController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/resources/criterion/CriterionAdminController.java @@ -45,7 +45,7 @@ import org.zkoss.zkplus.spring.SpringUtil; import java.util.ConcurrentModificationException; import java.util.List; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * Controller for Criterions. @@ -93,8 +93,8 @@ public class CriterionAdminController extends BaseCRUDController private void showConfirmingHierarchyWindow() { int status = Messagebox.show( - _("Disable hierarchy will cause criteria tree to be flattened. Are you sure?"), - _("Question"), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION); + tr("Disable hierarchy will cause criteria tree to be flattened. Are you sure?"), + tr("Question"), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION); if (Messagebox.OK == status) { disableHierarchy(); @@ -109,7 +109,7 @@ public class CriterionAdminController extends BaseCRUDController messagesForUser.showMessage( Level.INFO, - _("Tree {0} sucessfully flattened", criterionsModel.getCriterionType().getName())); + tr("Tree {0} sucessfully flattened", criterionsModel.getCriterionType().getName())); Util.reloadBindings(listWindow); } @@ -146,7 +146,7 @@ public class CriterionAdminController extends BaseCRUDController private void setupResourceCombobox(Combobox combo) { for (ResourceEnum resource : ResourceEnum.values()) { - Comboitem item = combo.appendItem(_(resource.getDisplayName())); + Comboitem item = combo.appendItem(tr(resource.getDisplayName())); item.setValue(resource); } } @@ -197,12 +197,12 @@ public class CriterionAdminController extends BaseCRUDController @Override protected String getEntityType() { - return _("Criterion Type"); + return tr("Criterion Type"); } @Override protected String getPluralEntityType() { - return _("Criterion Types"); + return tr("Criterion Types"); } @Override @@ -248,7 +248,7 @@ public class CriterionAdminController extends BaseCRUDController if (!criterionsModel.canRemove(criterionType)) { messagesForUser.showMessage( Level.WARNING, - _("This criterion type cannot be deleted because it is assigned to projects or resources")); + tr("This criterion type cannot be deleted because it is assigned to projects or resources")); return false; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/resources/criterion/CriterionTreeController.java b/libreplan-webapp/src/main/java/org/libreplan/web/resources/criterion/CriterionTreeController.java index 5c69353b7..e37e81dfc 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/resources/criterion/CriterionTreeController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/resources/criterion/CriterionTreeController.java @@ -21,7 +21,7 @@ package org.libreplan.web.resources.criterion; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.HashSet; import java.util.Set; @@ -128,7 +128,7 @@ public class CriterionTreeController extends GenericForwardComposer { criterionForThisRow.setName(value); })); - String message = _("cannot be empty"); + String message = tr("cannot be empty"); textboxName.setConstraint("no empty:"+message); Treecell cellForActive = new Treecell(); @@ -293,10 +293,10 @@ public class CriterionTreeController extends GenericForwardComposer { if ( this.criterionsModel.getCriterionType().allowHierarchy()) { unindentButton = new Button("", "/common/img/ico_izq1.png"); unindentButton.setHoverImage("/common/img/ico_izq.png"); - unindentButton.setTooltiptext(_("Unindent")); + unindentButton.setTooltiptext(tr("Unindent")); } else { unindentButton = new Button("", "/common/img/ico_izq_out.png"); - unindentButton.setTooltiptext(_("Not indentable")); + unindentButton.setTooltiptext(tr("Not indentable")); } unindentButton.setSclass("icono"); @@ -308,10 +308,10 @@ public class CriterionTreeController extends GenericForwardComposer { if ( this.criterionsModel.getCriterionType().allowHierarchy()) { indentButton = new Button("", "/common/img/ico_derecha1.png"); indentButton.setHoverImage("/common/img/ico_derecha.png"); - indentButton.setTooltiptext(_("Indent")); + indentButton.setTooltiptext(tr("Indent")); } else { indentButton = new Button("", "/common/img/ico_derecha_out.png"); - indentButton.setTooltiptext(_("Not indentable")); + indentButton.setTooltiptext(tr("Not indentable")); } indentButton.setSclass("icono"); @@ -326,13 +326,13 @@ public class CriterionTreeController extends GenericForwardComposer { if (criterionsModel.isDeletable(criterion.getCriterion())) { removeButton = new Button("", "/common/img/ico_borrar1.png"); removeButton.setHoverImage("/common/img/ico_borrar.png"); - removeButton.setTooltiptext(_("Delete")); + removeButton.setTooltiptext(tr("Delete")); } else { removeButton = new Button("", "/common/img/ico_borrar_out.png"); removeButton.setTooltiptext(criterion.getCriterion().getChildren().isEmpty() - ? (num + " " + _("references")) - : _("Criterion has subelements")); + ? (num + " " + tr("references")) + : tr("Criterion has subelements")); } removeButton.setSclass("icono"); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/resources/criterion/CriterionTreeModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/resources/criterion/CriterionTreeModel.java index ff81c4889..da8b7e970 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/resources/criterion/CriterionTreeModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/resources/criterion/CriterionTreeModel.java @@ -27,7 +27,7 @@ package org.libreplan.web.resources.criterion; import static org.libreplan.business.common.exceptions.ValidationException.invalidValue; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.Arrays; @@ -120,7 +120,7 @@ public class CriterionTreeModel implements ICriterionTreeModel { private CriterionDTO createNewCriterion(String name) { CriterionDTO newCriterion = new CriterionDTO(); - newCriterion.setName(_(name)); + newCriterion.setName(tr(name)); Criterion criterion = Criterion.create(criterionType); newCriterion.setCriterion(criterion); return newCriterion; @@ -327,7 +327,7 @@ public class CriterionTreeModel implements ICriterionTreeModel { for(CriterionDTO criterion : criterions){ if(criterion.getName().equals(name)){ throw new ValidationException(invalidValue( - _("Already exists another " + tr("Already exists another " + "criterion with the same name"), "name", criterion.getName(), criterion)); } @@ -339,7 +339,7 @@ public class CriterionTreeModel implements ICriterionTreeModel { throws ValidationException{ if(name.isEmpty()){ throw new ValidationException( - invalidValue(_("Name of criterion is empty."), "name", + invalidValue(tr("Name of criterion is empty."), "name", "",criterionType)); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/resources/criterion/CriterionsModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/resources/criterion/CriterionsModel.java index 708b6090d..191b4a253 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/resources/criterion/CriterionsModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/resources/criterion/CriterionsModel.java @@ -21,7 +21,7 @@ package org.libreplan.web.resources.criterion; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.Collection; @@ -176,7 +176,7 @@ public class CriterionsModel extends IntegrationEntityModel implements ICriterio return each; } } - throw new RuntimeException(_("{0} not found type for criterion ", criterion)); + throw new RuntimeException(tr("{0} not found type for criterion ", criterion)); } @Override @@ -213,8 +213,8 @@ public class CriterionsModel extends IntegrationEntityModel implements ICriterio private List getResourcesSatisfying( Class resourceType, Criterion criterion) { - Validate.notNull(resourceType, _("Resource type cannot be empty")); - Validate.notNull(criterion, _("Criterion cannot be empty")); + Validate.notNull(resourceType, tr("Resource type cannot be empty")); + Validate.notNull(criterion, tr("Criterion cannot be empty")); List result = new ArrayList(); for (T r : resourceDAO.list(resourceType)) { if (criterion.isSatisfiedBy(r)) { diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/resources/machine/AssignedMachineCriterionsModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/resources/machine/AssignedMachineCriterionsModel.java index 1b897599c..8d1a44643 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/resources/machine/AssignedMachineCriterionsModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/resources/machine/AssignedMachineCriterionsModel.java @@ -21,7 +21,7 @@ package org.libreplan.web.resources.machine; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.HashSet; @@ -395,10 +395,10 @@ public class AssignedMachineCriterionsModel extends IntegrationEntityModel Criterion criterion = satisfactionDTO.getCriterionWithItsType() .getCriterion(); if (checkSameCriterionAndSameInterval(satisfactionDTO)) { - throw new IllegalStateException(_("The {0} can not be assigned to this resource. Its interval overlaps with other criterion", criterion.getName())); + throw new IllegalStateException(tr("The {0} can not be assigned to this resource. Its interval overlaps with other criterion", criterion.getName())); } if (checkNotAllowSimultaneousCriterionsPerResource(satisfactionDTO)) { - throw new IllegalStateException(_("The {0} is not valid. Other value exists from the same criterion type", criterion.getName())); + throw new IllegalStateException(tr("The {0} is not valid. Other value exists from the same criterion type", criterion.getName())); } } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/resources/machine/MachineCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/resources/machine/MachineCRUDController.java index 416461780..f446c60ef 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/resources/machine/MachineCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/resources/machine/MachineCRUDController.java @@ -21,7 +21,7 @@ package org.libreplan.web.resources.machine; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ConcurrentModificationException; import java.util.Date; @@ -276,7 +276,7 @@ public class MachineCRUDController extends BaseCRUDController { Combobox combobox = (Combobox) editWindow.getFellow("createDerivedCalendar"); Comboitem selectedItem = combobox.getSelectedItem(); if (selectedItem == null) { - throw new WrongValueException(combobox, _("Please, select a calendar")); + throw new WrongValueException(combobox, tr("Please, select a calendar")); } BaseCalendar parentCalendar = combobox.getSelectedItem().getValue(); @@ -404,7 +404,7 @@ public class MachineCRUDController extends BaseCRUDController { (finishDate.compareTo(filterStartDate.getValue()) < 0)) { filterFinishDate.setValue(null); - throw new WrongValueException(comp, _("must be after start date")); + throw new WrongValueException(comp, tr("must be after start date")); } } }; @@ -420,7 +420,7 @@ public class MachineCRUDController extends BaseCRUDController { (startDate.compareTo(filterFinishDate.getValue()) > 0)) { filterStartDate.setValue(null); - throw new WrongValueException(comp, _("must be lower than end date")); + throw new WrongValueException(comp, tr("must be lower than end date")); } } }; @@ -533,7 +533,7 @@ public class MachineCRUDController extends BaseCRUDController { messagesForUser.showMessage( Level.WARNING, - _("Machine cannot be deleted. Machine is allocated to a project or contains imputed hours")); + tr("Machine cannot be deleted. Machine is allocated to a project or contains imputed hours")); return false; } @@ -546,7 +546,7 @@ public class MachineCRUDController extends BaseCRUDController { try { machineModel.confirmRemove(machine); } catch (InstanceNotFoundException e) { - messagesForUser.showMessage(Level.INFO, _("Machine was already removed")); + messagesForUser.showMessage(Level.INFO, tr("Machine was already removed")); } } @@ -560,7 +560,7 @@ public class MachineCRUDController extends BaseCRUDController { row.appendChild(new Label(machine.getName())); row.appendChild(new Label(machine.getDescription())); row.appendChild(new Label(machine.getCode())); - row.appendChild(new Label((Boolean.TRUE.equals(machine.isLimitingResource())) ? _("yes") : _("no"))); + row.appendChild(new Label((Boolean.TRUE.equals(machine.isLimitingResource())) ? tr("yes") : tr("no"))); Hbox hbox = new Hbox(); hbox.appendChild(Util.createEditButton(event -> goToEditForm(machine))); @@ -571,12 +571,12 @@ public class MachineCRUDController extends BaseCRUDController { @Override protected String getEntityType() { - return _("Machine"); + return tr("Machine"); } @Override protected String getPluralEntityType() { - return _("Machines"); + return tr("Machines"); } @Override @@ -606,15 +606,15 @@ public class MachineCRUDController extends BaseCRUDController { Limits resourcesTypeLimit = limitsModel.getResourcesType(); if (isNullOrZeroValue(resourcesTypeLimit)) { - return _("Create"); + return tr("Create"); } Integer resources = resourceDAO.getRowCount().intValue(); int resourcesLeft = resourcesTypeLimit.getValue() - resources; return resources >= resourcesTypeLimit.getValue() - ? _("Machines limit reached") - : _("Create") + " ( " + resourcesLeft + " " + _("left") + " )"; + ? tr("Machines limit reached") + : tr("Create") + " ( " + resourcesLeft + " " + tr("left") + " )"; } private boolean isNullOrZeroValue (Limits resourcesTypeLimit) { diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/resources/machine/MachineConfigurationController.java b/libreplan-webapp/src/main/java/org/libreplan/web/resources/machine/MachineConfigurationController.java index 46fe1e013..6face06e7 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/resources/machine/MachineConfigurationController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/resources/machine/MachineConfigurationController.java @@ -20,7 +20,7 @@ */ package org.libreplan.web.resources.machine; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.math.BigDecimal; import java.util.Date; @@ -121,7 +121,7 @@ public class MachineConfigurationController extends GenericForwardComposer { Autocomplete a = (Autocomplete) c.getPreviousSibling(); Worker worker = (Worker) a.getItemByText(a.getValue()); if (worker == null) { - messages.showMessage(Level.ERROR, _("No worker selected")); + messages.showMessage(Level.ERROR, tr("No worker selected")); } else { machineModel.addWorkerAssignmentToConfigurationUnit(unit, worker); Util.reloadBindings(c.getNextSibling()); @@ -145,7 +145,7 @@ public class MachineConfigurationController extends GenericForwardComposer { CriterionWithItsType criterionAndType = item.getValue(); bandbox.setValue(criterionAndType.getNameAndType()); if (checkExistingCriterion(unit, criterionAndType.getCriterion())) { - messages.showMessage(Level.ERROR, _("Criterion previously selected")); + messages.showMessage(Level.ERROR, tr("Criterion previously selected")); } else { machineModel.addCriterionRequirementToConfigurationUnit(unit, criterionAndType.getCriterion()); bandbox.setValue(""); @@ -203,7 +203,7 @@ public class MachineConfigurationController extends GenericForwardComposer { private void validateEndDate(Component comp, Object value) { if (value == null) { - throw new WrongValueException(comp, _("End date is not valid, the date field can not be blank")); + throw new WrongValueException(comp, tr("End date is not valid, the date field can not be blank")); } else { Datebox startDateBox = (Datebox) comp.getPreviousSibling(); @@ -212,7 +212,7 @@ public class MachineConfigurationController extends GenericForwardComposer { if (startDateBox.getValue().compareTo((Date) value) > 0) { throw new WrongValueException( - comp, _("End date is not valid, the new end date must be after start date")); + comp, tr("End date is not valid, the new end date must be after start date")); } } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/resources/search/NewAllocationSelectorController.java b/libreplan-webapp/src/main/java/org/libreplan/web/resources/search/NewAllocationSelectorController.java index 68b7d2681..f7eea2fab 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/resources/search/NewAllocationSelectorController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/resources/search/NewAllocationSelectorController.java @@ -21,7 +21,7 @@ package org.libreplan.web.resources.search; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.math.BigDecimal; import java.util.ArrayList; @@ -696,9 +696,9 @@ public class NewAllocationSelectorController extends AllocationSelectorControlle return (comp, value) -> { if ( value == null ) { if ( comp.getId().equals("startDateLoadRatiosDatebox") ) { - throw new WrongValueException(comp, _("Start filtering date cannot be empty")); + throw new WrongValueException(comp, tr("Start filtering date cannot be empty")); } else if ( comp.getId().equals("endDateLoadRatiosDatebox") ) { - throw new WrongValueException(comp, _("End filtering date cannot be empty")); + throw new WrongValueException(comp, tr("End filtering date cannot be empty")); } } @@ -719,7 +719,7 @@ public class NewAllocationSelectorController extends AllocationSelectorControlle if ( (startDate != null) && (endDate != null) ) { if ( (startDate.after(endDate)) || (startDate.equals(endDate)) ) { - throw new WrongValueException(comp, _("Start filtering date must be before than end filtering date")); + throw new WrongValueException(comp, tr("Start filtering date must be before than end filtering date")); } } }; diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/resources/worker/AssignedCriterionsModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/resources/worker/AssignedCriterionsModel.java index f5f543dad..ecd3ca7b1 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/resources/worker/AssignedCriterionsModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/resources/worker/AssignedCriterionsModel.java @@ -25,7 +25,7 @@ package org.libreplan.web.resources.worker; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.HashSet; @@ -330,12 +330,12 @@ public class AssignedCriterionsModel extends IntegrationEntityModel implements .getCriterion(); if (checkSameCriterionAndSameInterval(satisfactionDTO)) { throw new IllegalStateException( - _("The {0} can not be assigned to this resource. Its interval overlaps with other criterion", + tr("The {0} can not be assigned to this resource. Its interval overlaps with other criterion", criterion.getName())); } if (checkNotAllowSimultaneousCriterionsPerResource(satisfactionDTO)) { throw new IllegalStateException( - _("The {0} is not valid. Other value exists from the same criterion type", + tr("The {0} is not valid. Other value exists from the same criterion type", criterion.getName())); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/resources/worker/CriterionsController.java b/libreplan-webapp/src/main/java/org/libreplan/web/resources/worker/CriterionsController.java index de7f29ea1..1d7592806 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/resources/worker/CriterionsController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/resources/worker/CriterionsController.java @@ -24,7 +24,7 @@ */ package org.libreplan.web.resources.worker; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import static org.libreplan.web.common.InvalidInputsChecker.isInvalid; import static org.libreplan.web.common.InvalidInputsChecker.thereAreInvalidInputsOn; @@ -90,7 +90,7 @@ public class CriterionsController extends GenericForwardComposer { public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); if (messagesContainer == null) { - throw new RuntimeException(_("MessagesContainer is needed")); + throw new RuntimeException(tr("MessagesContainer is needed")); } messages = new MessagesForUser(messagesContainer); comp.setAttribute("assignedCriterionsController", this, true); @@ -189,11 +189,11 @@ public class CriterionsController extends GenericForwardComposer { } if (assignedCriterionsModel.checkSameCriterionAndSameInterval(satisfaction)) { - throw new WrongValueException(comp, _("Criterion already assigned")); + throw new WrongValueException(comp, tr("Criterion already assigned")); } if (assignedCriterionsModel.checkNotAllowSimultaneousCriterionsPerResource(satisfaction)) { - throw new WrongValueException(comp, _("This criterion type cannot have multiple values in the same period")); + throw new WrongValueException(comp, tr("This criterion type cannot have multiple values in the same period")); } } @@ -215,15 +215,15 @@ public class CriterionsController extends GenericForwardComposer { private void validateStartDate(Component comp, Object value){ CriterionSatisfactionDTO criterionSatisfactionDTO = ((Row) comp.getParent()).getValue(); if (value == null) { - throw new WrongValueException(comp, _("cannot be empty")); + throw new WrongValueException(comp, tr("cannot be empty")); } if (!criterionSatisfactionDTO.isLessToEndDate((Date) value)) { - throw new WrongValueException(comp, _("Invalid Start Date. New Start Date must be earlier than End Date")); + throw new WrongValueException(comp, tr("Invalid Start Date. New Start Date must be earlier than End Date")); } else if (!criterionSatisfactionDTO.isPreviousStartDate((Date) value)) { throw new WrongValueException( - comp, _("Start date is not valid, the new start date must be previous the current start date")); + comp, tr("Start date is not valid, the new start date must be previous the current start date")); } } @@ -239,9 +239,9 @@ public class CriterionsController extends GenericForwardComposer { private void validateEndDate(Component comp, Object value){ CriterionSatisfactionDTO criterionSatisfactionDTO = ((Row) comp.getParent()).getValue(); if (!criterionSatisfactionDTO.isGreaterStartDate((Date) value)){ - throw new WrongValueException(comp, _("End date is not valid, the new end date must be after start date")); + throw new WrongValueException(comp, tr("End date is not valid, the new end date must be after start date")); } else if (!criterionSatisfactionDTO.isPostEndDate((Date) value)) { - throw new WrongValueException(comp, _("Invaldid End Date. New End Date must be after current End Date ")); + throw new WrongValueException(comp, tr("Invaldid End Date. New End Date must be after current End Date ")); } } @@ -342,7 +342,7 @@ public class CriterionsController extends GenericForwardComposer { // Value is incorrect, clear startDate.setValue(null); - throw new WrongValueException(startDate, _("cannot be empty")); + throw new WrongValueException(startDate, tr("cannot be empty")); } if (CriterionSatisfactionDTO.CRITERION_WITH_ITS_TYPE.equals(propertyName)) { @@ -351,7 +351,7 @@ public class CriterionsController extends GenericForwardComposer { // Value is incorrect, clear bandType.setValue(null); - throw new WrongValueException(bandType, _("cannot be empty")); + throw new WrongValueException(bandType, tr("cannot be empty")); } } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/resources/worker/CriterionsMachineController.java b/libreplan-webapp/src/main/java/org/libreplan/web/resources/worker/CriterionsMachineController.java index d30d8b253..a3771a1cc 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/resources/worker/CriterionsMachineController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/resources/worker/CriterionsMachineController.java @@ -24,7 +24,7 @@ */ package org.libreplan.web.resources.worker; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import static org.libreplan.web.common.InvalidInputsChecker.isInvalid; import static org.libreplan.web.common.InvalidInputsChecker.thereAreInvalidInputsOn; @@ -181,12 +181,12 @@ public class CriterionsMachineController extends GenericForwardComposer { } if (assignedMachineCriterionsModel.checkSameCriterionAndSameInterval(satisfaction)) { - throw new WrongValueException(comp, _("Criterion already assigned")); + throw new WrongValueException(comp, tr("Criterion already assigned")); } if (assignedMachineCriterionsModel.checkNotAllowSimultaneousCriterionsPerResource(satisfaction)) { throw new WrongValueException(comp, - _("This criterion type cannot have multiple values in the same period")); + tr("This criterion type cannot have multiple values in the same period")); } } @@ -208,9 +208,9 @@ public class CriterionsMachineController extends GenericForwardComposer { private void validateEndDate(Component comp, Object value) { CriterionSatisfactionDTO criterionSatisfactionDTO = ((Row) comp.getParent()).getValue(); if (!criterionSatisfactionDTO.isGreaterStartDate((Date) value)) { - throw new WrongValueException(comp, _("End date is not valid, the new end date must be after the start date")); + throw new WrongValueException(comp, tr("End date is not valid, the new end date must be after the start date")); } else if (!criterionSatisfactionDTO.isPostEndDate((Date) value)) { - throw new WrongValueException(comp, _("Invaldid End Date. New End Date must be after current End Date ")); + throw new WrongValueException(comp, tr("Invaldid End Date. New End Date must be after current End Date ")); } } @@ -226,16 +226,16 @@ public class CriterionsMachineController extends GenericForwardComposer { private void validateStartDate(Component comp, Object value) { CriterionSatisfactionDTO criterionSatisfactionDTO = ((Row) comp.getParent()).getValue(); if (value == null) { - throw new WrongValueException(comp, _("cannot be empty")); + throw new WrongValueException(comp, tr("cannot be empty")); } if (!criterionSatisfactionDTO.isLessToEndDate((Date) value)) { - throw new WrongValueException(comp, _("Invalid Start Date. New Start Date must be earlier than End Date")); + throw new WrongValueException(comp, tr("Invalid Start Date. New Start Date must be earlier than End Date")); } else if (!criterionSatisfactionDTO.isPreviousStartDate((Date) value)) { throw new WrongValueException( - comp, _("Start date is not valid, the new start date must be previous the current start date")); + comp, tr("Start date is not valid, the new start date must be previous the current start date")); } } @@ -339,7 +339,7 @@ public class CriterionsMachineController extends GenericForwardComposer { // Value is incorrect, clear startDate.setValue(null); - throw new WrongValueException(startDate, _("cannot be empty")); + throw new WrongValueException(startDate, tr("cannot be empty")); } if (CriterionSatisfactionDTO.CRITERION_WITH_ITS_TYPE.equals(propertyName)) { @@ -348,7 +348,7 @@ public class CriterionsMachineController extends GenericForwardComposer { // Value is incorrect, clear bandType.setValue(null); - throw new WrongValueException(bandType, _("cannot be empty")); + throw new WrongValueException(bandType, tr("cannot be empty")); } } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/resources/worker/WorkRelationshipsController.java b/libreplan-webapp/src/main/java/org/libreplan/web/resources/worker/WorkRelationshipsController.java index eb4f80aa5..69509ef5b 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/resources/worker/WorkRelationshipsController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/resources/worker/WorkRelationshipsController.java @@ -42,7 +42,7 @@ import java.util.Collection; import java.util.Map; import java.util.Map.Entry; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * Subcontroller for {@link Worker} resource. @@ -145,22 +145,22 @@ public class WorkRelationshipsController extends GenericForwardComposer { satisfactionEdited); switch (addSatisfaction) { case OK: - messagesForUser.showMessage(Level.INFO, _("Time period saved")); + messagesForUser.showMessage(Level.INFO, tr("Time period saved")); this.workerCRUDController.goToEditForm(); break; case SATISFACTION_WRONG: messagesForUser .showMessage(Level.WARNING, - _("Time period contains non valid data. Ending data must be older than starting date")); + tr("Time period contains non valid data. Ending data must be older than starting date")); break; case DONT_COMPLY_OVERLAPPING_RESTRICTIONS: messagesForUser .showMessage(Level.WARNING, - _("Could not save time period. Time period overlaps with another non-compatible time period")); + tr("Could not save time period. Time period overlaps with another non-compatible time period")); this.workerCRUDController.goToEditForm(); break; default: - throw new RuntimeException(_("Unexpected: {0}", addSatisfaction)); + throw new RuntimeException(tr("Unexpected: {0}", addSatisfaction)); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/resources/worker/WorkerCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/resources/worker/WorkerCRUDController.java index 6c192c2ef..12174e293 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/resources/worker/WorkerCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/resources/worker/WorkerCRUDController.java @@ -21,7 +21,7 @@ package org.libreplan.web.resources.worker; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ConcurrentModificationException; import java.util.Date; @@ -179,9 +179,9 @@ public class WorkerCRUDController extends GenericForwardComposer implements IWor private Textbox passwordConfirmationTextbox; private enum UserBindingOption { - NOT_BOUND(_("Not bound")), - EXISTING_USER(_("Existing user")), - CREATE_NEW_USER(_("Create new user")); + NOT_BOUND(tr("Not bound")), + EXISTING_USER(tr("Existing user")), + CREATE_NEW_USER(tr("Create new user")); private String label; @@ -192,7 +192,7 @@ public class WorkerCRUDController extends GenericForwardComposer implements IWor /** * Helper function to mark text to be translated. */ - private static String _(String text) { + private static String tr(String text) { return text; } @@ -285,7 +285,7 @@ public class WorkerCRUDController extends GenericForwardComposer implements IWor } workerModel.save(); - messages.showMessage(Level.INFO, _("Worker saved")); + messages.showMessage(Level.INFO, tr("Worker saved")); return true; } catch (ValidationException e) { @@ -304,7 +304,7 @@ public class WorkerCRUDController extends GenericForwardComposer implements IWor if (UserBindingOption.EXISTING_USER.ordinal() == option) { if (getWorker().getUser() == null) { - throw new WrongValueException(userBandbox, _("please select a user to bound")); + throw new WrongValueException(userBandbox, tr("please select a user to bound")); } getWorker().updateUserData(); } @@ -317,17 +317,17 @@ public class WorkerCRUDController extends GenericForwardComposer implements IWor private User createNewUserForBinding() { String loginName = loginNameTextbox.getValue(); if (StringUtils.isBlank(loginName)) { - throw new WrongValueException(loginNameTextbox, _("cannot be empty")); + throw new WrongValueException(loginNameTextbox, tr("cannot be empty")); } String password = passwordTextbox.getValue(); if (StringUtils.isBlank(loginName)) { - throw new WrongValueException(passwordTextbox, _("cannot be empty")); + throw new WrongValueException(passwordTextbox, tr("cannot be empty")); } String passwordConfirmation = passwordConfirmationTextbox.getValue(); if (!password.equals(passwordConfirmation)) { - throw new WrongValueException(passwordConfirmationTextbox, _("passwords do not match")); + throw new WrongValueException(passwordConfirmationTextbox, tr("passwords do not match")); } String encodedPassword = dbPasswordEncoderService.encodePassword(password, loginName); @@ -394,7 +394,7 @@ public class WorkerCRUDController extends GenericForwardComposer implements IWor editAssignedCriterions(); updateUserBindingComponents(); - showEditWindow(_("Edit Worker: {0}", worker.getHumanId())); + showEditWindow(tr("Edit Worker: {0}", worker.getHumanId())); Textbox workerFirstname = (Textbox) editWindow.getFellow("workerFirstname"); workerFirstname.focus(); @@ -427,7 +427,7 @@ public class WorkerCRUDController extends GenericForwardComposer implements IWor } editAssignedCriterions(); - showEditWindow(_("Edit Virtual Workers Group: {0}", worker.getHumanId())); + showEditWindow(tr("Edit Virtual Workers Group: {0}", worker.getHumanId())); } public void goToEditForm() { @@ -435,7 +435,7 @@ public class WorkerCRUDController extends GenericForwardComposer implements IWor if (isCalendarNotNull()) { editCalendar(); } - showEditWindow(_("Edit Worker: {0}", getWorker().getHumanId())); + showEditWindow(tr("Edit Worker: {0}", getWorker().getHumanId())); } @Override @@ -446,7 +446,7 @@ public class WorkerCRUDController extends GenericForwardComposer implements IWor createAssignedCriterions(); resourcesCostCategoryAssignmentController.setResource(workerModel.getWorker()); updateUserBindingComponents(); - showEditWindow(_("Create Worker")); + showEditWindow(tr("Create Worker")); resourceCalendarModel.cancel(); Textbox workerFirstname = (Textbox) editWindow.getFellow("workerFirstname"); workerFirstname.focus(); @@ -475,7 +475,7 @@ public class WorkerCRUDController extends GenericForwardComposer implements IWor comp.setAttribute("controller", this, true); if (messagesContainer == null) { - throw new RuntimeException(_("MessagesContainer is needed")); + throw new RuntimeException(tr("MessagesContainer is needed")); } messages = new MessagesForUser(messagesContainer); @@ -508,13 +508,13 @@ public class WorkerCRUDController extends GenericForwardComposer implements IWor private void initUserBindingOptions() { UserBindingOption[] values = UserBindingOption.values(); for (UserBindingOption option : values) { - Radio radio = new Radio(_(option.label)); + Radio radio = new Radio(tr(option.label)); if ( option.equals(UserBindingOption.CREATE_NEW_USER) && !SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_USER_ACCOUNTS) ) { radio.setDisabled(true); - radio.setTooltiptext(_("You do not have permissions to create new users")); + radio.setTooltiptext(tr("You do not have permissions to create new users")); } userBindingRadiogroup.appendChild(radio); } @@ -738,7 +738,7 @@ public class WorkerCRUDController extends GenericForwardComposer implements IWor workerModel.prepareForCreate(true); createAssignedCriterions(); resourcesCostCategoryAssignmentController.setResource(workerModel.getWorker()); - showEditWindow(_("Create Virtual Workers Group")); + showEditWindow(tr("Create Virtual Workers Group")); resourceCalendarModel.cancel(); } @@ -781,7 +781,7 @@ public class WorkerCRUDController extends GenericForwardComposer implements IWor if ( (finishDate != null) && (filterStartDate.getValue() != null) && (finishDate.compareTo(filterStartDate.getValue()) < 0) ) { filterFinishDate.setValue(null); - throw new WrongValueException(comp, _("must be after start date")); + throw new WrongValueException(comp, tr("must be after start date")); } }; } @@ -791,7 +791,7 @@ public class WorkerCRUDController extends GenericForwardComposer implements IWor if ( (startDate != null) && (filterFinishDate.getValue() != null) && ( startDate.compareTo(filterFinishDate.getValue()) > 0) ) { filterStartDate.setValue(null); - throw new WrongValueException(comp, _("must be lower than end date")); + throw new WrongValueException(comp, tr("must be lower than end date")); } }; } @@ -849,9 +849,9 @@ public class WorkerCRUDController extends GenericForwardComposer implements IWor } public enum LimitingResourceEnum { - ALL(_("All")), - LIMITING_RESOURCE(_("Queue-based resource")), - NON_LIMITING_RESOURCE(_("Normal resource")); + ALL(tr("All")), + LIMITING_RESOURCE(tr("Queue-based resource")), + NON_LIMITING_RESOURCE(tr("Normal resource")); private String option; @@ -861,7 +861,7 @@ public class WorkerCRUDController extends GenericForwardComposer implements IWor @Override public String toString() { - return _(option); + return tr(option); } public static LimitingResourceEnum valueOf(Boolean isLimitingResource) { @@ -952,13 +952,13 @@ public class WorkerCRUDController extends GenericForwardComposer implements IWor if (!workerModel.canRemove(worker)) { messages.showMessage( Level.WARNING, - _("This worker cannot be deleted because it has assignments to projects or imputed hours")); + tr("This worker cannot be deleted because it has assignments to projects or imputed hours")); return; } int status = Messagebox.show( - _("Confirm deleting this worker. Are you sure?"), - _("Delete"), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION); + tr("Confirm deleting this worker. Are you sure?"), + tr("Delete"), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION); if (Messagebox.OK != status) { return; @@ -969,17 +969,17 @@ public class WorkerCRUDController extends GenericForwardComposer implements IWor if (user != null && !user.isSuperuser()) { removeBoundUser = Messagebox.show( - _("Do you want to remove bound user \"{0}\" too?", user.getLoginName()), - _("Delete bound user"), + tr("Do you want to remove bound user \"{0}\" too?", user.getLoginName()), + tr("Delete bound user"), Messagebox.YES | Messagebox.NO, Messagebox.QUESTION) == Messagebox.YES; } workerModel.confirmRemove(worker, removeBoundUser); messages.showMessage(Level.INFO, - removeBoundUser ? _("Worker and bound user deleted") : _("Worker deleted")); + removeBoundUser ? tr("Worker and bound user deleted") : tr("Worker deleted")); goToList(); } catch (InstanceNotFoundException e) { - messages.showMessage(Level.INFO, _("This worker was already removed by other user")); + messages.showMessage(Level.INFO, tr("This worker was already removed by other user")); } } @@ -994,7 +994,7 @@ public class WorkerCRUDController extends GenericForwardComposer implements IWor row.appendChild(new Label(worker.getFirstName())); row.appendChild(new Label(worker.getNif())); row.appendChild(new Label(worker.getCode())); - row.appendChild(new Label(Boolean.TRUE.equals(worker.isLimitingResource()) ? _("yes") : _("no"))); + row.appendChild(new Label(Boolean.TRUE.equals(worker.isLimitingResource()) ? tr("yes") : tr("no"))); Hbox hbox = new Hbox(); hbox.appendChild(Util.createEditButton(event -> goToEditForm(worker))); @@ -1007,9 +1007,9 @@ public class WorkerCRUDController extends GenericForwardComposer implements IWor if (editWindow != null && state != CRUDControllerState.LIST) { Worker worker = getWorker(); - String entityType = _("Worker"); + String entityType = tr("Worker"); if (worker.isVirtual()) { - entityType = _("Virtual Workers Group"); + entityType = tr("Virtual Workers Group"); } String humanId = worker.getHumanId(); @@ -1018,13 +1018,13 @@ public class WorkerCRUDController extends GenericForwardComposer implements IWor switch (state) { case CREATE: if (StringUtils.isEmpty(humanId)) - title = _("Create {0}", entityType); + title = tr("Create {0}", entityType); else - title = _("Create {0}: {1}", entityType, humanId); + title = tr("Create {0}: {1}", entityType, humanId); break; case EDIT: - title = _("Edit {0}: {1}", entityType, humanId); + title = tr("Edit {0}: {1}", entityType, humanId); break; default: @@ -1100,8 +1100,8 @@ public class WorkerCRUDController extends GenericForwardComposer implements IWor private int showConfirmUserEditionDialog() { return Messagebox.show( - _("Unsaved changes will be lost. Would you like to continue?"), - _("Confirm editing user"), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION); + tr("Unsaved changes will be lost. Would you like to continue?"), + tr("Confirm editing user"), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION); } public boolean isNoRoleUserAccounts() { @@ -1110,7 +1110,7 @@ public class WorkerCRUDController extends GenericForwardComposer implements IWor public String getUserEditionButtonTooltip() { return isNoRoleUserAccounts() - ? _("You do not have permissions to go to edit user window") + ? tr("You do not have permissions to go to edit user window") : ""; } @@ -1136,15 +1136,15 @@ public class WorkerCRUDController extends GenericForwardComposer implements IWor Limits resourcesTypeLimit = limitsModel.getResourcesType(); if (isNullOrZeroValue(resourcesTypeLimit)) { - return _("Create"); + return tr("Create"); } Integer resources = resourceDAO.getRowCount().intValue(); int resourcesLeft = resourcesTypeLimit.getValue() - resources; return resources >= resourcesTypeLimit.getValue() - ? _("Workers limit reached") - : _("Create") + " ( " + resourcesLeft + " " + _("left") + " )"; + ? tr("Workers limit reached") + : tr("Create") + " ( " + resourcesLeft + " " + tr("left") + " )"; } private boolean isNullOrZeroValue (Limits resourcesTypeLimit) { diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/resources/worker/WorkerModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/resources/worker/WorkerModel.java index 0aae70327..59865e011 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/resources/worker/WorkerModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/resources/worker/WorkerModel.java @@ -21,7 +21,7 @@ package org.libreplan.web.resources.worker; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.Collection; @@ -251,7 +251,7 @@ public class WorkerModel extends IntegrationEntityModel implements IWorkerModel @Override @Transactional(readOnly = true) public void prepareEditFor(Worker worker) { - Validate.notNull(worker, _("Worker must be not-null")); + Validate.notNull(worker, tr("Worker must be not-null")); try { this.worker = (Worker) resourceDAO.find(worker.getId()); forceLoadSatisfactions(this.worker); @@ -425,7 +425,7 @@ public class WorkerModel extends IntegrationEntityModel implements IWorkerModel ICriterionType type) { Validate.isTrue(type.isAllowSimultaneousCriterionsPerResource(), - _("Please, allow Multiple Active Criteria in this type " + + tr("Please, allow Multiple Active Criteria in this type " + "in order to use selected Assignment Strategy")); this.criterionDAO = criterionDAO; diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/scenarios/ScenarioCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/scenarios/ScenarioCRUDController.java index acc63d831..8f5175e27 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/scenarios/ScenarioCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/scenarios/ScenarioCRUDController.java @@ -21,7 +21,7 @@ package org.libreplan.web.scenarios; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.Collections; import java.util.List; @@ -126,7 +126,7 @@ public class ScenarioCRUDController extends BaseCRUDController { Treecell operationsTreecell = new Treecell(); Button createDerivedButton = new Button(); - createDerivedButton.setTooltiptext(_("Create derived")); + createDerivedButton.setTooltiptext(tr("Create derived")); createDerivedButton.setSclass("icono"); createDerivedButton.setImage("/common/img/ico_derived1.png"); createDerivedButton.setHoverImage("/common/img/ico_derived.png"); @@ -168,7 +168,7 @@ public class ScenarioCRUDController extends BaseCRUDController { } operationsTreecell.appendChild(removeButton); - Button connectButton = new Button(_("Connect")); + Button connectButton = new Button(tr("Connect")); connectButton.addEventListener(Events.ON_CLICK, new EventListener() { @@ -210,7 +210,7 @@ public class ScenarioCRUDController extends BaseCRUDController { private void errorHappenedDoingReassignation(Exception exceptionHappened) { LOG.error("error happened doing reassignation", exceptionHappened); - messagesForUser.showMessage(Level.ERROR, _("error doing reassignment: {0}", exceptionHappened)); + messagesForUser.showMessage(Level.ERROR, tr("error doing reassignment: {0}", exceptionHappened)); } public Set getOrders() { @@ -224,12 +224,12 @@ public class ScenarioCRUDController extends BaseCRUDController { @Override protected String getEntityType() { - return _("Scenario"); + return tr("Scenario"); } @Override protected String getPluralEntityType() { - return _("Scenarios"); + return tr("Scenarios"); } @Override diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/scenarios/ScenarioModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/scenarios/ScenarioModel.java index f8b2d9212..915d0e302 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/scenarios/ScenarioModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/scenarios/ScenarioModel.java @@ -22,7 +22,7 @@ package org.libreplan.web.scenarios; import static org.libreplan.business.common.exceptions.ValidationException.invalidValue; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.List; import java.util.Set; @@ -114,7 +114,7 @@ public class ScenarioModel implements IScenarioModel { boolean isMainScenario = PredefinedScenarios.MASTER.getScenario().getId().equals(scenario.getId()); if (isMainScenario) { throw new IllegalArgumentException( - _("You cannot remove the default scenario \"{0}\"", PredefinedScenarios.MASTER.getName())); + tr("You cannot remove the default scenario \"{0}\"", PredefinedScenarios.MASTER.getName())); } Scenario currentScenario = scenarioManager.getCurrent(); @@ -122,13 +122,13 @@ public class ScenarioModel implements IScenarioModel { scenario.getId()); if (isCurrentScenario) { throw new IllegalArgumentException( - _("You cannot remove the current scenario")); + tr("You cannot remove the current scenario")); } List derivedScenarios = getDerivedScenarios(scenario); if (!derivedScenarios.isEmpty()) { throw new IllegalArgumentException( - _("You cannot remove a scenario with derived scenarios")); + tr("You cannot remove a scenario with derived scenarios")); } List users = userDAO.findByLastConnectedScenario(scenario); @@ -216,8 +216,8 @@ public class ScenarioModel implements IScenarioModel { @Transactional public void confirmSave() throws ValidationException { if (scenarioDAO.thereIsOtherWithSameName(scenario)) { - throw new ValidationException(_("Could not save the scenario"), - invalidValue(_("{0} already exists", scenario.getName()), + throw new ValidationException(tr("Could not save the scenario"), + invalidValue(tr("{0} already exists", scenario.getName()), "name", scenario.getName(), scenario)); } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/scenarios/TransferOrdersController.java b/libreplan-webapp/src/main/java/org/libreplan/web/scenarios/TransferOrdersController.java index 4d0f4bb02..481a0b86e 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/scenarios/TransferOrdersController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/scenarios/TransferOrdersController.java @@ -21,7 +21,7 @@ package org.libreplan.web.scenarios; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.List; import java.util.Set; @@ -178,7 +178,7 @@ public class TransferOrdersController extends GenericForwardComposer { } private Button getTransferButton(final Order order) { - Button transferButton = new Button(_("Transfer")); + Button transferButton = new Button(tr("Transfer")); transferButton.addEventListener(Events.ON_CLICK, new EventListener() { @Override @@ -187,7 +187,7 @@ public class TransferOrdersController extends GenericForwardComposer { transferOrdersModel.transfer(order); Util.reloadBindings(destinationScenarioOrders); messagesForUser.showMessage(Level.INFO, - _("Project {0} transfered", order + tr("Project {0} transfered", order .getName())); } catch (ValidationException e) { messagesForUser.showInvalidValues(e); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/scenarios/TransferOrdersModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/scenarios/TransferOrdersModel.java index 8c6d45e2e..4425efbfc 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/scenarios/TransferOrdersModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/scenarios/TransferOrdersModel.java @@ -21,7 +21,7 @@ package org.libreplan.web.scenarios; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.HashMap; import java.util.HashSet; @@ -141,16 +141,16 @@ public class TransferOrdersModel implements ITransferOrdersModel { if (sourceScenario == null) { throw new ValidationException( - _("Please select a source scenario")); + tr("Please select a source scenario")); } if (destinationScenario == null) { throw new ValidationException( - _("Please, select a destination scenario")); + tr("Please, select a destination scenario")); } if (sourceScenario.getId().equals(destinationScenario.getId())) { throw new ValidationException( - _("Source and destination scenarios should be different")); + tr("Source and destination scenarios should be different")); } orderDAO.save(order); @@ -167,7 +167,7 @@ public class TransferOrdersModel implements ITransferOrdersModel { && (sourceOrderVersion.getId().equals(destinationOrderVersion .getId()))) { throw new ValidationException( - _("Project version is the same in source and destination scenarios")); + tr("Project version is the same in source and destination scenarios")); } order.useSchedulingDataFor(sourceOrderVersion); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/CustomerCommunicationCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/CustomerCommunicationCRUDController.java index 15e214eee..0d13f61a4 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/CustomerCommunicationCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/CustomerCommunicationCRUDController.java @@ -40,7 +40,7 @@ import org.zkoss.zul.SimpleListModel; import java.util.List; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * Controller for CRUD actions over a {@link CustomerCommunication}. @@ -193,7 +193,7 @@ public class CustomerCommunicationCRUDController extends GenericForwardComposer buttonEdit.setSclass("icono"); buttonEdit.setImage("/common/img/ico_editar1.png"); buttonEdit.setHoverImage("/common/img/ico_editar.png"); - buttonEdit.setTooltiptext(_("Edit")); + buttonEdit.setTooltiptext(tr("Edit")); buttonEdit.addEventListener(Events.ON_CLICK, arg0 -> goToEdit(customerCommunication)); row.appendChild(buttonEdit); } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/FilterCommunicationEnum.java b/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/FilterCommunicationEnum.java index 713b15ee6..9892dd7fb 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/FilterCommunicationEnum.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/FilterCommunicationEnum.java @@ -25,8 +25,8 @@ package org.libreplan.web.subcontract; * @author Susana Montes Pedreira */ public enum FilterCommunicationEnum { - ALL(_("All")), - NOT_REVIEWED(_("Not Reviewed")); + ALL(tr("All")), + NOT_REVIEWED(tr("Not Reviewed")); private String displayName; @@ -37,7 +37,7 @@ public enum FilterCommunicationEnum { /** * Forces to mark the string as needing translation. */ - private static String _(String string) { + private static String tr(String string) { return string; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/ReportAdvancesController.java b/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/ReportAdvancesController.java index 7590db408..c026ae16c 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/ReportAdvancesController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/ReportAdvancesController.java @@ -20,7 +20,7 @@ */ package org.libreplan.web.subcontract; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.io.IOException; import java.util.List; @@ -128,7 +128,7 @@ public class ReportAdvancesController extends GenericForwardComposer { // append the status String status = reportAdvancesModel.getStatus(order); - appendLabel(row, _(status)); + appendLabel(row, tr(status)); // append the operations if ("Updated".equals(status)) { @@ -190,12 +190,12 @@ public class ReportAdvancesController extends GenericForwardComposer { } private Button getSendButton(final Order order, boolean sendButtonDisabled) { - Button sendButton = new Button(_("Send")); + Button sendButton = new Button(tr("Send")); sendButton.setSclass("add-button"); sendButton.addEventListener(Events.ON_CLICK, event -> { try { reportAdvancesModel.sendAdvanceMeasurements(order); - messagesForUser.showMessage(Level.INFO, _("Progress sent successfully")); + messagesForUser.showMessage(Level.INFO, tr("Progress sent successfully")); } catch (UnrecoverableErrorServiceException e) { messagesForUser.showMessage(Level.ERROR, e.getMessage()); } catch (ConnectionProblemsException e) { diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/ReportAdvancesModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/ReportAdvancesModel.java index 1d51d74ec..fa83eb110 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/ReportAdvancesModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/ReportAdvancesModel.java @@ -20,7 +20,7 @@ */ package org.libreplan.web.subcontract; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.io.StringWriter; import java.util.ArrayList; @@ -220,9 +220,9 @@ public class ReportAdvancesModel implements IReportAdvancesModel { } catch (WebApplicationException e) { LOG.error("Problems connecting with client web service", e); - String message = _("Problems connecting with client web service"); + String message = tr("Problems connecting with client web service"); if (e.getMessage() != null) { - message += ". " + _("Error: {0}", e.getMessage()); + message += ". " + tr("Error: {0}", e.getMessage()); } throw new ConnectionProblemsException(message, e); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/SubcontractedTasksController.java b/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/SubcontractedTasksController.java index 291b2d383..1941fa4fe 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/SubcontractedTasksController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/SubcontractedTasksController.java @@ -22,7 +22,7 @@ */ package org.libreplan.web.subcontract; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.io.IOException; import java.util.List; @@ -123,7 +123,7 @@ public class SubcontractedTasksController extends GenericForwardComposer { row.setTooltiptext(subcontractedTaskData.getWorkDescription()); appendLabel(row, Util.addCurrencySymbol(subcontractedTaskData.getSubcontractPrice())); appendLabel(row, Util.formatDate(subcontractedTaskData.getLastRequiredDeliverDate())); - appendLabel(row, _(toString(subcontractedTaskData.getState()))); + appendLabel(row, tr(toString(subcontractedTaskData.getState()))); appendOperations(row, subcontractedTaskData); } @@ -199,13 +199,13 @@ public class SubcontractedTasksController extends GenericForwardComposer { } private Button getSendButton(final SubcontractedTaskData subcontractedTaskData) { - Button sendButton = new Button(_("Send")); + Button sendButton = new Button(tr("Send")); sendButton.setClass("add-button"); sendButton.addEventListener(Events.ON_CLICK, event -> { try { subcontractedTasksModel.sendToSubcontractor(subcontractedTaskData); messagesForUser.showMessage(Level.INFO, - _("Subcontracted task sent successfully")); + tr("Subcontracted task sent successfully")); } catch (UnrecoverableErrorServiceException e) { messagesForUser.showMessage(Level.ERROR, e.getMessage()); } catch (ConnectionProblemsException e) { diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/SubcontractedTasksModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/SubcontractedTasksModel.java index 2669e7e95..61159ef52 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/SubcontractedTasksModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/SubcontractedTasksModel.java @@ -20,7 +20,7 @@ */ package org.libreplan.web.subcontract; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.io.StringWriter; import java.util.Collections; @@ -235,9 +235,9 @@ public class SubcontractedTasksModel implements ISubcontractedTasksModel { } catch (WebApplicationException e) { LOG.error(CONNECTION_PROBLEM, e); - String message = _(CONNECTION_PROBLEM); + String message = tr(CONNECTION_PROBLEM); if ( e.getMessage() != null ) { - message += ". " + _("Error: {0}", e.getMessage()); + message += ". " + tr("Error: {0}", e.getMessage()); } throw new ConnectionProblemsException(message, e); @@ -272,9 +272,9 @@ public class SubcontractedTasksModel implements ISubcontractedTasksModel { } catch (WebApplicationException e) { LOG.error(CONNECTION_PROBLEM, e); - String message = _(CONNECTION_PROBLEM); + String message = tr(CONNECTION_PROBLEM); if ( e.getMessage() != null ) { - message += ". " + _("Error: {0}", e.getMessage()); + message += ". " + tr("Error: {0}", e.getMessage()); } throw new ConnectionProblemsException(message, e); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/SubcontractorCommunicationCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/SubcontractorCommunicationCRUDController.java index 7a526650f..5ef427565 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/SubcontractorCommunicationCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/SubcontractorCommunicationCRUDController.java @@ -45,7 +45,7 @@ import org.zkoss.zul.SimpleListModel; import java.util.List; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * Controller for CRUD actions over a {@link SubcontractorCommunication} @@ -229,7 +229,7 @@ public class SubcontractorCommunicationCRUDController extends GenericForwardComp buttonEdit.setSclass("icono"); buttonEdit.setImage("/common/img/ico_editar1.png"); buttonEdit.setHoverImage("/common/img/ico_editar.png"); - buttonEdit.setTooltiptext(_("Edit")); + buttonEdit.setTooltiptext(tr("Edit")); buttonEdit.addEventListener(Events.ON_CLICK, arg0 -> goToEdit(subcontractorCommunication)); row.appendChild(buttonEdit); } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/templates/OrderTemplatesController.java b/libreplan-webapp/src/main/java/org/libreplan/web/templates/OrderTemplatesController.java index fa8a48651..862d0f5bb 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/templates/OrderTemplatesController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/templates/OrderTemplatesController.java @@ -20,7 +20,7 @@ */ package org.libreplan.web.templates; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import static org.libreplan.web.planner.tabs.MultipleTabsPlannerController.BREADCRUMBS_SEPARATOR; import java.util.List; @@ -229,7 +229,7 @@ public class OrderTemplatesController extends GenericForwardComposer implements if (isAllValid()) { try { model.confirmSave(); - messagesForUser.showMessage(Level.INFO, _("Template saved")); + messagesForUser.showMessage(Level.INFO, tr("Template saved")); show(listWindow); } catch (ValidationException e) { messagesForUser.showInvalidValues(e); @@ -247,7 +247,7 @@ public class OrderTemplatesController extends GenericForwardComposer implements model.confirmSave(); model.initEdit(getTemplate()); bindTemplatesTreeWithModel(); - messagesForUser.showMessage(Level.INFO, _("Template saved")); + messagesForUser.showMessage(Level.INFO, tr("Template saved")); } catch (ValidationException e) { messagesForUser.showInvalidValues(e); } @@ -270,7 +270,7 @@ public class OrderTemplatesController extends GenericForwardComposer implements if (model.getTemplate().isOrderTemplate()) { OrderTemplate orderTemplate = (OrderTemplate) model.getTemplate(); if (orderTemplate.getCalendar() == null) { - throw new WrongValueException(editWindow.getFellow("calendar"), _("calendar not specified")); + throw new WrongValueException(editWindow.getFellow("calendar"), tr("calendar not specified")); } } @@ -289,7 +289,7 @@ public class OrderTemplatesController extends GenericForwardComposer implements try { model.validateTemplateName(name.getValue()); } catch (IllegalArgumentException e) { - throw new WrongValueException(name, _(e.getMessage())); + throw new WrongValueException(name, tr(e.getMessage())); } } @@ -301,9 +301,9 @@ public class OrderTemplatesController extends GenericForwardComposer implements } breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); - breadcrumbs.appendChild(new Label(_("Planning"))); + breadcrumbs.appendChild(new Label(tr("Planning"))); breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); - breadcrumbs.appendChild(new Label(_("Templates"))); + breadcrumbs.appendChild(new Label(tr("Templates"))); } /** @@ -354,7 +354,7 @@ public class OrderTemplatesController extends GenericForwardComposer implements try { model.validateTemplateName((String) value); } catch (IllegalArgumentException e) { - throw new WrongValueException(comp, _(e.getMessage())); + throw new WrongValueException(comp, tr(e.getMessage())); } }; } @@ -366,7 +366,7 @@ public class OrderTemplatesController extends GenericForwardComposer implements */ public void confirmDelete(OrderElementTemplate template) { if (Messagebox.show( - _("Delete template. Are you sure?"), _("Confirm"), + tr("Delete template. Are you sure?"), tr("Confirm"), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION) == Messagebox.OK) { if (this.model.hasNotApplications(template)) { @@ -377,7 +377,7 @@ public class OrderTemplatesController extends GenericForwardComposer implements Util.reloadBindings(gridOrderTemplates); } } else { - messagesForUser.showMessage(Level.ERROR, _("Template cannot be removed because it has applications")); + messagesForUser.showMessage(Level.ERROR, tr("Template cannot be removed because it has applications")); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/templates/OrderTemplatesModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/templates/OrderTemplatesModel.java index 1b3d99635..6b3e95ac9 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/templates/OrderTemplatesModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/templates/OrderTemplatesModel.java @@ -21,7 +21,7 @@ package org.libreplan.web.templates; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.HashMap; @@ -295,13 +295,13 @@ public class OrderTemplatesModel implements IOrderTemplatesModel { @Transactional(readOnly = true) public void validateTemplateName(String name) throws IllegalArgumentException { if ((name == null) || (name.isEmpty())) { - throw new IllegalArgumentException(_("name cannot be empty")); + throw new IllegalArgumentException(tr("name cannot be empty")); } getTemplate().setName(name); if (!getTemplate().isUniqueRootTemplateNameConstraint()) { - throw new IllegalArgumentException(_("Already exists another template with the same name")); + throw new IllegalArgumentException(tr("Already exists another template with the same name")); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/templates/TemplatesTree.java b/libreplan-webapp/src/main/java/org/libreplan/web/templates/TemplatesTree.java index bfc5a405f..38194e8aa 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/templates/TemplatesTree.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/templates/TemplatesTree.java @@ -20,7 +20,7 @@ */ package org.libreplan.web.templates; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import org.libreplan.business.templates.entities.OrderElementTemplate; import org.libreplan.business.templates.entities.OrderLineTemplate; @@ -39,8 +39,8 @@ public class TemplatesTree extends EntitiesTree { @Override protected OrderElementTemplate createNewElement() { OrderLineTemplate result = OrderLineTemplate.createNew(); - result.setName(_("New template")); - result.setDescription(_("New Description")); + result.setName(tr("New template")); + result.setDescription(tr("New Description")); return result; } @@ -48,7 +48,7 @@ public class TemplatesTree extends EntitiesTree { protected OrderElementTemplate createNewElement(String name, int hours) { OrderLineTemplate result = OrderLineTemplate.createNew(); result.setName(name); - result.setDescription(_("New Description")); + result.setDescription(tr("New Description")); result.setWorkHours(hours); return result; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/templates/TemplatesTreeComponent.java b/libreplan-webapp/src/main/java/org/libreplan/web/templates/TemplatesTreeComponent.java index ccb4ea1bc..c380b63f3 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/templates/TemplatesTreeComponent.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/templates/TemplatesTreeComponent.java @@ -20,7 +20,7 @@ */ package org.libreplan.web.templates; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.List; @@ -57,7 +57,7 @@ public class TemplatesTreeComponent extends TreeComponent { } public String getAddElementLabel() { - return _("New Template element"); + return tr("New Template element"); } public boolean isCreateTemplateEnabled() { @@ -65,7 +65,7 @@ public class TemplatesTreeComponent extends TreeComponent { } public String getRemoveElementLabel() { - return _("Delete Template element"); + return tr("Delete Template element"); } @Override @@ -75,28 +75,28 @@ public class TemplatesTreeComponent extends TreeComponent { result.add(schedulingStateColumn); result.add(nameAndDescriptionColumn); - result.add(new TemplatesTreeColumn(_("Hours"), "hours") { + result.add(new TemplatesTreeColumn(tr("Hours"), "hours") { @Override protected void doCell(TemplatesTreeRenderer renderer, Treeitem item, OrderElementTemplate currentElement) { renderer.addHoursCell(currentElement); } }); - result.add(new TemplatesTreeColumn(_("Budget"), "budget") { + result.add(new TemplatesTreeColumn(tr("Budget"), "budget") { @Override protected void doCell(TemplatesTreeRenderer renderer, Treeitem item, OrderElementTemplate currentElement) { renderer.addBudgetCell(currentElement); } }); - result.add(new TemplatesTreeColumn(_("Must start after (days since project start)"), "estimated_init") { + result.add(new TemplatesTreeColumn(tr("Must start after (days since project start)"), "estimated_init") { @Override protected void doCell(TemplatesTreeRenderer renderer, Treeitem item, OrderElementTemplate currentElement) { renderer.addInitCell(currentElement); } }); - result.add(new TemplatesTreeColumn(_("Deadline (days since project start)"), "estimated_end") { + result.add(new TemplatesTreeColumn(tr("Deadline (days since project start)"), "estimated_end") { @Override protected void doCell(TemplatesTreeRenderer renderer, Treeitem item, OrderElementTemplate currentElement) { renderer.addEndCell(currentElement); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/templates/TemplatesTreeController.java b/libreplan-webapp/src/main/java/org/libreplan/web/templates/TemplatesTreeController.java index c6ba1e249..af699c1f6 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/templates/TemplatesTreeController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/templates/TemplatesTreeController.java @@ -35,7 +35,7 @@ import org.zkoss.zul.Treeitem; import java.math.BigDecimal; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * Controller for template element tree
@@ -66,7 +66,7 @@ public class TemplatesTreeController extends TreeController { @@ -86,7 +86,7 @@ public class TemplatesTreeController extends TreeController element.getName(), value -> element.setName(value)); - textBox.setConstraint("no empty:" + _("cannot be empty")); + textBox.setConstraint("no empty:" + tr("cannot be empty")); addCell(textBox); putNameTextbox(element, textBox); } @@ -191,7 +191,7 @@ public class TemplatesTreeController extends TreeController @@ -141,8 +141,8 @@ public class OrderElementHistoricalAssignmentComponent extends HtmlMacroComponen globalView.goToOrderElementDetails(order, orderElement); } else { Messagebox - .show(_("Not enough permissions to edit this project"), - _("Warning"), Messagebox.OK, + .show(tr("Not enough permissions to edit this project"), + tr("Warning"), Messagebox.OK, Messagebox.EXCLAMATION); } } else { @@ -150,9 +150,9 @@ public class OrderElementHistoricalAssignmentComponent extends HtmlMacroComponen for (Scenario scene : getScenarios(order)) { scenarios = scenarios.concat(scene.getName() + "\n"); } - Messagebox.show(_("The planning of this task is not in the current scenenario.\n" + + Messagebox.show(tr("The planning of this task is not in the current scenenario.\n" + "You should change to any of the following scenarios: {0}", scenarios), - _("Information"), Messagebox.OK, Messagebox.INFORMATION); + tr("Information"), Messagebox.OK, Messagebox.INFORMATION); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/tree/TreeComponent.java b/libreplan-webapp/src/main/java/org/libreplan/web/tree/TreeComponent.java index a8350a5ae..1ebfa3788 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/tree/TreeComponent.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/tree/TreeComponent.java @@ -20,7 +20,7 @@ */ package org.libreplan.web.tree; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.List; @@ -41,21 +41,21 @@ public abstract class TreeComponent extends HtmlMacroComponent { private static final String CONTROLLER_NAME = "treeController"; - protected Column codeColumn = new Column(_("Code"), "code") { + protected Column codeColumn = new Column(tr("Code"), "code") { @Override public > void doCell(TreeController.Renderer renderer, Treeitem item, T currentElement) { renderer.addCodeCell(currentElement); } }; - protected final Column nameAndDescriptionColumn = new Column(_("Name"), "name") { + protected final Column nameAndDescriptionColumn = new Column(tr("Name"), "name") { @Override public > void doCell(TreeController.Renderer renderer, Treeitem item, T currentElement) { renderer.addDescriptionCell(currentElement); } }; - protected final Column operationsColumn = new Column(_("Op."), "operations", _("Operations")) { + protected final Column operationsColumn = new Column(tr("Op."), "operations", tr("Operations")) { @Override public > void doCell(TreeController.Renderer renderer, Treeitem item, T currentElement) { renderer.addOperationsCell(item, currentElement); @@ -63,9 +63,9 @@ public abstract class TreeComponent extends HtmlMacroComponent { }; protected final Column schedulingStateColumn = new Column( - _("Scheduling state"), + tr("Scheduling state"), "scheduling_state", - _("Fully, Partially or Unscheduled. (Drag and drop to move tasks)")) { + tr("Fully, Partially or Unscheduled. (Drag and drop to move tasks)")) { @Override public > void doCell(TreeController.Renderer renderer, Treeitem item, T currentElement) { @@ -157,7 +157,7 @@ public abstract class TreeComponent extends HtmlMacroComponent { } public String getAddElementLabel() { - return _("Add"); + return tr("Add"); } public boolean isCreateTemplateEnabled() { @@ -169,6 +169,6 @@ public abstract class TreeComponent extends HtmlMacroComponent { } public String getRemoveElementLabel() { - return _("Delete task"); + return tr("Delete task"); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/tree/TreeController.java b/libreplan-webapp/src/main/java/org/libreplan/web/tree/TreeController.java index 7640a01e4..296912429 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/tree/TreeController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/tree/TreeController.java @@ -20,7 +20,7 @@ */ package org.libreplan.web.tree; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.math.BigDecimal; import java.util.ArrayList; @@ -292,7 +292,7 @@ public abstract class TreeController> extends GenericForw Intbox hours = (Intbox) cmp.getFellow("newOrderElementHours"); if (StringUtils.isEmpty(name.getValue())) { - throw new WrongValueException(name, _("cannot be empty")); + throw new WrongValueException(name, tr("cannot be empty")); } if (hours.getValue() == null) { @@ -774,7 +774,7 @@ public abstract class TreeController> extends GenericForw protected void checkInvalidValues(String property, Integer value, final Intbox component) { Set> violations = validator.validateValue(type, property, value); if (!violations.isEmpty()) { - throw new WrongValueException(component, _(violations.iterator().next().getMessage())); + throw new WrongValueException(component, tr(violations.iterator().next().getMessage())); } } @@ -1010,11 +1010,11 @@ public abstract class TreeController> extends GenericForw return (comp, value) -> { if (value == null) { - throw new WrongValueException(comp, _("cannot be empty")); + throw new WrongValueException(comp, tr("cannot be empty")); } if (((BigDecimal) value).compareTo(BigDecimal.ZERO) < 0) { - throw new WrongValueException(comp, _("cannot be negative")); + throw new WrongValueException(comp, tr("cannot be negative")); } }; } @@ -1035,7 +1035,7 @@ public abstract class TreeController> extends GenericForw if (!readOnly && element.isLeaf()) { if (getHoursGroupHandler().hasMoreThanOneHoursGroup(element)) { boxHours.setReadonly(true); - tc.setTooltiptext(_("Disabled because of it contains more than one hours group")); + tc.setTooltiptext(tr("Disabled because of it contains more than one hours group")); } else { boxHours.setReadonly(false); tc.setTooltiptext(""); @@ -1140,7 +1140,7 @@ public abstract class TreeController> extends GenericForw if (!getHoursGroupHandler().isTotalHoursValid(line, ((Integer) value))) { throw new WrongValueException( comp, - _("Value is not valid in current list of Hours Group")); + tr("Value is not valid in current list of Hours Group")); } }; } @@ -1160,7 +1160,7 @@ public abstract class TreeController> extends GenericForw if (readOnly) { result = createButton( "/common/img/ico_borrar_out.png", - _("Delete"), + tr("Delete"), "/common/img/ico_borrar_out.png", "icono", removeListener); @@ -1169,7 +1169,7 @@ public abstract class TreeController> extends GenericForw } else { result = createButton( "/common/img/ico_borrar1.png", - _("Delete"), + tr("Delete"), "/common/img/ico_borrar.png", "icono", removeListener); @@ -1296,7 +1296,7 @@ public abstract class TreeController> extends GenericForw // Check if marked label has been previously added if (!(tc.getLastChild() instanceof org.zkoss.zul.Label)) { org.zkoss.zul.Label modifiedMark = new org.zkoss.zul.Label("*"); - modifiedMark.setTooltiptext(_("Modified")); + modifiedMark.setTooltiptext(tr("Modified")); modifiedMark.setSclass("modified-mark"); tc.appendChild(modifiedMark); cellsMarkedAsModified.add(tc); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/users/OrderAuthorizationController.java b/libreplan-webapp/src/main/java/org/libreplan/web/users/OrderAuthorizationController.java index 2b285d290..ed9bc0cfb 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/users/OrderAuthorizationController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/users/OrderAuthorizationController.java @@ -21,7 +21,7 @@ package org.libreplan.web.users; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.List; @@ -90,7 +90,7 @@ public class OrderAuthorizationController extends GenericForwardComposer{ if(comboItem != null) { if(!readAuthorization && !writeAuthorization) { messagesForUser.showMessage(Level.WARNING, - _("No authorizations were added because you did not select any.")); + tr("No authorizations were added because you did not select any.")); return; } List authorizations = new ArrayList<>(); @@ -105,7 +105,7 @@ public class OrderAuthorizationController extends GenericForwardComposer{ orderAuthorizationModel.addUserOrderAuthorization(comboItem.getValue(), authorizations); if(result != null && result.size()==authorizations.size()) { messagesForUser.showMessage(Level.WARNING, - _("Could not add those authorizations to user {0} " + + tr("Could not add those authorizations to user {0} " + "because they were already present.", ((User)comboItem.getValue()).getLoginName())); } @@ -115,7 +115,7 @@ public class OrderAuthorizationController extends GenericForwardComposer{ orderAuthorizationModel.addProfileOrderAuthorization(comboItem.getValue(), authorizations); if(result != null && result.size()==authorizations.size()) { messagesForUser.showMessage(Level.WARNING, - _("Could not add those authorizations to profile {0} " + + tr("Could not add those authorizations to profile {0} " + "because they were already present.", ((Profile)comboItem.getValue()).getProfileName())); } @@ -138,7 +138,7 @@ public class OrderAuthorizationController extends GenericForwardComposer{ final ProfileOrderAuthorization profileOrderAuthorization = (ProfileOrderAuthorization) data; row.appendChild(new Label(profileOrderAuthorization.getProfile().getProfileName())); - row.appendChild(new Label(_(profileOrderAuthorization.getAuthorizationType().getDisplayName()))); + row.appendChild(new Label(tr(profileOrderAuthorization.getAuthorizationType().getDisplayName()))); row.appendChild(Util.createRemoveButton(event -> removeOrderAuthorization(profileOrderAuthorization))); }; diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/users/ProfileCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/users/ProfileCRUDController.java index 2d4b080bd..246fe1baa 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/users/ProfileCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/users/ProfileCRUDController.java @@ -42,7 +42,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * Controller for CRUD actions over a {@link Profile}. @@ -80,7 +80,7 @@ public class ProfileCRUDController extends BaseCRUDController { roles.remove(UserRole.ROLE_BOUND_USER); for (UserRole role : roles) { - Comboitem item = combo.appendItem(_(role.getDisplayName())); + Comboitem item = combo.appendItem(tr(role.getDisplayName())); item.setValue(role); } } @@ -120,12 +120,12 @@ public class ProfileCRUDController extends BaseCRUDController { @Override protected String getEntityType() { - return _("Profile"); + return tr("Profile"); } @Override protected String getPluralEntityType() { - return _("Profiles"); + return tr("Profiles"); } @Override @@ -155,7 +155,7 @@ public class ProfileCRUDController extends BaseCRUDController { } private void showCannotDeleteProfileDialog(String message) { - Messagebox.show(_(message), _("Warning"), Messagebox.OK, Messagebox.EXCLAMATION); + Messagebox.show(tr(message), tr("Warning"), Messagebox.OK, Messagebox.EXCLAMATION); } @Override protected boolean beforeDeleting(Profile profile){ @@ -173,7 +173,7 @@ public class ProfileCRUDController extends BaseCRUDController { public void render(Row row, Object data, int i) throws Exception { final UserRole role = (UserRole) data; - row.appendChild(new Label(_(role.getDisplayName()))); + row.appendChild(new Label(tr(role.getDisplayName()))); row.appendChild(Util.createRemoveButton(new EventListener() { @Override diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/users/UserCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/users/UserCRUDController.java index 5aa615da0..22acfc7c5 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/users/UserCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/users/UserCRUDController.java @@ -21,7 +21,7 @@ package org.libreplan.web.users; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.Arrays; @@ -95,9 +95,9 @@ public class UserCRUDController extends BaseCRUDController implements IUse row.setValue(user); Util.appendLabel(row, user.getLoginName()); - Util.appendLabel(row, user.isDisabled() ? _("Yes") : _("No")); - Util.appendLabel(row, user.isSuperuser() ? _("Yes") : _("No")); - Util.appendLabel(row, _(user.getUserType().toString())); + Util.appendLabel(row, user.isDisabled() ? tr("Yes") : tr("No")); + Util.appendLabel(row, user.isSuperuser() ? tr("Yes") : tr("No")); + Util.appendLabel(row, tr(user.getUserType().toString())); Util.appendLabel(row, user.isBound() ? user.getWorker().getShortDescription() : ""); Button[] buttons = @@ -106,7 +106,7 @@ public class UserCRUDController extends BaseCRUDController implements IUse // Disable remove button for default admin as it's mandatory if ( isDefaultAdmin(user) ) { buttons[1].setDisabled(true); - buttons[1].setTooltiptext(_("Default user \"admin\" cannot be removed as it is mandatory")); + buttons[1].setTooltiptext(tr("Default user \"admin\" cannot be removed as it is mandatory")); } }; @@ -159,10 +159,10 @@ public class UserCRUDController extends BaseCRUDController implements IUse roles.remove(UserRole.ROLE_BOUND_USER); // Sorting by ASC - Collections.sort(roles, (arg0, arg1) -> _(arg0.getDisplayName()).compareTo(_(arg1.getDisplayName()))); + Collections.sort(roles, (arg0, arg1) -> tr(arg0.getDisplayName()).compareTo(tr(arg1.getDisplayName()))); for (UserRole role : roles) { - Comboitem item = combo.appendItem(_(role.getDisplayName())); + Comboitem item = combo.appendItem(tr(role.getDisplayName())); item.setValue(role); } } @@ -237,10 +237,10 @@ public class UserCRUDController extends BaseCRUDController implements IUse roles.removeAll(userRoles); // Sorting by ASC - Collections.sort(roles, (arg0, arg1) -> _(arg0.getDisplayName()).compareTo(_(arg1.getDisplayName()))); + Collections.sort(roles, (arg0, arg1) -> tr(arg0.getDisplayName()).compareTo(tr(arg1.getDisplayName()))); for (UserRole role : roles) { - Comboitem item = combo.appendItem(_(role.getDisplayName())); + Comboitem item = combo.appendItem(tr(role.getDisplayName())); item.setValue(role); } } @@ -283,19 +283,19 @@ public class UserCRUDController extends BaseCRUDController implements IUse ((Textbox) comp).setRawValue(value); if (!value.equals(passwordBox.getValue())) { - throw new WrongValueException(comp, _("passwords don't match")); + throw new WrongValueException(comp, tr("passwords don't match")); } }; } @Override protected String getEntityType() { - return _("User"); + return tr("User"); } @Override protected String getPluralEntityType() { - return _("Users"); + return tr("Users"); } @Override @@ -303,7 +303,7 @@ public class UserCRUDController extends BaseCRUDController implements IUse userModel.initCreate(); // Password is compulsory when creating - passwordBox.setConstraint("no empty:" + _("Password cannot be empty")); + passwordBox.setConstraint("no empty:" + tr("Password cannot be empty")); // Clean the password boxes, they are not cleared automatically because they are not directly associated to an attribute passwordBox.setRawValue(""); @@ -331,7 +331,7 @@ public class UserCRUDController extends BaseCRUDController implements IUse Combobox combo = (Combobox) editWindow.getFellowIfAny("authenticationTypeCombo"); combo.getChildren().clear(); for (UserAuthenticationType type : UserAuthenticationType.values()) { - Comboitem item = combo.appendItem(_(type.toString())); + Comboitem item = combo.appendItem(tr(type.toString())); item.setValue(type); if (type.equals(getAuthenticationType())) { combo.setSelectedItem(item); @@ -352,9 +352,9 @@ public class UserCRUDController extends BaseCRUDController implements IUse Worker worker = user.getWorker(); return worker == null || - Messagebox.show(_("User is bound to resource \"{0}\" and it will be unbound. " + + Messagebox.show(tr("User is bound to resource \"{0}\" and it will be unbound. " + "Do you want to continue with user removal?", worker.getShortDescription()), - _("Confirm remove user"), Messagebox.YES | Messagebox.NO, Messagebox.QUESTION) == Messagebox.YES; + tr("Confirm remove user"), Messagebox.YES | Messagebox.NO, Messagebox.QUESTION) == Messagebox.YES; } @Override @@ -379,7 +379,7 @@ public class UserCRUDController extends BaseCRUDController implements IUse return (row, data, i) -> { final UserRole role = (UserRole) data; - row.appendChild(new Label(_(role.getDisplayName()))); + row.appendChild(new Label(tr(role.getDisplayName()))); Button removeButton = Util.createRemoveButton(event -> removeRole(role)); @@ -396,7 +396,7 @@ public class UserCRUDController extends BaseCRUDController implements IUse public String hasBoundResource() { User user = getUser(); - return user != null && user.isBound() ? _("Yes") : _("No"); + return user != null && user.isBound() ? tr("Yes") : tr("No"); } public String getBoundResource() { @@ -418,8 +418,8 @@ public class UserCRUDController extends BaseCRUDController implements IUse } private int showConfirmWorkerEditionDialog() { - return Messagebox.show(_("Unsaved changes will be lost. Would you like to continue?"), - _("Confirm edit worker"), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION); + return Messagebox.show(tr("Unsaved changes will be lost. Would you like to continue?"), + tr("Confirm edit worker"), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION); } public void unboundResource() { @@ -432,7 +432,7 @@ public class UserCRUDController extends BaseCRUDController implements IUse } public String getWorkerEditionButtonTooltip() { - return isNoRoleWorkers() ? _("You do not have permissions to go to edit worker window") : ""; + return isNoRoleWorkers() ? tr("You do not have permissions to go to edit worker window") : ""; } private boolean isDefaultAdmin(final User user) { @@ -459,7 +459,7 @@ public class UserCRUDController extends BaseCRUDController implements IUse public void setAuthenticationType(Comboitem item) { if (item == null) { - throw new WrongValueException(editWindow.getFellowIfAny("authenticationTypeCombo"), _("cannot be empty")); + throw new WrongValueException(editWindow.getFellowIfAny("authenticationTypeCombo"), tr("cannot be empty")); } UserAuthenticationType authenticationType = item.getValue(); @@ -492,15 +492,15 @@ public class UserCRUDController extends BaseCRUDController implements IUse Limits usersTypeLimit = limitsModel.getUsersType(); if (isNullOrZeroValue(usersTypeLimit)) { - return _("Create"); + return tr("Create"); } Integer users = userModel.getRowCount().intValue(); int usersLeft = usersTypeLimit.getValue() - users; return users >= usersTypeLimit.getValue() - ? _("User limit reached") - : _("Create") + " ( " + usersLeft + " " + _("left") + " )"; + ? tr("User limit reached") + : tr("Create") + " ( " + usersLeft + " " + tr("left") + " )"; } private boolean isNullOrZeroValue (Limits usersTypeLimit) { diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/ExpensesAreaController.java b/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/ExpensesAreaController.java index 9c74339de..a3c208f5c 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/ExpensesAreaController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/ExpensesAreaController.java @@ -37,7 +37,7 @@ import org.zkoss.zul.RowRenderer; import java.util.List; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * Controller for "Expenses" area in the user dashboard window. @@ -77,21 +77,21 @@ public class ExpensesAreaController extends GenericForwardComposer { event -> { try { if (Messagebox.show( - _("Delete expense sheet \"{0}\". Are you sure?", expenseSheet.getHumanId()), - _("Confirm"), + tr("Delete expense sheet \"{0}\". Are you sure?", expenseSheet.getHumanId()), + tr("Confirm"), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION) == Messagebox.OK) { expenseSheetModel.removeExpenseSheet(expenseSheet); messagesForUser.showMessage( - Level.INFO, _("Expense sheet \"{0}\" deleted", expenseSheet.getHumanId())); + Level.INFO, tr("Expense sheet \"{0}\" deleted", expenseSheet.getHumanId())); Util.reloadBindings(expenseSheetsList); } } catch (InstanceNotFoundException e) { messagesForUser.showMessage( Level.ERROR, - _("Expense sheet \"{1}\" could not be deleted, it was already removed", + tr("Expense sheet \"{1}\" could not be deleted, it was already removed", expenseSheet.getHumanId())); } }); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/MyTasksAreaController.java b/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/MyTasksAreaController.java index 37e541de4..e45a33789 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/MyTasksAreaController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/MyTasksAreaController.java @@ -38,7 +38,7 @@ import org.zkoss.zul.RowRenderer; import java.text.MessageFormat; import java.util.List; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * Controller for "My tasks" area in the user dashboard window. @@ -70,8 +70,8 @@ public class MyTasksAreaController extends GenericForwardComposer { Util.appendLabel(row, task.getStartAsLocalDate().toString()); Util.appendLabel(row, task.getEndAsLocalDate().toString()); - Util.appendLabel(row, _("{0} h", task.getSumOfAssignedEffort().toHoursAsDecimalWithScale(0).toString())); - Util.appendLabel(row, _("{0} h", orderElement.getEffortAsString())); + Util.appendLabel(row, tr("{0} h", task.getSumOfAssignedEffort().toHoursAsDecimalWithScale(0).toString())); + Util.appendLabel(row, tr("{0} h", orderElement.getEffortAsString())); Util.appendLabel(row, getProgress(orderElement)); appendTimeTrackingButton(row, task); } @@ -134,7 +134,7 @@ public class MyTasksAreaController extends GenericForwardComposer { Button button = Util.createEditButton(trackTimeButtonListener); row.addEventListener(Events.ON_CLICK, trackTimeButtonListener); - button.setTooltiptext(_("Track time")); + button.setTooltiptext(tr("Track time")); row.appendChild(button); } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/PersonalTimesheetController.java b/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/PersonalTimesheetController.java index 682e593d6..eb6d5d89a 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/PersonalTimesheetController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/PersonalTimesheetController.java @@ -19,7 +19,7 @@ package org.libreplan.web.users.dashboard; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import static org.libreplan.web.planner.tabs.MultipleTabsPlannerController.BREADCRUMBS_SEPARATOR; import java.math.BigDecimal; @@ -212,7 +212,7 @@ public class PersonalTimesheetController extends GenericForwardComposer implemen EffortDuration effortDuration = effortDurationFromString(value); if ( effortDuration == null ) { - throw new WrongValueException(textbox, _("Invalid Effort Duration")); + throw new WrongValueException(textbox, tr("Invalid Effort Duration")); } personalTimesheetModel.setEffortDuration(orderElement, textboxDate, effortDuration); @@ -280,7 +280,7 @@ public class PersonalTimesheetController extends GenericForwardComposer implemen if ( effortDuration == null ) { throw new WrongValueException( - personalTimesheetPopupEffort, _("Invalid Effort Duration")); + personalTimesheetPopupEffort, tr("Invalid Effort Duration")); } Events.sendEvent(new InputEvent(Events.ON_CHANGE, textbox, value, textbox.getValue())); @@ -337,7 +337,7 @@ public class PersonalTimesheetController extends GenericForwardComposer implemen } private void renderTotalRow(Row row) { - appendLabelSpaningTwoColumns(row, _("Total")); + appendLabelSpaningTwoColumns(row, tr("Total")); appendTotalForDays(row); row.setSclass("total-row"); appendTotalColumn(row); @@ -394,7 +394,7 @@ public class PersonalTimesheetController extends GenericForwardComposer implemen } private void renderOtherRow(Row row) { - appendLabelSpaningTwoColumns(row, _("Other")); + appendLabelSpaningTwoColumns(row, tr("Other")); appendOtherForDaysAndTotal(row); } @@ -421,7 +421,7 @@ public class PersonalTimesheetController extends GenericForwardComposer implemen } private void renderCapacityRow(Row row) { - appendLabelSpaningTwoColumns(row, _("Capacity")); + appendLabelSpaningTwoColumns(row, tr("Capacity")); appendCapacityForDaysAndTotal(row); } @@ -452,7 +452,7 @@ public class PersonalTimesheetController extends GenericForwardComposer implemen } private void renderExtraRow(Row row) { - appendLabelSpaningTwoColumns(row, _("Extra")); + appendLabelSpaningTwoColumns(row, tr("Extra")); appendExtraForDays(row); appendTotalExtra(row); } @@ -602,13 +602,13 @@ public class PersonalTimesheetController extends GenericForwardComposer implemen } breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); - breadcrumbs.appendChild(new Label(_("My account"))); + breadcrumbs.appendChild(new Label(tr("My account"))); breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); - breadcrumbs.appendChild(new Label(_("My dashboard"))); + breadcrumbs.appendChild(new Label(tr("My dashboard"))); breadcrumbs.appendChild(new Image(BREADCRUMBS_SEPARATOR)); - breadcrumbs.appendChild(new Label(_("Personal timesheet"))); + breadcrumbs.appendChild(new Label(tr("Personal timesheet"))); } @Override @@ -661,12 +661,12 @@ public class PersonalTimesheetController extends GenericForwardComposer implemen private void createProjectAndTaskColumns() { /* setWidth() was used because setStyle(min-width) was not working */ - Column project = new Column(_("Project")); + Column project = new Column(tr("Project")); project.setWidth("150px"); columns.appendChild(project); - Column task = new Column(_("Task")); + Column task = new Column(tr("Task")); task.setWidth("150px"); columns.appendChild(project); @@ -686,7 +686,7 @@ public class PersonalTimesheetController extends GenericForwardComposer implemen } private void createOtherColumn() { - Column other = new Column(_("Other")); + Column other = new Column(tr("Other")); other.setWidth(TOTAL_DURATION_TEXTBOX_WIDTH); other.setSclass("totals-column"); other.setAlign(ALIGN_CENTER); @@ -694,7 +694,7 @@ public class PersonalTimesheetController extends GenericForwardComposer implemen } private void createTotalColumn() { - Column total = new Column(_("Total")); + Column total = new Column(tr("Total")); total.setWidth(TOTAL_DURATION_TEXTBOX_WIDTH); total.setSclass("totals-column"); total.setAlign(ALIGN_CENTER); @@ -746,7 +746,7 @@ public class PersonalTimesheetController extends GenericForwardComposer implemen goToCreateOrEditFormForResource(personalTimesheetModel.getDate(), personalTimesheetModel.getWorker()); } - messagesForUser.showMessage(Level.INFO, _("Personal timesheet saved")); + messagesForUser.showMessage(Level.INFO, tr("Personal timesheet saved")); Util.reloadBindings(timesheet); } @@ -786,7 +786,7 @@ public class PersonalTimesheetController extends GenericForwardComposer implemen public void previousPeriod() { if ( personalTimesheetModel.isModified() ) { throw new WrongValueException(previousPeriod, - _("There are unsaved changes in the current personal timesheet, please save before moving")); + tr("There are unsaved changes in the current personal timesheet, please save before moving")); } sendToPersonalTimesheet(personalTimesheetModel.getPrevious()); @@ -795,7 +795,7 @@ public class PersonalTimesheetController extends GenericForwardComposer implemen public void nextPeriod() { if ( personalTimesheetModel.isModified() ) { throw new WrongValueException(nextPeriod, - _("There are unsaved changes in the current personal timesheet, please save before moving")); + tr("There are unsaved changes in the current personal timesheet, please save before moving")); } sendToPersonalTimesheet(personalTimesheetModel.getNext()); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/PersonalTimesheetDTO.java b/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/PersonalTimesheetDTO.java index ee3744d4a..a623e7820 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/PersonalTimesheetDTO.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/PersonalTimesheetDTO.java @@ -19,7 +19,7 @@ package org.libreplan.web.users.dashboard; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import org.joda.time.LocalDate; import org.libreplan.business.common.entities.PersonalTimesheetsPeriodicityEnum; @@ -122,12 +122,12 @@ public class PersonalTimesheetDTO { string += " (" + start.toString(MMMM_d_Y_PATTERN) + " - " + end.toString(MMMM_d_Y_PATTERN) + ")"; } } - return _("Week {0}", string); + return tr("Week {0}", string); case TWICE_MONTHLY: return (date.getDayOfMonth() <= 15) - ? _("{0} 1st fortnight", date.toString(MMMM_d_Y_PATTERN)) - : _("{0} 2nd fortnight", date.toString(MMMM_d_Y_PATTERN)); + ? tr("{0} 1st fortnight", date.toString(MMMM_d_Y_PATTERN)) + : tr("{0} 2nd fortnight", date.toString(MMMM_d_Y_PATTERN)); case MONTHLY: default: diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/UserDashboardController.java b/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/UserDashboardController.java index c910706d0..fcf9cb2e0 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/UserDashboardController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/UserDashboardController.java @@ -19,7 +19,7 @@ package org.libreplan.web.users.dashboard; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import org.apache.commons.lang3.StringUtils; import org.joda.time.LocalDate; @@ -61,14 +61,14 @@ public class UserDashboardController extends GenericForwardComposer { .getPersonalTimesheetsPeriodicity(), new LocalDate( timesheetSave)); messagesForUser.showMessage(Level.INFO, - _("Personal timesheet \"{0}\" saved", personalTimesheet)); + tr("Personal timesheet \"{0}\" saved", personalTimesheet)); } String expenseSheetSaved = Executions.getCurrent().getParameter( "expense_sheet_saved"); if (!StringUtils.isBlank(expenseSheetSaved)) { messagesForUser.showMessage(Level.INFO, - _("Expense sheet \"{0}\" saved", expenseSheetSaved)); + tr("Expense sheet \"{0}\" saved", expenseSheetSaved)); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/users/services/DBPasswordEncoderService.java b/libreplan-webapp/src/main/java/org/libreplan/web/users/services/DBPasswordEncoderService.java index 167a57214..7e9fc8a89 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/users/services/DBPasswordEncoderService.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/users/services/DBPasswordEncoderService.java @@ -21,63 +21,42 @@ package org.libreplan.web.users.services; -import java.util.Collections; - -import org.springframework.security.authentication.dao.SaltSource; -import org.springframework.security.authentication.encoding.PasswordEncoder; -import org.springframework.security.core.userdetails.User; -import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.crypto.password.PasswordEncoder; /** - * For maximum flexibility, the implementation uses the password encoder and the salt source - * configured in the Spring Security configuration file - * (in consequence, it is possible to change the configuration to use any password encoder and/or salt source - * without modifying the implementation of this service). + * Password encoder service using Spring Security 5.x PasswordEncoder. * - * The only restriction the implementation imposes is that - * when using a reflection-based salt source, the "username" property must be specified. + * Modern password encoders like BCryptPasswordEncoder handle salt internally, + * so the loginName parameter is no longer used for salt. * * @author Fernando Bellas Permuy */ public class DBPasswordEncoderService implements IDBPasswordEncoderService { - private SaltSource saltSource; - // TODO resolve deprecated private PasswordEncoder passwordEncoder; - public void setSaltSource(SaltSource saltSource) { - this.saltSource = saltSource; - } - - // TODO resolve deprecated public void setPasswordEncoder(PasswordEncoder passwordEncoder) { this.passwordEncoder = passwordEncoder; } @Override /** - * The second parameter, loginName, is used as a salt if the - * configured salt source is ReflectionSaltSource - * (which must be configured to use "username" property as a salt). + * Encode password using the configured PasswordEncoder. + * The loginName parameter is kept for API compatibility but is no longer used + * since modern password encoders handle salt internally. */ public String encodePassword(String clearPassword, String loginName) { + return passwordEncoder.encode(clearPassword); + } - /* - * The only important parameter in User's constructor is "loginName", - * which corresponds to the "username" property if the "saltSource" is - * "ReflectionSaltSource". Note that "SystemWideSaltSource" ignores - * the "user" passed as a parameter to "saltSource.getSalt" - */ - UserDetails userDetails = new User(loginName, clearPassword, true, true, true, true, Collections.emptyList()); - - Object salt = null; - - if ( saltSource != null ) { - salt = saltSource.getSalt(userDetails); - } - - return passwordEncoder.encodePassword(clearPassword, salt); - + @Override + /** + * Verifies that a raw password matches an encoded password. + * This is necessary for BCrypt and other modern password encoders + * that use random salts. + */ + public boolean matches(String rawPassword, String encodedPassword) { + return passwordEncoder.matches(rawPassword, encodedPassword); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/users/services/IDBPasswordEncoderService.java b/libreplan-webapp/src/main/java/org/libreplan/web/users/services/IDBPasswordEncoderService.java index 059dffec7..9ce24f09b 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/users/services/IDBPasswordEncoderService.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/users/services/IDBPasswordEncoderService.java @@ -30,7 +30,6 @@ package org.libreplan.web.users.services; * * @author Fernando Bellas Permuy */ -@FunctionalInterface public interface IDBPasswordEncoderService { /** @@ -38,4 +37,10 @@ public interface IDBPasswordEncoderService { */ String encodePassword(String clearPassword, String loginName); + /** + * Verifies that a raw password matches an encoded password. + * This is necessary for password encoders like BCrypt that use random salts. + */ + boolean matches(String rawPassword, String encodedPassword); + } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/users/services/LDAPCustomAuthenticationProvider.java b/libreplan-webapp/src/main/java/org/libreplan/web/users/services/LDAPCustomAuthenticationProvider.java index 56a1975cf..e5909b034 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/users/services/LDAPCustomAuthenticationProvider.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/users/services/LDAPCustomAuthenticationProvider.java @@ -123,7 +123,7 @@ public class LDAPCustomAuthenticationProvider // If user != null then exists in LibrePlan if ( null != user && user.isLibrePlanUser() ) { // is a LibrePlan user, then we must authenticate against DB - return authenticateInDatabase(username, user, encodedPassword); + return authenticateInDatabase(username, user, clearPassword); } // If it's a LDAP or null user, then we must authenticate against LDAP @@ -168,7 +168,7 @@ public class LDAPCustomAuthenticationProvider } // LDAP is not enabled we must check if the LDAP user is in DB - return authenticateInDatabase(username, user, encodedPassword); + return authenticateInDatabase(username, user, clearPassword); } private UserDetails loadUserDetails(String username) { @@ -269,8 +269,9 @@ public class LDAPCustomAuthenticationProvider }); } - private UserDetails authenticateInDatabase(String username, User user, String encodedPassword) { - if ( null != user && null != user.getPassword() && encodedPassword.equals(user.getPassword()) ) { + private UserDetails authenticateInDatabase(String username, User user, String clearPassword) { + if ( null != user && null != user.getPassword() && + passwordEncoderService.matches(clearPassword, user.getPassword()) ) { return loadUserDetails(username); } else { throw new BadCredentialsException("Credentials are not the same as in database."); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/users/services/LegacySha512PasswordEncoder.java b/libreplan-webapp/src/main/java/org/libreplan/web/users/services/LegacySha512PasswordEncoder.java new file mode 100644 index 000000000..da78c1315 --- /dev/null +++ b/libreplan-webapp/src/main/java/org/libreplan/web/users/services/LegacySha512PasswordEncoder.java @@ -0,0 +1,76 @@ +/* + * This file is part of LibrePlan + * + * Copyright (C) 2024 LibrePlan Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * 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 . + */ + +package org.libreplan.web.users.services; + +import org.springframework.security.crypto.password.PasswordEncoder; + +import java.nio.charset.StandardCharsets; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + +/** + * Legacy password encoder that mimics the old Spring Security ShaPasswordEncoder(512) + * with username as salt. This maintains backward compatibility with existing password hashes. + * + * The old encoding was: SHA-512(password + "{" + username + "}") + * + * Note: This encoder requires the username to be passed alongside the password for verification. + * Since Spring Security 6's PasswordEncoder doesn't support salt parameters, we use a workaround + * where the raw password is expected to be in the format "password{username}" for matches() calls. + */ +public class LegacySha512PasswordEncoder implements PasswordEncoder { + + private static final String ALGORITHM = "SHA-512"; + + @Override + public String encode(CharSequence rawPassword) { + // For new passwords, we expect the format "password{username}" + String input = rawPassword.toString(); + return sha512Hex(input); + } + + @Override + public boolean matches(CharSequence rawPassword, String encodedPassword) { + if (encodedPassword == null || encodedPassword.isEmpty()) { + return false; + } + // rawPassword should be in format "password{username}" + String encoded = encode(rawPassword); + return encodedPassword.equalsIgnoreCase(encoded); + } + + private String sha512Hex(String input) { + try { + MessageDigest md = MessageDigest.getInstance(ALGORITHM); + byte[] digest = md.digest(input.getBytes(StandardCharsets.UTF_8)); + return bytesToHex(digest); + } catch (NoSuchAlgorithmException e) { + throw new RuntimeException("SHA-512 algorithm not available", e); + } + } + + private String bytesToHex(byte[] bytes) { + StringBuilder sb = new StringBuilder(); + for (byte b : bytes) { + sb.append(String.format("%02x", b)); + } + return sb.toString(); + } +} diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/users/settings/PasswordController.java b/libreplan-webapp/src/main/java/org/libreplan/web/users/settings/PasswordController.java index 8c7ff2fc3..b9eae95a6 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/users/settings/PasswordController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/users/settings/PasswordController.java @@ -19,7 +19,7 @@ package org.libreplan.web.users.settings; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import org.apache.commons.lang3.StringUtils; import org.libreplan.business.common.exceptions.ValidationException; @@ -70,7 +70,7 @@ public class PasswordController extends GenericForwardComposer { ConstraintChecker.isValid(passwordWindow); try { passwordModel.confirmSave(); - messages.showMessage(Level.INFO, _("Password saved")); + messages.showMessage(Level.INFO, tr("Password saved")); PasswordUtil.showOrHideDefaultPasswordWarnings(); } catch (ValidationException e) { messages.showInvalidValues(e); @@ -95,10 +95,10 @@ public class PasswordController extends GenericForwardComposer { @Override public void validate(Component comp, Object value) throws WrongValueException { if (StringUtils.isEmpty((String)value) || StringUtils.isEmpty(password.getValue())) { - throw new WrongValueException(comp, _("passwords can not be empty")); + throw new WrongValueException(comp, tr("passwords can not be empty")); } if (!value.equals(password.getValue())) { - throw new WrongValueException(comp, _("passwords don't match")); + throw new WrongValueException(comp, tr("passwords don't match")); } } }; @@ -109,7 +109,7 @@ public class PasswordController extends GenericForwardComposer { @Override public void validate(Component comp, Object value) throws WrongValueException { if (!passwordModel.validateCurrentPassword((String)value)) { - throw new WrongValueException(comp, _("Current password is incorrect")); + throw new WrongValueException(comp, tr("Current password is incorrect")); } } }; diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/users/settings/SettingsController.java b/libreplan-webapp/src/main/java/org/libreplan/web/users/settings/SettingsController.java index 1ba6be891..9e5338cb9 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/users/settings/SettingsController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/users/settings/SettingsController.java @@ -44,7 +44,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; /** * Controller for user settings. @@ -71,7 +71,7 @@ public class SettingsController extends GenericForwardComposer { String displayName = language.getDisplayName(); if (language.equals(Language.BROWSER_LANGUAGE)) { - displayName = _(language.getDisplayName()); + displayName = tr(language.getDisplayName()); } item.setLabel(displayName); @@ -124,7 +124,7 @@ public class SettingsController extends GenericForwardComposer { checkEmptyBandboxes(); clearSessionVariables(); settingsModel.confirmSave(); - messages.showMessage(Level.INFO, _("Settings saved")); + messages.showMessage(Level.INFO, tr("Settings saved")); return true; } @@ -158,7 +158,7 @@ public class SettingsController extends GenericForwardComposer { return (comp, value) -> { if ( value != null && (Integer) value > 999 ) { ((Intbox) comp).setValue(null); - throw new WrongValueException(comp, _("Max value = 999")); + throw new WrongValueException(comp, tr("Max value = 999")); } }; } @@ -169,7 +169,7 @@ public class SettingsController extends GenericForwardComposer { if ( projectsTo != null && projectsSince != null && projectsSince > projectsTo ) { messages.clearMessages(); - messages.showMessage(Level.WARNING, _("Project since should be lower than project to")); + messages.showMessage(Level.WARNING, tr("Project since should be lower than project to")); return false; } @@ -179,7 +179,7 @@ public class SettingsController extends GenericForwardComposer { if ( resourcesTo != null && resourcesSince != null && resourcesSince > resourcesTo ) { messages.clearMessages(); - messages.showMessage(Level.WARNING, _("Resources load since should be lower than resources load to")); + messages.showMessage(Level.WARNING, tr("Resources load since should be lower than resources load to")); return false; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/util/ValidationExceptionPrinter.java b/libreplan-webapp/src/main/java/org/libreplan/web/util/ValidationExceptionPrinter.java index 98ee8a329..ab9f37c23 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/util/ValidationExceptionPrinter.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/util/ValidationExceptionPrinter.java @@ -19,7 +19,7 @@ package org.libreplan.web.util; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import org.libreplan.business.common.exceptions.ValidationException; import org.libreplan.business.common.exceptions.ValidationException.InvalidValue; @@ -49,14 +49,14 @@ public class ValidationExceptionPrinter { } private static void showAt(Component comp, InvalidValue invalidValue) { - throw new WrongValueException(comp, _(invalidValue.getMessage())); + throw new WrongValueException(comp, tr(invalidValue.getMessage())); } private static void showAt(Grid comp, InvalidValue invalidValue) { Row row = ComponentsFinder.findRowByValue(comp, invalidValue.getInvalidValue()); if (row != null) { - throw new WrongValueException(row, _(invalidValue.getMessage())); + throw new WrongValueException(row, tr(invalidValue.getMessage())); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/workreports/WorkReportCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/workreports/WorkReportCRUDController.java index 8c5b17000..d1be1956e 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/workreports/WorkReportCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/workreports/WorkReportCRUDController.java @@ -21,7 +21,7 @@ package org.libreplan.web.workreports; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ConcurrentModificationException; import java.util.Date; @@ -211,7 +211,7 @@ public class WorkReportCRUDController private void showMessageIfPersonalTimesheetWasSaved() { String timesheetSave = Executions.getCurrent().getParameter("timesheet_saved"); if ( !StringUtils.isBlank(timesheetSave) ) { - messagesForUser.showMessage(Level.INFO, _("Personal timesheet saved")); + messagesForUser.showMessage(Level.INFO, tr("Personal timesheet saved")); } } @@ -230,12 +230,12 @@ public class WorkReportCRUDController final String workReportName = formatWorkReportName(workReport); int status = Messagebox.show( - _("Confirm deleting {0}. Are you sure?", workReportName), + tr("Confirm deleting {0}. Are you sure?", workReportName), "Delete", Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION); if ( Messagebox.OK == status ) { workReportModel.remove(workReport); - messagesForUser.showMessage(Level.INFO, _("Timesheet removed successfully")); + messagesForUser.showMessage(Level.INFO, tr("Timesheet removed successfully")); loadComponentslist(listWindow); Util.reloadBindings(listWindow); } @@ -270,7 +270,7 @@ public class WorkReportCRUDController workReportModel.generateWorkReportLinesIfIsNecessary(); try { workReportModel.confirmSave(); - messagesForUser.showMessage(Level.INFO, _("Timesheet saved")); + messagesForUser.showMessage(Level.INFO, tr("Timesheet saved")); return true; } catch (ValidationException e) { @@ -334,19 +334,19 @@ public class WorkReportCRUDController if ( !getWorkReport().isDateMustBeNotNullIfIsSharedByLinesConstraint() ) { Datebox datebox = (Datebox) createWindow.getFellowIfAny("date"); - showInvalidMessage(datebox, _("cannot be empty")); + showInvalidMessage(datebox, tr("cannot be empty")); return false; } if ( !getWorkReport().isResourceMustBeNotNullIfIsSharedByLinesConstraint() ) { - showInvalidMessage(autocompleteResource, _("cannot be empty")); + showInvalidMessage(autocompleteResource, tr("cannot be empty")); return false; } if ( !getWorkReport().isOrderElementMustBeNotNullIfIsSharedByLinesConstraint() ) { - showInvalidMessage(bandboxSelectOrderElementInHead, _("cannot be empty")); + showInvalidMessage(bandboxSelectOrderElementInHead, tr("cannot be empty")); return false; } @@ -375,7 +375,7 @@ public class WorkReportCRUDController } else if ( workReportLine.getDate() == null) { Datebox date = getDateboxDate(row); if ( date != null ) { - String message = _("cannot be empty"); + String message = tr("cannot be empty"); showInvalidMessage(date, message); } @@ -389,7 +389,7 @@ public class WorkReportCRUDController } else if ( workReportLine.getResource() == null ) { Autocomplete autoResource = getTextboxResource(row); if ( autoResource != null ) { - String message = _("cannot be empty"); + String message = tr("cannot be empty"); showInvalidMessage(autoResource, message); } @@ -404,7 +404,7 @@ public class WorkReportCRUDController BandboxSearch bandboxOrder = getTextboxOrder(row); if ( bandboxOrder != null ) { - String message = _("cannot be empty"); + String message = tr("cannot be empty"); bandboxOrder.clear(); showInvalidMessage(bandboxOrder, message); } @@ -416,7 +416,7 @@ public class WorkReportCRUDController Timebox timeStart = getTimeboxStart(row); if ( timeStart != null ) { - String message = _("cannot be empty"); + String message = tr("cannot be empty"); showInvalidMessage(timeStart, message); } @@ -427,7 +427,7 @@ public class WorkReportCRUDController Timebox timeFinish = getTimeboxFinish(row); if ( timeFinish != null ) { - String message = _("cannot be empty"); + String message = tr("cannot be empty"); showInvalidMessage(timeFinish, message); } @@ -438,13 +438,13 @@ public class WorkReportCRUDController Textbox effort = getEffort(row); if ( effort == null ) { - String message = _("cannot be empty"); + String message = tr("cannot be empty"); showInvalidMessage(null, message); } if ( effort != null && EffortDuration.zero().compareTo(EffortDuration.parseFromFormattedString(effort.getValue())) <= 0 ) { - String message = _("Effort must be greater than zero"); + String message = tr("Effort must be greater than zero"); showInvalidMessage(effort, message); } @@ -455,7 +455,7 @@ public class WorkReportCRUDController Textbox effort = getEffort(row); if ( effort != null ) { - String message = _("effort is not properly calculated based on clock"); + String message = tr("effort is not properly calculated based on clock"); showInvalidMessage(effort, message); } @@ -469,8 +469,8 @@ public class WorkReportCRUDController if ( autoTypeOfHours != null ) { String message = autoTypeOfHours.getItems().isEmpty() ? - _("Hours types are empty. Please, create some hours types before proceeding") : - _("cannot be empty"); + tr("Hours types are empty. Please, create some hours types before proceeding") : + tr("cannot be empty"); showInvalidMessage(autoTypeOfHours, message); } @@ -483,7 +483,7 @@ public class WorkReportCRUDController // Locate TextboxCode Textbox txtCode = getCode(row); if ( txtCode != null ) { - String message = _("cannot be empty."); + String message = tr("cannot be empty."); showInvalidMessage(txtCode, message); } @@ -493,7 +493,7 @@ public class WorkReportCRUDController if ( !workReportLine.isOrderElementFinishedInAnotherWorkReportConstraint() ) { Checkbox checkboxFinished = getFinished(row); if ( checkboxFinished != null ) { - String message = _("task is already marked as finished in another timesheet"); + String message = tr("task is already marked as finished in another timesheet"); showInvalidMessage(checkboxFinished, message); } @@ -680,7 +680,7 @@ public class WorkReportCRUDController cameBackList = false; workReportModel.initCreate(workReportType); prepareWorkReportList(); - createWindow.setTitle(_("Create Timesheet")); + createWindow.setTitle(tr("Create Timesheet")); getVisibility().showOnly(createWindow); loadComponents(createWindow); Util.reloadBindings(createWindow); @@ -695,7 +695,7 @@ public class WorkReportCRUDController public void goToEditForm(WorkReport workReport) { if (SecurityUtils.isSuperuserOrUserInRoles(UserRole.ROLE_TIMESHEETS)) { workReportModel.initEdit(workReport); - createWindow.setTitle(_("Edit Timesheet")); + createWindow.setTitle(tr("Edit Timesheet")); loadComponents(createWindow); prepareWorkReportList(); getVisibility().showOnly(createWindow); @@ -707,7 +707,7 @@ public class WorkReportCRUDController goToEditPersonalTimeSheet(workReport); } else { - messagesForUser.showMessage(Level.WARNING, _("You do not have permissions to edit this timesheet")); + messagesForUser.showMessage(Level.WARNING, tr("You do not have permissions to edit this timesheet")); } } @@ -814,7 +814,7 @@ public class WorkReportCRUDController if ( getWorkReport() != null ) { if ( !getWorkReport().getWorkReportType().getDateIsSharedByLines() ) { NewDataSortableColumn columnDate = new NewDataSortableColumn(); - columnDate.setLabel(_("Date")); + columnDate.setLabel(tr("Date")); columnDate.setSclass("date-column"); columnDate.setHflex("1"); Util.setSort(columnDate, "auto=(date)"); @@ -826,7 +826,7 @@ public class WorkReportCRUDController if ( !getWorkReport().getWorkReportType().getResourceIsSharedInLines() ) { NewDataSortableColumn columnResource = new NewDataSortableColumn(); - columnResource.setLabel(_("Resource")); + columnResource.setLabel(tr("Resource")); columnResource.setHflex("1"); columnResource.setSclass("resource-column"); columns.appendChild(columnResource); @@ -834,7 +834,7 @@ public class WorkReportCRUDController if ( !getWorkReport().getWorkReportType().getOrderElementIsSharedInLines() ) { NewDataSortableColumn columnCode = new NewDataSortableColumn(); - columnCode.setLabel(_("Task")); + columnCode.setLabel(tr("Task")); columnCode.setSclass("order-code-column"); columnCode.setHflex("1"); columns.appendChild(columnCode); @@ -857,7 +857,7 @@ public class WorkReportCRUDController columnName = ((WorkReportLabelTypeAssignment) fieldOrLabel).getLabelType().getName(); } NewDataSortableColumn columnFieldOrLabel = new NewDataSortableColumn(); - columnFieldOrLabel.setLabel(_(columnName)); + columnFieldOrLabel.setLabel(tr(columnName)); columnFieldOrLabel.setSclass("columnFieldOrLabel"); columnFieldOrLabel.setWidth(width + "px"); columns.appendChild(columnFieldOrLabel); @@ -867,39 +867,39 @@ public class WorkReportCRUDController .equals(HoursManagementEnum.NUMBER_OF_HOURS) ) { NewDataSortableColumn columnHourStart = new NewDataSortableColumn(); - columnHourStart.setLabel(_("Start hour")); + columnHourStart.setLabel(tr("Start hour")); columnHourStart.setSclass("column-hour-start"); columnHourStart.setHflex("min"); columns.appendChild(columnHourStart); NewDataSortableColumn columnHourFinish = new NewDataSortableColumn(); - columnHourFinish.setLabel(_("Finish Hour")); + columnHourFinish.setLabel(tr("Finish Hour")); columnHourStart.setSclass("column-hour-finish"); columns.appendChild(columnHourFinish); } } NewDataSortableColumn columnNumHours = new NewDataSortableColumn(); - columnNumHours.setLabel(_("Hours")); + columnNumHours.setLabel(tr("Hours")); columnNumHours.setSclass("hours-column"); columns.appendChild(columnNumHours); NewDataSortableColumn columnHoursType = new NewDataSortableColumn(); - columnHoursType.setLabel(_("Hours type")); + columnHoursType.setLabel(tr("Hours type")); columnHoursType.setSclass("hours-type-column"); columns.appendChild(columnHoursType); NewDataSortableColumn columnFinsihed = new NewDataSortableColumn(); - columnFinsihed.setLabel(_("Done")); + columnFinsihed.setLabel(tr("Done")); columnFinsihed.setSclass("finished-column"); - columnFinsihed.setTooltiptext(_("Task finished")); + columnFinsihed.setTooltiptext(tr("Task finished")); NewDataSortableColumn columnCode = new NewDataSortableColumn(); columns.appendChild(columnFinsihed); - columnCode.setLabel(_("Code")); + columnCode.setLabel(tr("Code")); columnCode.setSclass("code-column"); columnCode.setHflex("1"); columns.appendChild(columnCode); NewDataSortableColumn columnOperations = new NewDataSortableColumn(); - columnOperations.setLabel(_("Op.")); + columnOperations.setLabel(tr("Op.")); columnOperations.setSclass("operations-column"); - columnOperations.setTooltiptext(_("Operations")); + columnOperations.setTooltiptext(tr("Operations")); columnOperations.setHflex("min"); columns.appendChild(columnOperations); @@ -945,14 +945,14 @@ public class WorkReportCRUDController final Date endingDate = ending.getValue(); if ( endingDate == null || startingDate == null || startingDate.compareTo(endingDate) > 0 ) { - throw new WrongValueException(starting, _("Cannot be higher than finish hour")); + throw new WrongValueException(starting, tr("Cannot be higher than finish hour")); } } public void confirmRemove(WorkReportLine workReportLine) { int status = Messagebox.show( - _("Confirm deleting {0}. Are you sure?", getWorkReportLineName(workReportLine)), - _("Delete"), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION); + tr("Confirm deleting {0}. Are you sure?", getWorkReportLineName(workReportLine)), + tr("Delete"), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION); if ( Messagebox.OK == status ) { removeWorkReportLine(workReportLine); @@ -1104,7 +1104,7 @@ public class WorkReportCRUDController TypeOfWorkHours value = item != null ? (TypeOfWorkHours) item.getValue() : null; workReportLine.setTypeOfWorkHours(value); if (value == null && item != null) { - throw new WrongValueException(item.getParent(), _("Please, select an item")); + throw new WrongValueException(item.getParent(), tr("Please, select an item")); } } @@ -1119,7 +1119,7 @@ public class WorkReportCRUDController effort.setConstraint((comp, value) -> { if ( !Pattern.matches("(\\d+)(\\s*:\\s*\\d+\\s*)*", (String) value)) - throw new WrongValueException(comp, _("Please, enter a valid effort")); + throw new WrongValueException(comp, tr("Please, enter a valid effort")); }); bindEffort(effort, workReportLine); @@ -1193,7 +1193,7 @@ public class WorkReportCRUDController Button delete = new Button("", "/common/img/ico_borrar1.png"); delete.setHoverImage("/common/img/ico_borrar.png"); delete.setSclass("icono"); - delete.setTooltiptext(_("Delete")); + delete.setTooltiptext(tr("Delete")); delete.addEventListener(Events.ON_CLICK, event -> confirmRemove(row.getValue())); row.appendChild(delete); @@ -1336,7 +1336,7 @@ public class WorkReportCRUDController final Comboitem comboitem = autocomplete.getSelectedItem(); if ( (comboitem == null) || (comboitem.getValue() == null)) { workReportLine.setResource(null); - throw new WrongValueException(autocomplete, _("Please, select an item")); + throw new WrongValueException(autocomplete, tr("Please, select an item")); } else { workReportLine.setResource(comboitem.getValue()); } @@ -1508,7 +1508,7 @@ public class WorkReportCRUDController (finishDate.compareTo(filterStartDate.getValue()) < 0) ) { filterFinishDate.setValue(null); - throw new WrongValueException(comp, _("must be later than start date")); + throw new WrongValueException(comp, tr("must be later than start date")); } }; } @@ -1522,7 +1522,7 @@ public class WorkReportCRUDController (startDate.compareTo(filterFinishDate.getValue()) > 0) ) { filterStartDate.setValue(null); - throw new WrongValueException(comp, _("must be before end date")); + throw new WrongValueException(comp, tr("must be before end date")); } }; } @@ -1572,12 +1572,12 @@ public class WorkReportCRUDController public void onCreateNewWorkReport() { Listitem selectedItem = listTypeToAssign.getSelectedItem(); if ( selectedItem == null ) { - throw new WrongValueException(listTypeToAssign, _("please, select a timesheet template type")); + throw new WrongValueException(listTypeToAssign, tr("please, select a timesheet template type")); } WorkReportType type = selectedItem.getValue(); if ( type == null ) { - throw new WrongValueException(listTypeToAssign, _("please, select a timesheet template type")); + throw new WrongValueException(listTypeToAssign, tr("please, select a timesheet template type")); } goToCreateForm(type); @@ -1633,11 +1633,11 @@ public class WorkReportCRUDController public void createOrEditPersonalTimesheet() { Date date = personalTimesheetsDatebox.getValue(); if ( date == null ) { - throw new WrongValueException(personalTimesheetsDatebox, _("Please set a date")); + throw new WrongValueException(personalTimesheetsDatebox, tr("Please set a date")); } Resource resource = (Resource) personalTimesheetsBandboxSearch.getSelectedElement(); if ( resource == null ) { - throw new WrongValueException(personalTimesheetsBandboxSearch, _("Please select a worker")); + throw new WrongValueException(personalTimesheetsBandboxSearch, tr("Please select a worker")); } personalTimesheetController.goToCreateOrEditFormForResource(LocalDate.fromDateFields(date), resource); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/workreports/WorkReportModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/workreports/WorkReportModel.java index 0e5a7b734..b4c5c625f 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/workreports/WorkReportModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/workreports/WorkReportModel.java @@ -21,7 +21,7 @@ package org.libreplan.web.workreports; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.Date; @@ -576,7 +576,7 @@ public class WorkReportModel extends IntegrationEntityModel implements /** * Set the selected default work report type to filter the work reports. */ - public final String SHOW_ALL_TYPES = _("Show all"); + public final String SHOW_ALL_TYPES = tr("Show all"); private final WorkReportType defaultType = WorkReportType.create(SHOW_ALL_TYPES, ""); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/workreports/WorkReportQueryController.java b/libreplan-webapp/src/main/java/org/libreplan/web/workreports/WorkReportQueryController.java index 7f25113e9..c696f1afb 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/workreports/WorkReportQueryController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/workreports/WorkReportQueryController.java @@ -21,7 +21,7 @@ package org.libreplan.web.workreports; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.Collection; @@ -136,7 +136,7 @@ public class WorkReportQueryController extends GenericForwardComposer { (finishDateLine.compareTo(filterStartDateLine.getValue()) < 0)) { filterFinishDateLine.setValue(null); - throw new WrongValueException(comp, _("must be after start date")); + throw new WrongValueException(comp, tr("must be after start date")); } } }; @@ -152,7 +152,7 @@ public class WorkReportQueryController extends GenericForwardComposer { (startDateLine.compareTo(filterFinishDateLine.getValue()) > 0)) { filterStartDateLine.setValue(null); - throw new WrongValueException(comp, _("must be lower than end date")); + throw new WrongValueException(comp, tr("must be lower than end date")); } } }; @@ -249,16 +249,16 @@ public class WorkReportQueryController extends GenericForwardComposer { TypeOfWorkHours hoursType) { Set result = new HashSet<>(); - if (type.equals(_("All"))) { + if (type.equals(tr("All"))) { result.add(new WorkReportLinePredicate(resource, startDate, finishDate, orderElement, hoursType)); if (orderElement != null) { for (OrderElement each : orderElement.getChildren()) { result.add(new WorkReportLinePredicate(resource, startDate, finishDate, each, hoursType)); } } - } else if (type.equals(_("Direct"))) { + } else if (type.equals(tr("Direct"))) { result.add(new WorkReportLinePredicate(resource, startDate, finishDate, orderElement, hoursType)); - } else if (type.equals(_("Indirect")) && orderElement != null) { + } else if (type.equals(tr("Indirect")) && orderElement != null) { for (OrderElement each : orderElement.getChildren()) { result.add(new WorkReportLinePredicate(resource, startDate, finishDate, each, hoursType)); } @@ -282,7 +282,7 @@ public class WorkReportQueryController extends GenericForwardComposer { try { return workReportModel.findOrderElement(orderElement.getCode()); } catch (InstanceNotFoundException e) { - throw new WrongValueException(bandboxFilterOrderElement, _("Task not found")); + throw new WrongValueException(bandboxFilterOrderElement, tr("Task not found")); } } @@ -333,7 +333,7 @@ public class WorkReportQueryController extends GenericForwardComposer { personalTimesheetController.goToCreateOrEditForm(line.getLocalDate()); } else { - messagesForUser.showMessage(Level.WARNING, _("You do not have permissions to edit this timesheet")); + messagesForUser.showMessage(Level.WARNING, tr("You do not have permissions to edit this timesheet")); } } @@ -369,7 +369,7 @@ public class WorkReportQueryController extends GenericForwardComposer { } public String toString() { - return _("Tasks") + " " + getTotalTasks() + ". " + _("Total hours") + " " + getTotalHours() + "."; + return tr("Tasks") + " " + getTotalTasks() + ". " + tr("Total hours") + " " + getTotalHours() + "."; } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/workreports/WorkReportTypeCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/workreports/WorkReportTypeCRUDController.java index 3c4e696a3..06cdf43a2 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/workreports/WorkReportTypeCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/workreports/WorkReportTypeCRUDController.java @@ -21,7 +21,7 @@ package org.libreplan.web.workreports; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ConcurrentModificationException; import java.util.List; @@ -242,9 +242,9 @@ public class WorkReportTypeCRUDController labelPosition.setParent(row); if (workReportTypeModel.isHeadingDescriptionField(row.getValue())) { - labelPosition.setValue(_(PositionInWorkReportEnum.HEADING.toString())); + labelPosition.setValue(tr(PositionInWorkReportEnum.HEADING.toString())); } else { - labelPosition.setValue(_(PositionInWorkReportEnum.LINE.toString())); + labelPosition.setValue(tr(PositionInWorkReportEnum.LINE.toString())); } } @@ -321,7 +321,7 @@ public class WorkReportTypeCRUDController removeButton.setSclass("icono"); removeButton.setImage("/common/img/ico_borrar1.png"); removeButton.setHoverImage("/common/img/ico_borrar.png"); - removeButton.setTooltiptext(_("Delete")); + removeButton.setTooltiptext(tr("Delete")); return removeButton; } @@ -385,7 +385,7 @@ public class WorkReportTypeCRUDController private void appendLabelPosition(Row row) { org.zkoss.zul.Label labelPosition = new org.zkoss.zul.Label(); labelPosition.setParent(row); - labelPosition.setValue(_(workReportTypeModel.getLabelAssignmentPosition(row.getValue()).toString())); + labelPosition.setValue(tr(workReportTypeModel.getLabelAssignmentPosition(row.getValue()).toString())); } private void appendLabel(Row row) { @@ -567,7 +567,7 @@ public class WorkReportTypeCRUDController try { workReportTypeModel.validateWorkReportTypeName((String) value); } catch (IllegalArgumentException e) { - throw new WrongValueException(comp, _(e.getMessage())); + throw new WrongValueException(comp, tr(e.getMessage())); } }; } @@ -577,7 +577,7 @@ public class WorkReportTypeCRUDController try { workReportTypeModel.validateWorkReportTypeCode((String) value); } catch (IllegalArgumentException e) { - throw new WrongValueException(comp, _(e.getMessage())); + throw new WrongValueException(comp, tr(e.getMessage())); } }; } @@ -590,7 +590,7 @@ public class WorkReportTypeCRUDController (getWorkReportType().existRepeatedLabelType(workReportLabelTypeAssignment)) ) { workReportLabelTypeAssignment.setLabelType(null); - throw new WrongValueException(comboLabelTypes, _("Label type already assigned")); + throw new WrongValueException(comboLabelTypes, tr("Label type already assigned")); } } @@ -599,7 +599,7 @@ public class WorkReportTypeCRUDController descriptionField.setFieldName((String) value); if ((getWorkReportType() != null) && (getWorkReportType().existSameFieldName(descriptionField))) { descriptionField.setFieldName(null); - throw new WrongValueException(comp, _("A description field with the same name already exists.")); + throw new WrongValueException(comp, tr("A description field with the same name already exists.")); } }; } @@ -682,7 +682,7 @@ public class WorkReportTypeCRUDController try { workReportTypeModel.validateWorkReportTypeName(name.getValue()); } catch (IllegalArgumentException e) { - throw new WrongValueException(name, _(e.getMessage())); + throw new WrongValueException(name, tr(e.getMessage())); } } @@ -690,7 +690,7 @@ public class WorkReportTypeCRUDController try { workReportTypeModel.validateWorkReportTypeCode(code.getValue()); } catch (IllegalArgumentException e) { - throw new WrongValueException(code, _(e.getMessage())); + throw new WrongValueException(code, tr(e.getMessage())); } } @@ -701,7 +701,7 @@ public class WorkReportTypeCRUDController if (row != null) { fieldName = (Textbox) row.getFirstChild(); } - throw new WrongValueException(fieldName, _("The field name must be unique and not empty")); + throw new WrongValueException(fieldName, tr("The field name must be unique and not empty")); } private void showInvalidDescriptionFieldLength(DescriptionField field) { @@ -711,7 +711,7 @@ public class WorkReportTypeCRUDController if (row != null) { fieldName = (Intbox) row.getChildren().get(1); } - throw new WrongValueException(fieldName, _("The length must be greater than 0 and not empty")); + throw new WrongValueException(fieldName, tr("The length must be greater than 0 and not empty")); } private void showInvalidWorkReportLabelTypeAssignment(int combo, @@ -724,7 +724,7 @@ public class WorkReportTypeCRUDController comboLabelType = (Combobox) row.getChildren().get(combo); } - throw new WrongValueException(comboLabelType, _(message)); + throw new WrongValueException(comboLabelType, tr(message)); } private Row findRowByValue(Rows rows, Object value) { @@ -763,7 +763,7 @@ public class WorkReportTypeCRUDController public void render(Row row, Object data, int i) { row.setValue(data); - String name = _("Unallocated name"); + String name = tr("Unallocated name"); String type; if (data instanceof DescriptionField) { @@ -772,7 +772,7 @@ public class WorkReportTypeCRUDController name = ((DescriptionField) data).getFieldName(); } - type = _("Text field"); + type = tr("Text field"); } else { if ( (((WorkReportLabelTypeAssignment) data).getLabelType() != null) && @@ -782,7 +782,7 @@ public class WorkReportTypeCRUDController String label = ((WorkReportLabelTypeAssignment) data).getDefaultLabel().getName(); name = labelType + " :: " + label; } - type = _("Label"); + type = tr("Label"); } appendNewLabel(row, name); @@ -832,7 +832,7 @@ public class WorkReportTypeCRUDController if (messagesForUserSortedLabelsAndFields != null) { messagesForUserSortedLabelsAndFields.showMessage( Level.ERROR, - _("Index fields and labels must be unique and consecutive")); + tr("Index fields and labels must be unique and consecutive")); } } @@ -870,12 +870,12 @@ public class WorkReportTypeCRUDController @Override protected String getEntityType() { - return _("Timesheets Template"); + return tr("Timesheets Template"); } @Override protected String getPluralEntityType() { - return _("Timesheets Templates"); + return tr("Timesheets Templates"); } @Override @@ -899,8 +899,8 @@ public class WorkReportTypeCRUDController protected boolean beforeDeleting(WorkReportType workReportType) { if (thereAreWorkReportsFor(workReportType)) { Messagebox.show( - _("Cannot delete timesheet template. There are some timesheets bound to it."), - _("Warning"), Messagebox.OK, Messagebox.EXCLAMATION); + tr("Cannot delete timesheet template. There are some timesheets bound to it."), + tr("Warning"), Messagebox.OK, Messagebox.EXCLAMATION); return false; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/workreports/WorkReportTypeModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/workreports/WorkReportTypeModel.java index b7003a1ff..cac8e1a44 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/workreports/WorkReportTypeModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/workreports/WorkReportTypeModel.java @@ -21,7 +21,7 @@ package org.libreplan.web.workreports; -import static org.libreplan.web.I18nHelper._; +import static org.libreplan.web.I18nHelper.tr; import java.util.ArrayList; import java.util.HashMap; @@ -405,13 +405,13 @@ public class WorkReportTypeModel extends IntegrationEntityModel implements IWork throws IllegalArgumentException { if ((name == null) || (name.isEmpty())) { throw new IllegalArgumentException( - _("name cannot be empty")); + tr("name cannot be empty")); } getWorkReportType().setName(name); if (!getWorkReportType().isUniqueWorkReportTypeNameConstraint()) { throw new IllegalArgumentException( - _("There is another timesheet template with the same name")); + tr("There is another timesheet template with the same name")); } } @@ -420,17 +420,17 @@ public class WorkReportTypeModel extends IntegrationEntityModel implements IWork throws IllegalArgumentException { if ((code == null) || (code.isEmpty())) { throw new IllegalArgumentException( - _("Code cannot be empty")); + tr("Code cannot be empty")); } if (code.contains("_")) { throw new IllegalArgumentException( - _("Value is not valid.\n Code cannot contain chars like '_'.")); + tr("Value is not valid.\n Code cannot contain chars like '_'.")); } getWorkReportType().setCode(code); if (!getWorkReportType().isUniqueCodeConstraint()) { throw new IllegalArgumentException( - _("There is another timesheet template with the same code")); + tr("There is another timesheet template with the same code")); } } diff --git a/libreplan-webapp/src/main/resources/i18n/ca.po b/libreplan-webapp/src/main/resources/i18n/ca.po index 43b0a0bea..03baadf3a 100644 --- a/libreplan-webapp/src/main/resources/i18n/ca.po +++ b/libreplan-webapp/src/main/resources/i18n/ca.po @@ -8,7 +8,7 @@ # Manuel Rego , 2012 msgid "" msgstr "" -"Project-Id-Version: LibrePlan\n" +"Project-Id-Version: TASKPM\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-10-10 17:54+0200\n" "PO-Revision-Date: 2016-07-18 18:26+0000\n" @@ -21,8 +21,8 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: libreplan-webapp/src/main/webapp/qualityforms/qualityForms.zul:22 -msgid "LibrePlan: Quality Forms" -msgstr "LibrePlan: Formulari de Qualitat" +msgid "TASKPM: Quality Forms" +msgstr "TASKPM: Formulari de Qualitat" #: libreplan-webapp/src/main/webapp/orders/_projectDetails.zul:58 #: libreplan-webapp/src/main/webapp/orders/_list.zul:30 @@ -46,8 +46,8 @@ msgid "Overtime" msgstr "Hores extraordinàries" #: libreplan-webapp/src/main/webapp/excetiondays/exceptionDays.zul:22 -msgid "LibrePlan: Calendar Exception Days" -msgstr "LibrePlan: Calendari amb les excepcions de dies" +msgid "TASKPM: Calendar Exception Days" +msgstr "TASKPM: Calendari amb les excepcions de dies" #: org/libreplan/web/calendars/BaseCalendarModel.java:488 #: org/libreplan/web/calendars/BaseCalendarModel.java:520 @@ -136,7 +136,7 @@ msgid "Subcategory names must be unique." msgstr "El noms de les subcategories ha de ser únic." #: libreplan-webapp/src/main/webapp/reports/timeLineMaterialReport.zul:21 -msgid "LibrePlan: Materials Needed At Date" +msgid "TASKPM: Materials Needed At Date" msgstr "" #: org/libreplan/web/resources/machine/MachineCRUDController.java:630 @@ -483,8 +483,8 @@ msgid "please, select a project" msgstr "si us plau, seleccioneu un projecte" #: libreplan-webapp/src/main/webapp/reports/projectStatusReport.zul:20 -msgid "LibrePlan: Project Status Report" -msgstr "LibrePlan: Informe d’estat de projecte" +msgid "TASKPM: Project Status Report" +msgstr "TASKPM: Informe d’estat de projecte" #: org/libreplan/web/calendars/BaseCalendarEditionController.java:627 #: org/libreplan/web/calendars/BaseCalendarEditionController.java:1263 @@ -545,8 +545,8 @@ msgid "Exit session" msgstr "Sortir de la sessió" #: libreplan-webapp/src/main/webapp/orders/_timImpExpInfo.zul:20 -msgid "LibrePlan: Tim import export info" -msgstr "LibrePlan: Informació importar exportar Tim" +msgid "TASKPM: Tim import export info" +msgstr "TASKPM: Informació importar exportar Tim" #: org/libreplan/web/planner/allocation/FormBinder.java:671 msgid "resources per day cannot be empty or less than zero" @@ -659,8 +659,8 @@ msgid "Companies List" msgstr "Llista d'empreses" #: libreplan-webapp/src/main/webapp/resources/worker/virtualWorkers.zul:22 -msgid "LibrePlan: Virtual Worker Groups" -msgstr "LibrePlan: Grups de Treballadors Virtuals" +msgid "TASKPM: Virtual Worker Groups" +msgstr "TASKPM: Grups de Treballadors Virtuals" #: org/libreplan/web/planner/tabs/MonteCarloTabCreator.java:51 #: org/libreplan/web/planner/tabs/MonteCarloTabCreator.java:159 @@ -673,8 +673,8 @@ msgid "Cost category" msgstr "Categoria de cost" #: libreplan-webapp/src/main/webapp/myaccount/personalTimesheet.zul:21 -msgid "LibrePlan: Personal timesheet" -msgstr "LibrePlan: Full de treball personal" +msgid "TASKPM: Personal timesheet" +msgstr "TASKPM: Full de treball personal" #: libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReportLine.java:264 msgid "clock finish cannot be empty if number of hours is calcultate by clock" @@ -700,7 +700,7 @@ msgid "Unsaved changes will be lost. Are you sure?" msgstr "Canvis no desats es perdran, estàs segur?" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/ConfigurationRolesLDAP.java:56 -msgid "LibrePlan role not specified" +msgid "TASKPM role not specified" msgstr "LibrePlan \"role\" sense especificar" #: libreplan-webapp/src/main/webapp/scenarios/transferOrders.zul:39 @@ -716,8 +716,8 @@ msgid "Move" msgstr "Moure" #: libreplan-webapp/src/main/webapp/orders/_jiraSyncInfo.zul:20 -msgid "LibrePlan: JIRA synchronization info" -msgstr "LibrePlan: Info Sincronització JIRA" +msgid "TASKPM: JIRA synchronization info" +msgstr "TASKPM: Info Sincronització JIRA" #: org/libreplan/web/common/components/finders/OrderFilterEnum.java:31 #: org/libreplan/web/common/components/finders/TaskGroupFilterEnum.java:31 @@ -761,8 +761,8 @@ msgid "Profiles List" msgstr "Llista de perfils" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:21 -msgid "LibrePlan: User access" -msgstr "LibrePlan: Accés d'usuari" +msgid "TASKPM: User access" +msgstr "TASKPM: Accés d'usuari" #: libreplan-business/src/main/java/org/libreplan/business/labels/entities/LabelType.java:158 msgid "label code is already being used" @@ -1540,7 +1540,7 @@ msgid "Violated deadline" msgstr "Data de termini violada" #: libreplan-webapp/src/main/webapp/common/configuration.zul:126 -msgid "Enable/Disable warning about new LibrePlan versions available" +msgid "Enable/Disable warning about new TASKPM versions available" msgstr "Habilitar/Inhabilitar advertències d'actualització de LibrePlan" #: libreplan-business/src/main/java/org/libreplan/business/orders/entities/HoursGroup.java:186 @@ -1583,8 +1583,8 @@ msgid "Progress sent successfully" msgstr "Progrés enviat correctament" #: libreplan-webapp/src/main/webapp/myaccount/userDashboard.zul:21 -msgid "LibrePlan: My Dashboard" -msgstr "LibrePlan: tauler d'instruments" +msgid "TASKPM: My Dashboard" +msgstr "TASKPM: tauler d'instruments" #: libreplan-webapp/src/main/webapp/calendars/_edition.zul:131 msgid "Work week" @@ -1604,8 +1604,8 @@ msgstr "Camps dels tipus d'etiquetes" #: libreplan-webapp/src/main/webapp/common/event_error.zul:22 #: libreplan-webapp/src/main/webapp/common/error.zul:21 -msgid "LibrePlan: Runtime Error" -msgstr "LibrePlan: \"Runtime Error\"" +msgid "TASKPM: Runtime Error" +msgstr "TASKPM: \"Runtime Error\"" #: org/libreplan/web/planner/tabs/PlanningTabCreator.java:152 #: libreplan-webapp/src/main/webapp/common/components/schedulingStateToggler.zul:29 @@ -1652,7 +1652,7 @@ msgid "Criterion Types" msgstr "Tipus de criteri" #: libreplan-webapp/src/main/webapp/common/configuration.zul:125 -msgid "Show a notification when new LibrePlan versions are released" +msgid "Show a notification when new TASKPM versions are released" msgstr "Mostrar notificació quan hi hagi una nova versió de LibrePlan" #: org/libreplan/web/workreports/WorkReportTypeCRUDController.java:900 @@ -1721,8 +1721,8 @@ msgid "units not specified" msgstr "unitats no especificades" #: libreplan-webapp/src/main/webapp/advance/advanceTypes.zul:22 -msgid "LibrePlan: Progress Types" -msgstr "LibrePlan: Tipus de progrés" +msgid "TASKPM: Progress Types" +msgstr "TASKPM: Tipus de progrés" #: libreplan-webapp/src/main/webapp/planner/montecarlo_function.zul:36 msgid "MonteCarlo chart" @@ -1929,8 +1929,8 @@ msgid "percentage should be between 1 and 100" msgstr "percentatge ha d'estar entre 1 i 100" #: libreplan-webapp/src/main/webapp/workreports/workReportQuery.zul:23 -msgid "LibrePlan: Timesheet Lines List" -msgstr "LibrePlan: Llista de línies del full d'hores" +msgid "TASKPM: Timesheet Lines List" +msgstr "TASKPM: Llista de línies del full d'hores" #: org/libreplan/web/labels/LabelTypeModel.java:269 msgid "Already exists other label with the same name" @@ -2057,8 +2057,8 @@ msgid "You have exceeded the maximum limit of users" msgstr "S’ha excedit en nombre màxim d’usuaris" #: libreplan-webapp/src/main/webapp/reports/schedulingProgressPerOrderReport.zul:21 -msgid "LibrePlan: Work And Progress Per Project" -msgstr "LibrePlan: Progrés i treball per projecte" +msgid "TASKPM: Work And Progress Per Project" +msgstr "TASKPM: Progrés i treball per projecte" #: libreplan-webapp/src/main/webapp/orders/_orderElementTreeFilter.zul:42 #: libreplan-webapp/src/main/webapp/orders/_orderFilter.zul:30 @@ -2122,8 +2122,8 @@ msgid "No roster-exceptions found in the response" msgstr "No s’ha trobat una llista d’excepcions a la resposta" #: libreplan-webapp/src/main/webapp/calendars/calendars.zul:22 -msgid "LibrePlan: Calendars" -msgstr "LibrePlan: Calendaris" +msgid "TASKPM: Calendars" +msgstr "TASKPM: Calendaris" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/EntitySequence.java:192 msgid "entity name not specified" @@ -2147,8 +2147,8 @@ msgid "Subcontracting date" msgstr "Data de subcontractació" #: libreplan-webapp/src/main/webapp/common/job_scheduling.zul:20 -msgid "LibrePlan: Job Scheduling" -msgstr "LibrePlan: Planificació de tasca" +msgid "TASKPM: Job Scheduling" +msgstr "TASKPM: Planificació de tasca" #: org/libreplan/importers/ImportRosterFromTim.java:182 msgid "No valid response for department \"{0}\"" @@ -2300,8 +2300,8 @@ msgid "Filter timesheet lines by" msgstr "Filtre de les línies del full d'horari per" #: libreplan-webapp/src/main/webapp/unittypes/unitTypes.zul:21 -msgid "LibrePlan: Material Units" -msgstr "LibrePlan: Unitats del material" +msgid "TASKPM: Material Units" +msgstr "TASKPM: Unitats del material" #: org/libreplan/web/templates/TemplatesTreeComponent.java:64 msgid "New Template element" @@ -2454,8 +2454,8 @@ msgid "Maximum/minimum of worked hours in finished applications" msgstr "Màxim/mínim d'hores treballades en l'aplicació finalitzada" #: libreplan-webapp/src/main/webapp/labels/labelTypes.zul:21 -msgid "LibrePlan: Labels" -msgstr "LibrePlan: Etiquetes" +msgid "TASKPM: Labels" +msgstr "TASKPM: Etiquetes" #: libreplan-webapp/src/main/webapp/resources/worker/_edition.zul:31 msgid "Personal data" @@ -2505,8 +2505,8 @@ msgid "Observations" msgstr "Observacions" #: libreplan-webapp/src/main/webapp/common/page_not_found.zul:22 -msgid "LibrePlan: Page not found" -msgstr "LibrePlan: Pàgina no trobada" +msgid "TASKPM: Page not found" +msgstr "TASKPM: Pàgina no trobada" #: libreplan-webapp/src/main/webapp/orders/_edition.zul:251 #: libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul:55 @@ -2597,8 +2597,8 @@ msgid "Output format:" msgstr "Format de sortida:" #: libreplan-webapp/src/main/webapp/reports/workingProgressPerTaskReport.zul:21 -msgid "LibrePlan: Work And Progress Per Task" -msgstr "LibrePlan: Treball i progrés per tasca" +msgid "TASKPM: Work And Progress Per Task" +msgstr "TASKPM: Treball i progrés per tasca" #: org/libreplan/web/advance/AdvanceTypeCRUDController.java:81 msgid "" @@ -2689,8 +2689,8 @@ msgid "Label type already assigned" msgstr "Tipus d'etiqueta ja assignat" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:20 -msgid "LibrePlan: Received From Subcontractors" -msgstr "LibrePlan: Rebut del subcontractistes" +msgid "TASKPM: Received From Subcontractors" +msgstr "TASKPM: Rebut del subcontractistes" #: libreplan-webapp/src/main/webapp/common/configuration.zul:58 msgid "Company code" @@ -2910,8 +2910,8 @@ msgid "label type: the timesheet have not assigned this label type" msgstr "tipus d'etiqueta: el full d'hores no té assignat aquest tipus d'etiqueta" #: libreplan-webapp/src/main/webapp/typeofworkhours/typeOfWorkHours.zul:23 -msgid "LibrePlan: Hours Types" -msgstr "LibrePlan: Tipus d'hores" +msgid "TASKPM: Hours Types" +msgstr "TASKPM: Tipus d'hores" #: org/libreplan/web/common/CustomMenuController.java:264 #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:109 @@ -2939,8 +2939,8 @@ msgid "Please try it again." msgstr "Si us plau torna a provar-ho." #: libreplan-webapp/src/main/webapp/expensesheet/expenseSheet.zul:21 -msgid "LibrePlan: Expenses" -msgstr "LibrePlan: Despesa" +msgid "TASKPM: Expenses" +msgstr "TASKPM: Despesa" #: org/libreplan/web/tree/TreeController.java:1294 msgid "Modified" @@ -3000,8 +3000,8 @@ msgid "Date last progress measurement" msgstr "Mesurar la data de l'últim progrés" #: libreplan-webapp/src/main/webapp/reports/completedEstimatedHoursPerTask.zul:21 -msgid "LibrePlan: Estimated/Planned Hours Per Task" -msgstr "LibrePlan: Hores estimades/planificades per tasca" +msgid "TASKPM: Estimated/Planned Hours Per Task" +msgstr "TASKPM: Hores estimades/planificades per tasca" #: libreplan-webapp/src/main/webapp/orders/_listOrderElementAuthorizations.zul:43 #: libreplan-webapp/src/main/webapp/orders/_listOrderElementAuthorizations.zul:67 @@ -3207,8 +3207,8 @@ msgid "Finished" msgstr "Finalitzat" #: libreplan-webapp/src/main/webapp/planner/index.zul:22 -msgid "LibrePlan: Planning" -msgstr "LibrePlan: planificació" +msgid "TASKPM: Planning" +msgstr "TASKPM: planificació" #: org/libreplan/web/scenarios/ScenarioModel.java:126 msgid "You cannot remove the current scenario" @@ -3280,8 +3280,8 @@ msgid "Property strategy" msgstr "Detalls de l'estratègia" #: libreplan-webapp/src/main/webapp/reports/orderCostsPerResource.zul:21 -msgid "LibrePlan: Project Costs" -msgstr "LibrePlan: Cost de projecte" +msgid "TASKPM: Project Costs" +msgstr "TASKPM: Cost de projecte" #: org/libreplan/web/common/ConfigurationController.java:265 msgid "Changes saved" @@ -3316,8 +3316,8 @@ msgid "Calendar exception days" msgstr "Excepció al calendari de dies" #: libreplan-webapp/src/main/webapp/myaccount/changePassword.zul:21 -msgid "LibrePlan: Change password" -msgstr "LibrePlan: modificar paraula de pas" +msgid "TASKPM: Change password" +msgstr "TASKPM: modificar paraula de pas" #: org/libreplan/web/planner/allocation/GenericAllocationRow.java:55 msgid "Generic" @@ -3897,7 +3897,7 @@ msgstr "Tipus de comunicació" #: libreplan-webapp/src/main/webapp/common/page_not_found.zul:49 msgid "" -"If you reached this page from another page of LibrePlan please notify us in " +"If you reached this page from another page of TASKPM please notify us in " "order to fix it as soon as possible." msgstr "En cas d'arribar en aquesta pàgina des de un altre de LibrePlan, si us plau, notifiqueu-lo per a corregir el problema al més aviat possible" @@ -3933,8 +3933,8 @@ msgid "Repeated Hours Group code {0} in Project {1}" msgstr "Codi d'hores de grup repetit {0} al projecte {1}" #: libreplan-webapp/src/main/webapp/resources/worker/worker.zul:22 -msgid "LibrePlan: Workers" -msgstr "LibrePlan: Treballadors" +msgid "TASKPM: Workers" +msgstr "TASKPM: Treballadors" #: org/libreplan/web/planner/allocation/AdvancedAllocationController.java:1573 msgid "Not configurable" @@ -4391,8 +4391,8 @@ msgid "" msgstr "el codi de categoria de l'assignació de recursos de cost ha de ser únic dins del recurs" #: libreplan-webapp/src/main/webapp/materials/materials.zul:21 -msgid "LibrePlan: Materials" -msgstr "LibrePlan: Materials" +msgid "TASKPM: Materials" +msgstr "TASKPM: Materials" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:104 msgid "User disabled" @@ -4638,8 +4638,8 @@ msgid "Stretches with Interpolation" msgstr "Tram amb interpolacions" #: libreplan-webapp/src/main/webapp/workreports/workReportTypes.zul:23 -msgid "LibrePlan: Timesheets Templates" -msgstr "LibrePlan: Plantilles de full d'hores" +msgid "TASKPM: Timesheets Templates" +msgstr "TASKPM: Plantilles de full d'hores" #: org/libreplan/web/common/CustomMenuController.java:514 msgid "Reports" @@ -4669,8 +4669,8 @@ msgid "" msgstr "No es pot eliminar la tasca \"{0}\" perquè és l’únic fill del seu pare i aquest en té imputades despeses o temps de seguiment" #: libreplan-webapp/src/main/webapp/reports/workingArrangementsPerOrderReport.zul:21 -msgid "LibrePlan: Task Scheduling Status In Project" -msgstr "LibrePlan: Estat de les tasques programades en el projecte" +msgid "TASKPM: Task Scheduling Status In Project" +msgstr "TASKPM: Estat de les tasques programades en el projecte" #: libreplan-webapp/src/main/webapp/common/layout/_customMenu.zul:55 msgid "START" @@ -4905,8 +4905,8 @@ msgid "Reassigning type" msgstr "Tipus de reassignació" #: libreplan-webapp/src/main/webapp/common/configuration.zul:23 -msgid "LibrePlan: Main Settings" -msgstr "LibrePlan: Configuració general" +msgid "TASKPM: Main Settings" +msgstr "TASKPM: Configuració general" #: org/libreplan/web/common/CustomMenuController.java:419 #: libreplan-business/src/main/java/org/libreplan/business/users/entities/UserRole.java:69 @@ -5002,8 +5002,8 @@ msgid "Expand taskgroups" msgstr "Expandir tasques de grup" #: libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul:22 -msgid "LibrePlan: Send To Subcontractors" -msgstr "LibrePlan: enviar a subcontractista" +msgid "TASKPM: Send To Subcontractors" +msgstr "TASKPM: enviar a subcontractista" #: org/libreplan/web/limitingresources/ManualAllocationController.java:492 msgid "END" @@ -5141,16 +5141,16 @@ msgid "" msgstr "Si us plau, intenta contactar amb al administrador per a revisar el permisos a LibrePlan." #: libreplan-webapp/src/main/webapp/costcategories/costCategory.zul:23 -msgid "LibrePlan: Cost Categories" -msgstr "LibrePlan: Categories de costos" +msgid "TASKPM: Cost Categories" +msgstr "TASKPM: Categories de costos" #: libreplan-webapp/src/main/webapp/users/_editUser.zul:120 msgid "Unbound resource" msgstr "Recurs sense limitació" #: libreplan-webapp/src/main/webapp/subcontract/customerCommunications.zul:20 -msgid "LibrePlan: Received From Customers" -msgstr "LibrePlan: Rebut dels clients" +msgid "TASKPM: Received From Customers" +msgstr "TASKPM: Rebut dels clients" #: libreplan-webapp/src/main/webapp/workreports/_listWorkReportTypes.zul:47 #: libreplan-webapp/src/main/webapp/workreports/workReport.zul:106 @@ -5893,8 +5893,8 @@ msgid "Calendar allocation" msgstr "Assignació de calendari" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerInAMonthReport.zul:21 -msgid "LibrePlan: Total Worked Hours By Resource In A Month" -msgstr "LibrePlan: Hores totals treballades per recursos en un mes" +msgid "TASKPM: Total Worked Hours By Resource In A Month" +msgstr "TASKPM: Hores totals treballades per recursos en un mes" #: org/libreplan/web/resources/criterion/CriterionAdminController.java:257 msgid "" @@ -5950,8 +5950,8 @@ msgid "" msgstr " sobre l'utilització del programa" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:22 -msgid "LibrePlan: Settings" -msgstr "LibrePlan: configuració" +msgid "TASKPM: Settings" +msgstr "TASKPM: configuració" #: org/libreplan/web/common/CustomMenuController.java:345 #: libreplan-webapp/src/main/webapp/orders/_editOrderElement.zul:54 @@ -5982,8 +5982,8 @@ msgid "Change the password" msgstr "Modificar la paraula de pas" #: libreplan-webapp/src/main/webapp/common/access_forbidden.zul:20 -msgid "LibrePlan: Access Forbidden" -msgstr "LibrePlan: Accés prohibit" +msgid "TASKPM: Access Forbidden" +msgstr "TASKPM: Accés prohibit" #: libreplan-webapp/src/main/webapp/montecarlo/_montecarlo.zul:50 #: libreplan-webapp/src/main/webapp/montecarlo/_montecarlo.zul:52 @@ -6063,8 +6063,8 @@ msgid "No authorizations were added because you did not select any." msgstr "No s'han afegit autoritzacions per no seleccionar-ne cap." #: libreplan-webapp/src/main/webapp/users/users.zul:23 -msgid "LibrePlan: User Accounts" -msgstr "LibrePlan: Comptes d'usuaris" +msgid "TASKPM: User Accounts" +msgstr "TASKPM: Comptes d'usuaris" #: libreplan-webapp/src/main/webapp/templates/_assignedQualityForms.zul:30 msgid "Quality forms" @@ -6111,8 +6111,8 @@ msgid "Interacts with applications" msgstr "Interactuar amb les aplicacions" #: libreplan-webapp/src/main/webapp/planner/advance_allocation.zul:22 -msgid "LibrePlan: Advanced allocation" -msgstr "LibrePlan: Assignació avançada" +msgid "TASKPM: Advanced allocation" +msgstr "TASKPM: Assignació avançada" #: org/libreplan/importers/CalendarImporterMPXJ.java:365 msgid "Calendar name already in use" @@ -6237,8 +6237,8 @@ msgid "Standard Effort" msgstr "Esforç base" #: libreplan-webapp/src/main/webapp/orders/imports/projectImport.zul:21 -msgid "LibrePlan: Import Project" -msgstr "LibrePlan: Importar Projecte" +msgid "TASKPM: Import Project" +msgstr "TASKPM: Importar Projecte" #: org/libreplan/web/resources/worker/WorkerCRUDController.java:730 msgid "Create Virtual Workers Group" @@ -6251,8 +6251,8 @@ msgid "" msgstr "Si us plau utilitzi algun navegador compatible com: Chrome, Firefox, Safari or Epiphany." #: libreplan-webapp/src/main/webapp/scenarios/transferOrders.zul:23 -msgid "LibrePlan: Transfer Projects Between Scenarios" -msgstr "LibrePlan: Transferir projectes entre escenaris" +msgid "TASKPM: Transfer Projects Between Scenarios" +msgstr "TASKPM: Transferir projectes entre escenaris" #: org/libreplan/web/common/CustomMenuController.java:306 #: libreplan-business/src/main/java/org/libreplan/business/users/entities/UserRole.java:50 @@ -6488,8 +6488,8 @@ msgid "quality form item position not specified" msgstr "posició de l'ítem del formulari de qualitat no especificat" #: libreplan-webapp/src/main/webapp/profiles/profiles.zul:23 -msgid "LibrePlan: Profiles" -msgstr "LibrePlan: perfil" +msgid "TASKPM: Profiles" +msgstr "TASKPM: perfil" #: libreplan-webapp/src/main/webapp/orders/_orderElementDetails.zul:38 msgid "Code " @@ -6500,8 +6500,8 @@ msgid "Budget At Completion" msgstr "Pressupost a la finalització" #: libreplan-webapp/src/main/webapp/workreports/workReport.zul:23 -msgid "LibrePlan: Timesheets" -msgstr "LibrePlan: Full d'hores" +msgid "TASKPM: Timesheets" +msgstr "TASKPM: Full d'hores" #: libreplan-webapp/src/main/webapp/orders/_listHoursGroupCriterionRequirement.zul:22 msgid "Criteria Requirement" @@ -6895,8 +6895,8 @@ msgid "" msgstr "Data d'inici estimada per a la tasca (prémer enter per a obrir popup or teclejar-ho directament)" #: libreplan-webapp/src/main/webapp/externalcompanies/externalcompanies.zul:23 -msgid "LibrePlan: Companies" -msgstr "LibrePlan: Empreses" +msgid "TASKPM: Companies" +msgstr "TASKPM: Empreses" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:53 msgid "Subcontrated task" @@ -6923,8 +6923,8 @@ msgid "Date must be inside visualization area" msgstr "Data ha d'estar dintre de l'àrea de visualització" #: libreplan-webapp/src/main/webapp/templates/templates.zul:22 -msgid "LibrePlan: Templates" -msgstr "LibrePlan: Plantilles" +msgid "TASKPM: Templates" +msgstr "TASKPM: Plantilles" #: libreplan-webapp/src/main/webapp/resourceload/resourceload.zul:22 #: libreplan-webapp/src/main/webapp/planner/taskpanels/_tabPanelLimitingResourceAllocation.zul:22 @@ -6933,12 +6933,12 @@ msgstr "LibrePlan: Plantilles" #: libreplan-webapp/src/main/webapp/planner/montecarlo_function.zul:22 #: libreplan-webapp/src/main/webapp/planner/resources_use.zul:22 #: libreplan-webapp/src/main/webapp/planner/order.zul:22 -msgid "LibrePlan: Scheduling" -msgstr "LibrePlan: Programació" +msgid "TASKPM: Scheduling" +msgstr "TASKPM: Programació" #: libreplan-webapp/src/main/webapp/subcontract/reportAdvances.zul:22 -msgid "LibrePlan: Send To Customers" -msgstr "LibrePlan: Enviar als clients" +msgid "TASKPM: Send To Customers" +msgstr "TASKPM: Enviar als clients" #: libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReport.java:436 msgid "The timesheet line codes must be unique." @@ -7426,8 +7426,8 @@ msgid "The code cannot be empty and it must be unique." msgstr "El codi no pot ser buit i ha de ser únic." #: libreplan-webapp/src/main/webapp/resources/criterions/criterions.zul:24 -msgid "LibrePlan: Criteria" -msgstr "LibrePlan: Criteris" +msgid "TASKPM: Criteria" +msgstr "TASKPM: Criteris" #: org/libreplan/importers/OrderImporterMPXJ.java:660 msgid "Linked calendar not found" @@ -7840,8 +7840,8 @@ msgid "Start filtering date must be before than end filtering date" msgstr "La data d’inici del filtrat ha de ser abans que la de final" #: libreplan-webapp/src/main/webapp/orders/_synchronizationInfo.zul:20 -msgid "LibrePlan: Synchronization info" -msgstr "LibrePlan: Informació de sincronització" +msgid "TASKPM: Synchronization info" +msgstr "TASKPM: Informació de sincronització" #: org/libreplan/web/orders/DetailsOrderElementController.java:128 msgid "must be after starting date" @@ -8198,8 +8198,8 @@ msgid "Dedication chart" msgstr "Diagrama de dedicació" #: libreplan-webapp/src/main/webapp/scenarios/scenarios.zul:23 -msgid "LibrePlan: Scenarios Management" -msgstr "LibrePlan: gestió d'escenaris" +msgid "TASKPM: Scenarios Management" +msgstr "TASKPM: gestió d'escenaris" #: org/libreplan/web/reports/CompletedEstimatedHoursPerTaskController.java:170 #: org/libreplan/web/reports/OrderCostsPerResourceController.java:213 @@ -8333,8 +8333,8 @@ msgid "Delete Template element" msgstr "Esborrar element de la plantilla" #: libreplan-webapp/src/main/webapp/resources/machine/machines.zul:22 -msgid "LibrePlan: Machines" -msgstr "LibrePlan: Màquines" +msgid "TASKPM: Machines" +msgstr "TASKPM: Màquines" #: libreplan-webapp/src/main/webapp/orders/_orderElementTreeFilter.zul:36 #: libreplan-webapp/src/main/webapp/orders/_orderFilter.zul:35 @@ -8521,7 +8521,7 @@ msgid "Must be after 2010!" msgstr "" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:144 -msgid "is not supported for its use with LibrePlan." +msgid "is not supported for its use with TASKPM." msgstr "no és compatible per al seu ús amb LibrePlan." #: libreplan-business/src/main/java/org/libreplan/business/qualityforms/entities/TaskQualityFormItem.java:99 @@ -8770,8 +8770,8 @@ msgid "number of digits must be between {0} and {1}" msgstr "El número ha d'estar entre {0} i {1}" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerReport.zul:21 -msgid "LibrePlan: Hours Worked Per Resource" -msgstr "LibrePlan: Hores treballades per recurs" +msgid "TASKPM: Hours Worked Per Resource" +msgstr "TASKPM: Hores treballades per recurs" #: org/libreplan/web/calendars/BaseCalendarEditionController.java:642 #: org/libreplan/web/calendars/BaseCalendarEditionController.java:1278 diff --git a/libreplan-webapp/src/main/resources/i18n/cs.po b/libreplan-webapp/src/main/resources/i18n/cs.po index 72e4a92bc..3cfae50d3 100644 --- a/libreplan-webapp/src/main/resources/i18n/cs.po +++ b/libreplan-webapp/src/main/resources/i18n/cs.po @@ -7,7 +7,7 @@ # Zbyněk Schwarz , 2012-2013 msgid "" msgstr "" -"Project-Id-Version: LibrePlan\n" +"Project-Id-Version: TASKPM\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-10-10 17:54+0200\n" "PO-Revision-Date: 2016-07-18 18:26+0000\n" @@ -20,8 +20,8 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" #: libreplan-webapp/src/main/webapp/qualityforms/qualityForms.zul:22 -msgid "LibrePlan: Quality Forms" -msgstr "LibrePlan: Formuláře jakosti" +msgid "TASKPM: Quality Forms" +msgstr "TASKPM: Formuláře jakosti" #: libreplan-webapp/src/main/webapp/orders/_projectDetails.zul:58 #: libreplan-webapp/src/main/webapp/orders/_list.zul:30 @@ -45,8 +45,8 @@ msgid "Overtime" msgstr "" #: libreplan-webapp/src/main/webapp/excetiondays/exceptionDays.zul:22 -msgid "LibrePlan: Calendar Exception Days" -msgstr "LibrePlan: Dny výjimek kalendáře" +msgid "TASKPM: Calendar Exception Days" +msgstr "TASKPM: Dny výjimek kalendáře" #: org/libreplan/web/calendars/BaseCalendarModel.java:488 #: org/libreplan/web/calendars/BaseCalendarModel.java:520 @@ -135,7 +135,7 @@ msgid "Subcategory names must be unique." msgstr "Názvy podkategorií musí být jedinečné." #: libreplan-webapp/src/main/webapp/reports/timeLineMaterialReport.zul:21 -msgid "LibrePlan: Materials Needed At Date" +msgid "TASKPM: Materials Needed At Date" msgstr "" #: org/libreplan/web/resources/machine/MachineCRUDController.java:630 @@ -482,8 +482,8 @@ msgid "please, select a project" msgstr "vyberte prosím projekt" #: libreplan-webapp/src/main/webapp/reports/projectStatusReport.zul:20 -msgid "LibrePlan: Project Status Report" -msgstr "LibrePlan: Zpráva o stavu projektu" +msgid "TASKPM: Project Status Report" +msgstr "TASKPM: Zpráva o stavu projektu" #: org/libreplan/web/calendars/BaseCalendarEditionController.java:627 #: org/libreplan/web/calendars/BaseCalendarEditionController.java:1263 @@ -544,7 +544,7 @@ msgid "Exit session" msgstr "Ukončit sezení" #: libreplan-webapp/src/main/webapp/orders/_timImpExpInfo.zul:20 -msgid "LibrePlan: Tim import export info" +msgid "TASKPM: Tim import export info" msgstr "" #: org/libreplan/web/planner/allocation/FormBinder.java:671 @@ -658,8 +658,8 @@ msgid "Companies List" msgstr "Seznam společností" #: libreplan-webapp/src/main/webapp/resources/worker/virtualWorkers.zul:22 -msgid "LibrePlan: Virtual Worker Groups" -msgstr "LibrePlan: Skupiny virtuálních pracovníků" +msgid "TASKPM: Virtual Worker Groups" +msgstr "TASKPM: Skupiny virtuálních pracovníků" #: org/libreplan/web/planner/tabs/MonteCarloTabCreator.java:51 #: org/libreplan/web/planner/tabs/MonteCarloTabCreator.java:159 @@ -672,8 +672,8 @@ msgid "Cost category" msgstr "Kategorie nákladů" #: libreplan-webapp/src/main/webapp/myaccount/personalTimesheet.zul:21 -msgid "LibrePlan: Personal timesheet" -msgstr "LibrePlan: Osobní výkaz" +msgid "TASKPM: Personal timesheet" +msgstr "TASKPM: Osobní výkaz" #: libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReportLine.java:264 msgid "clock finish cannot be empty if number of hours is calcultate by clock" @@ -699,7 +699,7 @@ msgid "Unsaved changes will be lost. Are you sure?" msgstr "Neuložené změny budou ztraceny. Jste si jisti?" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/ConfigurationRolesLDAP.java:56 -msgid "LibrePlan role not specified" +msgid "TASKPM role not specified" msgstr "nezadána role LibrePlan" #: libreplan-webapp/src/main/webapp/scenarios/transferOrders.zul:39 @@ -715,7 +715,7 @@ msgid "Move" msgstr "Přesunout" #: libreplan-webapp/src/main/webapp/orders/_jiraSyncInfo.zul:20 -msgid "LibrePlan: JIRA synchronization info" +msgid "TASKPM: JIRA synchronization info" msgstr "" #: org/libreplan/web/common/components/finders/OrderFilterEnum.java:31 @@ -760,8 +760,8 @@ msgid "Profiles List" msgstr "Seznam profilů" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:21 -msgid "LibrePlan: User access" -msgstr "LibrePlan: Přístup uživatelů" +msgid "TASKPM: User access" +msgstr "TASKPM: Přístup uživatelů" #: libreplan-business/src/main/java/org/libreplan/business/labels/entities/LabelType.java:158 msgid "label code is already being used" @@ -1539,7 +1539,7 @@ msgid "Violated deadline" msgstr "Termín porušen" #: libreplan-webapp/src/main/webapp/common/configuration.zul:126 -msgid "Enable/Disable warning about new LibrePlan versions available" +msgid "Enable/Disable warning about new TASKPM versions available" msgstr "Povolit/Zakázat upozorňování na dostupnost nové verze LibrePlan" #: libreplan-business/src/main/java/org/libreplan/business/orders/entities/HoursGroup.java:186 @@ -1582,8 +1582,8 @@ msgid "Progress sent successfully" msgstr "Postup úspěšně odeslán" #: libreplan-webapp/src/main/webapp/myaccount/userDashboard.zul:21 -msgid "LibrePlan: My Dashboard" -msgstr "LibrePlan: Moje nástěnka" +msgid "TASKPM: My Dashboard" +msgstr "TASKPM: Moje nástěnka" #: libreplan-webapp/src/main/webapp/calendars/_edition.zul:131 msgid "Work week" @@ -1603,8 +1603,8 @@ msgstr "Pole typu štítku" #: libreplan-webapp/src/main/webapp/common/event_error.zul:22 #: libreplan-webapp/src/main/webapp/common/error.zul:21 -msgid "LibrePlan: Runtime Error" -msgstr "LibrePlan: Chyba za běhu" +msgid "TASKPM: Runtime Error" +msgstr "TASKPM: Chyba za běhu" #: org/libreplan/web/planner/tabs/PlanningTabCreator.java:152 #: libreplan-webapp/src/main/webapp/common/components/schedulingStateToggler.zul:29 @@ -1651,7 +1651,7 @@ msgid "Criterion Types" msgstr "" #: libreplan-webapp/src/main/webapp/common/configuration.zul:125 -msgid "Show a notification when new LibrePlan versions are released" +msgid "Show a notification when new TASKPM versions are released" msgstr "Zobrazit oznámení, když jsou vydány nové verze LibrePlan" #: org/libreplan/web/workreports/WorkReportTypeCRUDController.java:900 @@ -1720,8 +1720,8 @@ msgid "units not specified" msgstr "nejsou zadány jednotky" #: libreplan-webapp/src/main/webapp/advance/advanceTypes.zul:22 -msgid "LibrePlan: Progress Types" -msgstr "LibrePlan: Typy postupu" +msgid "TASKPM: Progress Types" +msgstr "TASKPM: Typy postupu" #: libreplan-webapp/src/main/webapp/planner/montecarlo_function.zul:36 msgid "MonteCarlo chart" @@ -1928,8 +1928,8 @@ msgid "percentage should be between 1 and 100" msgstr "procento by mělo být v rozmezí 1 až 100" #: libreplan-webapp/src/main/webapp/workreports/workReportQuery.zul:23 -msgid "LibrePlan: Timesheet Lines List" -msgstr "LibrePlan: Seznam šablon výkazu " +msgid "TASKPM: Timesheet Lines List" +msgstr "TASKPM: Seznam šablon výkazu " #: org/libreplan/web/labels/LabelTypeModel.java:269 msgid "Already exists other label with the same name" @@ -2056,8 +2056,8 @@ msgid "You have exceeded the maximum limit of users" msgstr "Překročili jste maximální počet uživatelů" #: libreplan-webapp/src/main/webapp/reports/schedulingProgressPerOrderReport.zul:21 -msgid "LibrePlan: Work And Progress Per Project" -msgstr "LibrePlan: Práce a postup v projektu" +msgid "TASKPM: Work And Progress Per Project" +msgstr "TASKPM: Práce a postup v projektu" #: libreplan-webapp/src/main/webapp/orders/_orderElementTreeFilter.zul:42 #: libreplan-webapp/src/main/webapp/orders/_orderFilter.zul:30 @@ -2121,8 +2121,8 @@ msgid "No roster-exceptions found in the response" msgstr "" #: libreplan-webapp/src/main/webapp/calendars/calendars.zul:22 -msgid "LibrePlan: Calendars" -msgstr "LibrePlan: Kalendáře" +msgid "TASKPM: Calendars" +msgstr "TASKPM: Kalendáře" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/EntitySequence.java:192 msgid "entity name not specified" @@ -2146,7 +2146,7 @@ msgid "Subcontracting date" msgstr "Datum subkontrakce" #: libreplan-webapp/src/main/webapp/common/job_scheduling.zul:20 -msgid "LibrePlan: Job Scheduling" +msgid "TASKPM: Job Scheduling" msgstr "" #: org/libreplan/importers/ImportRosterFromTim.java:182 @@ -2299,8 +2299,8 @@ msgid "Filter timesheet lines by" msgstr "Filtrovat řádky výkazu podle" #: libreplan-webapp/src/main/webapp/unittypes/unitTypes.zul:21 -msgid "LibrePlan: Material Units" -msgstr "LibrePlan: Jednotky materiálu" +msgid "TASKPM: Material Units" +msgstr "TASKPM: Jednotky materiálu" #: org/libreplan/web/templates/TemplatesTreeComponent.java:64 msgid "New Template element" @@ -2453,8 +2453,8 @@ msgid "Maximum/minimum of worked hours in finished applications" msgstr "Maximum/minimum odpracovaných hodin v dokončených aplikacích" #: libreplan-webapp/src/main/webapp/labels/labelTypes.zul:21 -msgid "LibrePlan: Labels" -msgstr "LibrePlan: Štítky" +msgid "TASKPM: Labels" +msgstr "TASKPM: Štítky" #: libreplan-webapp/src/main/webapp/resources/worker/_edition.zul:31 msgid "Personal data" @@ -2504,8 +2504,8 @@ msgid "Observations" msgstr "Pozorování" #: libreplan-webapp/src/main/webapp/common/page_not_found.zul:22 -msgid "LibrePlan: Page not found" -msgstr "LibrePlan: Stránka nenalezena" +msgid "TASKPM: Page not found" +msgstr "TASKPM: Stránka nenalezena" #: libreplan-webapp/src/main/webapp/orders/_edition.zul:251 #: libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul:55 @@ -2596,8 +2596,8 @@ msgid "Output format:" msgstr "Výstupní formát:" #: libreplan-webapp/src/main/webapp/reports/workingProgressPerTaskReport.zul:21 -msgid "LibrePlan: Work And Progress Per Task" -msgstr "LibrePlan: Práce a postup za úkol" +msgid "TASKPM: Work And Progress Per Task" +msgstr "TASKPM: Práce a postup za úkol" #: org/libreplan/web/advance/AdvanceTypeCRUDController.java:81 msgid "" @@ -2688,8 +2688,8 @@ msgid "Label type already assigned" msgstr "Typ štítku již přidělen" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:20 -msgid "LibrePlan: Received From Subcontractors" -msgstr "LibrePlan: Přijato od subdodavatelů" +msgid "TASKPM: Received From Subcontractors" +msgstr "TASKPM: Přijato od subdodavatelů" #: libreplan-webapp/src/main/webapp/common/configuration.zul:58 msgid "Company code" @@ -2909,8 +2909,8 @@ msgid "label type: the timesheet have not assigned this label type" msgstr "" #: libreplan-webapp/src/main/webapp/typeofworkhours/typeOfWorkHours.zul:23 -msgid "LibrePlan: Hours Types" -msgstr "LibrePlan: Typy hodin" +msgid "TASKPM: Hours Types" +msgstr "TASKPM: Typy hodin" #: org/libreplan/web/common/CustomMenuController.java:264 #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:109 @@ -2938,8 +2938,8 @@ msgid "Please try it again." msgstr "Zkuste to prosím znovu." #: libreplan-webapp/src/main/webapp/expensesheet/expenseSheet.zul:21 -msgid "LibrePlan: Expenses" -msgstr "LibrePlan: Náklady" +msgid "TASKPM: Expenses" +msgstr "TASKPM: Náklady" #: org/libreplan/web/tree/TreeController.java:1294 msgid "Modified" @@ -2999,8 +2999,8 @@ msgid "Date last progress measurement" msgstr "Datum posledního změření postupu" #: libreplan-webapp/src/main/webapp/reports/completedEstimatedHoursPerTask.zul:21 -msgid "LibrePlan: Estimated/Planned Hours Per Task" -msgstr "LibrePlan: Odhadované/Plánované hodiny na úkol" +msgid "TASKPM: Estimated/Planned Hours Per Task" +msgstr "TASKPM: Odhadované/Plánované hodiny na úkol" #: libreplan-webapp/src/main/webapp/orders/_listOrderElementAuthorizations.zul:43 #: libreplan-webapp/src/main/webapp/orders/_listOrderElementAuthorizations.zul:67 @@ -3206,8 +3206,8 @@ msgid "Finished" msgstr "Dokončeno" #: libreplan-webapp/src/main/webapp/planner/index.zul:22 -msgid "LibrePlan: Planning" -msgstr "LibrePlan: Plánování" +msgid "TASKPM: Planning" +msgstr "TASKPM: Plánování" #: org/libreplan/web/scenarios/ScenarioModel.java:126 msgid "You cannot remove the current scenario" @@ -3279,7 +3279,7 @@ msgid "Property strategy" msgstr "Strategie vlastností" #: libreplan-webapp/src/main/webapp/reports/orderCostsPerResource.zul:21 -msgid "LibrePlan: Project Costs" +msgid "TASKPM: Project Costs" msgstr "LIbrePlan: Náklady projektu" #: org/libreplan/web/common/ConfigurationController.java:265 @@ -3315,8 +3315,8 @@ msgid "Calendar exception days" msgstr "Dny výjimek kalendáře" #: libreplan-webapp/src/main/webapp/myaccount/changePassword.zul:21 -msgid "LibrePlan: Change password" -msgstr "LibrePlan: Změnit heslo" +msgid "TASKPM: Change password" +msgstr "TASKPM: Změnit heslo" #: org/libreplan/web/planner/allocation/GenericAllocationRow.java:55 msgid "Generic" @@ -3896,7 +3896,7 @@ msgstr "Typ komunikace" #: libreplan-webapp/src/main/webapp/common/page_not_found.zul:49 msgid "" -"If you reached this page from another page of LibrePlan please notify us in " +"If you reached this page from another page of TASKPM please notify us in " "order to fix it as soon as possible." msgstr "" @@ -3932,8 +3932,8 @@ msgid "Repeated Hours Group code {0} in Project {1}" msgstr "Kód skupiny hodin {0} je v projektu {1} opakován" #: libreplan-webapp/src/main/webapp/resources/worker/worker.zul:22 -msgid "LibrePlan: Workers" -msgstr "LibrePlan: Pracovníci" +msgid "TASKPM: Workers" +msgstr "TASKPM: Pracovníci" #: org/libreplan/web/planner/allocation/AdvancedAllocationController.java:1573 msgid "Not configurable" @@ -4390,8 +4390,8 @@ msgid "" msgstr "přidělení kategorie nákladů zdroje musí být uvnitř zdroje jedinečné" #: libreplan-webapp/src/main/webapp/materials/materials.zul:21 -msgid "LibrePlan: Materials" -msgstr "LibrePlan: Materiály" +msgid "TASKPM: Materials" +msgstr "TASKPM: Materiály" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:104 msgid "User disabled" @@ -4637,8 +4637,8 @@ msgid "Stretches with Interpolation" msgstr "Rozložení s interpolací" #: libreplan-webapp/src/main/webapp/workreports/workReportTypes.zul:23 -msgid "LibrePlan: Timesheets Templates" -msgstr "LibrePlan: Šablony výkazů" +msgid "TASKPM: Timesheets Templates" +msgstr "TASKPM: Šablony výkazů" #: org/libreplan/web/common/CustomMenuController.java:514 msgid "Reports" @@ -4668,8 +4668,8 @@ msgid "" msgstr "" #: libreplan-webapp/src/main/webapp/reports/workingArrangementsPerOrderReport.zul:21 -msgid "LibrePlan: Task Scheduling Status In Project" -msgstr "LibrePlan: Stav plánování úkolu v projektu" +msgid "TASKPM: Task Scheduling Status In Project" +msgstr "TASKPM: Stav plánování úkolu v projektu" #: libreplan-webapp/src/main/webapp/common/layout/_customMenu.zul:55 msgid "START" @@ -4904,8 +4904,8 @@ msgid "Reassigning type" msgstr "Znovu přidělování typu" #: libreplan-webapp/src/main/webapp/common/configuration.zul:23 -msgid "LibrePlan: Main Settings" -msgstr "LibrePlan: Hlavní nastavení" +msgid "TASKPM: Main Settings" +msgstr "TASKPM: Hlavní nastavení" #: org/libreplan/web/common/CustomMenuController.java:419 #: libreplan-business/src/main/java/org/libreplan/business/users/entities/UserRole.java:69 @@ -5001,8 +5001,8 @@ msgid "Expand taskgroups" msgstr "Rozšířit skupiny úkolů" #: libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul:22 -msgid "LibrePlan: Send To Subcontractors" -msgstr "LibrePlan: Odeslat subdodavatelům" +msgid "TASKPM: Send To Subcontractors" +msgstr "TASKPM: Odeslat subdodavatelům" #: org/libreplan/web/limitingresources/ManualAllocationController.java:492 msgid "END" @@ -5140,16 +5140,16 @@ msgid "" msgstr "Prosím zkuste kontaktovat některého ze správců abyste mohli zkontrolovat vaše oprávnění v LibrePlan." #: libreplan-webapp/src/main/webapp/costcategories/costCategory.zul:23 -msgid "LibrePlan: Cost Categories" -msgstr "LibrePlan: Kategorie nákladů" +msgid "TASKPM: Cost Categories" +msgstr "TASKPM: Kategorie nákladů" #: libreplan-webapp/src/main/webapp/users/_editUser.zul:120 msgid "Unbound resource" msgstr "Nesvázaný zdroj" #: libreplan-webapp/src/main/webapp/subcontract/customerCommunications.zul:20 -msgid "LibrePlan: Received From Customers" -msgstr "LibrePlan: Přijato od zákazníků" +msgid "TASKPM: Received From Customers" +msgstr "TASKPM: Přijato od zákazníků" #: libreplan-webapp/src/main/webapp/workreports/_listWorkReportTypes.zul:47 #: libreplan-webapp/src/main/webapp/workreports/workReport.zul:106 @@ -5892,8 +5892,8 @@ msgid "Calendar allocation" msgstr "Přidělení kalendáře" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerInAMonthReport.zul:21 -msgid "LibrePlan: Total Worked Hours By Resource In A Month" -msgstr "LibrePlan: Celkem odpracovaných hodin podle zdroje za měsíc" +msgid "TASKPM: Total Worked Hours By Resource In A Month" +msgstr "TASKPM: Celkem odpracovaných hodin podle zdroje za měsíc" #: org/libreplan/web/resources/criterion/CriterionAdminController.java:257 msgid "" @@ -5949,8 +5949,8 @@ msgid "" msgstr "Zaškrtněte tuto možnost, pokud chcete poslat zpětnou vazbu o používání programu vývojářům LibrePlan" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:22 -msgid "LibrePlan: Settings" -msgstr "LibrePlan: Nastavení" +msgid "TASKPM: Settings" +msgstr "TASKPM: Nastavení" #: org/libreplan/web/common/CustomMenuController.java:345 #: libreplan-webapp/src/main/webapp/orders/_editOrderElement.zul:54 @@ -5981,8 +5981,8 @@ msgid "Change the password" msgstr "Změnit heslo" #: libreplan-webapp/src/main/webapp/common/access_forbidden.zul:20 -msgid "LibrePlan: Access Forbidden" -msgstr "LibrePlan: Přístup zakázán" +msgid "TASKPM: Access Forbidden" +msgstr "TASKPM: Přístup zakázán" #: libreplan-webapp/src/main/webapp/montecarlo/_montecarlo.zul:50 #: libreplan-webapp/src/main/webapp/montecarlo/_montecarlo.zul:52 @@ -6062,8 +6062,8 @@ msgid "No authorizations were added because you did not select any." msgstr "Žádná oprávnění nebyla přidána, protože jste žádné nevybrali." #: libreplan-webapp/src/main/webapp/users/users.zul:23 -msgid "LibrePlan: User Accounts" -msgstr "LibrePlan: Uživatelské účty" +msgid "TASKPM: User Accounts" +msgstr "TASKPM: Uživatelské účty" #: libreplan-webapp/src/main/webapp/templates/_assignedQualityForms.zul:30 msgid "Quality forms" @@ -6110,8 +6110,8 @@ msgid "Interacts with applications" msgstr "Komunikuje s aplikacemi" #: libreplan-webapp/src/main/webapp/planner/advance_allocation.zul:22 -msgid "LibrePlan: Advanced allocation" -msgstr "LibrePlan: Pokročilé přidělování" +msgid "TASKPM: Advanced allocation" +msgstr "TASKPM: Pokročilé přidělování" #: org/libreplan/importers/CalendarImporterMPXJ.java:365 msgid "Calendar name already in use" @@ -6236,7 +6236,7 @@ msgid "Standard Effort" msgstr "Standardní úsilí" #: libreplan-webapp/src/main/webapp/orders/imports/projectImport.zul:21 -msgid "LibrePlan: Import Project" +msgid "TASKPM: Import Project" msgstr "" #: org/libreplan/web/resources/worker/WorkerCRUDController.java:730 @@ -6250,8 +6250,8 @@ msgid "" msgstr "Prosím použijte jeden z kompatibilních prohlížečů: Chrome, Firefox, Safari nebo Epiphany." #: libreplan-webapp/src/main/webapp/scenarios/transferOrders.zul:23 -msgid "LibrePlan: Transfer Projects Between Scenarios" -msgstr "LibrePlan: Převod projektu mezi scénáři" +msgid "TASKPM: Transfer Projects Between Scenarios" +msgstr "TASKPM: Převod projektu mezi scénáři" #: org/libreplan/web/common/CustomMenuController.java:306 #: libreplan-business/src/main/java/org/libreplan/business/users/entities/UserRole.java:50 @@ -6487,8 +6487,8 @@ msgid "quality form item position not specified" msgstr "nezadáno umístění položky formuláře kvality" #: libreplan-webapp/src/main/webapp/profiles/profiles.zul:23 -msgid "LibrePlan: Profiles" -msgstr "LibrePlan: Profily" +msgid "TASKPM: Profiles" +msgstr "TASKPM: Profily" #: libreplan-webapp/src/main/webapp/orders/_orderElementDetails.zul:38 msgid "Code " @@ -6499,8 +6499,8 @@ msgid "Budget At Completion" msgstr "Rozpočet při dokončení" #: libreplan-webapp/src/main/webapp/workreports/workReport.zul:23 -msgid "LibrePlan: Timesheets" -msgstr "LibrePlan: Výkazy" +msgid "TASKPM: Timesheets" +msgstr "TASKPM: Výkazy" #: libreplan-webapp/src/main/webapp/orders/_listHoursGroupCriterionRequirement.zul:22 msgid "Criteria Requirement" @@ -6894,8 +6894,8 @@ msgid "" msgstr "" #: libreplan-webapp/src/main/webapp/externalcompanies/externalcompanies.zul:23 -msgid "LibrePlan: Companies" -msgstr "LibrePlan: Společnosti" +msgid "TASKPM: Companies" +msgstr "TASKPM: Společnosti" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:53 msgid "Subcontrated task" @@ -6922,8 +6922,8 @@ msgid "Date must be inside visualization area" msgstr "" #: libreplan-webapp/src/main/webapp/templates/templates.zul:22 -msgid "LibrePlan: Templates" -msgstr "LibrePlan: Šablony" +msgid "TASKPM: Templates" +msgstr "TASKPM: Šablony" #: libreplan-webapp/src/main/webapp/resourceload/resourceload.zul:22 #: libreplan-webapp/src/main/webapp/planner/taskpanels/_tabPanelLimitingResourceAllocation.zul:22 @@ -6932,12 +6932,12 @@ msgstr "LibrePlan: Šablony" #: libreplan-webapp/src/main/webapp/planner/montecarlo_function.zul:22 #: libreplan-webapp/src/main/webapp/planner/resources_use.zul:22 #: libreplan-webapp/src/main/webapp/planner/order.zul:22 -msgid "LibrePlan: Scheduling" -msgstr "LibrePlan: Plánování" +msgid "TASKPM: Scheduling" +msgstr "TASKPM: Plánování" #: libreplan-webapp/src/main/webapp/subcontract/reportAdvances.zul:22 -msgid "LibrePlan: Send To Customers" -msgstr "LibrePlan: Odeslat zákazníkům" +msgid "TASKPM: Send To Customers" +msgstr "TASKPM: Odeslat zákazníkům" #: libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReport.java:436 msgid "The timesheet line codes must be unique." @@ -7425,8 +7425,8 @@ msgid "The code cannot be empty and it must be unique." msgstr "Kód nemůže být prázdný a musí být jedinečný." #: libreplan-webapp/src/main/webapp/resources/criterions/criterions.zul:24 -msgid "LibrePlan: Criteria" -msgstr "LibrePlan: Kritérium" +msgid "TASKPM: Criteria" +msgstr "TASKPM: Kritérium" #: org/libreplan/importers/OrderImporterMPXJ.java:660 msgid "Linked calendar not found" @@ -7839,7 +7839,7 @@ msgid "Start filtering date must be before than end filtering date" msgstr "" #: libreplan-webapp/src/main/webapp/orders/_synchronizationInfo.zul:20 -msgid "LibrePlan: Synchronization info" +msgid "TASKPM: Synchronization info" msgstr "" #: org/libreplan/web/orders/DetailsOrderElementController.java:128 @@ -8197,8 +8197,8 @@ msgid "Dedication chart" msgstr "Graf odhodlání" #: libreplan-webapp/src/main/webapp/scenarios/scenarios.zul:23 -msgid "LibrePlan: Scenarios Management" -msgstr "LibrePlan: Správa scénářů" +msgid "TASKPM: Scenarios Management" +msgstr "TASKPM: Správa scénářů" #: org/libreplan/web/reports/CompletedEstimatedHoursPerTaskController.java:170 #: org/libreplan/web/reports/OrderCostsPerResourceController.java:213 @@ -8332,8 +8332,8 @@ msgid "Delete Template element" msgstr "Smazat prvek šablony" #: libreplan-webapp/src/main/webapp/resources/machine/machines.zul:22 -msgid "LibrePlan: Machines" -msgstr "LibrePlan: Stroje" +msgid "TASKPM: Machines" +msgstr "TASKPM: Stroje" #: libreplan-webapp/src/main/webapp/orders/_orderElementTreeFilter.zul:36 #: libreplan-webapp/src/main/webapp/orders/_orderFilter.zul:35 @@ -8520,7 +8520,7 @@ msgid "Must be after 2010!" msgstr "" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:144 -msgid "is not supported for its use with LibrePlan." +msgid "is not supported for its use with TASKPM." msgstr "není podporován pro použití s LibrePlan." #: libreplan-business/src/main/java/org/libreplan/business/qualityforms/entities/TaskQualityFormItem.java:99 @@ -8769,8 +8769,8 @@ msgid "number of digits must be between {0} and {1}" msgstr "počet číslic musí být mezi {0} a {1}" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerReport.zul:21 -msgid "LibrePlan: Hours Worked Per Resource" -msgstr "LibrePlan: Odpracované hodiny na zdroj" +msgid "TASKPM: Hours Worked Per Resource" +msgstr "TASKPM: Odpracované hodiny na zdroj" #: org/libreplan/web/calendars/BaseCalendarEditionController.java:642 #: org/libreplan/web/calendars/BaseCalendarEditionController.java:1278 diff --git a/libreplan-webapp/src/main/resources/i18n/de.po b/libreplan-webapp/src/main/resources/i18n/de.po index d1cd48f02..869d167a4 100644 --- a/libreplan-webapp/src/main/resources/i18n/de.po +++ b/libreplan-webapp/src/main/resources/i18n/de.po @@ -19,7 +19,7 @@ # Wolfgang Uhlig , 2016 msgid "" msgstr "" -"Project-Id-Version: LibrePlan\n" +"Project-Id-Version: TASKPM\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-11-27 20:07+0100\n" "PO-Revision-Date: 2011-12-12 19:43+0000\n" @@ -108,8 +108,8 @@ msgid "Select template" msgstr "Vorlage wählen" #: libreplan-webapp/src/main/webapp/workreports/workReport.zul:23 -msgid "LibrePlan: Timesheets" -msgstr "LibrePlan: Stundenzettel" +msgid "TASKPM: Timesheets" +msgstr "TASKPM: Stundenzettel" #: libreplan-webapp/src/main/webapp/myaccount/_myTasksArea.zul:39 msgid "Work done" @@ -153,7 +153,7 @@ msgid "job class name not specified" msgstr "Aufgabenklassenname nicht angegeben" #: libreplan-webapp/src/main/webapp/common/configuration.zul:146 -msgid "Show a notification when new LibrePlan versions are released" +msgid "Show a notification when new TASKPM versions are released" msgstr "" "Eine Benachrichtigung anzeigen, wenn eine neue LibrePlan-Version " "veröffentlich wurde" @@ -280,8 +280,8 @@ msgid "Task quality forms" msgstr "Aufgaben Qualitätsformulare" #: libreplan-webapp/src/main/webapp/templates/templates.zul:22 -msgid "LibrePlan: Templates" -msgstr "LibrePlan: Vorlagen" +msgid "TASKPM: Templates" +msgstr "TASKPM: Vorlagen" #: org/libreplan/web/workreports/WorkReportTypeModel.java:414 msgid "There is another timesheet template with the same name" @@ -325,8 +325,8 @@ msgid "Authentication type" msgstr "Authentifizierungstyp" #: libreplan-webapp/src/main/webapp/reports/workingArrangementsPerOrderReport.zul:21 -msgid "LibrePlan: Task Scheduling Status In Project" -msgstr "LibrePlan: Status der Aufgabenplanung im Projekt" +msgid "TASKPM: Task Scheduling Status In Project" +msgstr "TASKPM: Status der Aufgabenplanung im Projekt" #: org/libreplan/web/resources/criterion/CriterionsModel.java:216 msgid "Resource type cannot be empty" @@ -462,8 +462,8 @@ msgid "Schedule from deadline to start" msgstr "Zeitplan von Frist bis Start" #: libreplan-webapp/src/main/webapp/resources/machine/machines.zul:22 -msgid "LibrePlan: Machines" -msgstr "LibrePlan: Maschinen" +msgid "TASKPM: Machines" +msgstr "TASKPM: Maschinen" #: org/libreplan/web/common/CustomMenuController.java:400 #: org/libreplan/web/workreports/WorkReportTypeCRUDController.java:878 @@ -491,8 +491,8 @@ msgid "Criterion cannot be empty" msgstr "Kriterium darf nicht leer sein" #: libreplan-webapp/src/main/webapp/planner/index.zul:22 -msgid "LibrePlan: Planning" -msgstr "LibrePlan: Planung" +msgid "TASKPM: Planning" +msgstr "TASKPM: Planung" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/Configuration.java:146 msgid "default calendar not specified" @@ -744,8 +744,8 @@ msgid "Save and Continue" msgstr "Speichern und Fortsetzen" #: libreplan-webapp/src/main/webapp/externalcompanies/externalcompanies.zul:23 -msgid "LibrePlan: Companies" -msgstr "LibrePlan: Firmen" +msgid "TASKPM: Companies" +msgstr "TASKPM: Firmen" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/EntitySequence.java:152 msgid "format sequence code invalid. It must not contain '_'" @@ -909,7 +909,7 @@ msgstr "aktiver Zeitraum von" #: libreplan-webapp/src/main/webapp/common/pageNotFound.zul:49 msgid "" -"If you reached this page from another page of LibrePlan please notify us in " +"If you reached this page from another page of TASKPM please notify us in " "order to fix it as soon as possible." msgstr "" "Wenn Sie diese Seite von einer andere LibrePlan-Seite aus erreicht haben, " @@ -1184,8 +1184,8 @@ msgstr "" "Lieferdaten in der Tabelle ein Kommunikationsdatum haben (nicht leer). " #: libreplan-webapp/src/main/webapp/common/pageNotFound.zul:22 -msgid "LibrePlan: Page not found" -msgstr "LibrePlan: Seite nicht gefunden" +msgid "TASKPM: Page not found" +msgstr "TASKPM: Seite nicht gefunden" #: org/libreplan/web/users/dashboard/ExpensesAreaController.java:87 msgid "Expense sheet \"{0}\" deleted" @@ -1320,8 +1320,8 @@ msgid "Advanced Allocation" msgstr "Erweiterte Zuweisung" #: libreplan-webapp/src/main/webapp/reports/timeLineMaterialReport.zul:21 -msgid "LibrePlan: Materials Needed At Date" -msgstr "LibrePlan: Materialen zu Datum benötigt" +msgid "TASKPM: Materials Needed At Date" +msgstr "TASKPM: Materialen zu Datum benötigt" #: libreplan-webapp/src/main/webapp/unittypes/unitTypes.zul:42 #: libreplan-webapp/src/main/webapp/templates/_editTemplate.zul:165 @@ -1361,8 +1361,8 @@ msgstr "" "Warnung: Keine Bearbeitung von der Homepage des verbundenen Benutzers aus" #: libreplan-webapp/src/main/webapp/workreports/workReportQuery.zul:23 -msgid "LibrePlan: Timesheet Lines List" -msgstr "LibrePlan: Stundenzettel Zeilenliste" +msgid "TASKPM: Timesheet Lines List" +msgstr "TASKPM: Stundenzettel Zeilenliste" #: org/libreplan/web/users/dashboard/PersonalTimesheetController.java:664 #: org/libreplan/web/common/components/finders/OrderElementBandboxFinder.java:51 @@ -1449,8 +1449,8 @@ msgstr "" "ausgewählte Zuweisungsstrategie zu verwenden " #: libreplan-webapp/src/main/webapp/orders/_jiraSyncInfo.zul:20 -msgid "LibrePlan: JIRA synchronization info" -msgstr "LibrePlan: JIRA-Synchronisierungsinformationen" +msgid "TASKPM: JIRA synchronization info" +msgstr "TASKPM: JIRA-Synchronisierungsinformationen" #: org/libreplan/web/common/CustomMenuController.java:290 #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:112 @@ -1538,8 +1538,8 @@ msgstr "Erstelle neues Projekt" #: libreplan-webapp/src/main/webapp/common/eventError.zul:22 #: libreplan-webapp/src/main/webapp/common/error.zul:21 -msgid "LibrePlan: Runtime Error" -msgstr "LibrePlan: Laufzeitfehler" +msgid "TASKPM: Runtime Error" +msgstr "TASKPM: Laufzeitfehler" #: libreplan-webapp/src/main/webapp/common/configuration.zul:467 msgid "Role property" @@ -1677,8 +1677,8 @@ msgid "Estimations" msgstr "Schätzungen" #: libreplan-webapp/src/main/webapp/orders/_synchronizationInfo.zul:20 -msgid "LibrePlan: Synchronization info" -msgstr "LibrePlan: Synchronisierungsinformationen" +msgid "TASKPM: Synchronization info" +msgstr "TASKPM: Synchronisierungsinformationen" #: libreplan-webapp/src/main/webapp/common/_editJobScheduling.zul:152 msgid "1 or 7 is Sunday, or use names" @@ -1959,8 +1959,8 @@ msgid "Change password" msgstr "Ändere Passwort" #: libreplan-webapp/src/main/webapp/reports/schedulingProgressPerOrderReport.zul:21 -msgid "LibrePlan: Work And Progress Per Project" -msgstr "LibrePlan: Arbeit und Fortschritt pro Projekt" +msgid "TASKPM: Work And Progress Per Project" +msgstr "TASKPM: Arbeit und Fortschritt pro Projekt" #: org/libreplan/importers/ExportTimesheetsToTim.java:224 msgid "Registration response with empty refs" @@ -2070,16 +2070,16 @@ msgid "All changes will be lost. Are you sure?" msgstr "Alle Änderungen gehen verloren. Sind Sie sicher?" #: libreplan-webapp/src/main/webapp/common/configuration.zul:23 -msgid "LibrePlan: Main Settings" -msgstr "LibrePlan: Haupteinstellungen" +msgid "TASKPM: Main Settings" +msgstr "TASKPM: Haupteinstellungen" #: org/libreplan/web/users/dashboard/UserDashboardController.java:71 msgid "Expense sheet \"{0}\" saved" msgstr "Aufwandskostenzettel \"{0}\" gespeichert" #: libreplan-webapp/src/main/webapp/workreports/workReportTypes.zul:23 -msgid "LibrePlan: Timesheets Templates" -msgstr "LibrePlan: Stundenzettelvorlagen" +msgid "TASKPM: Timesheets Templates" +msgstr "TASKPM: Stundenzettelvorlagen" #: org/libreplan/web/planner/allocation/FormBinder.java:640 msgid "{0} already assigned to resource allocation list" @@ -2214,7 +2214,7 @@ msgstr "Stundenobergrenze" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:185 msgid "" -"Giving a gift today means LibrePlan continues to remain available and in " +"Giving a gift today means TASKPM continues to remain available and in " "active development tomorrow!" msgstr "" "Wenn Sie heute eine Spende machen, bedeutet das, dass LibrePlan auch morgen " @@ -2529,8 +2529,8 @@ msgid "At least one {0} sequence is needed" msgstr "Mindestens eine {0} Sequenz ist erforderlich" #: libreplan-webapp/src/main/webapp/resources/worker/virtualWorkers.zul:22 -msgid "LibrePlan: Virtual Worker Groups" -msgstr "LibrePlan: Virtuelle Arbeitergruppe" +msgid "TASKPM: Virtual Worker Groups" +msgstr "TASKPM: Virtuelle Arbeitergruppe" #: libreplan-webapp/src/main/webapp/resources/worker/_localizations.zul:64 msgid "Log" @@ -2595,8 +2595,8 @@ msgid " (%d tasks)" msgstr "(%d Aufgaben)" #: libreplan-webapp/src/main/webapp/subcontract/reportAdvances.zul:22 -msgid "LibrePlan: Send To Customers" -msgstr "LibrePlan: An Kunden senden" +msgid "TASKPM: Send To Customers" +msgstr "TASKPM: An Kunden senden" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:138 #: libreplan-webapp/src/main/webapp/common/configuration.zul:93 @@ -2690,8 +2690,8 @@ msgid "Date Resolved" msgstr "Datum gelöst" #: libreplan-webapp/src/main/webapp/reports/completedEstimatedHoursPerTask.zul:21 -msgid "LibrePlan: Estimated/Planned Hours Per Task" -msgstr "LibrePlan: Geschätzte/Geplante Stunden pro Aufgabe" +msgid "TASKPM: Estimated/Planned Hours Per Task" +msgstr "TASKPM: Geschätzte/Geplante Stunden pro Aufgabe" #: org/libreplan/web/orders/DynamicDatebox.java:152 msgid "Date format is wrong. Please, use the following format: {0}" @@ -2788,8 +2788,8 @@ msgid "Manual allocation" msgstr "Manuelle Belegung" #: libreplan-webapp/src/main/webapp/costcategories/costCategory.zul:23 -msgid "LibrePlan: Cost Categories" -msgstr "LibrePlan: Kostenkategorien" +msgid "TASKPM: Cost Categories" +msgstr "TASKPM: Kostenkategorien" #: libreplan-business/src/main/java/org/libreplan/business/advance/entities/AdvanceMeasurement.java:100 #: libreplan-business/src/main/java/org/libreplan/business/workreports/valueobjects/DescriptionValue.java:80 @@ -3442,8 +3442,8 @@ msgid "Progress Types" msgstr "Fortschrittstypen" #: libreplan-webapp/src/main/webapp/scenarios/scenarios.zul:23 -msgid "LibrePlan: Scenarios Management" -msgstr "LibrePlan: Szenario-Managment" +msgid "TASKPM: Scenarios Management" +msgstr "TASKPM: Szenario-Managment" #: libreplan-webapp/src/main/webapp/templates/_historicalStatistics.zul:55 msgid "Maximum/minimum of estimated hours" @@ -3482,8 +3482,8 @@ msgid "Add From Template" msgstr "Füge aus Vorlage hinzu" #: libreplan-webapp/src/main/webapp/qualityforms/qualityForms.zul:22 -msgid "LibrePlan: Quality Forms" -msgstr "LibrePlan: Qaulitätsformulare" +msgid "TASKPM: Quality Forms" +msgstr "TASKPM: Qaulitätsformulare" #: org/libreplan/importers/ExportTimesheetsToTim.java:185 msgid "No work reportlines are found for order: \"{0}\"" @@ -3516,8 +3516,8 @@ msgstr "" #: libreplan-webapp/src/main/webapp/planner/montecarlo_function.zul:22 #: libreplan-webapp/src/main/webapp/planner/resources_use.zul:22 #: libreplan-webapp/src/main/webapp/planner/stretches_function.zul:22 -msgid "LibrePlan: Scheduling" -msgstr "LibrePlan: Terminplanung" +msgid "TASKPM: Scheduling" +msgstr "TASKPM: Terminplanung" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:84 msgid "Application settings" @@ -4170,8 +4170,8 @@ msgid "Issue log" msgstr "Angelegenheitsprotokoll" #: libreplan-webapp/src/main/webapp/subcontract/customerCommunications.zul:20 -msgid "LibrePlan: Received From Customers" -msgstr "LibrePlan: Erhalten von Kunden" +msgid "TASKPM: Received From Customers" +msgstr "TASKPM: Erhalten von Kunden" #: libreplan-webapp/src/main/webapp/common/eventError.zul:26 #: libreplan-webapp/src/main/webapp/common/error.zul:31 @@ -4187,12 +4187,12 @@ msgid "Already exists other label with the same name" msgstr "Andere Bezeichnung mit demselben Namen ist bereits vorhanden" #: libreplan-webapp/src/main/webapp/scenarios/transferOrders.zul:23 -msgid "LibrePlan: Transfer Projects Between Scenarios" -msgstr "LibrePlan: Übertrage Projekte zwischen Szenarios" +msgid "TASKPM: Transfer Projects Between Scenarios" +msgstr "TASKPM: Übertrage Projekte zwischen Szenarios" #: libreplan-webapp/src/main/webapp/expensesheet/expenseSheet.zul:21 -msgid "LibrePlan: Expenses" -msgstr "LibrePlan: Aufwendungen" +msgid "TASKPM: Expenses" +msgstr "TASKPM: Aufwendungen" #: libreplan-webapp/src/main/webapp/orders/_edition.zul:302 #: libreplan-webapp/src/main/webapp/orders/_edition.zul:338 @@ -4203,7 +4203,7 @@ msgid "Communication date" msgstr "Kommunikationsdatum" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:207 -msgid "is not supported for its use with LibrePlan." +msgid "is not supported for its use with TASKPM." msgstr "wird nicht für die Benutzung mit LibrePlan unterstützt" #: libreplan-webapp/src/main/webapp/subcontract/customerCommunications.zul:44 @@ -4256,8 +4256,8 @@ msgstr "" "Namen der Bezeichnungen innerhalb eines Bezeichnungstyps müssen Unikate sein" #: libreplan-webapp/src/main/webapp/myaccount/personalTimesheet.zul:21 -msgid "LibrePlan: Personal timesheet" -msgstr "LibrePlan: Persönlicher Stundenzettel" +msgid "TASKPM: Personal timesheet" +msgstr "TASKPM: Persönlicher Stundenzettel" #: org/libreplan/importers/ExportTimesheetsToTim.java:130 msgid "Order should not be empty" @@ -4322,7 +4322,7 @@ msgid "Manual" msgstr "Manuell" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/ConfigurationRolesLDAP.java:56 -msgid "LibrePlan role not specified" +msgid "TASKPM role not specified" msgstr "LibrePlan-Rolle nicht angegeben" #: org/libreplan/web/subcontract/ReportAdvancesModel.java:225 @@ -4458,8 +4458,8 @@ msgid "Personal timesheet \"{0}\" saved" msgstr "Persönlicher Stundenzettel \"{0}\" gespeichert" #: libreplan-webapp/src/main/webapp/unittypes/unitTypes.zul:21 -msgid "LibrePlan: Material Units" -msgstr "LibrePlan: Materialeinheiten" +msgid "TASKPM: Material Units" +msgstr "TASKPM: Materialeinheiten" #: libreplan-webapp/src/main/webapp/orders/_editOrderElement.zul:39 #: libreplan-webapp/src/main/webapp/templates/_editTemplateWindow.zul:42 @@ -4588,7 +4588,7 @@ msgid "Concept" msgstr "Konzept" #: libreplan-webapp/src/main/webapp/common/configuration.zul:147 -msgid "Enable/Disable warning about new LibrePlan versions available" +msgid "Enable/Disable warning about new TASKPM versions available" msgstr "" "Aktiviere/Deaktiviere Warnungen über neu verfügbare LibrePlan Versionen" @@ -4620,8 +4620,8 @@ msgid "Delete Template element" msgstr "Lösche Vorlagenelement" #: libreplan-webapp/src/main/webapp/calendars/calendars.zul:22 -msgid "LibrePlan: Calendars" -msgstr "LibrePlan: Kalender" +msgid "TASKPM: Calendars" +msgstr "TASKPM: Kalender" #: org/libreplan/web/limitingresources/QueueComponent.java:504 msgid "Unassign" @@ -4931,8 +4931,8 @@ msgid "Stacktrace" msgstr "Rückverfolgung" #: libreplan-webapp/src/main/webapp/planner/advance_allocation.zul:22 -msgid "LibrePlan: Advanced allocation" -msgstr "LibrePlan: Erweiterte Zuweisung" +msgid "TASKPM: Advanced allocation" +msgstr "TASKPM: Erweiterte Zuweisung" #: libreplan-webapp/src/main/webapp/advance/_listAdvanceTypes.zul:22 msgid "Progress Types List" @@ -4956,8 +4956,8 @@ msgid "Show all" msgstr "Alles zeigen" #: libreplan-webapp/src/main/webapp/email/email_templates.zul:21 -msgid "LibrePlan: Email Templates" -msgstr "LibrePlan: E-Mail-Vorlagen" +msgid "TASKPM: Email Templates" +msgstr "TASKPM: E-Mail-Vorlagen" #: libreplan-business/src/main/java/org/libreplan/business/common/IntegrationEntity.java:47 msgid "code not specified" @@ -5260,8 +5260,8 @@ msgid "Virtual worker group name must be unique" msgstr "Name der virtuellen Mitarbeitergruppe muss ein Unikat sein" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerInAMonthReport.zul:21 -msgid "LibrePlan: Total Worked Hours By Resource In A Month" -msgstr "LibrePlan: Gesamtarbeitsstunden pro Ressource in einem Monat" +msgid "TASKPM: Total Worked Hours By Resource In A Month" +msgstr "TASKPM: Gesamtarbeitsstunden pro Ressource in einem Monat" #: libreplan-webapp/src/main/webapp/common/configuration.zul:307 #: libreplan-webapp/src/main/webapp/advance/_editAdvanceTypes.zul:47 @@ -5483,8 +5483,8 @@ msgid "Task Status" msgstr "Aufgabenstatus" #: libreplan-webapp/src/main/webapp/orders/imports/projectImport.zul:21 -msgid "LibrePlan: Import Project" -msgstr "LibrePlan: Projekt importieren" +msgid "TASKPM: Import Project" +msgstr "TASKPM: Projekt importieren" #: org/libreplan/web/planner/chart/EarnedValueChartFiller.java:250 msgid "Budget At Completion" @@ -5615,8 +5615,8 @@ msgid "Percentage" msgstr "Prozentsatz" #: libreplan-webapp/src/main/webapp/profiles/profiles.zul:23 -msgid "LibrePlan: Profiles" -msgstr "LibrePlan: Profile" +msgid "TASKPM: Profiles" +msgstr "TASKPM: Profile" #: org/libreplan/web/orders/ManageOrderElementAdvancesController.java:673 msgid "Calculated progress can not be modified" @@ -5747,8 +5747,8 @@ msgid "From today" msgstr "Von heute" #: libreplan-webapp/src/main/webapp/common/jobScheduling.zul:20 -msgid "LibrePlan: Job Scheduling" -msgstr "LibrePlan: Aufgabenplanung" +msgid "TASKPM: Job Scheduling" +msgstr "TASKPM: Aufgabenplanung" #: org/libreplan/web/users/dashboard/PersonalTimesheetDTO.java:125 msgid "Week {0}" @@ -5886,8 +5886,8 @@ msgid "Project name" msgstr "Projektname" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:22 -msgid "LibrePlan: Settings" -msgstr "LibrePlan: Einstellungen" +msgid "TASKPM: Settings" +msgstr "TASKPM: Einstellungen" #: libreplan-webapp/src/main/webapp/excetiondays/_listExceptionDayTypes.zul:32 #: libreplan-webapp/src/main/webapp/excetiondays/_editExceptionDayType.zul:62 @@ -5955,8 +5955,8 @@ msgid "Specific Allocations" msgstr "Spezifische Zuweisung" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:20 -msgid "LibrePlan: Received From Subcontractors" -msgstr "LibrePlan: Erhalten von Unterauftragnehmern" +msgid "TASKPM: Received From Subcontractors" +msgstr "TASKPM: Erhalten von Unterauftragnehmern" #: org/libreplan/web/orders/OrderCRUDController.java:1057 #: org/libreplan/web/templates/OrderTemplatesController.java:369 @@ -6033,8 +6033,8 @@ msgid "Confirm deleting this file. Are you sure?" msgstr "Bestätigen Sie das Löschen dieser Datei. Sind Sie sicher?" #: libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul:22 -msgid "LibrePlan: Send To Subcontractors" -msgstr "LibrePlan: An Subunternehmen schicken" +msgid "TASKPM: Send To Subcontractors" +msgstr "TASKPM: An Subunternehmen schicken" #: org/libreplan/web/planner/allocation/AllocationRow.java:446 msgid "Only {0} resources per day were achieved for current allocation" @@ -6439,8 +6439,8 @@ msgid "New password" msgstr "Neues Passwort" #: libreplan-webapp/src/main/webapp/excetiondays/exceptionDays.zul:22 -msgid "LibrePlan: Calendar Exception Days" -msgstr "LibrePlan: Kalenderausnahmetage" +msgid "TASKPM: Calendar Exception Days" +msgstr "TASKPM: Kalenderausnahmetage" #: libreplan-webapp/src/main/webapp/myaccount/personalTimesheet.zul:95 msgid "Total other" @@ -6456,8 +6456,8 @@ msgid "Number of digits" msgstr "Anzahl der Ziffern" #: libreplan-webapp/src/main/webapp/orders/_timImpExpInfo.zul:20 -msgid "LibrePlan: Tim import export info" -msgstr "LibrePlan: Tim Import-Export-Informationen" +msgid "TASKPM: Tim import export info" +msgstr "TASKPM: Tim Import-Export-Informationen" #: org/libreplan/web/orders/JiraSynchronizationController.java:195 msgid "No JIRA issues to import" @@ -6529,8 +6529,8 @@ msgid "Schedule from start to deadline" msgstr "Zeitplan von Start bis Frist" #: libreplan-webapp/src/main/webapp/myaccount/changePassword.zul:21 -msgid "LibrePlan: Change password" -msgstr "LibrePlan: Ändere Passwort" +msgid "TASKPM: Change password" +msgstr "TASKPM: Ändere Passwort" #: libreplan-business/src/main/java/org/libreplan/business/users/entities/Profile.java:89 msgid "profile name is already being used by another profile" @@ -6807,8 +6807,8 @@ msgid "Select criteria or resources" msgstr "Kriterium oder Ressource auswählen" #: libreplan-webapp/src/main/webapp/common/accessForbidden.zul:20 -msgid "LibrePlan: Access Forbidden" -msgstr "LibrePlan: Zugang verweigert" +msgid "TASKPM: Access Forbidden" +msgstr "TASKPM: Zugang verweigert" #: libreplan-business/src/main/java/org/libreplan/business/advance/entities/AdvanceType.java:127 msgid "unit name not specified" @@ -6954,8 +6954,8 @@ msgid "Some allocations needed" msgstr "Einige Belegungen erforderlich" #: libreplan-webapp/src/main/webapp/myaccount/userDashboard.zul:21 -msgid "LibrePlan: My Dashboard" -msgstr "LibrePlan: Meine Startseite" +msgid "TASKPM: My Dashboard" +msgstr "TASKPM: Meine Startseite" #: org/libreplan/web/tree/TreeComponent.java:58 #: org/libreplan/web/workreports/WorkReportCRUDController.java:902 @@ -7158,8 +7158,8 @@ msgid "Number of tasks" msgstr "Anzahl Aufgaben" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerReport.zul:21 -msgid "LibrePlan: Hours Worked Per Resource" -msgstr "LibrePlan: Stunden gearbeitet pro Ressource" +msgid "TASKPM: Hours Worked Per Resource" +msgstr "TASKPM: Stunden gearbeitet pro Ressource" #: libreplan-webapp/src/main/webapp/orders/_listOrderElementTaskQualityForms.zul:50 msgid "Task quality form name" @@ -7285,8 +7285,8 @@ msgid "OUTSOURCED" msgstr "AUSGELAGERT" #: libreplan-webapp/src/main/webapp/reports/projectStatusReport.zul:20 -msgid "LibrePlan: Project Status Report" -msgstr "LibrePlan: Projekt Statusbericht" +msgid "TASKPM: Project Status Report" +msgstr "TASKPM: Projekt Statusbericht" #: libreplan-webapp/src/main/webapp/calendars/_edition.zul:140 msgid "Activation periods" @@ -7433,8 +7433,8 @@ msgid "Select the elements to import into LibrePlan" msgstr "Wählen Sie die in LibrePlan zu importierenden Elemente aus" #: libreplan-webapp/src/main/webapp/advance/advanceTypes.zul:22 -msgid "LibrePlan: Progress Types" -msgstr "LibrePlan: Fortschrittstypen" +msgid "TASKPM: Progress Types" +msgstr "TASKPM: Fortschrittstypen" #: org/libreplan/web/workreports/WorkReportCRUDController.java:886 #: libreplan-webapp/src/main/webapp/orders/_listOrderElementHours.zul:33 @@ -7532,7 +7532,7 @@ msgid "Calculated progress cannot be removed" msgstr "Berechneter Fortschritt kann nicht entfernt werden" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:184 -msgid "without you, LibrePlan can’t exist." +msgid "without you, TASKPM can’t exist." msgstr "ohne Sie kann LibrePlan nicht existieren." #: org/libreplan/web/users/UserCRUDController.java:98 @@ -7626,8 +7626,8 @@ msgid "Name" msgstr "Name" #: libreplan-webapp/src/main/webapp/typeofworkhours/typeOfWorkHours.zul:23 -msgid "LibrePlan: Hours Types" -msgstr "LibrePlan: Stundentyp" +msgid "TASKPM: Hours Types" +msgstr "TASKPM: Stundentyp" #: libreplan-webapp/src/main/webapp/calendars/_edition.zul:303 msgid "Expiry date" @@ -7869,8 +7869,8 @@ msgid "Required materials" msgstr "Erforderliche Materialien" #: libreplan-webapp/src/main/webapp/reports/workingProgressPerTaskReport.zul:21 -msgid "LibrePlan: Work And Progress Per Task" -msgstr "LibrePlan: Arbeit und Fortschritt pro Aufgabe" +msgid "TASKPM: Work And Progress Per Task" +msgstr "TASKPM: Arbeit und Fortschritt pro Aufgabe" #: libreplan-webapp/src/main/webapp/resources/_criterions.zul:36 msgid "Show only current satisfied criteria" @@ -7974,8 +7974,8 @@ msgid "List of materials for category: {0}" msgstr "Liste der Materialien für Kategorie : {0}" #: libreplan-webapp/src/main/webapp/resources/criterions/criterions.zul:24 -msgid "LibrePlan: Criteria" -msgstr "LibrePlan: Kriterien" +msgid "TASKPM: Criteria" +msgstr "TASKPM: Kriterien" #: org/libreplan/web/resources/worker/WorkerCRUDController.java:972 msgid "Do you want to remove bound user \"{0}\" too?" @@ -8192,8 +8192,8 @@ msgid "connector name not specified" msgstr "Verbindername nicht angegeben" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:21 -msgid "LibrePlan: User access" -msgstr "LibrePlan: Benutzerzugang" +msgid "TASKPM: User access" +msgstr "TASKPM: Benutzerzugang" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:156 msgid "Label filter" @@ -8415,7 +8415,7 @@ msgstr "Stückpreis nicht angegeben" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:180 msgid "" -"Did you know LibrePlan is funded only by donations, from people like you?" +"Did you know TASKPM is funded only by donations, from people like you?" msgstr "" "Wussten Sie, dass LibrePlan ausschließlich durch Spenden von Menschen wie " "Ihnen finanziert wird?" @@ -8635,8 +8635,8 @@ msgid "task end date not specified" msgstr "Aufgabenenddatum nicht angegeben" #: libreplan-webapp/src/main/webapp/resources/worker/worker.zul:22 -msgid "LibrePlan: Workers" -msgstr "LibrePlan: Arbeiter" +msgid "TASKPM: Workers" +msgstr "TASKPM: Arbeiter" #: libreplan-webapp/src/main/webapp/dashboard/_dashboardfororder.zul:131 msgid "No tasks available yet" @@ -8787,8 +8787,8 @@ msgid "Total hours" msgstr "Gesamtstunden" #: libreplan-webapp/src/main/webapp/users/users.zul:23 -msgid "LibrePlan: User Accounts" -msgstr "LibrePlan: Benutzer-Accounts" +msgid "TASKPM: User Accounts" +msgstr "TASKPM: Benutzer-Accounts" #: libreplan-business/src/main/java/org/libreplan/business/expensesheet/entities/ExpenseSheet.java:109 msgid "total must be greater or equal than 0" @@ -8851,8 +8851,8 @@ msgid "Work description" msgstr "Arbeitsbeschreibung" #: libreplan-webapp/src/main/webapp/materials/materials.zul:21 -msgid "LibrePlan: Materials" -msgstr "LibrePlan: Materialien" +msgid "TASKPM: Materials" +msgstr "TASKPM: Materialien" #: libreplan-webapp/src/main/webapp/common/layout/template.zul:88 msgid "Change scenario" @@ -9185,8 +9185,8 @@ msgid "Entity type" msgstr "Gegenstandtyp" #: libreplan-webapp/src/main/webapp/labels/labelTypes.zul:21 -msgid "LibrePlan: Labels" -msgstr "LibrePlan: Bezeichnungen" +msgid "TASKPM: Labels" +msgstr "TASKPM: Bezeichnungen" #: libreplan-webapp/src/main/webapp/workreports/workReportQuery.zul:79 msgid "type" @@ -9549,8 +9549,8 @@ msgid "Work amount" msgstr "Arbeitsmenge" #: libreplan-webapp/src/main/webapp/reports/orderCostsPerResource.zul:21 -msgid "LibrePlan: Project Costs" -msgstr "LibrePlan: Projektkosten" +msgid "TASKPM: Project Costs" +msgstr "TASKPM: Projektkosten" #: libreplan-business/src/main/java/org/libreplan/business/costcategories/entities/ResourcesCostCategoryAssignment.java:145 msgid "cost assignment with end date before start date" diff --git a/libreplan-webapp/src/main/resources/i18n/es.po b/libreplan-webapp/src/main/resources/i18n/es.po index e17986ba7..62e00f40f 100644 --- a/libreplan-webapp/src/main/resources/i18n/es.po +++ b/libreplan-webapp/src/main/resources/i18n/es.po @@ -18,7 +18,7 @@ # vivian castellanos , 2017 msgid "" msgstr "" -"Project-Id-Version: LibrePlan\n" +"Project-Id-Version: TASKPM\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-11-27 20:07+0100\n" "PO-Revision-Date: 2011-12-12 19:43+0000\n" @@ -108,8 +108,8 @@ msgid "Select template" msgstr "Seleccione plantilla" #: libreplan-webapp/src/main/webapp/workreports/workReport.zul:23 -msgid "LibrePlan: Timesheets" -msgstr "LibrePlan: Partes de trabajo" +msgid "TASKPM: Timesheets" +msgstr "TASKPM: Partes de trabajo" #: libreplan-webapp/src/main/webapp/myaccount/_myTasksArea.zul:39 msgid "Work done" @@ -155,7 +155,7 @@ msgid "job class name not specified" msgstr "nombre de la clase de trabajo no especificado" #: libreplan-webapp/src/main/webapp/common/configuration.zul:146 -msgid "Show a notification when new LibrePlan versions are released" +msgid "Show a notification when new TASKPM versions are released" msgstr "" "Mostrar una notificación cuando una nueva versión de LibrePlan sea publicada" @@ -284,8 +284,8 @@ msgid "Task quality forms" msgstr "Formularios de calidad de tarea" #: libreplan-webapp/src/main/webapp/templates/templates.zul:22 -msgid "LibrePlan: Templates" -msgstr "LibrePlan: Plantillas" +msgid "TASKPM: Templates" +msgstr "TASKPM: Plantillas" #: org/libreplan/web/workreports/WorkReportTypeModel.java:414 msgid "There is another timesheet template with the same name" @@ -329,8 +329,8 @@ msgid "Authentication type" msgstr "Tipo de autenticación" #: libreplan-webapp/src/main/webapp/reports/workingArrangementsPerOrderReport.zul:21 -msgid "LibrePlan: Task Scheduling Status In Project" -msgstr "LibrePlan: Estado de planificación en proyecto" +msgid "TASKPM: Task Scheduling Status In Project" +msgstr "TASKPM: Estado de planificación en proyecto" #: org/libreplan/web/resources/criterion/CriterionsModel.java:216 msgid "Resource type cannot be empty" @@ -466,8 +466,8 @@ msgid "Schedule from deadline to start" msgstr "Planificar desde la fecha límite hacia el inicio" #: libreplan-webapp/src/main/webapp/resources/machine/machines.zul:22 -msgid "LibrePlan: Machines" -msgstr "LibrePlan: Máquinas" +msgid "TASKPM: Machines" +msgstr "TASKPM: Máquinas" #: org/libreplan/web/common/CustomMenuController.java:400 #: org/libreplan/web/workreports/WorkReportTypeCRUDController.java:878 @@ -495,8 +495,8 @@ msgid "Criterion cannot be empty" msgstr "El criterio no puede estar vacío" #: libreplan-webapp/src/main/webapp/planner/index.zul:22 -msgid "LibrePlan: Planning" -msgstr "LibrePlan: Planificación" +msgid "TASKPM: Planning" +msgstr "TASKPM: Planificación" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/Configuration.java:146 msgid "default calendar not specified" @@ -743,8 +743,8 @@ msgid "Save and Continue" msgstr "Guardar y continuar" #: libreplan-webapp/src/main/webapp/externalcompanies/externalcompanies.zul:23 -msgid "LibrePlan: Companies" -msgstr "LibrePlan: Empresas" +msgid "TASKPM: Companies" +msgstr "TASKPM: Empresas" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/EntitySequence.java:152 msgid "format sequence code invalid. It must not contain '_'" @@ -907,7 +907,7 @@ msgstr "Período activo desde" #: libreplan-webapp/src/main/webapp/common/pageNotFound.zul:49 msgid "" -"If you reached this page from another page of LibrePlan please notify us in " +"If you reached this page from another page of TASKPM please notify us in " "order to fix it as soon as possible." msgstr "" "Si llegó a está página desde otra página de LibrePlan por favor " @@ -1181,8 +1181,8 @@ msgstr "" "existentes en la tabla tienen una fecha de comunicación no vacía." #: libreplan-webapp/src/main/webapp/common/pageNotFound.zul:22 -msgid "LibrePlan: Page not found" -msgstr "LibrePlan: Página no encontrada" +msgid "TASKPM: Page not found" +msgstr "TASKPM: Página no encontrada" #: org/libreplan/web/users/dashboard/ExpensesAreaController.java:87 msgid "Expense sheet \"{0}\" deleted" @@ -1318,8 +1318,8 @@ msgid "Advanced Allocation" msgstr "Asignación avanzada" #: libreplan-webapp/src/main/webapp/reports/timeLineMaterialReport.zul:21 -msgid "LibrePlan: Materials Needed At Date" -msgstr "LibrePlan: Necesidad de materiales en fecha" +msgid "TASKPM: Materials Needed At Date" +msgstr "TASKPM: Necesidad de materiales en fecha" #: libreplan-webapp/src/main/webapp/unittypes/unitTypes.zul:42 #: libreplan-webapp/src/main/webapp/templates/_editTemplate.zul:165 @@ -1359,8 +1359,8 @@ msgstr "" "Aviso: No está editando desde la página de inicio de los usuarios vinculados" #: libreplan-webapp/src/main/webapp/workreports/workReportQuery.zul:23 -msgid "LibrePlan: Timesheet Lines List" -msgstr "LibrePlan: Lista de líneas de partes de trabajo" +msgid "TASKPM: Timesheet Lines List" +msgstr "TASKPM: Lista de líneas de partes de trabajo" #: org/libreplan/web/users/dashboard/PersonalTimesheetController.java:664 #: org/libreplan/web/common/components/finders/OrderElementBandboxFinder.java:51 @@ -1445,8 +1445,8 @@ msgstr "" "estrategia de asignación seleccionada" #: libreplan-webapp/src/main/webapp/orders/_jiraSyncInfo.zul:20 -msgid "LibrePlan: JIRA synchronization info" -msgstr "LibrePlan: información sincronización JIRA" +msgid "TASKPM: JIRA synchronization info" +msgstr "TASKPM: información sincronización JIRA" #: org/libreplan/web/common/CustomMenuController.java:290 #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:112 @@ -1534,8 +1534,8 @@ msgstr "Crear proyecto nuevo" #: libreplan-webapp/src/main/webapp/common/eventError.zul:22 #: libreplan-webapp/src/main/webapp/common/error.zul:21 -msgid "LibrePlan: Runtime Error" -msgstr "LibrePlan: Error de ejecución" +msgid "TASKPM: Runtime Error" +msgstr "TASKPM: Error de ejecución" #: libreplan-webapp/src/main/webapp/common/configuration.zul:467 msgid "Role property" @@ -1671,8 +1671,8 @@ msgid "Estimations" msgstr "Estimativos" #: libreplan-webapp/src/main/webapp/orders/_synchronizationInfo.zul:20 -msgid "LibrePlan: Synchronization info" -msgstr "LibrePlan: Información de sincronización" +msgid "TASKPM: Synchronization info" +msgstr "TASKPM: Información de sincronización" #: libreplan-webapp/src/main/webapp/common/_editJobScheduling.zul:152 msgid "1 or 7 is Sunday, or use names" @@ -1950,8 +1950,8 @@ msgid "Change password" msgstr "Cambiar la contraseña" #: libreplan-webapp/src/main/webapp/reports/schedulingProgressPerOrderReport.zul:21 -msgid "LibrePlan: Work And Progress Per Project" -msgstr "LibrePlan: Trabajo y Progreso por Proyecto" +msgid "TASKPM: Work And Progress Per Project" +msgstr "TASKPM: Trabajo y Progreso por Proyecto" #: org/libreplan/importers/ExportTimesheetsToTim.java:224 msgid "Registration response with empty refs" @@ -2062,16 +2062,16 @@ msgid "All changes will be lost. Are you sure?" msgstr "Se perderán todos los cambios. ¿Está seguro?" #: libreplan-webapp/src/main/webapp/common/configuration.zul:23 -msgid "LibrePlan: Main Settings" -msgstr "LibrePlan: Ajustes principales" +msgid "TASKPM: Main Settings" +msgstr "TASKPM: Ajustes principales" #: org/libreplan/web/users/dashboard/UserDashboardController.java:71 msgid "Expense sheet \"{0}\" saved" msgstr "Hoja de gastos \"{0}\" guardada" #: libreplan-webapp/src/main/webapp/workreports/workReportTypes.zul:23 -msgid "LibrePlan: Timesheets Templates" -msgstr "LibrePlan: Modelos de partes de trabajo" +msgid "TASKPM: Timesheets Templates" +msgstr "TASKPM: Modelos de partes de trabajo" #: org/libreplan/web/planner/allocation/FormBinder.java:640 msgid "{0} already assigned to resource allocation list" @@ -2205,7 +2205,7 @@ msgstr "Margen de horas" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:185 msgid "" -"Giving a gift today means LibrePlan continues to remain available and in " +"Giving a gift today means TASKPM continues to remain available and in " "active development tomorrow!" msgstr "" "¡Regalar hoy significa que LibrePlan seguirá disponible y en desarrollo " @@ -2519,8 +2519,8 @@ msgid "At least one {0} sequence is needed" msgstr "Se necesita al menos una secuencia de {0}" #: libreplan-webapp/src/main/webapp/resources/worker/virtualWorkers.zul:22 -msgid "LibrePlan: Virtual Worker Groups" -msgstr "LibrePlan: Grupos de trabajadores virtuales" +msgid "TASKPM: Virtual Worker Groups" +msgstr "TASKPM: Grupos de trabajadores virtuales" #: libreplan-webapp/src/main/webapp/resources/worker/_localizations.zul:64 msgid "Log" @@ -2586,8 +2586,8 @@ msgid " (%d tasks)" msgstr " (%d tareas)" #: libreplan-webapp/src/main/webapp/subcontract/reportAdvances.zul:22 -msgid "LibrePlan: Send To Customers" -msgstr "LibrePlan: Enviar a clientes" +msgid "TASKPM: Send To Customers" +msgstr "TASKPM: Enviar a clientes" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:138 #: libreplan-webapp/src/main/webapp/common/configuration.zul:93 @@ -2681,8 +2681,8 @@ msgid "Date Resolved" msgstr "Fecha de Resolución" #: libreplan-webapp/src/main/webapp/reports/completedEstimatedHoursPerTask.zul:21 -msgid "LibrePlan: Estimated/Planned Hours Per Task" -msgstr "LibrePlan: Horas por tarea estimadas/planificadas" +msgid "TASKPM: Estimated/Planned Hours Per Task" +msgstr "TASKPM: Horas por tarea estimadas/planificadas" #: org/libreplan/web/orders/DynamicDatebox.java:152 msgid "Date format is wrong. Please, use the following format: {0}" @@ -2782,8 +2782,8 @@ msgid "Manual allocation" msgstr "Asignación manual" #: libreplan-webapp/src/main/webapp/costcategories/costCategory.zul:23 -msgid "LibrePlan: Cost Categories" -msgstr "LibrePlan: Categorías de coste" +msgid "TASKPM: Cost Categories" +msgstr "TASKPM: Categorías de coste" #: libreplan-business/src/main/java/org/libreplan/business/advance/entities/AdvanceMeasurement.java:100 #: libreplan-business/src/main/java/org/libreplan/business/workreports/valueobjects/DescriptionValue.java:80 @@ -3435,8 +3435,8 @@ msgid "Progress Types" msgstr "Tipos de progreso" #: libreplan-webapp/src/main/webapp/scenarios/scenarios.zul:23 -msgid "LibrePlan: Scenarios Management" -msgstr "LibrePlan: Gestión de Escenarios" +msgid "TASKPM: Scenarios Management" +msgstr "TASKPM: Gestión de Escenarios" #: libreplan-webapp/src/main/webapp/templates/_historicalStatistics.zul:55 msgid "Maximum/minimum of estimated hours" @@ -3475,8 +3475,8 @@ msgid "Add From Template" msgstr "Añadir a partir de plantilla" #: libreplan-webapp/src/main/webapp/qualityforms/qualityForms.zul:22 -msgid "LibrePlan: Quality Forms" -msgstr "LibrePlan: Formularios de calidad" +msgid "TASKPM: Quality Forms" +msgstr "TASKPM: Formularios de calidad" #: org/libreplan/importers/ExportTimesheetsToTim.java:185 msgid "No work reportlines are found for order: \"{0}\"" @@ -3510,8 +3510,8 @@ msgstr "" #: libreplan-webapp/src/main/webapp/planner/montecarlo_function.zul:22 #: libreplan-webapp/src/main/webapp/planner/resources_use.zul:22 #: libreplan-webapp/src/main/webapp/planner/stretches_function.zul:22 -msgid "LibrePlan: Scheduling" -msgstr "LibrePlan: Planificación" +msgid "TASKPM: Scheduling" +msgstr "TASKPM: Planificación" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:84 msgid "Application settings" @@ -4164,8 +4164,8 @@ msgid "Issue log" msgstr "Registro de incidencias" #: libreplan-webapp/src/main/webapp/subcontract/customerCommunications.zul:20 -msgid "LibrePlan: Received From Customers" -msgstr "LibrePlan: Recibido de clientes" +msgid "TASKPM: Received From Customers" +msgstr "TASKPM: Recibido de clientes" #: libreplan-webapp/src/main/webapp/common/eventError.zul:26 #: libreplan-webapp/src/main/webapp/common/error.zul:31 @@ -4181,12 +4181,12 @@ msgid "Already exists other label with the same name" msgstr "Ya existe otra etiqueta con el mismo nombre" #: libreplan-webapp/src/main/webapp/scenarios/transferOrders.zul:23 -msgid "LibrePlan: Transfer Projects Between Scenarios" -msgstr "LibrePlan: transferir proyectos entre escenarios" +msgid "TASKPM: Transfer Projects Between Scenarios" +msgstr "TASKPM: transferir proyectos entre escenarios" #: libreplan-webapp/src/main/webapp/expensesheet/expenseSheet.zul:21 -msgid "LibrePlan: Expenses" -msgstr "LibrePlan: Gastos" +msgid "TASKPM: Expenses" +msgstr "TASKPM: Gastos" #: libreplan-webapp/src/main/webapp/orders/_edition.zul:302 #: libreplan-webapp/src/main/webapp/orders/_edition.zul:338 @@ -4197,7 +4197,7 @@ msgid "Communication date" msgstr "Fecha de comunicación" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:207 -msgid "is not supported for its use with LibrePlan." +msgid "is not supported for its use with TASKPM." msgstr "no está soportado para su uso con LibrePlan." #: libreplan-webapp/src/main/webapp/subcontract/customerCommunications.zul:44 @@ -4250,8 +4250,8 @@ msgstr "" "los nombres de las etiquetas deben ser únicos dentro de un tipo de etiqueta" #: libreplan-webapp/src/main/webapp/myaccount/personalTimesheet.zul:21 -msgid "LibrePlan: Personal timesheet" -msgstr "LibrePlan: Parte de horas personal" +msgid "TASKPM: Personal timesheet" +msgstr "TASKPM: Parte de horas personal" #: org/libreplan/importers/ExportTimesheetsToTim.java:130 msgid "Order should not be empty" @@ -4316,7 +4316,7 @@ msgid "Manual" msgstr "Manual" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/ConfigurationRolesLDAP.java:56 -msgid "LibrePlan role not specified" +msgid "TASKPM role not specified" msgstr "Rol LibrePlan no especificado" #: org/libreplan/web/subcontract/ReportAdvancesModel.java:225 @@ -4452,8 +4452,8 @@ msgid "Personal timesheet \"{0}\" saved" msgstr "Parte de horas personal \"{0}\" guardado" #: libreplan-webapp/src/main/webapp/unittypes/unitTypes.zul:21 -msgid "LibrePlan: Material Units" -msgstr "LibrePlan: Unidades de materiales" +msgid "TASKPM: Material Units" +msgstr "TASKPM: Unidades de materiales" #: libreplan-webapp/src/main/webapp/orders/_editOrderElement.zul:39 #: libreplan-webapp/src/main/webapp/templates/_editTemplateWindow.zul:42 @@ -4580,7 +4580,7 @@ msgid "Concept" msgstr "Concepto" #: libreplan-webapp/src/main/webapp/common/configuration.zul:147 -msgid "Enable/Disable warning about new LibrePlan versions available" +msgid "Enable/Disable warning about new TASKPM versions available" msgstr "" "Habilitar/Deshabilitar la advertencia sobre nuevas versiones de LibrePlan " "disponibles" @@ -4613,8 +4613,8 @@ msgid "Delete Template element" msgstr "Borrar elemento de plantilla" #: libreplan-webapp/src/main/webapp/calendars/calendars.zul:22 -msgid "LibrePlan: Calendars" -msgstr "LibrePlan: Calendarios" +msgid "TASKPM: Calendars" +msgstr "TASKPM: Calendarios" #: org/libreplan/web/limitingresources/QueueComponent.java:504 msgid "Unassign" @@ -4924,8 +4924,8 @@ msgid "Stacktrace" msgstr "Stacktrace" #: libreplan-webapp/src/main/webapp/planner/advance_allocation.zul:22 -msgid "LibrePlan: Advanced allocation" -msgstr "LibrePlan: Asignación avanzada" +msgid "TASKPM: Advanced allocation" +msgstr "TASKPM: Asignación avanzada" #: libreplan-webapp/src/main/webapp/advance/_listAdvanceTypes.zul:22 msgid "Progress Types List" @@ -4949,7 +4949,7 @@ msgid "Show all" msgstr "Mostrar todo" #: libreplan-webapp/src/main/webapp/email/email_templates.zul:21 -msgid "LibrePlan: Email Templates" +msgid "TASKPM: Email Templates" msgstr "Libreplan: Plantillas de correos" #: libreplan-business/src/main/java/org/libreplan/business/common/IntegrationEntity.java:47 @@ -5250,8 +5250,8 @@ msgid "Virtual worker group name must be unique" msgstr "El nombre del grupo de trabajadores virtuales debe ser único" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerInAMonthReport.zul:21 -msgid "LibrePlan: Total Worked Hours By Resource In A Month" -msgstr "LibrePlan: Total horas trabajadas por recurso en un mes" +msgid "TASKPM: Total Worked Hours By Resource In A Month" +msgstr "TASKPM: Total horas trabajadas por recurso en un mes" #: libreplan-webapp/src/main/webapp/common/configuration.zul:307 #: libreplan-webapp/src/main/webapp/advance/_editAdvanceTypes.zul:47 @@ -5474,8 +5474,8 @@ msgid "Task Status" msgstr "Estado de la tarea" #: libreplan-webapp/src/main/webapp/orders/imports/projectImport.zul:21 -msgid "LibrePlan: Import Project" -msgstr "LibrePlan: Importar proyecto" +msgid "TASKPM: Import Project" +msgstr "TASKPM: Importar proyecto" #: org/libreplan/web/planner/chart/EarnedValueChartFiller.java:250 msgid "Budget At Completion" @@ -5607,8 +5607,8 @@ msgid "Percentage" msgstr "Porcentaje" #: libreplan-webapp/src/main/webapp/profiles/profiles.zul:23 -msgid "LibrePlan: Profiles" -msgstr "LibrePlan: Perfiles" +msgid "TASKPM: Profiles" +msgstr "TASKPM: Perfiles" #: org/libreplan/web/orders/ManageOrderElementAdvancesController.java:673 msgid "Calculated progress can not be modified" @@ -5739,7 +5739,7 @@ msgid "From today" msgstr "A partir de hoy" #: libreplan-webapp/src/main/webapp/common/jobScheduling.zul:20 -msgid "LibrePlan: Job Scheduling" +msgid "TASKPM: Job Scheduling" msgstr "Libreplan: Planificación de trabajo" #: org/libreplan/web/users/dashboard/PersonalTimesheetDTO.java:125 @@ -5878,8 +5878,8 @@ msgid "Project name" msgstr "Nombre del proyecto" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:22 -msgid "LibrePlan: Settings" -msgstr "LibrePlan: Preferencias" +msgid "TASKPM: Settings" +msgstr "TASKPM: Preferencias" #: libreplan-webapp/src/main/webapp/excetiondays/_listExceptionDayTypes.zul:32 #: libreplan-webapp/src/main/webapp/excetiondays/_editExceptionDayType.zul:62 @@ -5947,8 +5947,8 @@ msgid "Specific Allocations" msgstr "Asignaciones específicas" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:20 -msgid "LibrePlan: Received From Subcontractors" -msgstr "LibrePlan: Recibido de subcontratistas" +msgid "TASKPM: Received From Subcontractors" +msgstr "TASKPM: Recibido de subcontratistas" #: org/libreplan/web/orders/OrderCRUDController.java:1057 #: org/libreplan/web/templates/OrderTemplatesController.java:369 @@ -6026,8 +6026,8 @@ msgid "Confirm deleting this file. Are you sure?" msgstr "Este archivo se borrará. ¿Confirmas que deseas borrarlo?" #: libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul:22 -msgid "LibrePlan: Send To Subcontractors" -msgstr "LibrePlan: Enviar a subcontratistas" +msgid "TASKPM: Send To Subcontractors" +msgstr "TASKPM: Enviar a subcontratistas" #: org/libreplan/web/planner/allocation/AllocationRow.java:446 msgid "Only {0} resources per day were achieved for current allocation" @@ -6431,8 +6431,8 @@ msgid "New password" msgstr "Nueva contraseña" #: libreplan-webapp/src/main/webapp/excetiondays/exceptionDays.zul:22 -msgid "LibrePlan: Calendar Exception Days" -msgstr "LibrePlan: Días excepcionales del calendario" +msgid "TASKPM: Calendar Exception Days" +msgstr "TASKPM: Días excepcionales del calendario" #: libreplan-webapp/src/main/webapp/myaccount/personalTimesheet.zul:95 msgid "Total other" @@ -6448,8 +6448,8 @@ msgid "Number of digits" msgstr "Número de dígitos" #: libreplan-webapp/src/main/webapp/orders/_timImpExpInfo.zul:20 -msgid "LibrePlan: Tim import export info" -msgstr "LibrePlan: Información de importación/exportación Tim" +msgid "TASKPM: Tim import export info" +msgstr "TASKPM: Información de importación/exportación Tim" #: org/libreplan/web/orders/JiraSynchronizationController.java:195 msgid "No JIRA issues to import" @@ -6522,8 +6522,8 @@ msgid "Schedule from start to deadline" msgstr "Planificar desde el principio a la fecha límite" #: libreplan-webapp/src/main/webapp/myaccount/changePassword.zul:21 -msgid "LibrePlan: Change password" -msgstr "LibrePlan: Cambiar la contraseña" +msgid "TASKPM: Change password" +msgstr "TASKPM: Cambiar la contraseña" #: libreplan-business/src/main/java/org/libreplan/business/users/entities/Profile.java:89 msgid "profile name is already being used by another profile" @@ -6796,8 +6796,8 @@ msgid "Select criteria or resources" msgstr "Seleccione criterios o recursos" #: libreplan-webapp/src/main/webapp/common/accessForbidden.zul:20 -msgid "LibrePlan: Access Forbidden" -msgstr "LibrePlan: Acceso prohibido" +msgid "TASKPM: Access Forbidden" +msgstr "TASKPM: Acceso prohibido" #: libreplan-business/src/main/java/org/libreplan/business/advance/entities/AdvanceType.java:127 msgid "unit name not specified" @@ -6947,8 +6947,8 @@ msgid "Some allocations needed" msgstr "Se necesitan algunas asignaciones" #: libreplan-webapp/src/main/webapp/myaccount/userDashboard.zul:21 -msgid "LibrePlan: My Dashboard" -msgstr "LibrePlan: Mi panel de control" +msgid "TASKPM: My Dashboard" +msgstr "TASKPM: Mi panel de control" #: org/libreplan/web/tree/TreeComponent.java:58 #: org/libreplan/web/workreports/WorkReportCRUDController.java:902 @@ -7151,8 +7151,8 @@ msgid "Number of tasks" msgstr "Número de tareas" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerReport.zul:21 -msgid "LibrePlan: Hours Worked Per Resource" -msgstr "LibrePlan: Horas Trabajadas Por Recurso" +msgid "TASKPM: Hours Worked Per Resource" +msgstr "TASKPM: Horas Trabajadas Por Recurso" #: libreplan-webapp/src/main/webapp/orders/_listOrderElementTaskQualityForms.zul:50 msgid "Task quality form name" @@ -7276,8 +7276,8 @@ msgid "OUTSOURCED" msgstr "SUBCONTRATADO" #: libreplan-webapp/src/main/webapp/reports/projectStatusReport.zul:20 -msgid "LibrePlan: Project Status Report" -msgstr "LibrePlan: Informe del estado del proyecto" +msgid "TASKPM: Project Status Report" +msgstr "TASKPM: Informe del estado del proyecto" #: libreplan-webapp/src/main/webapp/calendars/_edition.zul:140 msgid "Activation periods" @@ -7424,8 +7424,8 @@ msgid "Select the elements to import into LibrePlan" msgstr "Seleccione los elementos a importar en LibrePlan" #: libreplan-webapp/src/main/webapp/advance/advanceTypes.zul:22 -msgid "LibrePlan: Progress Types" -msgstr "LibrePlan: Tipos de progreso" +msgid "TASKPM: Progress Types" +msgstr "TASKPM: Tipos de progreso" #: org/libreplan/web/workreports/WorkReportCRUDController.java:886 #: libreplan-webapp/src/main/webapp/orders/_listOrderElementHours.zul:33 @@ -7524,7 +7524,7 @@ msgid "Calculated progress cannot be removed" msgstr "El progreso calculado no se puede borrar" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:184 -msgid "without you, LibrePlan can’t exist." +msgid "without you, TASKPM can’t exist." msgstr "sin ti, LibrePlan no puede existir." #: org/libreplan/web/users/UserCRUDController.java:98 @@ -7618,8 +7618,8 @@ msgid "Name" msgstr "Nombre" #: libreplan-webapp/src/main/webapp/typeofworkhours/typeOfWorkHours.zul:23 -msgid "LibrePlan: Hours Types" -msgstr "LibrePlan: Tipos de horas" +msgid "TASKPM: Hours Types" +msgstr "TASKPM: Tipos de horas" #: libreplan-webapp/src/main/webapp/calendars/_edition.zul:303 msgid "Expiry date" @@ -7860,8 +7860,8 @@ msgid "Required materials" msgstr "Materiales requeridos" #: libreplan-webapp/src/main/webapp/reports/workingProgressPerTaskReport.zul:21 -msgid "LibrePlan: Work And Progress Per Task" -msgstr "LibrePlan: trabajo y progreso por tarea" +msgid "TASKPM: Work And Progress Per Task" +msgstr "TASKPM: trabajo y progreso por tarea" #: libreplan-webapp/src/main/webapp/resources/_criterions.zul:36 msgid "Show only current satisfied criteria" @@ -7965,8 +7965,8 @@ msgid "List of materials for category: {0}" msgstr "Lista de materiales para la categoría {0}" #: libreplan-webapp/src/main/webapp/resources/criterions/criterions.zul:24 -msgid "LibrePlan: Criteria" -msgstr "LibrePlan: Criterios" +msgid "TASKPM: Criteria" +msgstr "TASKPM: Criterios" #: org/libreplan/web/resources/worker/WorkerCRUDController.java:972 msgid "Do you want to remove bound user \"{0}\" too?" @@ -8183,8 +8183,8 @@ msgid "connector name not specified" msgstr "nombre del conector no especificado" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:21 -msgid "LibrePlan: User access" -msgstr "LibrePlan: Acceso de usuarios" +msgid "TASKPM: User access" +msgstr "TASKPM: Acceso de usuarios" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:156 msgid "Label filter" @@ -8407,7 +8407,7 @@ msgstr "precio unitario no especificado" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:180 msgid "" -"Did you know LibrePlan is funded only by donations, from people like you?" +"Did you know TASKPM is funded only by donations, from people like you?" msgstr "" "¿Sabías que LibrePlan se financia únicamente con donaciones de personas como " "tú?" @@ -8626,8 +8626,8 @@ msgid "task end date not specified" msgstr "fecha de fin de la tarea no especificada" #: libreplan-webapp/src/main/webapp/resources/worker/worker.zul:22 -msgid "LibrePlan: Workers" -msgstr "LibrePlan: Trabajadores" +msgid "TASKPM: Workers" +msgstr "TASKPM: Trabajadores" #: libreplan-webapp/src/main/webapp/dashboard/_dashboardfororder.zul:131 msgid "No tasks available yet" @@ -8778,8 +8778,8 @@ msgid "Total hours" msgstr "Total de horas" #: libreplan-webapp/src/main/webapp/users/users.zul:23 -msgid "LibrePlan: User Accounts" -msgstr "LibrePlan: Cuentas de usuario" +msgid "TASKPM: User Accounts" +msgstr "TASKPM: Cuentas de usuario" #: libreplan-business/src/main/java/org/libreplan/business/expensesheet/entities/ExpenseSheet.java:109 msgid "total must be greater or equal than 0" @@ -8842,8 +8842,8 @@ msgid "Work description" msgstr "Descripción del trabajo" #: libreplan-webapp/src/main/webapp/materials/materials.zul:21 -msgid "LibrePlan: Materials" -msgstr "LibrePlan: Materiales" +msgid "TASKPM: Materials" +msgstr "TASKPM: Materiales" #: libreplan-webapp/src/main/webapp/common/layout/template.zul:88 msgid "Change scenario" @@ -9176,8 +9176,8 @@ msgid "Entity type" msgstr "Tipo de entidad" #: libreplan-webapp/src/main/webapp/labels/labelTypes.zul:21 -msgid "LibrePlan: Labels" -msgstr "LibrePlan: Etiquetas" +msgid "TASKPM: Labels" +msgstr "TASKPM: Etiquetas" #: libreplan-webapp/src/main/webapp/workreports/workReportQuery.zul:79 msgid "type" @@ -9537,8 +9537,8 @@ msgid "Work amount" msgstr "Cantidad de trabajo" #: libreplan-webapp/src/main/webapp/reports/orderCostsPerResource.zul:21 -msgid "LibrePlan: Project Costs" -msgstr "LibrePlan: Costes del proyecto" +msgid "TASKPM: Project Costs" +msgstr "TASKPM: Costes del proyecto" #: libreplan-business/src/main/java/org/libreplan/business/costcategories/entities/ResourcesCostCategoryAssignment.java:145 msgid "cost assignment with end date before start date" diff --git a/libreplan-webapp/src/main/resources/i18n/fa_IR.po b/libreplan-webapp/src/main/resources/i18n/fa_IR.po index 3bab0b8f8..53890fa71 100644 --- a/libreplan-webapp/src/main/resources/i18n/fa_IR.po +++ b/libreplan-webapp/src/main/resources/i18n/fa_IR.po @@ -8,7 +8,7 @@ # Sharifi , 2016 msgid "" msgstr "" -"Project-Id-Version: LibrePlan\n" +"Project-Id-Version: TASKPM\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-10-10 17:54+0200\n" "PO-Revision-Date: 2016-12-27 11:35+0000\n" @@ -21,8 +21,8 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" #: libreplan-webapp/src/main/webapp/qualityforms/qualityForms.zul:22 -msgid "LibrePlan: Quality Forms" -msgstr "LibrePlan: فرم های کیفیت" +msgid "TASKPM: Quality Forms" +msgstr "TASKPM: فرم های کیفیت" #: libreplan-webapp/src/main/webapp/orders/_projectDetails.zul:58 #: libreplan-webapp/src/main/webapp/orders/_list.zul:30 @@ -46,8 +46,8 @@ msgid "Overtime" msgstr "اضافه کار" #: libreplan-webapp/src/main/webapp/excetiondays/exceptionDays.zul:22 -msgid "LibrePlan: Calendar Exception Days" -msgstr "LibrePlan: روزهای استثنای تقویم" +msgid "TASKPM: Calendar Exception Days" +msgstr "TASKPM: روزهای استثنای تقویم" #: org/libreplan/web/calendars/BaseCalendarModel.java:488 #: org/libreplan/web/calendars/BaseCalendarModel.java:520 @@ -136,8 +136,8 @@ msgid "Subcategory names must be unique." msgstr "نام زیردسته ها باید یکتا باشد." #: libreplan-webapp/src/main/webapp/reports/timeLineMaterialReport.zul:21 -msgid "LibrePlan: Materials Needed At Date" -msgstr "LibrePlan: مواد مورد نیاز در تاریخ" +msgid "TASKPM: Materials Needed At Date" +msgstr "TASKPM: مواد مورد نیاز در تاریخ" #: org/libreplan/web/resources/machine/MachineCRUDController.java:630 msgid "Machines limit reached" @@ -483,7 +483,7 @@ msgid "please, select a project" msgstr "لطفا، یک پروژه انتخاب کنید" #: libreplan-webapp/src/main/webapp/reports/projectStatusReport.zul:20 -msgid "LibrePlan: Project Status Report" +msgid "TASKPM: Project Status Report" msgstr "لیبرپلن: گزارش وضعیت پروژه" #: org/libreplan/web/calendars/BaseCalendarEditionController.java:627 @@ -545,7 +545,7 @@ msgid "Exit session" msgstr "خروج از نشست" #: libreplan-webapp/src/main/webapp/orders/_timImpExpInfo.zul:20 -msgid "LibrePlan: Tim import export info" +msgid "TASKPM: Tim import export info" msgstr "لیبرپلن: اطلاعات صدور و ورود Tim" #: org/libreplan/web/planner/allocation/FormBinder.java:671 @@ -659,7 +659,7 @@ msgid "Companies List" msgstr "فهرست شرکت ها" #: libreplan-webapp/src/main/webapp/resources/worker/virtualWorkers.zul:22 -msgid "LibrePlan: Virtual Worker Groups" +msgid "TASKPM: Virtual Worker Groups" msgstr "لیبرپلن: گروهای مجازی مجریان" #: org/libreplan/web/planner/tabs/MonteCarloTabCreator.java:51 @@ -673,7 +673,7 @@ msgid "Cost category" msgstr "رده هزینه" #: libreplan-webapp/src/main/webapp/myaccount/personalTimesheet.zul:21 -msgid "LibrePlan: Personal timesheet" +msgid "TASKPM: Personal timesheet" msgstr "لیبرپلن: برگه زمانی شخصی" #: libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReportLine.java:264 @@ -700,7 +700,7 @@ msgid "Unsaved changes will be lost. Are you sure?" msgstr "تغییرات ذخیره نشده از بین می روند. آیا اطمینان دارید؟" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/ConfigurationRolesLDAP.java:56 -msgid "LibrePlan role not specified" +msgid "TASKPM role not specified" msgstr "نقش لیبرپلن مشخص نشده است" #: libreplan-webapp/src/main/webapp/scenarios/transferOrders.zul:39 @@ -716,7 +716,7 @@ msgid "Move" msgstr "حرکت" #: libreplan-webapp/src/main/webapp/orders/_jiraSyncInfo.zul:20 -msgid "LibrePlan: JIRA synchronization info" +msgid "TASKPM: JIRA synchronization info" msgstr "لیبرپلن: اطلاعات همگام سازی JIRA" #: org/libreplan/web/common/components/finders/OrderFilterEnum.java:31 @@ -761,7 +761,7 @@ msgid "Profiles List" msgstr "فهرست پروفایل ها" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:21 -msgid "LibrePlan: User access" +msgid "TASKPM: User access" msgstr "لیبرپلن: دسترسی کاربر" #: libreplan-business/src/main/java/org/libreplan/business/labels/entities/LabelType.java:158 @@ -1540,7 +1540,7 @@ msgid "Violated deadline" msgstr "مهلت نقض شده" #: libreplan-webapp/src/main/webapp/common/configuration.zul:126 -msgid "Enable/Disable warning about new LibrePlan versions available" +msgid "Enable/Disable warning about new TASKPM versions available" msgstr "فعال/غیرفعال کردن هشدار درباره دسترسی به نسخه جدید لیبرپلن" #: libreplan-business/src/main/java/org/libreplan/business/orders/entities/HoursGroup.java:186 @@ -1583,7 +1583,7 @@ msgid "Progress sent successfully" msgstr "پیشرفت با موفقیت ارسال گردید" #: libreplan-webapp/src/main/webapp/myaccount/userDashboard.zul:21 -msgid "LibrePlan: My Dashboard" +msgid "TASKPM: My Dashboard" msgstr "لیبرپلن: داشبورد من" #: libreplan-webapp/src/main/webapp/calendars/_edition.zul:131 @@ -1604,7 +1604,7 @@ msgstr "فیلدهای نوع برچسب" #: libreplan-webapp/src/main/webapp/common/event_error.zul:22 #: libreplan-webapp/src/main/webapp/common/error.zul:21 -msgid "LibrePlan: Runtime Error" +msgid "TASKPM: Runtime Error" msgstr "لیبرپلن: خطای زمان اجرا" #: org/libreplan/web/planner/tabs/PlanningTabCreator.java:152 @@ -1652,7 +1652,7 @@ msgid "Criterion Types" msgstr "انواع معیار" #: libreplan-webapp/src/main/webapp/common/configuration.zul:125 -msgid "Show a notification when new LibrePlan versions are released" +msgid "Show a notification when new TASKPM versions are released" msgstr "زمانی که نسخه های جدید لیبرپلن منتشر شد یک اطلاعیه نمایش داده شود" #: org/libreplan/web/workreports/WorkReportTypeCRUDController.java:900 @@ -1721,7 +1721,7 @@ msgid "units not specified" msgstr "واحدها مشخص نشده" #: libreplan-webapp/src/main/webapp/advance/advanceTypes.zul:22 -msgid "LibrePlan: Progress Types" +msgid "TASKPM: Progress Types" msgstr "لیبرپلن: انواع پیشرفت" #: libreplan-webapp/src/main/webapp/planner/montecarlo_function.zul:36 @@ -1929,7 +1929,7 @@ msgid "percentage should be between 1 and 100" msgstr "درصد باید بین 1 و 100 باشد" #: libreplan-webapp/src/main/webapp/workreports/workReportQuery.zul:23 -msgid "LibrePlan: Timesheet Lines List" +msgid "TASKPM: Timesheet Lines List" msgstr "لیبرپلن: فهرست خطوط برگه زمانی " #: org/libreplan/web/labels/LabelTypeModel.java:269 @@ -2057,7 +2057,7 @@ msgid "You have exceeded the maximum limit of users" msgstr "از حداکثر تعداد کاربران گذشته اید" #: libreplan-webapp/src/main/webapp/reports/schedulingProgressPerOrderReport.zul:21 -msgid "LibrePlan: Work And Progress Per Project" +msgid "TASKPM: Work And Progress Per Project" msgstr "لیبرپلن: کار و پیشرفت در ازای هر پروژه" #: libreplan-webapp/src/main/webapp/orders/_orderElementTreeFilter.zul:42 @@ -2122,7 +2122,7 @@ msgid "No roster-exceptions found in the response" msgstr "هیچ فهرست استثنایی در پاسخ یافت نشد" #: libreplan-webapp/src/main/webapp/calendars/calendars.zul:22 -msgid "LibrePlan: Calendars" +msgid "TASKPM: Calendars" msgstr "لیبرپلن: تقویم ها" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/EntitySequence.java:192 @@ -2147,7 +2147,7 @@ msgid "Subcontracting date" msgstr "تاریخ قرارداد فرعی" #: libreplan-webapp/src/main/webapp/common/job_scheduling.zul:20 -msgid "LibrePlan: Job Scheduling" +msgid "TASKPM: Job Scheduling" msgstr "لیبرپلن: زمان بندی کار" #: org/libreplan/importers/ImportRosterFromTim.java:182 @@ -2300,7 +2300,7 @@ msgid "Filter timesheet lines by" msgstr "فیلتر کردن سطرهای برگه زمانی بر اساس" #: libreplan-webapp/src/main/webapp/unittypes/unitTypes.zul:21 -msgid "LibrePlan: Material Units" +msgid "TASKPM: Material Units" msgstr "لیبرپلن: واحدهای مواد" #: org/libreplan/web/templates/TemplatesTreeComponent.java:64 @@ -2454,7 +2454,7 @@ msgid "Maximum/minimum of worked hours in finished applications" msgstr "حداکثر/حداقل ساعت کار در برنامه های خاتمه یافته" #: libreplan-webapp/src/main/webapp/labels/labelTypes.zul:21 -msgid "LibrePlan: Labels" +msgid "TASKPM: Labels" msgstr "لیبرپلن: برچسب ها" #: libreplan-webapp/src/main/webapp/resources/worker/_edition.zul:31 @@ -2505,7 +2505,7 @@ msgid "Observations" msgstr "مشاهدات" #: libreplan-webapp/src/main/webapp/common/page_not_found.zul:22 -msgid "LibrePlan: Page not found" +msgid "TASKPM: Page not found" msgstr "لیبرپلن: صفحه پیدا نشد" #: libreplan-webapp/src/main/webapp/orders/_edition.zul:251 @@ -2597,8 +2597,8 @@ msgid "Output format:" msgstr "فرمت خروجی:" #: libreplan-webapp/src/main/webapp/reports/workingProgressPerTaskReport.zul:21 -msgid "LibrePlan: Work And Progress Per Task" -msgstr "LibrePlan: کار و پیشرفت در ازای هر وظیفه" +msgid "TASKPM: Work And Progress Per Task" +msgstr "TASKPM: کار و پیشرفت در ازای هر وظیفه" #: org/libreplan/web/advance/AdvanceTypeCRUDController.java:81 msgid "" @@ -2689,7 +2689,7 @@ msgid "Label type already assigned" msgstr "نوع برچسب در حال حاضر منتسب شده است" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:20 -msgid "LibrePlan: Received From Subcontractors" +msgid "TASKPM: Received From Subcontractors" msgstr "لیبرپلن: دریافت شده از پیمانکاران فرعی" #: libreplan-webapp/src/main/webapp/common/configuration.zul:58 @@ -2910,7 +2910,7 @@ msgid "label type: the timesheet have not assigned this label type" msgstr "نوع برچسب: برگه زمانی به این نوع برچسب منتسب نشده است" #: libreplan-webapp/src/main/webapp/typeofworkhours/typeOfWorkHours.zul:23 -msgid "LibrePlan: Hours Types" +msgid "TASKPM: Hours Types" msgstr "لیبرپلن: انواع ساعت" #: org/libreplan/web/common/CustomMenuController.java:264 @@ -2939,7 +2939,7 @@ msgid "Please try it again." msgstr "لطفا دوباره سعی کنید." #: libreplan-webapp/src/main/webapp/expensesheet/expenseSheet.zul:21 -msgid "LibrePlan: Expenses" +msgid "TASKPM: Expenses" msgstr "لیبرپلن: مخارج" #: org/libreplan/web/tree/TreeController.java:1294 @@ -3000,7 +3000,7 @@ msgid "Date last progress measurement" msgstr "تاریخ گذاری سنجش آخرین پیشرفت " #: libreplan-webapp/src/main/webapp/reports/completedEstimatedHoursPerTask.zul:21 -msgid "LibrePlan: Estimated/Planned Hours Per Task" +msgid "TASKPM: Estimated/Planned Hours Per Task" msgstr "لیبرپلن: ساعات تخمین زده شده/برنامه ریزی شده در ازای هر وظیفه" #: libreplan-webapp/src/main/webapp/orders/_listOrderElementAuthorizations.zul:43 @@ -3207,7 +3207,7 @@ msgid "Finished" msgstr "خاتمه یافته" #: libreplan-webapp/src/main/webapp/planner/index.zul:22 -msgid "LibrePlan: Planning" +msgid "TASKPM: Planning" msgstr "لیبرپلن: برنامه ریزی" #: org/libreplan/web/scenarios/ScenarioModel.java:126 @@ -3280,7 +3280,7 @@ msgid "Property strategy" msgstr "استراتژی مالکیت" #: libreplan-webapp/src/main/webapp/reports/orderCostsPerResource.zul:21 -msgid "LibrePlan: Project Costs" +msgid "TASKPM: Project Costs" msgstr "لیبرپلن: هزینه های پروژه" #: org/libreplan/web/common/ConfigurationController.java:265 @@ -3316,7 +3316,7 @@ msgid "Calendar exception days" msgstr "روزهای استثناء تقویم" #: libreplan-webapp/src/main/webapp/myaccount/changePassword.zul:21 -msgid "LibrePlan: Change password" +msgid "TASKPM: Change password" msgstr "لیبرپلن: تغییر رمز عبور" #: org/libreplan/web/planner/allocation/GenericAllocationRow.java:55 @@ -3897,7 +3897,7 @@ msgstr "نوع تعاملات" #: libreplan-webapp/src/main/webapp/common/page_not_found.zul:49 msgid "" -"If you reached this page from another page of LibrePlan please notify us in " +"If you reached this page from another page of TASKPM please notify us in " "order to fix it as soon as possible." msgstr "اگر از صفحات دیگر LibrePlan به این صفحه رسیده اید لطفا به ما اطلاع دهید تا در اسرع وقت آن را اصلاح نماییم." @@ -3933,8 +3933,8 @@ msgid "Repeated Hours Group code {0} in Project {1}" msgstr "کد گروه ساعت تکراری [0] در پروژه [1]" #: libreplan-webapp/src/main/webapp/resources/worker/worker.zul:22 -msgid "LibrePlan: Workers" -msgstr "LibrePlan: مجریان" +msgid "TASKPM: Workers" +msgstr "TASKPM: مجریان" #: org/libreplan/web/planner/allocation/AdvancedAllocationController.java:1573 msgid "Not configurable" @@ -4391,8 +4391,8 @@ msgid "" msgstr "کدهای منتسب شده رده هزینه منابع باید یکتا باشد" #: libreplan-webapp/src/main/webapp/materials/materials.zul:21 -msgid "LibrePlan: Materials" -msgstr "LibrePlan: مواد" +msgid "TASKPM: Materials" +msgstr "TASKPM: مواد" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:104 msgid "User disabled" @@ -4638,8 +4638,8 @@ msgid "Stretches with Interpolation" msgstr "امتداد با الحاق" #: libreplan-webapp/src/main/webapp/workreports/workReportTypes.zul:23 -msgid "LibrePlan: Timesheets Templates" -msgstr "LibrePlan: قالب های برگه های زمانی" +msgid "TASKPM: Timesheets Templates" +msgstr "TASKPM: قالب های برگه های زمانی" #: org/libreplan/web/common/CustomMenuController.java:514 msgid "Reports" @@ -4669,8 +4669,8 @@ msgid "" msgstr "نمی توانید وظیفه \"[0]\" را حذف نمایید، به این دلیل که تنها فرزند والد خود است و والد آن زمان پیگیری شده یا مخارج انتسابی دارد." #: libreplan-webapp/src/main/webapp/reports/workingArrangementsPerOrderReport.zul:21 -msgid "LibrePlan: Task Scheduling Status In Project" -msgstr "LibrePlan: وضعیت زمانبندی وظیفه در پروژه" +msgid "TASKPM: Task Scheduling Status In Project" +msgstr "TASKPM: وضعیت زمانبندی وظیفه در پروژه" #: libreplan-webapp/src/main/webapp/common/layout/_customMenu.zul:55 msgid "START" @@ -4905,8 +4905,8 @@ msgid "Reassigning type" msgstr "نوع انتساب مجدد" #: libreplan-webapp/src/main/webapp/common/configuration.zul:23 -msgid "LibrePlan: Main Settings" -msgstr "LibrePlan: تنظیمات اصلی" +msgid "TASKPM: Main Settings" +msgstr "TASKPM: تنظیمات اصلی" #: org/libreplan/web/common/CustomMenuController.java:419 #: libreplan-business/src/main/java/org/libreplan/business/users/entities/UserRole.java:69 @@ -5002,8 +5002,8 @@ msgid "Expand taskgroups" msgstr "بسط گروه های وظیفه" #: libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul:22 -msgid "LibrePlan: Send To Subcontractors" -msgstr "LibrePlan: ارسال شده به پیمانکاران فرعی" +msgid "TASKPM: Send To Subcontractors" +msgstr "TASKPM: ارسال شده به پیمانکاران فرعی" #: org/libreplan/web/limitingresources/ManualAllocationController.java:492 msgid "END" @@ -5141,15 +5141,15 @@ msgid "" msgstr "لطفا با راهبران سیستم تماس بگیرید تا مجوز شما را بررسی نمایند." #: libreplan-webapp/src/main/webapp/costcategories/costCategory.zul:23 -msgid "LibrePlan: Cost Categories" -msgstr "LibrePlan: رده های هزینه" +msgid "TASKPM: Cost Categories" +msgstr "TASKPM: رده های هزینه" #: libreplan-webapp/src/main/webapp/users/_editUser.zul:120 msgid "Unbound resource" msgstr "عدم انقیاد منبع" #: libreplan-webapp/src/main/webapp/subcontract/customerCommunications.zul:20 -msgid "LibrePlan: Received From Customers" +msgid "TASKPM: Received From Customers" msgstr "لیبرپلن: دریافت شده از طرف مشتری ها" #: libreplan-webapp/src/main/webapp/workreports/_listWorkReportTypes.zul:47 @@ -5893,8 +5893,8 @@ msgid "Calendar allocation" msgstr "تخصیص تقویم" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerInAMonthReport.zul:21 -msgid "LibrePlan: Total Worked Hours By Resource In A Month" -msgstr "LibrePlan: جمع کل ماهانه ساعت کار انجام شده توسط منبع" +msgid "TASKPM: Total Worked Hours By Resource In A Month" +msgstr "TASKPM: جمع کل ماهانه ساعت کار انجام شده توسط منبع" #: org/libreplan/web/resources/criterion/CriterionAdminController.java:257 msgid "" @@ -5950,7 +5950,7 @@ msgid "" msgstr "درصورتی که می خواهید باز خورد خود را به توسعه دهندگان LibrePlan درباره استفاده از برنامه ارسال نمایید، این گزینه را انتخاب نمایید" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:22 -msgid "LibrePlan: Settings" +msgid "TASKPM: Settings" msgstr "لیبرپلن: تنظیمات" #: org/libreplan/web/common/CustomMenuController.java:345 @@ -5982,8 +5982,8 @@ msgid "Change the password" msgstr "تغییر گذرواژه" #: libreplan-webapp/src/main/webapp/common/access_forbidden.zul:20 -msgid "LibrePlan: Access Forbidden" -msgstr "LibrePlan: ممنوعیت در دسترسی" +msgid "TASKPM: Access Forbidden" +msgstr "TASKPM: ممنوعیت در دسترسی" #: libreplan-webapp/src/main/webapp/montecarlo/_montecarlo.zul:50 #: libreplan-webapp/src/main/webapp/montecarlo/_montecarlo.zul:52 @@ -6063,8 +6063,8 @@ msgid "No authorizations were added because you did not select any." msgstr "هیچ مجوزی ااضافه نشد به این دلیل که شما هیچ کدام را انتخاب نکرده اید." #: libreplan-webapp/src/main/webapp/users/users.zul:23 -msgid "LibrePlan: User Accounts" -msgstr "LibrePlan: جساب کاربری" +msgid "TASKPM: User Accounts" +msgstr "TASKPM: جساب کاربری" #: libreplan-webapp/src/main/webapp/templates/_assignedQualityForms.zul:30 msgid "Quality forms" @@ -6111,8 +6111,8 @@ msgid "Interacts with applications" msgstr "با برنامه های کاربردی تعامل دارند" #: libreplan-webapp/src/main/webapp/planner/advance_allocation.zul:22 -msgid "LibrePlan: Advanced allocation" -msgstr "LibrePlan: تخصیص پیشرفته" +msgid "TASKPM: Advanced allocation" +msgstr "TASKPM: تخصیص پیشرفته" #: org/libreplan/importers/CalendarImporterMPXJ.java:365 msgid "Calendar name already in use" @@ -6237,8 +6237,8 @@ msgid "Standard Effort" msgstr "تلاش استاندارد" #: libreplan-webapp/src/main/webapp/orders/imports/projectImport.zul:21 -msgid "LibrePlan: Import Project" -msgstr "LibrePlan: ورود پروژه" +msgid "TASKPM: Import Project" +msgstr "TASKPM: ورود پروژه" #: org/libreplan/web/resources/worker/WorkerCRUDController.java:730 msgid "Create Virtual Workers Group" @@ -6251,8 +6251,8 @@ msgid "" msgstr "لطفا از مرورگرهای سازگار استفاده نمایید: کروم، فایرفاکس، سافاری یا اپیفانی." #: libreplan-webapp/src/main/webapp/scenarios/transferOrders.zul:23 -msgid "LibrePlan: Transfer Projects Between Scenarios" -msgstr "LibrePlan: انتقال پروژه ها بین سناریوها" +msgid "TASKPM: Transfer Projects Between Scenarios" +msgstr "TASKPM: انتقال پروژه ها بین سناریوها" #: org/libreplan/web/common/CustomMenuController.java:306 #: libreplan-business/src/main/java/org/libreplan/business/users/entities/UserRole.java:50 @@ -6488,8 +6488,8 @@ msgid "quality form item position not specified" msgstr "موقعیت مورد فرم کیفیت مشخص نشده" #: libreplan-webapp/src/main/webapp/profiles/profiles.zul:23 -msgid "LibrePlan: Profiles" -msgstr "LibrePlan: پروفایل ها" +msgid "TASKPM: Profiles" +msgstr "TASKPM: پروفایل ها" #: libreplan-webapp/src/main/webapp/orders/_orderElementDetails.zul:38 msgid "Code " @@ -6500,8 +6500,8 @@ msgid "Budget At Completion" msgstr "بودجه در حین تکمیل" #: libreplan-webapp/src/main/webapp/workreports/workReport.zul:23 -msgid "LibrePlan: Timesheets" -msgstr "LibrePlan: برگه های زمانی" +msgid "TASKPM: Timesheets" +msgstr "TASKPM: برگه های زمانی" #: libreplan-webapp/src/main/webapp/orders/_listHoursGroupCriterionRequirement.zul:22 msgid "Criteria Requirement" @@ -6895,8 +6895,8 @@ msgid "" msgstr "تاریخ شروع تخمینی برای وظیفه (دکمه Enter را در جعبه متن فشار دهید تا تقویم به صورت پاپ اپ باز شود یا تاریخ را به مستقیما تایپ نمایید)" #: libreplan-webapp/src/main/webapp/externalcompanies/externalcompanies.zul:23 -msgid "LibrePlan: Companies" -msgstr "LibrePlan: شرکت ها" +msgid "TASKPM: Companies" +msgstr "TASKPM: شرکت ها" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:53 msgid "Subcontrated task" @@ -6923,8 +6923,8 @@ msgid "Date must be inside visualization area" msgstr "تاریخ باشد داخل فضای تصویر سازی باشد" #: libreplan-webapp/src/main/webapp/templates/templates.zul:22 -msgid "LibrePlan: Templates" -msgstr "LibrePlan: قالب ها" +msgid "TASKPM: Templates" +msgstr "TASKPM: قالب ها" #: libreplan-webapp/src/main/webapp/resourceload/resourceload.zul:22 #: libreplan-webapp/src/main/webapp/planner/taskpanels/_tabPanelLimitingResourceAllocation.zul:22 @@ -6933,11 +6933,11 @@ msgstr "LibrePlan: قالب ها" #: libreplan-webapp/src/main/webapp/planner/montecarlo_function.zul:22 #: libreplan-webapp/src/main/webapp/planner/resources_use.zul:22 #: libreplan-webapp/src/main/webapp/planner/order.zul:22 -msgid "LibrePlan: Scheduling" -msgstr "LibrePlan: زمانبندی" +msgid "TASKPM: Scheduling" +msgstr "TASKPM: زمانبندی" #: libreplan-webapp/src/main/webapp/subcontract/reportAdvances.zul:22 -msgid "LibrePlan: Send To Customers" +msgid "TASKPM: Send To Customers" msgstr "لیبرپلن: ارسال به مشتری ها" #: libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReport.java:436 @@ -7426,8 +7426,8 @@ msgid "The code cannot be empty and it must be unique." msgstr "مد نمی تواند خالی باشد و باید یکتا باشد." #: libreplan-webapp/src/main/webapp/resources/criterions/criterions.zul:24 -msgid "LibrePlan: Criteria" -msgstr "LibrePlan: ضابطه" +msgid "TASKPM: Criteria" +msgstr "TASKPM: ضابطه" #: org/libreplan/importers/OrderImporterMPXJ.java:660 msgid "Linked calendar not found" @@ -7840,8 +7840,8 @@ msgid "Start filtering date must be before than end filtering date" msgstr "تاریخ فیلترسازی شروع باید قبل از تاریخ فیلترسازی خاتمه باشد" #: libreplan-webapp/src/main/webapp/orders/_synchronizationInfo.zul:20 -msgid "LibrePlan: Synchronization info" -msgstr "LibrePlan: اطلاعات همگام سازی" +msgid "TASKPM: Synchronization info" +msgstr "TASKPM: اطلاعات همگام سازی" #: org/libreplan/web/orders/DetailsOrderElementController.java:128 msgid "must be after starting date" @@ -8198,7 +8198,7 @@ msgid "Dedication chart" msgstr "چارت تخصیص" #: libreplan-webapp/src/main/webapp/scenarios/scenarios.zul:23 -msgid "LibrePlan: Scenarios Management" +msgid "TASKPM: Scenarios Management" msgstr "لیبرپلن: مدیریت سناریو" #: org/libreplan/web/reports/CompletedEstimatedHoursPerTaskController.java:170 @@ -8333,7 +8333,7 @@ msgid "Delete Template element" msgstr "حذف عنصر قالب" #: libreplan-webapp/src/main/webapp/resources/machine/machines.zul:22 -msgid "LibrePlan: Machines" +msgid "TASKPM: Machines" msgstr "لیبرپلن: دستگاه ها" #: libreplan-webapp/src/main/webapp/orders/_orderElementTreeFilter.zul:36 @@ -8521,7 +8521,7 @@ msgid "Must be after 2010!" msgstr "باید بعد از تاریخ 1389 باشد!" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:144 -msgid "is not supported for its use with LibrePlan." +msgid "is not supported for its use with TASKPM." msgstr "برای استفاده با LibrePlan پشتیبانی نمی گردد." #: libreplan-business/src/main/java/org/libreplan/business/qualityforms/entities/TaskQualityFormItem.java:99 @@ -8770,8 +8770,8 @@ msgid "number of digits must be between {0} and {1}" msgstr "تعداد ارقام باید بین [0] و [1] باشد" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerReport.zul:21 -msgid "LibrePlan: Hours Worked Per Resource" -msgstr "LibrePlan: ساعات کار شده بازای منبع" +msgid "TASKPM: Hours Worked Per Resource" +msgstr "TASKPM: ساعات کار شده بازای منبع" #: org/libreplan/web/calendars/BaseCalendarEditionController.java:642 #: org/libreplan/web/calendars/BaseCalendarEditionController.java:1278 diff --git a/libreplan-webapp/src/main/resources/i18n/fr.po b/libreplan-webapp/src/main/resources/i18n/fr.po index ea3d991ed..67bf4fe73 100644 --- a/libreplan-webapp/src/main/resources/i18n/fr.po +++ b/libreplan-webapp/src/main/resources/i18n/fr.po @@ -14,7 +14,7 @@ # Stephane Ayache , 2011 msgid "" msgstr "" -"Project-Id-Version: LibrePlan\n" +"Project-Id-Version: TASKPM\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-11-27 20:07+0100\n" "PO-Revision-Date: 2011-12-12 19:43+0000\n" @@ -103,8 +103,8 @@ msgid "Select template" msgstr "Choisir un canevas" #: libreplan-webapp/src/main/webapp/workreports/workReport.zul:23 -msgid "LibrePlan: Timesheets" -msgstr "LibrePlan: feuille de temps" +msgid "TASKPM: Timesheets" +msgstr "TASKPM: feuille de temps" #: libreplan-webapp/src/main/webapp/myaccount/_myTasksArea.zul:39 msgid "Work done" @@ -150,7 +150,7 @@ msgid "job class name not specified" msgstr "Nom de classe de travail non indiqué" #: libreplan-webapp/src/main/webapp/common/configuration.zul:146 -msgid "Show a notification when new LibrePlan versions are released" +msgid "Show a notification when new TASKPM versions are released" msgstr "" "Afficher une notification quand une nouvelle version de LibrePlan est " "disponible" @@ -278,8 +278,8 @@ msgid "Task quality forms" msgstr "Formulaires qualité des tâches" #: libreplan-webapp/src/main/webapp/templates/templates.zul:22 -msgid "LibrePlan: Templates" -msgstr "LibrePlan: Canevas" +msgid "TASKPM: Templates" +msgstr "TASKPM: Canevas" #: org/libreplan/web/workreports/WorkReportTypeModel.java:414 msgid "There is another timesheet template with the same name" @@ -323,8 +323,8 @@ msgid "Authentication type" msgstr "Type d'authentification" #: libreplan-webapp/src/main/webapp/reports/workingArrangementsPerOrderReport.zul:21 -msgid "LibrePlan: Task Scheduling Status In Project" -msgstr "LibrePlan: Etat de Prévision de la Tâche dans le Projet" +msgid "TASKPM: Task Scheduling Status In Project" +msgstr "TASKPM: Etat de Prévision de la Tâche dans le Projet" #: org/libreplan/web/resources/criterion/CriterionsModel.java:216 msgid "Resource type cannot be empty" @@ -462,8 +462,8 @@ msgid "Schedule from deadline to start" msgstr "Prévision de la date d'échéance au début" #: libreplan-webapp/src/main/webapp/resources/machine/machines.zul:22 -msgid "LibrePlan: Machines" -msgstr "LibrePlan: Machines" +msgid "TASKPM: Machines" +msgstr "TASKPM: Machines" #: org/libreplan/web/common/CustomMenuController.java:400 #: org/libreplan/web/workreports/WorkReportTypeCRUDController.java:878 @@ -491,8 +491,8 @@ msgid "Criterion cannot be empty" msgstr "Le critère ne peut pas être vide" #: libreplan-webapp/src/main/webapp/planner/index.zul:22 -msgid "LibrePlan: Planning" -msgstr "LibrePlan: Calendrier" +msgid "TASKPM: Planning" +msgstr "TASKPM: Calendrier" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/Configuration.java:146 msgid "default calendar not specified" @@ -743,8 +743,8 @@ msgid "Save and Continue" msgstr "Enregistrer et continuer" #: libreplan-webapp/src/main/webapp/externalcompanies/externalcompanies.zul:23 -msgid "LibrePlan: Companies" -msgstr "LibrePlan: compagnies" +msgid "TASKPM: Companies" +msgstr "TASKPM: compagnies" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/EntitySequence.java:152 msgid "format sequence code invalid. It must not contain '_'" @@ -908,7 +908,7 @@ msgstr "Période active depuis" #: libreplan-webapp/src/main/webapp/common/pageNotFound.zul:49 msgid "" -"If you reached this page from another page of LibrePlan please notify us in " +"If you reached this page from another page of TASKPM please notify us in " "order to fix it as soon as possible." msgstr "" "Si vous êtes arrivé sur cette page à partir d'une autre page de LibrePlan, " @@ -1181,7 +1181,7 @@ msgstr "" "livraison sortant dans le tableau possède une date de communication non vide." #: libreplan-webapp/src/main/webapp/common/pageNotFound.zul:22 -msgid "LibrePlan: Page not found" +msgid "TASKPM: Page not found" msgstr "LibrePlan : Page non trouvée" #: org/libreplan/web/users/dashboard/ExpensesAreaController.java:87 @@ -1318,8 +1318,8 @@ msgid "Advanced Allocation" msgstr "Allocation avancée" #: libreplan-webapp/src/main/webapp/reports/timeLineMaterialReport.zul:21 -msgid "LibrePlan: Materials Needed At Date" -msgstr "LibrePlan: Matériaux requis à la date" +msgid "TASKPM: Materials Needed At Date" +msgstr "TASKPM: Matériaux requis à la date" #: libreplan-webapp/src/main/webapp/unittypes/unitTypes.zul:42 #: libreplan-webapp/src/main/webapp/templates/_editTemplate.zul:165 @@ -1359,8 +1359,8 @@ msgstr "" "Attention: pas d'édition depuis la page d'accueil des utilisateurs liés" #: libreplan-webapp/src/main/webapp/workreports/workReportQuery.zul:23 -msgid "LibrePlan: Timesheet Lines List" -msgstr "LibrePlan: Liste des lignes de feuille de temps" +msgid "TASKPM: Timesheet Lines List" +msgstr "TASKPM: Liste des lignes de feuille de temps" #: org/libreplan/web/users/dashboard/PersonalTimesheetController.java:664 #: org/libreplan/web/common/components/finders/OrderElementBandboxFinder.java:51 @@ -1446,8 +1446,8 @@ msgstr "" "utiliser la stratégie d'affectation choisie" #: libreplan-webapp/src/main/webapp/orders/_jiraSyncInfo.zul:20 -msgid "LibrePlan: JIRA synchronization info" -msgstr "LibrePlan: Informations de synchronisation JIRA" +msgid "TASKPM: JIRA synchronization info" +msgstr "TASKPM: Informations de synchronisation JIRA" #: org/libreplan/web/common/CustomMenuController.java:290 #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:112 @@ -1535,8 +1535,8 @@ msgstr "Créer un nouveau projet" #: libreplan-webapp/src/main/webapp/common/eventError.zul:22 #: libreplan-webapp/src/main/webapp/common/error.zul:21 -msgid "LibrePlan: Runtime Error" -msgstr "LibrePlan: Erreur d'exécution" +msgid "TASKPM: Runtime Error" +msgstr "TASKPM: Erreur d'exécution" #: libreplan-webapp/src/main/webapp/common/configuration.zul:467 msgid "Role property" @@ -1673,7 +1673,7 @@ msgid "Estimations" msgstr "Estimations" #: libreplan-webapp/src/main/webapp/orders/_synchronizationInfo.zul:20 -msgid "LibrePlan: Synchronization info" +msgid "TASKPM: Synchronization info" msgstr "LibrePlan : Information de synchronisation" #: libreplan-webapp/src/main/webapp/common/_editJobScheduling.zul:152 @@ -1957,8 +1957,8 @@ msgid "Change password" msgstr "Modifier le mot de passe" #: libreplan-webapp/src/main/webapp/reports/schedulingProgressPerOrderReport.zul:21 -msgid "LibrePlan: Work And Progress Per Project" -msgstr "LibrePlan: Travail et avancement par projet" +msgid "TASKPM: Work And Progress Per Project" +msgstr "TASKPM: Travail et avancement par projet" #: org/libreplan/importers/ExportTimesheetsToTim.java:224 msgid "Registration response with empty refs" @@ -2068,16 +2068,16 @@ msgid "All changes will be lost. Are you sure?" msgstr "Toutes les modifications seront perdues. Êtes-vous sûr ?" #: libreplan-webapp/src/main/webapp/common/configuration.zul:23 -msgid "LibrePlan: Main Settings" -msgstr "LibrePlan: Réglages principaux" +msgid "TASKPM: Main Settings" +msgstr "TASKPM: Réglages principaux" #: org/libreplan/web/users/dashboard/UserDashboardController.java:71 msgid "Expense sheet \"{0}\" saved" msgstr "Feuille de dépense \"{0}\" sauvegardée" #: libreplan-webapp/src/main/webapp/workreports/workReportTypes.zul:23 -msgid "LibrePlan: Timesheets Templates" -msgstr "LibrePlan: Canevas de feuilles de temps" +msgid "TASKPM: Timesheets Templates" +msgstr "TASKPM: Canevas de feuilles de temps" #: org/libreplan/web/planner/allocation/FormBinder.java:640 msgid "{0} already assigned to resource allocation list" @@ -2212,7 +2212,7 @@ msgstr "Marges horaires" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:185 msgid "" -"Giving a gift today means LibrePlan continues to remain available and in " +"Giving a gift today means TASKPM continues to remain available and in " "active development tomorrow!" msgstr "" "Faire un donation aujourd'hui signifie que LibrePlan continue à être " @@ -2528,8 +2528,8 @@ msgid "At least one {0} sequence is needed" msgstr "Au moins une séquence {0} est nécessaire" #: libreplan-webapp/src/main/webapp/resources/worker/virtualWorkers.zul:22 -msgid "LibrePlan: Virtual Worker Groups" -msgstr "LibrePlan: Groupes de travailleurs virtuels" +msgid "TASKPM: Virtual Worker Groups" +msgstr "TASKPM: Groupes de travailleurs virtuels" #: libreplan-webapp/src/main/webapp/resources/worker/_localizations.zul:64 msgid "Log" @@ -2594,8 +2594,8 @@ msgid " (%d tasks)" msgstr "(%d tâches)" #: libreplan-webapp/src/main/webapp/subcontract/reportAdvances.zul:22 -msgid "LibrePlan: Send To Customers" -msgstr "LibrePlan: Envoyer aux clients" +msgid "TASKPM: Send To Customers" +msgstr "TASKPM: Envoyer aux clients" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:138 #: libreplan-webapp/src/main/webapp/common/configuration.zul:93 @@ -2691,8 +2691,8 @@ msgid "Date Resolved" msgstr "Date Résolue" #: libreplan-webapp/src/main/webapp/reports/completedEstimatedHoursPerTask.zul:21 -msgid "LibrePlan: Estimated/Planned Hours Per Task" -msgstr "LibrePlan: heures estimées/planifiées par tâche" +msgid "TASKPM: Estimated/Planned Hours Per Task" +msgstr "TASKPM: heures estimées/planifiées par tâche" #: org/libreplan/web/orders/DynamicDatebox.java:152 msgid "Date format is wrong. Please, use the following format: {0}" @@ -2791,8 +2791,8 @@ msgid "Manual allocation" msgstr "Affectation manuelle" #: libreplan-webapp/src/main/webapp/costcategories/costCategory.zul:23 -msgid "LibrePlan: Cost Categories" -msgstr "LibrePlan: Catégories de coût" +msgid "TASKPM: Cost Categories" +msgstr "TASKPM: Catégories de coût" #: libreplan-business/src/main/java/org/libreplan/business/advance/entities/AdvanceMeasurement.java:100 #: libreplan-business/src/main/java/org/libreplan/business/workreports/valueobjects/DescriptionValue.java:80 @@ -3451,8 +3451,8 @@ msgid "Progress Types" msgstr "Types d'avancement" #: libreplan-webapp/src/main/webapp/scenarios/scenarios.zul:23 -msgid "LibrePlan: Scenarios Management" -msgstr "LibrePlan: Gestion des scénarios" +msgid "TASKPM: Scenarios Management" +msgstr "TASKPM: Gestion des scénarios" #: libreplan-webapp/src/main/webapp/templates/_historicalStatistics.zul:55 msgid "Maximum/minimum of estimated hours" @@ -3491,8 +3491,8 @@ msgid "Add From Template" msgstr "Ajouter depuis le modèle" #: libreplan-webapp/src/main/webapp/qualityforms/qualityForms.zul:22 -msgid "LibrePlan: Quality Forms" -msgstr "LibrePlan: formulaires qualité" +msgid "TASKPM: Quality Forms" +msgstr "TASKPM: formulaires qualité" #: org/libreplan/importers/ExportTimesheetsToTim.java:185 msgid "No work reportlines are found for order: \"{0}\"" @@ -3525,8 +3525,8 @@ msgstr "" #: libreplan-webapp/src/main/webapp/planner/montecarlo_function.zul:22 #: libreplan-webapp/src/main/webapp/planner/resources_use.zul:22 #: libreplan-webapp/src/main/webapp/planner/stretches_function.zul:22 -msgid "LibrePlan: Scheduling" -msgstr "LibrePlan: Prévision" +msgid "TASKPM: Scheduling" +msgstr "TASKPM: Prévision" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:84 msgid "Application settings" @@ -4182,8 +4182,8 @@ msgid "Issue log" msgstr "Journal des problèmes" #: libreplan-webapp/src/main/webapp/subcontract/customerCommunications.zul:20 -msgid "LibrePlan: Received From Customers" -msgstr "LibrePlan: Reçu des clients" +msgid "TASKPM: Received From Customers" +msgstr "TASKPM: Reçu des clients" #: libreplan-webapp/src/main/webapp/common/eventError.zul:26 #: libreplan-webapp/src/main/webapp/common/error.zul:31 @@ -4199,12 +4199,12 @@ msgid "Already exists other label with the same name" msgstr "Il existe déjà d'autres libellés possédant le même nom" #: libreplan-webapp/src/main/webapp/scenarios/transferOrders.zul:23 -msgid "LibrePlan: Transfer Projects Between Scenarios" -msgstr "LibrePlan: transfert des projets entre les scénarios" +msgid "TASKPM: Transfer Projects Between Scenarios" +msgstr "TASKPM: transfert des projets entre les scénarios" #: libreplan-webapp/src/main/webapp/expensesheet/expenseSheet.zul:21 -msgid "LibrePlan: Expenses" -msgstr "LibrePlan: Dépenses" +msgid "TASKPM: Expenses" +msgstr "TASKPM: Dépenses" #: libreplan-webapp/src/main/webapp/orders/_edition.zul:302 #: libreplan-webapp/src/main/webapp/orders/_edition.zul:338 @@ -4215,7 +4215,7 @@ msgid "Communication date" msgstr "Date de communication" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:207 -msgid "is not supported for its use with LibrePlan." +msgid "is not supported for its use with TASKPM." msgstr "n'est pas géré pour cette utilisation avec LibrePlan." #: libreplan-webapp/src/main/webapp/subcontract/customerCommunications.zul:44 @@ -4268,8 +4268,8 @@ msgstr "" "les noms d'étiquette doivent être uniques à l'intérieur d'un type d'étiquette" #: libreplan-webapp/src/main/webapp/myaccount/personalTimesheet.zul:21 -msgid "LibrePlan: Personal timesheet" -msgstr "LibrePlan: feuille de temps personnelle" +msgid "TASKPM: Personal timesheet" +msgstr "TASKPM: feuille de temps personnelle" #: org/libreplan/importers/ExportTimesheetsToTim.java:130 msgid "Order should not be empty" @@ -4334,7 +4334,7 @@ msgid "Manual" msgstr "Manuel" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/ConfigurationRolesLDAP.java:56 -msgid "LibrePlan role not specified" +msgid "TASKPM role not specified" msgstr "Rôle LibrePlan non indiqué" #: org/libreplan/web/subcontract/ReportAdvancesModel.java:225 @@ -4470,8 +4470,8 @@ msgid "Personal timesheet \"{0}\" saved" msgstr "Feuille de temps personnelle \"{0}\" enregistrée" #: libreplan-webapp/src/main/webapp/unittypes/unitTypes.zul:21 -msgid "LibrePlan: Material Units" -msgstr "LibrePlan: Unités de matériel" +msgid "TASKPM: Material Units" +msgstr "TASKPM: Unités de matériel" #: libreplan-webapp/src/main/webapp/orders/_editOrderElement.zul:39 #: libreplan-webapp/src/main/webapp/templates/_editTemplateWindow.zul:42 @@ -4600,7 +4600,7 @@ msgid "Concept" msgstr "Concept" #: libreplan-webapp/src/main/webapp/common/configuration.zul:147 -msgid "Enable/Disable warning about new LibrePlan versions available" +msgid "Enable/Disable warning about new TASKPM versions available" msgstr "" "Activer/Désactiver l'avertissement relatif aux nouvelles versions de " "LibrePlan disponibles" @@ -4633,8 +4633,8 @@ msgid "Delete Template element" msgstr "Supprime un élément du canevas" #: libreplan-webapp/src/main/webapp/calendars/calendars.zul:22 -msgid "LibrePlan: Calendars" -msgstr "LibrePlan:Calendrier" +msgid "TASKPM: Calendars" +msgstr "TASKPM:Calendrier" #: org/libreplan/web/limitingresources/QueueComponent.java:504 msgid "Unassign" @@ -4947,8 +4947,8 @@ msgid "Stacktrace" msgstr "Traces de la pile" #: libreplan-webapp/src/main/webapp/planner/advance_allocation.zul:22 -msgid "LibrePlan: Advanced allocation" -msgstr "LibrePlan: Allocation avancée" +msgid "TASKPM: Advanced allocation" +msgstr "TASKPM: Allocation avancée" #: libreplan-webapp/src/main/webapp/advance/_listAdvanceTypes.zul:22 msgid "Progress Types List" @@ -4972,8 +4972,8 @@ msgid "Show all" msgstr "Montrer tout" #: libreplan-webapp/src/main/webapp/email/email_templates.zul:21 -msgid "LibrePlan: Email Templates" -msgstr "LibrePlan: Modèles d'e-mail" +msgid "TASKPM: Email Templates" +msgstr "TASKPM: Modèles d'e-mail" #: libreplan-business/src/main/java/org/libreplan/business/common/IntegrationEntity.java:47 msgid "code not specified" @@ -5282,8 +5282,8 @@ msgid "Virtual worker group name must be unique" msgstr "Le nom de groupe des travailleurs virtuels doit être unique" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerInAMonthReport.zul:21 -msgid "LibrePlan: Total Worked Hours By Resource In A Month" -msgstr "LibrePlan: Total d'heures travaillées par ressource en un mois" +msgid "TASKPM: Total Worked Hours By Resource In A Month" +msgstr "TASKPM: Total d'heures travaillées par ressource en un mois" #: libreplan-webapp/src/main/webapp/common/configuration.zul:307 #: libreplan-webapp/src/main/webapp/advance/_editAdvanceTypes.zul:47 @@ -5506,8 +5506,8 @@ msgid "Task Status" msgstr "Etat de la tâche" #: libreplan-webapp/src/main/webapp/orders/imports/projectImport.zul:21 -msgid "LibrePlan: Import Project" -msgstr "LibrePlan: Import de projet" +msgid "TASKPM: Import Project" +msgstr "TASKPM: Import de projet" #: org/libreplan/web/planner/chart/EarnedValueChartFiller.java:250 msgid "Budget At Completion" @@ -5640,8 +5640,8 @@ msgid "Percentage" msgstr "Pourcentage" #: libreplan-webapp/src/main/webapp/profiles/profiles.zul:23 -msgid "LibrePlan: Profiles" -msgstr "LibrePlan: Profils" +msgid "TASKPM: Profiles" +msgstr "TASKPM: Profils" #: org/libreplan/web/orders/ManageOrderElementAdvancesController.java:673 msgid "Calculated progress can not be modified" @@ -5773,8 +5773,8 @@ msgid "From today" msgstr "A partir d'aujourd'hui" #: libreplan-webapp/src/main/webapp/common/jobScheduling.zul:20 -msgid "LibrePlan: Job Scheduling" -msgstr "LibrePlan: programmation des travaux" +msgid "TASKPM: Job Scheduling" +msgstr "TASKPM: programmation des travaux" #: org/libreplan/web/users/dashboard/PersonalTimesheetDTO.java:125 msgid "Week {0}" @@ -5912,8 +5912,8 @@ msgid "Project name" msgstr "Nom du projet" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:22 -msgid "LibrePlan: Settings" -msgstr "LibrePlan: Configuration" +msgid "TASKPM: Settings" +msgstr "TASKPM: Configuration" #: libreplan-webapp/src/main/webapp/excetiondays/_listExceptionDayTypes.zul:32 #: libreplan-webapp/src/main/webapp/excetiondays/_editExceptionDayType.zul:62 @@ -5981,8 +5981,8 @@ msgid "Specific Allocations" msgstr "Allocations spécifiques" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:20 -msgid "LibrePlan: Received From Subcontractors" -msgstr "LibrePlan: Reçu des sous-traitants a" +msgid "TASKPM: Received From Subcontractors" +msgstr "TASKPM: Reçu des sous-traitants a" #: org/libreplan/web/orders/OrderCRUDController.java:1057 #: org/libreplan/web/templates/OrderTemplatesController.java:369 @@ -6061,8 +6061,8 @@ msgid "Confirm deleting this file. Are you sure?" msgstr "Êtes-vous sûr de vouloir supprimer ce fichier ?" #: libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul:22 -msgid "LibrePlan: Send To Subcontractors" -msgstr "LibrePlan: Envoyer aux sous-traitants" +msgid "TASKPM: Send To Subcontractors" +msgstr "TASKPM: Envoyer aux sous-traitants" #: org/libreplan/web/planner/allocation/AllocationRow.java:446 msgid "Only {0} resources per day were achieved for current allocation" @@ -6471,8 +6471,8 @@ msgid "New password" msgstr "Nouveau mot de passe" #: libreplan-webapp/src/main/webapp/excetiondays/exceptionDays.zul:22 -msgid "LibrePlan: Calendar Exception Days" -msgstr "LibrePlan: Jours du calendrier exceptionnels" +msgid "TASKPM: Calendar Exception Days" +msgstr "TASKPM: Jours du calendrier exceptionnels" #: libreplan-webapp/src/main/webapp/myaccount/personalTimesheet.zul:95 msgid "Total other" @@ -6488,8 +6488,8 @@ msgid "Number of digits" msgstr "Nombre de chiffres" #: libreplan-webapp/src/main/webapp/orders/_timImpExpInfo.zul:20 -msgid "LibrePlan: Tim import export info" -msgstr "LibrePlan: information d'import export Tim" +msgid "TASKPM: Tim import export info" +msgstr "TASKPM: information d'import export Tim" #: org/libreplan/web/orders/JiraSynchronizationController.java:195 msgid "No JIRA issues to import" @@ -6561,8 +6561,8 @@ msgid "Schedule from start to deadline" msgstr "Prévision du début à l'échéance" #: libreplan-webapp/src/main/webapp/myaccount/changePassword.zul:21 -msgid "LibrePlan: Change password" -msgstr "LibrePlan: modifier le mot de passe" +msgid "TASKPM: Change password" +msgstr "TASKPM: modifier le mot de passe" #: libreplan-business/src/main/java/org/libreplan/business/users/entities/Profile.java:89 msgid "profile name is already being used by another profile" @@ -6839,8 +6839,8 @@ msgid "Select criteria or resources" msgstr "Choisir les critères ou les ressources" #: libreplan-webapp/src/main/webapp/common/accessForbidden.zul:20 -msgid "LibrePlan: Access Forbidden" -msgstr "LibrePlan: accès interdit" +msgid "TASKPM: Access Forbidden" +msgstr "TASKPM: accès interdit" #: libreplan-business/src/main/java/org/libreplan/business/advance/entities/AdvanceType.java:127 msgid "unit name not specified" @@ -6990,8 +6990,8 @@ msgid "Some allocations needed" msgstr "Certaines allocations sont nécessaires" #: libreplan-webapp/src/main/webapp/myaccount/userDashboard.zul:21 -msgid "LibrePlan: My Dashboard" -msgstr "LibrePlan: Mon tableau de bord" +msgid "TASKPM: My Dashboard" +msgstr "TASKPM: Mon tableau de bord" #: org/libreplan/web/tree/TreeComponent.java:58 #: org/libreplan/web/workreports/WorkReportCRUDController.java:902 @@ -7193,8 +7193,8 @@ msgid "Number of tasks" msgstr "Nombre de tâches" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerReport.zul:21 -msgid "LibrePlan: Hours Worked Per Resource" -msgstr "LibrePlan: Heures travaillées par ressource" +msgid "TASKPM: Hours Worked Per Resource" +msgstr "TASKPM: Heures travaillées par ressource" #: libreplan-webapp/src/main/webapp/orders/_listOrderElementTaskQualityForms.zul:50 msgid "Task quality form name" @@ -7321,8 +7321,8 @@ msgid "OUTSOURCED" msgstr "EXTERNALISE" #: libreplan-webapp/src/main/webapp/reports/projectStatusReport.zul:20 -msgid "LibrePlan: Project Status Report" -msgstr "LibrePlan: Rapport d'état de projet" +msgid "TASKPM: Project Status Report" +msgstr "TASKPM: Rapport d'état de projet" #: libreplan-webapp/src/main/webapp/calendars/_edition.zul:140 msgid "Activation periods" @@ -7469,8 +7469,8 @@ msgid "Select the elements to import into LibrePlan" msgstr "Choisir les éléments pour importer dans LibrePlan" #: libreplan-webapp/src/main/webapp/advance/advanceTypes.zul:22 -msgid "LibrePlan: Progress Types" -msgstr "LibrePlan: Types d'avancement" +msgid "TASKPM: Progress Types" +msgstr "TASKPM: Types d'avancement" #: org/libreplan/web/workreports/WorkReportCRUDController.java:886 #: libreplan-webapp/src/main/webapp/orders/_listOrderElementHours.zul:33 @@ -7569,7 +7569,7 @@ msgid "Calculated progress cannot be removed" msgstr "L'avancement calculé ne peut pas être supprimé" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:184 -msgid "without you, LibrePlan can’t exist." +msgid "without you, TASKPM can’t exist." msgstr "sans vous, LibrePlan ne peut pas exister." #: org/libreplan/web/users/UserCRUDController.java:98 @@ -7663,8 +7663,8 @@ msgid "Name" msgstr "Nom" #: libreplan-webapp/src/main/webapp/typeofworkhours/typeOfWorkHours.zul:23 -msgid "LibrePlan: Hours Types" -msgstr "LibrePlan: Types d'heures" +msgid "TASKPM: Hours Types" +msgstr "TASKPM: Types d'heures" #: libreplan-webapp/src/main/webapp/calendars/_edition.zul:303 msgid "Expiry date" @@ -7905,8 +7905,8 @@ msgid "Required materials" msgstr "Matériels requis" #: libreplan-webapp/src/main/webapp/reports/workingProgressPerTaskReport.zul:21 -msgid "LibrePlan: Work And Progress Per Task" -msgstr "LibrePlan: Travail et avancement par tâche" +msgid "TASKPM: Work And Progress Per Task" +msgstr "TASKPM: Travail et avancement par tâche" #: libreplan-webapp/src/main/webapp/resources/_criterions.zul:36 msgid "Show only current satisfied criteria" @@ -8010,8 +8010,8 @@ msgid "List of materials for category: {0}" msgstr "Liste des matériels pour la catégorie: {0}" #: libreplan-webapp/src/main/webapp/resources/criterions/criterions.zul:24 -msgid "LibrePlan: Criteria" -msgstr "LibrePlan: Critère" +msgid "TASKPM: Criteria" +msgstr "TASKPM: Critère" #: org/libreplan/web/resources/worker/WorkerCRUDController.java:972 msgid "Do you want to remove bound user \"{0}\" too?" @@ -8230,8 +8230,8 @@ msgid "connector name not specified" msgstr "nom de connecteur non indiqué" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:21 -msgid "LibrePlan: User access" -msgstr "LibrePlan: accès utilisateur" +msgid "TASKPM: User access" +msgstr "TASKPM: accès utilisateur" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:156 msgid "Label filter" @@ -8454,7 +8454,7 @@ msgstr "prix unitaire non indiqué" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:180 msgid "" -"Did you know LibrePlan is funded only by donations, from people like you?" +"Did you know TASKPM is funded only by donations, from people like you?" msgstr "" "Saviez-vous que LibrePlan est financé uniquement par des dons, de personnes " "comme vous ?" @@ -8675,8 +8675,8 @@ msgid "task end date not specified" msgstr "date de fin de tâche non indiquée" #: libreplan-webapp/src/main/webapp/resources/worker/worker.zul:22 -msgid "LibrePlan: Workers" -msgstr "LibrePlan: Participants" +msgid "TASKPM: Workers" +msgstr "TASKPM: Participants" #: libreplan-webapp/src/main/webapp/dashboard/_dashboardfororder.zul:131 msgid "No tasks available yet" @@ -8830,8 +8830,8 @@ msgid "Total hours" msgstr "Total des heures" #: libreplan-webapp/src/main/webapp/users/users.zul:23 -msgid "LibrePlan: User Accounts" -msgstr "LibrePlan: Comptes utilisateurs" +msgid "TASKPM: User Accounts" +msgstr "TASKPM: Comptes utilisateurs" #: libreplan-business/src/main/java/org/libreplan/business/expensesheet/entities/ExpenseSheet.java:109 msgid "total must be greater or equal than 0" @@ -8894,8 +8894,8 @@ msgid "Work description" msgstr "Description d'un travail" #: libreplan-webapp/src/main/webapp/materials/materials.zul:21 -msgid "LibrePlan: Materials" -msgstr "LibrePlan: Matériel" +msgid "TASKPM: Materials" +msgstr "TASKPM: Matériel" #: libreplan-webapp/src/main/webapp/common/layout/template.zul:88 msgid "Change scenario" @@ -9229,8 +9229,8 @@ msgid "Entity type" msgstr "Type d'entité" #: libreplan-webapp/src/main/webapp/labels/labelTypes.zul:21 -msgid "LibrePlan: Labels" -msgstr "LibrePlan: Libellés" +msgid "TASKPM: Labels" +msgstr "TASKPM: Libellés" #: libreplan-webapp/src/main/webapp/workreports/workReportQuery.zul:79 msgid "type" @@ -9593,8 +9593,8 @@ msgid "Work amount" msgstr "Volume de travail" #: libreplan-webapp/src/main/webapp/reports/orderCostsPerResource.zul:21 -msgid "LibrePlan: Project Costs" -msgstr "LibrePlan: Coûts des projets" +msgid "TASKPM: Project Costs" +msgstr "TASKPM: Coûts des projets" #: libreplan-business/src/main/java/org/libreplan/business/costcategories/entities/ResourcesCostCategoryAssignment.java:145 msgid "cost assignment with end date before start date" diff --git a/libreplan-webapp/src/main/resources/i18n/gl.po b/libreplan-webapp/src/main/resources/i18n/gl.po index 54d8ee9c6..7ed1b22c2 100644 --- a/libreplan-webapp/src/main/resources/i18n/gl.po +++ b/libreplan-webapp/src/main/resources/i18n/gl.po @@ -11,7 +11,7 @@ # Manuel Rego , 2012,2016 msgid "" msgstr "" -"Project-Id-Version: LibrePlan\n" +"Project-Id-Version: TASKPM\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-10-10 17:54+0200\n" "PO-Revision-Date: 2016-08-29 08:24+0000\n" @@ -24,8 +24,8 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: libreplan-webapp/src/main/webapp/qualityforms/qualityForms.zul:22 -msgid "LibrePlan: Quality Forms" -msgstr "LibrePlan: Formularios de calidade" +msgid "TASKPM: Quality Forms" +msgstr "TASKPM: Formularios de calidade" #: libreplan-webapp/src/main/webapp/orders/_projectDetails.zul:58 #: libreplan-webapp/src/main/webapp/orders/_list.zul:30 @@ -49,8 +49,8 @@ msgid "Overtime" msgstr "Esforzo extra" #: libreplan-webapp/src/main/webapp/excetiondays/exceptionDays.zul:22 -msgid "LibrePlan: Calendar Exception Days" -msgstr "LibrePlan: Días excepcionais do calendario" +msgid "TASKPM: Calendar Exception Days" +msgstr "TASKPM: Días excepcionais do calendario" #: org/libreplan/web/calendars/BaseCalendarModel.java:488 #: org/libreplan/web/calendars/BaseCalendarModel.java:520 @@ -139,8 +139,8 @@ msgid "Subcategory names must be unique." msgstr "Os nomes das subcategorías deben ser únicos." #: libreplan-webapp/src/main/webapp/reports/timeLineMaterialReport.zul:21 -msgid "LibrePlan: Materials Needed At Date" -msgstr "LibrePlan: Necesidades de materiais en data" +msgid "TASKPM: Materials Needed At Date" +msgstr "TASKPM: Necesidades de materiais en data" #: org/libreplan/web/resources/machine/MachineCRUDController.java:630 msgid "Machines limit reached" @@ -486,8 +486,8 @@ msgid "please, select a project" msgstr "por favor, seleccione un proxecto" #: libreplan-webapp/src/main/webapp/reports/projectStatusReport.zul:20 -msgid "LibrePlan: Project Status Report" -msgstr "LibrePlan: Informe do estado do proxecto" +msgid "TASKPM: Project Status Report" +msgstr "TASKPM: Informe do estado do proxecto" #: org/libreplan/web/calendars/BaseCalendarEditionController.java:627 #: org/libreplan/web/calendars/BaseCalendarEditionController.java:1263 @@ -548,8 +548,8 @@ msgid "Exit session" msgstr "Saír da sesión" #: libreplan-webapp/src/main/webapp/orders/_timImpExpInfo.zul:20 -msgid "LibrePlan: Tim import export info" -msgstr "LibrePlan: Información de exportación a Tim" +msgid "TASKPM: Tim import export info" +msgstr "TASKPM: Información de exportación a Tim" #: org/libreplan/web/planner/allocation/FormBinder.java:671 msgid "resources per day cannot be empty or less than zero" @@ -662,8 +662,8 @@ msgid "Companies List" msgstr "Lista de empresas" #: libreplan-webapp/src/main/webapp/resources/worker/virtualWorkers.zul:22 -msgid "LibrePlan: Virtual Worker Groups" -msgstr "LibrePlan: Grupos de traballadores virtuais" +msgid "TASKPM: Virtual Worker Groups" +msgstr "TASKPM: Grupos de traballadores virtuais" #: org/libreplan/web/planner/tabs/MonteCarloTabCreator.java:51 #: org/libreplan/web/planner/tabs/MonteCarloTabCreator.java:159 @@ -676,8 +676,8 @@ msgid "Cost category" msgstr "Categoría de custo" #: libreplan-webapp/src/main/webapp/myaccount/personalTimesheet.zul:21 -msgid "LibrePlan: Personal timesheet" -msgstr "LibrePlan: Parte de horas persoal" +msgid "TASKPM: Personal timesheet" +msgstr "TASKPM: Parte de horas persoal" #: libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReportLine.java:264 msgid "clock finish cannot be empty if number of hours is calcultate by clock" @@ -703,7 +703,7 @@ msgid "Unsaved changes will be lost. Are you sure?" msgstr "Perderánse os cambios sen gardar. Está seguro?" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/ConfigurationRolesLDAP.java:56 -msgid "LibrePlan role not specified" +msgid "TASKPM role not specified" msgstr "Rol LibrePlan non especificado" #: libreplan-webapp/src/main/webapp/scenarios/transferOrders.zul:39 @@ -719,8 +719,8 @@ msgid "Move" msgstr "Mover" #: libreplan-webapp/src/main/webapp/orders/_jiraSyncInfo.zul:20 -msgid "LibrePlan: JIRA synchronization info" -msgstr "LibrePlan: Información de sincronización Jira" +msgid "TASKPM: JIRA synchronization info" +msgstr "TASKPM: Información de sincronización Jira" #: org/libreplan/web/common/components/finders/OrderFilterEnum.java:31 #: org/libreplan/web/common/components/finders/TaskGroupFilterEnum.java:31 @@ -764,8 +764,8 @@ msgid "Profiles List" msgstr "Listado de perfís" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:21 -msgid "LibrePlan: User access" -msgstr "LibrePlan: Acceso de usuarios" +msgid "TASKPM: User access" +msgstr "TASKPM: Acceso de usuarios" #: libreplan-business/src/main/java/org/libreplan/business/labels/entities/LabelType.java:158 msgid "label code is already being used" @@ -1543,7 +1543,7 @@ msgid "Violated deadline" msgstr "Data límite violada" #: libreplan-webapp/src/main/webapp/common/configuration.zul:126 -msgid "Enable/Disable warning about new LibrePlan versions available" +msgid "Enable/Disable warning about new TASKPM versions available" msgstr "Habilitar/Deshabilitar a advertencia sobre novas versións de LibrePlan dispoñibles" #: libreplan-business/src/main/java/org/libreplan/business/orders/entities/HoursGroup.java:186 @@ -1586,8 +1586,8 @@ msgid "Progress sent successfully" msgstr "O progreso enviouse con éxito" #: libreplan-webapp/src/main/webapp/myaccount/userDashboard.zul:21 -msgid "LibrePlan: My Dashboard" -msgstr "LibrePlan: O meu panel de control" +msgid "TASKPM: My Dashboard" +msgstr "TASKPM: O meu panel de control" #: libreplan-webapp/src/main/webapp/calendars/_edition.zul:131 msgid "Work week" @@ -1607,8 +1607,8 @@ msgstr "Campos de tipo de etiqueta" #: libreplan-webapp/src/main/webapp/common/event_error.zul:22 #: libreplan-webapp/src/main/webapp/common/error.zul:21 -msgid "LibrePlan: Runtime Error" -msgstr "LibrePlan: Erro de execución" +msgid "TASKPM: Runtime Error" +msgstr "TASKPM: Erro de execución" #: org/libreplan/web/planner/tabs/PlanningTabCreator.java:152 #: libreplan-webapp/src/main/webapp/common/components/schedulingStateToggler.zul:29 @@ -1655,7 +1655,7 @@ msgid "Criterion Types" msgstr "Tipos de criterio" #: libreplan-webapp/src/main/webapp/common/configuration.zul:125 -msgid "Show a notification when new LibrePlan versions are released" +msgid "Show a notification when new TASKPM versions are released" msgstr "Mostrar unha notificación cando unha nova versión de LibrePlan sexa publicada" #: org/libreplan/web/workreports/WorkReportTypeCRUDController.java:900 @@ -1724,8 +1724,8 @@ msgid "units not specified" msgstr "unidades non especificadas" #: libreplan-webapp/src/main/webapp/advance/advanceTypes.zul:22 -msgid "LibrePlan: Progress Types" -msgstr "LibrePlan: Tipos de progreso" +msgid "TASKPM: Progress Types" +msgstr "TASKPM: Tipos de progreso" #: libreplan-webapp/src/main/webapp/planner/montecarlo_function.zul:36 msgid "MonteCarlo chart" @@ -1932,8 +1932,8 @@ msgid "percentage should be between 1 and 100" msgstr "a porcentaxe debería estar entre 1 e 100" #: libreplan-webapp/src/main/webapp/workreports/workReportQuery.zul:23 -msgid "LibrePlan: Timesheet Lines List" -msgstr "LibrePlan: Lista de liñas de partes de traballo" +msgid "TASKPM: Timesheet Lines List" +msgstr "TASKPM: Lista de liñas de partes de traballo" #: org/libreplan/web/labels/LabelTypeModel.java:269 msgid "Already exists other label with the same name" @@ -2060,8 +2060,8 @@ msgid "You have exceeded the maximum limit of users" msgstr "Superou o límite máximo de usuarios" #: libreplan-webapp/src/main/webapp/reports/schedulingProgressPerOrderReport.zul:21 -msgid "LibrePlan: Work And Progress Per Project" -msgstr "LibrePlan: Traballo e progreso por proxecto" +msgid "TASKPM: Work And Progress Per Project" +msgstr "TASKPM: Traballo e progreso por proxecto" #: libreplan-webapp/src/main/webapp/orders/_orderElementTreeFilter.zul:42 #: libreplan-webapp/src/main/webapp/orders/_orderFilter.zul:30 @@ -2125,8 +2125,8 @@ msgid "No roster-exceptions found in the response" msgstr "Non se atoparon excepción ás listas na resposta" #: libreplan-webapp/src/main/webapp/calendars/calendars.zul:22 -msgid "LibrePlan: Calendars" -msgstr "LibrePlan: Calendarios" +msgid "TASKPM: Calendars" +msgstr "TASKPM: Calendarios" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/EntitySequence.java:192 msgid "entity name not specified" @@ -2150,8 +2150,8 @@ msgid "Subcontracting date" msgstr "Data de subcontratación" #: libreplan-webapp/src/main/webapp/common/job_scheduling.zul:20 -msgid "LibrePlan: Job Scheduling" -msgstr "LibrePlan: Planificación de traballo" +msgid "TASKPM: Job Scheduling" +msgstr "TASKPM: Planificación de traballo" #: org/libreplan/importers/ImportRosterFromTim.java:182 msgid "No valid response for department \"{0}\"" @@ -2303,8 +2303,8 @@ msgid "Filter timesheet lines by" msgstr "Filtrar as liñas do parte de traballo por" #: libreplan-webapp/src/main/webapp/unittypes/unitTypes.zul:21 -msgid "LibrePlan: Material Units" -msgstr "LibrePlan: Unidades de materiais" +msgid "TASKPM: Material Units" +msgstr "TASKPM: Unidades de materiais" #: org/libreplan/web/templates/TemplatesTreeComponent.java:64 msgid "New Template element" @@ -2457,8 +2457,8 @@ msgid "Maximum/minimum of worked hours in finished applications" msgstr "Máximo/mínimo das horas traballadas nas aplicacións finalizadas" #: libreplan-webapp/src/main/webapp/labels/labelTypes.zul:21 -msgid "LibrePlan: Labels" -msgstr "LibrePlan: Etiquetas" +msgid "TASKPM: Labels" +msgstr "TASKPM: Etiquetas" #: libreplan-webapp/src/main/webapp/resources/worker/_edition.zul:31 msgid "Personal data" @@ -2508,8 +2508,8 @@ msgid "Observations" msgstr "Observacións" #: libreplan-webapp/src/main/webapp/common/page_not_found.zul:22 -msgid "LibrePlan: Page not found" -msgstr "LibrePlan: Páxina non atopada" +msgid "TASKPM: Page not found" +msgstr "TASKPM: Páxina non atopada" #: libreplan-webapp/src/main/webapp/orders/_edition.zul:251 #: libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul:55 @@ -2600,8 +2600,8 @@ msgid "Output format:" msgstr "Formato de saída:" #: libreplan-webapp/src/main/webapp/reports/workingProgressPerTaskReport.zul:21 -msgid "LibrePlan: Work And Progress Per Task" -msgstr "LibrePlan: Traballo e progreso por tarefa" +msgid "TASKPM: Work And Progress Per Task" +msgstr "TASKPM: Traballo e progreso por tarefa" #: org/libreplan/web/advance/AdvanceTypeCRUDController.java:81 msgid "" @@ -2692,8 +2692,8 @@ msgid "Label type already assigned" msgstr "Tipo de etiqueta xa asignado" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:20 -msgid "LibrePlan: Received From Subcontractors" -msgstr "LibrePlan: Recibido de subcontratistas" +msgid "TASKPM: Received From Subcontractors" +msgstr "TASKPM: Recibido de subcontratistas" #: libreplan-webapp/src/main/webapp/common/configuration.zul:58 msgid "Company code" @@ -2913,8 +2913,8 @@ msgid "label type: the timesheet have not assigned this label type" msgstr "o parte de traballo non ten asignado este tipo de etiqueta" #: libreplan-webapp/src/main/webapp/typeofworkhours/typeOfWorkHours.zul:23 -msgid "LibrePlan: Hours Types" -msgstr "LibrePlan: Tipos de horas" +msgid "TASKPM: Hours Types" +msgstr "TASKPM: Tipos de horas" #: org/libreplan/web/common/CustomMenuController.java:264 #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:109 @@ -2942,8 +2942,8 @@ msgid "Please try it again." msgstr "Por favor, volva a intentalo." #: libreplan-webapp/src/main/webapp/expensesheet/expenseSheet.zul:21 -msgid "LibrePlan: Expenses" -msgstr "LibrePlan: Gastos" +msgid "TASKPM: Expenses" +msgstr "TASKPM: Gastos" #: org/libreplan/web/tree/TreeController.java:1294 msgid "Modified" @@ -3003,8 +3003,8 @@ msgid "Date last progress measurement" msgstr "Data da última medida de progreso" #: libreplan-webapp/src/main/webapp/reports/completedEstimatedHoursPerTask.zul:21 -msgid "LibrePlan: Estimated/Planned Hours Per Task" -msgstr "LibrePlan: Horas estimadas/planificadas por tarefa" +msgid "TASKPM: Estimated/Planned Hours Per Task" +msgstr "TASKPM: Horas estimadas/planificadas por tarefa" #: libreplan-webapp/src/main/webapp/orders/_listOrderElementAuthorizations.zul:43 #: libreplan-webapp/src/main/webapp/orders/_listOrderElementAuthorizations.zul:67 @@ -3210,8 +3210,8 @@ msgid "Finished" msgstr "Finalizado" #: libreplan-webapp/src/main/webapp/planner/index.zul:22 -msgid "LibrePlan: Planning" -msgstr "LibrePlan: Planificación" +msgid "TASKPM: Planning" +msgstr "TASKPM: Planificación" #: org/libreplan/web/scenarios/ScenarioModel.java:126 msgid "You cannot remove the current scenario" @@ -3283,8 +3283,8 @@ msgid "Property strategy" msgstr "Stratexia de propiedade" #: libreplan-webapp/src/main/webapp/reports/orderCostsPerResource.zul:21 -msgid "LibrePlan: Project Costs" -msgstr "LibrePlan: Custos do proxecto" +msgid "TASKPM: Project Costs" +msgstr "TASKPM: Custos do proxecto" #: org/libreplan/web/common/ConfigurationController.java:265 msgid "Changes saved" @@ -3319,8 +3319,8 @@ msgid "Calendar exception days" msgstr "Días excepcionais do calendario" #: libreplan-webapp/src/main/webapp/myaccount/changePassword.zul:21 -msgid "LibrePlan: Change password" -msgstr "LibrePlan: Cambiar o contrasinal" +msgid "TASKPM: Change password" +msgstr "TASKPM: Cambiar o contrasinal" #: org/libreplan/web/planner/allocation/GenericAllocationRow.java:55 msgid "Generic" @@ -3900,7 +3900,7 @@ msgstr "Tipo de comunicación" #: libreplan-webapp/src/main/webapp/common/page_not_found.zul:49 msgid "" -"If you reached this page from another page of LibrePlan please notify us in " +"If you reached this page from another page of TASKPM please notify us in " "order to fix it as soon as possible." msgstr "Se chegou a a está páxina dende outra páxina de LibrePlan por favor notifíquenolo para arranxalo o antes posible." @@ -3936,8 +3936,8 @@ msgid "Repeated Hours Group code {0} in Project {1}" msgstr "Código {0} de groupo de horas repetido no proxecto {1}" #: libreplan-webapp/src/main/webapp/resources/worker/worker.zul:22 -msgid "LibrePlan: Workers" -msgstr "LibrePlan: Traballadores" +msgid "TASKPM: Workers" +msgstr "TASKPM: Traballadores" #: org/libreplan/web/planner/allocation/AdvancedAllocationController.java:1573 msgid "Not configurable" @@ -4394,8 +4394,8 @@ msgid "" msgstr "os códigos das asignacións de categorías de custo deben ser únicos dentro dun recurso" #: libreplan-webapp/src/main/webapp/materials/materials.zul:21 -msgid "LibrePlan: Materials" -msgstr "LibrePlan: Materiais" +msgid "TASKPM: Materials" +msgstr "TASKPM: Materiais" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:104 msgid "User disabled" @@ -4641,8 +4641,8 @@ msgid "Stretches with Interpolation" msgstr "Tramos con interpolación" #: libreplan-webapp/src/main/webapp/workreports/workReportTypes.zul:23 -msgid "LibrePlan: Timesheets Templates" -msgstr "LibrePlan: Modelos de partes de traballo" +msgid "TASKPM: Timesheets Templates" +msgstr "TASKPM: Modelos de partes de traballo" #: org/libreplan/web/common/CustomMenuController.java:514 msgid "Reports" @@ -4672,8 +4672,8 @@ msgid "" msgstr "Nos pode borrar a tarefa \"{0}\" porque é o único fillo do seu pai e o seu pais ten imputadas horas ou gastos" #: libreplan-webapp/src/main/webapp/reports/workingArrangementsPerOrderReport.zul:21 -msgid "LibrePlan: Task Scheduling Status In Project" -msgstr "LibrePlan: Estado de planificación de proxecto" +msgid "TASKPM: Task Scheduling Status In Project" +msgstr "TASKPM: Estado de planificación de proxecto" #: libreplan-webapp/src/main/webapp/common/layout/_customMenu.zul:55 msgid "START" @@ -4908,8 +4908,8 @@ msgid "Reassigning type" msgstr "Tipo de reasignación" #: libreplan-webapp/src/main/webapp/common/configuration.zul:23 -msgid "LibrePlan: Main Settings" -msgstr "LibrePlan: Axustes principais" +msgid "TASKPM: Main Settings" +msgstr "TASKPM: Axustes principais" #: org/libreplan/web/common/CustomMenuController.java:419 #: libreplan-business/src/main/java/org/libreplan/business/users/entities/UserRole.java:69 @@ -5005,8 +5005,8 @@ msgid "Expand taskgroups" msgstr "Expandir grupos de tarefas" #: libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul:22 -msgid "LibrePlan: Send To Subcontractors" -msgstr "LibrePlan: Enviar a subcontratistas" +msgid "TASKPM: Send To Subcontractors" +msgstr "TASKPM: Enviar a subcontratistas" #: org/libreplan/web/limitingresources/ManualAllocationController.java:492 msgid "END" @@ -5144,16 +5144,16 @@ msgid "" msgstr "Por favor intente poñerse en contacto con calquera administrador para revisar os seus permisos en LibrePlan." #: libreplan-webapp/src/main/webapp/costcategories/costCategory.zul:23 -msgid "LibrePlan: Cost Categories" -msgstr "LibrePlan: Categorías de custo" +msgid "TASKPM: Cost Categories" +msgstr "TASKPM: Categorías de custo" #: libreplan-webapp/src/main/webapp/users/_editUser.zul:120 msgid "Unbound resource" msgstr "Desvincular recurso" #: libreplan-webapp/src/main/webapp/subcontract/customerCommunications.zul:20 -msgid "LibrePlan: Received From Customers" -msgstr "LibrePlan: Recibido de clientes" +msgid "TASKPM: Received From Customers" +msgstr "TASKPM: Recibido de clientes" #: libreplan-webapp/src/main/webapp/workreports/_listWorkReportTypes.zul:47 #: libreplan-webapp/src/main/webapp/workreports/workReport.zul:106 @@ -5896,8 +5896,8 @@ msgid "Calendar allocation" msgstr "Asignación de calendario" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerInAMonthReport.zul:21 -msgid "LibrePlan: Total Worked Hours By Resource In A Month" -msgstr "LibrePlan: Total horas traballadas por recurso nun mes" +msgid "TASKPM: Total Worked Hours By Resource In A Month" +msgstr "TASKPM: Total horas traballadas por recurso nun mes" #: org/libreplan/web/resources/criterion/CriterionAdminController.java:257 msgid "" @@ -5953,8 +5953,8 @@ msgid "" msgstr "Marca esta opción para enviar información aos desenvolvedores de LibrePlan para xerar estatísticas de uso" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:22 -msgid "LibrePlan: Settings" -msgstr "LibrePlan: Preferencias" +msgid "TASKPM: Settings" +msgstr "TASKPM: Preferencias" #: org/libreplan/web/common/CustomMenuController.java:345 #: libreplan-webapp/src/main/webapp/orders/_editOrderElement.zul:54 @@ -5985,8 +5985,8 @@ msgid "Change the password" msgstr "Cambiar o contrasinal" #: libreplan-webapp/src/main/webapp/common/access_forbidden.zul:20 -msgid "LibrePlan: Access Forbidden" -msgstr "LibrePlan: Acceso prohibido" +msgid "TASKPM: Access Forbidden" +msgstr "TASKPM: Acceso prohibido" #: libreplan-webapp/src/main/webapp/montecarlo/_montecarlo.zul:50 #: libreplan-webapp/src/main/webapp/montecarlo/_montecarlo.zul:52 @@ -6066,8 +6066,8 @@ msgid "No authorizations were added because you did not select any." msgstr "Non se engadiron autorizacións porque non se seleccionou ningunha." #: libreplan-webapp/src/main/webapp/users/users.zul:23 -msgid "LibrePlan: User Accounts" -msgstr "LibrePlan: Contas de usuario" +msgid "TASKPM: User Accounts" +msgstr "TASKPM: Contas de usuario" #: libreplan-webapp/src/main/webapp/templates/_assignedQualityForms.zul:30 msgid "Quality forms" @@ -6114,8 +6114,8 @@ msgid "Interacts with applications" msgstr "Interactúa con aplicacións" #: libreplan-webapp/src/main/webapp/planner/advance_allocation.zul:22 -msgid "LibrePlan: Advanced allocation" -msgstr "LibrePlan: Asignación avanzada" +msgid "TASKPM: Advanced allocation" +msgstr "TASKPM: Asignación avanzada" #: org/libreplan/importers/CalendarImporterMPXJ.java:365 msgid "Calendar name already in use" @@ -6240,8 +6240,8 @@ msgid "Standard Effort" msgstr "Esforzo estándar" #: libreplan-webapp/src/main/webapp/orders/imports/projectImport.zul:21 -msgid "LibrePlan: Import Project" -msgstr "LibrePlan: Importar proxecto" +msgid "TASKPM: Import Project" +msgstr "TASKPM: Importar proxecto" #: org/libreplan/web/resources/worker/WorkerCRUDController.java:730 msgid "Create Virtual Workers Group" @@ -6254,8 +6254,8 @@ msgid "" msgstr "Por favor utilice algún dos navegadores compatibles: Chrome, Firefox, Safari ou Epiphany." #: libreplan-webapp/src/main/webapp/scenarios/transferOrders.zul:23 -msgid "LibrePlan: Transfer Projects Between Scenarios" -msgstr "LibrePlan: Transferir proxectos entre escenarios" +msgid "TASKPM: Transfer Projects Between Scenarios" +msgstr "TASKPM: Transferir proxectos entre escenarios" #: org/libreplan/web/common/CustomMenuController.java:306 #: libreplan-business/src/main/java/org/libreplan/business/users/entities/UserRole.java:50 @@ -6491,8 +6491,8 @@ msgid "quality form item position not specified" msgstr "posición do ítem do formulario de calidade non especificada" #: libreplan-webapp/src/main/webapp/profiles/profiles.zul:23 -msgid "LibrePlan: Profiles" -msgstr "LibrePlan: Perfís" +msgid "TASKPM: Profiles" +msgstr "TASKPM: Perfís" #: libreplan-webapp/src/main/webapp/orders/_orderElementDetails.zul:38 msgid "Code " @@ -6503,8 +6503,8 @@ msgid "Budget At Completion" msgstr "Total custo planificado" #: libreplan-webapp/src/main/webapp/workreports/workReport.zul:23 -msgid "LibrePlan: Timesheets" -msgstr "LibrePlan: Partes de traballo" +msgid "TASKPM: Timesheets" +msgstr "TASKPM: Partes de traballo" #: libreplan-webapp/src/main/webapp/orders/_listHoursGroupCriterionRequirement.zul:22 msgid "Criteria Requirement" @@ -6898,8 +6898,8 @@ msgid "" msgstr "Data de inicio estimada para a tarefa (presione enter no cadro de texto para abrir o calendario ou escriba a data directamente)" #: libreplan-webapp/src/main/webapp/externalcompanies/externalcompanies.zul:23 -msgid "LibrePlan: Companies" -msgstr "LibrePlan: Empresas" +msgid "TASKPM: Companies" +msgstr "TASKPM: Empresas" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:53 msgid "Subcontrated task" @@ -6926,8 +6926,8 @@ msgid "Date must be inside visualization area" msgstr "A data debe estar dentro da área de visualización" #: libreplan-webapp/src/main/webapp/templates/templates.zul:22 -msgid "LibrePlan: Templates" -msgstr "LibrePlan: Modelos" +msgid "TASKPM: Templates" +msgstr "TASKPM: Modelos" #: libreplan-webapp/src/main/webapp/resourceload/resourceload.zul:22 #: libreplan-webapp/src/main/webapp/planner/taskpanels/_tabPanelLimitingResourceAllocation.zul:22 @@ -6936,12 +6936,12 @@ msgstr "LibrePlan: Modelos" #: libreplan-webapp/src/main/webapp/planner/montecarlo_function.zul:22 #: libreplan-webapp/src/main/webapp/planner/resources_use.zul:22 #: libreplan-webapp/src/main/webapp/planner/order.zul:22 -msgid "LibrePlan: Scheduling" -msgstr "LibrePlan: planificación" +msgid "TASKPM: Scheduling" +msgstr "TASKPM: planificación" #: libreplan-webapp/src/main/webapp/subcontract/reportAdvances.zul:22 -msgid "LibrePlan: Send To Customers" -msgstr "LibrePlan: Enviar a clientes" +msgid "TASKPM: Send To Customers" +msgstr "TASKPM: Enviar a clientes" #: libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReport.java:436 msgid "The timesheet line codes must be unique." @@ -7429,8 +7429,8 @@ msgid "The code cannot be empty and it must be unique." msgstr "O código non pode estar baleiro e debe ser único." #: libreplan-webapp/src/main/webapp/resources/criterions/criterions.zul:24 -msgid "LibrePlan: Criteria" -msgstr "LibrePlan: Criterios" +msgid "TASKPM: Criteria" +msgstr "TASKPM: Criterios" #: org/libreplan/importers/OrderImporterMPXJ.java:660 msgid "Linked calendar not found" @@ -7843,8 +7843,8 @@ msgid "Start filtering date must be before than end filtering date" msgstr "A data de comezo de filtrado ten que ser anterior que a data de fin do filtro" #: libreplan-webapp/src/main/webapp/orders/_synchronizationInfo.zul:20 -msgid "LibrePlan: Synchronization info" -msgstr "LibrePlan: información de sincronización" +msgid "TASKPM: Synchronization info" +msgstr "TASKPM: información de sincronización" #: org/libreplan/web/orders/DetailsOrderElementController.java:128 msgid "must be after starting date" @@ -8201,8 +8201,8 @@ msgid "Dedication chart" msgstr "Gráfico de dedicación" #: libreplan-webapp/src/main/webapp/scenarios/scenarios.zul:23 -msgid "LibrePlan: Scenarios Management" -msgstr "LibrePlan: Xestión de escenarios" +msgid "TASKPM: Scenarios Management" +msgstr "TASKPM: Xestión de escenarios" #: org/libreplan/web/reports/CompletedEstimatedHoursPerTaskController.java:170 #: org/libreplan/web/reports/OrderCostsPerResourceController.java:213 @@ -8336,8 +8336,8 @@ msgid "Delete Template element" msgstr "Borrar elemento de modelo" #: libreplan-webapp/src/main/webapp/resources/machine/machines.zul:22 -msgid "LibrePlan: Machines" -msgstr "LibrePlan: Máquinas" +msgid "TASKPM: Machines" +msgstr "TASKPM: Máquinas" #: libreplan-webapp/src/main/webapp/orders/_orderElementTreeFilter.zul:36 #: libreplan-webapp/src/main/webapp/orders/_orderFilter.zul:35 @@ -8524,7 +8524,7 @@ msgid "Must be after 2010!" msgstr "¡Debe ser posterior a 2010!" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:144 -msgid "is not supported for its use with LibrePlan." +msgid "is not supported for its use with TASKPM." msgstr "no está soportado para o seu uso con LibrePlan." #: libreplan-business/src/main/java/org/libreplan/business/qualityforms/entities/TaskQualityFormItem.java:99 @@ -8773,8 +8773,8 @@ msgid "number of digits must be between {0} and {1}" msgstr "o número de díxitos debe estar entre {0} e {1}" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerReport.zul:21 -msgid "LibrePlan: Hours Worked Per Resource" -msgstr "LibrePlan: Horas traballadas por recurso" +msgid "TASKPM: Hours Worked Per Resource" +msgstr "TASKPM: Horas traballadas por recurso" #: org/libreplan/web/calendars/BaseCalendarEditionController.java:642 #: org/libreplan/web/calendars/BaseCalendarEditionController.java:1278 diff --git a/libreplan-webapp/src/main/resources/i18n/it.po b/libreplan-webapp/src/main/resources/i18n/it.po index 003153547..56e636706 100644 --- a/libreplan-webapp/src/main/resources/i18n/it.po +++ b/libreplan-webapp/src/main/resources/i18n/it.po @@ -10,7 +10,7 @@ # Pietro Ferrato , 2012 msgid "" msgstr "" -"Project-Id-Version: LibrePlan\n" +"Project-Id-Version: TASKPM\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-11-27 20:07+0100\n" "PO-Revision-Date: 2011-12-12 19:43+0000\n" @@ -100,8 +100,8 @@ msgid "Select template" msgstr "Scegli il modello" #: libreplan-webapp/src/main/webapp/workreports/workReport.zul:23 -msgid "LibrePlan: Timesheets" -msgstr "LibrePlan: Fogli d'ore" +msgid "TASKPM: Timesheets" +msgstr "TASKPM: Fogli d'ore" #: libreplan-webapp/src/main/webapp/myaccount/_myTasksArea.zul:39 msgid "Work done" @@ -147,7 +147,7 @@ msgid "job class name not specified" msgstr "nome della classe di lavoro non specificato" #: libreplan-webapp/src/main/webapp/common/configuration.zul:146 -msgid "Show a notification when new LibrePlan versions are released" +msgid "Show a notification when new TASKPM versions are released" msgstr "" "Mostra una notifica quando viene rilasciata una nuova versione di LibrePlan" @@ -273,8 +273,8 @@ msgid "Task quality forms" msgstr "Moduli di qualità dei compiti" #: libreplan-webapp/src/main/webapp/templates/templates.zul:22 -msgid "LibrePlan: Templates" -msgstr "LibrePlan: Modelli" +msgid "TASKPM: Templates" +msgstr "TASKPM: Modelli" #: org/libreplan/web/workreports/WorkReportTypeModel.java:414 msgid "There is another timesheet template with the same name" @@ -318,8 +318,8 @@ msgid "Authentication type" msgstr "Tipo d'autenticazione" #: libreplan-webapp/src/main/webapp/reports/workingArrangementsPerOrderReport.zul:21 -msgid "LibrePlan: Task Scheduling Status In Project" -msgstr "LibrePlan: Stato della pianificazione del compito nel progetto" +msgid "TASKPM: Task Scheduling Status In Project" +msgstr "TASKPM: Stato della pianificazione del compito nel progetto" #: org/libreplan/web/resources/criterion/CriterionsModel.java:216 msgid "Resource type cannot be empty" @@ -456,8 +456,8 @@ msgid "Schedule from deadline to start" msgstr "Pianificazione dalla scadenza all'inizio" #: libreplan-webapp/src/main/webapp/resources/machine/machines.zul:22 -msgid "LibrePlan: Machines" -msgstr "LibrePlan: Macchine" +msgid "TASKPM: Machines" +msgstr "TASKPM: Macchine" #: org/libreplan/web/common/CustomMenuController.java:400 #: org/libreplan/web/workreports/WorkReportTypeCRUDController.java:878 @@ -485,8 +485,8 @@ msgid "Criterion cannot be empty" msgstr "Il criterio non può essere vuoto" #: libreplan-webapp/src/main/webapp/planner/index.zul:22 -msgid "LibrePlan: Planning" -msgstr "LibrePlan: Pianificazione" +msgid "TASKPM: Planning" +msgstr "TASKPM: Pianificazione" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/Configuration.java:146 msgid "default calendar not specified" @@ -735,8 +735,8 @@ msgid "Save and Continue" msgstr "Salva e continua" #: libreplan-webapp/src/main/webapp/externalcompanies/externalcompanies.zul:23 -msgid "LibrePlan: Companies" -msgstr "LibrePlan: Aziende" +msgid "TASKPM: Companies" +msgstr "TASKPM: Aziende" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/EntitySequence.java:152 msgid "format sequence code invalid. It must not contain '_'" @@ -900,7 +900,7 @@ msgstr "Periodo attivo dal" #: libreplan-webapp/src/main/webapp/common/pageNotFound.zul:49 msgid "" -"If you reached this page from another page of LibrePlan please notify us in " +"If you reached this page from another page of TASKPM please notify us in " "order to fix it as soon as possible." msgstr "" "Se hai raggiunto questa pagina da un'altra pagina di LibrePlan per favore " @@ -1173,8 +1173,8 @@ msgstr "" "esistenti nella tabella hanno una data di comunicazione non vuota." #: libreplan-webapp/src/main/webapp/common/pageNotFound.zul:22 -msgid "LibrePlan: Page not found" -msgstr "LibrePlan: Pagina non trovata" +msgid "TASKPM: Page not found" +msgstr "TASKPM: Pagina non trovata" #: org/libreplan/web/users/dashboard/ExpensesAreaController.java:87 msgid "Expense sheet \"{0}\" deleted" @@ -1309,8 +1309,8 @@ msgid "Advanced Allocation" msgstr "Allocazione avanzata" #: libreplan-webapp/src/main/webapp/reports/timeLineMaterialReport.zul:21 -msgid "LibrePlan: Materials Needed At Date" -msgstr "LibrePlan: Materiali necessari alla data" +msgid "TASKPM: Materials Needed At Date" +msgstr "TASKPM: Materiali necessari alla data" #: libreplan-webapp/src/main/webapp/unittypes/unitTypes.zul:42 #: libreplan-webapp/src/main/webapp/templates/_editTemplate.zul:165 @@ -1349,8 +1349,8 @@ msgid "Warning: Not editing from home page of bound users" msgstr "Avvisio: Non modificare dalla pagina principale degli utenti collegati" #: libreplan-webapp/src/main/webapp/workreports/workReportQuery.zul:23 -msgid "LibrePlan: Timesheet Lines List" -msgstr "LibrePlan: Lista delle linee del foglio d'ore" +msgid "TASKPM: Timesheet Lines List" +msgstr "TASKPM: Lista delle linee del foglio d'ore" #: org/libreplan/web/users/dashboard/PersonalTimesheetController.java:664 #: org/libreplan/web/common/components/finders/OrderElementBandboxFinder.java:51 @@ -1436,8 +1436,8 @@ msgstr "" "utilizzare la Strategia d'Assegnamento selezionata" #: libreplan-webapp/src/main/webapp/orders/_jiraSyncInfo.zul:20 -msgid "LibrePlan: JIRA synchronization info" -msgstr "LibrePlan: informazioni di sincronizzazione con JIRA" +msgid "TASKPM: JIRA synchronization info" +msgstr "TASKPM: informazioni di sincronizzazione con JIRA" #: org/libreplan/web/common/CustomMenuController.java:290 #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:112 @@ -1525,8 +1525,8 @@ msgstr "Crea un nuovo progetto" #: libreplan-webapp/src/main/webapp/common/eventError.zul:22 #: libreplan-webapp/src/main/webapp/common/error.zul:21 -msgid "LibrePlan: Runtime Error" -msgstr "LibrePlan: Errore durante l'esecuzione" +msgid "TASKPM: Runtime Error" +msgstr "TASKPM: Errore durante l'esecuzione" #: libreplan-webapp/src/main/webapp/common/configuration.zul:467 msgid "Role property" @@ -1663,8 +1663,8 @@ msgid "Estimations" msgstr "Stime" #: libreplan-webapp/src/main/webapp/orders/_synchronizationInfo.zul:20 -msgid "LibrePlan: Synchronization info" -msgstr "LibrePlan: Informazioni di sincronizzazione" +msgid "TASKPM: Synchronization info" +msgstr "TASKPM: Informazioni di sincronizzazione" #: libreplan-webapp/src/main/webapp/common/_editJobScheduling.zul:152 msgid "1 or 7 is Sunday, or use names" @@ -1943,8 +1943,8 @@ msgid "Change password" msgstr "Cambia password" #: libreplan-webapp/src/main/webapp/reports/schedulingProgressPerOrderReport.zul:21 -msgid "LibrePlan: Work And Progress Per Project" -msgstr "LibrePlan: Lavoro e progresso per progetto" +msgid "TASKPM: Work And Progress Per Project" +msgstr "TASKPM: Lavoro e progresso per progetto" #: org/libreplan/importers/ExportTimesheetsToTim.java:224 msgid "Registration response with empty refs" @@ -2053,16 +2053,16 @@ msgid "All changes will be lost. Are you sure?" msgstr "Tutte le modifiche saranno perse. Sei sicuro?" #: libreplan-webapp/src/main/webapp/common/configuration.zul:23 -msgid "LibrePlan: Main Settings" -msgstr "LibrePlan: Settaggi principali" +msgid "TASKPM: Main Settings" +msgstr "TASKPM: Settaggi principali" #: org/libreplan/web/users/dashboard/UserDashboardController.java:71 msgid "Expense sheet \"{0}\" saved" msgstr "Foglio spese \"{0}\" salvato" #: libreplan-webapp/src/main/webapp/workreports/workReportTypes.zul:23 -msgid "LibrePlan: Timesheets Templates" -msgstr "LibrePlan: Modelli di foglio ore" +msgid "TASKPM: Timesheets Templates" +msgstr "TASKPM: Modelli di foglio ore" #: org/libreplan/web/planner/allocation/FormBinder.java:640 msgid "{0} already assigned to resource allocation list" @@ -2197,7 +2197,7 @@ msgstr "Margine d'ore" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:185 msgid "" -"Giving a gift today means LibrePlan continues to remain available and in " +"Giving a gift today means TASKPM continues to remain available and in " "active development tomorrow!" msgstr "" "Fare una donazione oggi significa che LibrePlan continuerà a essere " @@ -2512,8 +2512,8 @@ msgid "At least one {0} sequence is needed" msgstr "Almeno una sequenza {0} è necessaria" #: libreplan-webapp/src/main/webapp/resources/worker/virtualWorkers.zul:22 -msgid "LibrePlan: Virtual Worker Groups" -msgstr "LibrePlan: Gruppo di lavoratori virtuale" +msgid "TASKPM: Virtual Worker Groups" +msgstr "TASKPM: Gruppo di lavoratori virtuale" #: libreplan-webapp/src/main/webapp/resources/worker/_localizations.zul:64 msgid "Log" @@ -2578,8 +2578,8 @@ msgid " (%d tasks)" msgstr "(%d compiti)" #: libreplan-webapp/src/main/webapp/subcontract/reportAdvances.zul:22 -msgid "LibrePlan: Send To Customers" -msgstr "LibrePlan: Invia ai clienti" +msgid "TASKPM: Send To Customers" +msgstr "TASKPM: Invia ai clienti" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:138 #: libreplan-webapp/src/main/webapp/common/configuration.zul:93 @@ -2674,8 +2674,8 @@ msgid "Date Resolved" msgstr "Data Risoluzione" #: libreplan-webapp/src/main/webapp/reports/completedEstimatedHoursPerTask.zul:21 -msgid "LibrePlan: Estimated/Planned Hours Per Task" -msgstr "LibrePlan: Ore per compito Stimate/Pianificate" +msgid "TASKPM: Estimated/Planned Hours Per Task" +msgstr "TASKPM: Ore per compito Stimate/Pianificate" #: org/libreplan/web/orders/DynamicDatebox.java:152 msgid "Date format is wrong. Please, use the following format: {0}" @@ -2773,8 +2773,8 @@ msgid "Manual allocation" msgstr "Allocazione manuale" #: libreplan-webapp/src/main/webapp/costcategories/costCategory.zul:23 -msgid "LibrePlan: Cost Categories" -msgstr "LibrePlan: Categorie di costo" +msgid "TASKPM: Cost Categories" +msgstr "TASKPM: Categorie di costo" #: libreplan-business/src/main/java/org/libreplan/business/advance/entities/AdvanceMeasurement.java:100 #: libreplan-business/src/main/java/org/libreplan/business/workreports/valueobjects/DescriptionValue.java:80 @@ -3426,8 +3426,8 @@ msgid "Progress Types" msgstr "Tipi di progresso" #: libreplan-webapp/src/main/webapp/scenarios/scenarios.zul:23 -msgid "LibrePlan: Scenarios Management" -msgstr "LibrePlan: Gestione scenari" +msgid "TASKPM: Scenarios Management" +msgstr "TASKPM: Gestione scenari" #: libreplan-webapp/src/main/webapp/templates/_historicalStatistics.zul:55 msgid "Maximum/minimum of estimated hours" @@ -3466,8 +3466,8 @@ msgid "Add From Template" msgstr "Aggiungi da modello" #: libreplan-webapp/src/main/webapp/qualityforms/qualityForms.zul:22 -msgid "LibrePlan: Quality Forms" -msgstr "LibrePlan: Moduli di qualità" +msgid "TASKPM: Quality Forms" +msgstr "TASKPM: Moduli di qualità" #: org/libreplan/importers/ExportTimesheetsToTim.java:185 msgid "No work reportlines are found for order: \"{0}\"" @@ -3501,8 +3501,8 @@ msgstr "" #: libreplan-webapp/src/main/webapp/planner/montecarlo_function.zul:22 #: libreplan-webapp/src/main/webapp/planner/resources_use.zul:22 #: libreplan-webapp/src/main/webapp/planner/stretches_function.zul:22 -msgid "LibrePlan: Scheduling" -msgstr "LibrePlan: Programmazione" +msgid "TASKPM: Scheduling" +msgstr "TASKPM: Programmazione" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:84 msgid "Application settings" @@ -4152,8 +4152,8 @@ msgid "Issue log" msgstr "Registro problemi" #: libreplan-webapp/src/main/webapp/subcontract/customerCommunications.zul:20 -msgid "LibrePlan: Received From Customers" -msgstr "LibrePlan: Ricevuto dai clienti" +msgid "TASKPM: Received From Customers" +msgstr "TASKPM: Ricevuto dai clienti" #: libreplan-webapp/src/main/webapp/common/eventError.zul:26 #: libreplan-webapp/src/main/webapp/common/error.zul:31 @@ -4169,12 +4169,12 @@ msgid "Already exists other label with the same name" msgstr "Esiste già un'altra etichetta con lo stesso nome" #: libreplan-webapp/src/main/webapp/scenarios/transferOrders.zul:23 -msgid "LibrePlan: Transfer Projects Between Scenarios" -msgstr "LibrePlan: Trasferisci progetti tra gli scenari" +msgid "TASKPM: Transfer Projects Between Scenarios" +msgstr "TASKPM: Trasferisci progetti tra gli scenari" #: libreplan-webapp/src/main/webapp/expensesheet/expenseSheet.zul:21 -msgid "LibrePlan: Expenses" -msgstr "LibrePlan: Spese" +msgid "TASKPM: Expenses" +msgstr "TASKPM: Spese" #: libreplan-webapp/src/main/webapp/orders/_edition.zul:302 #: libreplan-webapp/src/main/webapp/orders/_edition.zul:338 @@ -4185,7 +4185,7 @@ msgid "Communication date" msgstr "Data comunicazione" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:207 -msgid "is not supported for its use with LibrePlan." +msgid "is not supported for its use with TASKPM." msgstr "non è supportato per il suo uso con LibrePlan." #: libreplan-webapp/src/main/webapp/subcontract/customerCommunications.zul:44 @@ -4236,8 +4236,8 @@ msgid "label names must be unique inside a label type" msgstr "i nomi delle etichette devono essere unici all'interno dei tipi" #: libreplan-webapp/src/main/webapp/myaccount/personalTimesheet.zul:21 -msgid "LibrePlan: Personal timesheet" -msgstr "LibrePlan: Foglio ore personale" +msgid "TASKPM: Personal timesheet" +msgstr "TASKPM: Foglio ore personale" #: org/libreplan/importers/ExportTimesheetsToTim.java:130 msgid "Order should not be empty" @@ -4304,7 +4304,7 @@ msgid "Manual" msgstr "Manuale" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/ConfigurationRolesLDAP.java:56 -msgid "LibrePlan role not specified" +msgid "TASKPM role not specified" msgstr "LibrePlan ruolo non specificato" #: org/libreplan/web/subcontract/ReportAdvancesModel.java:225 @@ -4439,8 +4439,8 @@ msgid "Personal timesheet \"{0}\" saved" msgstr "Foglio ore personale \"{0}\" salvato" #: libreplan-webapp/src/main/webapp/unittypes/unitTypes.zul:21 -msgid "LibrePlan: Material Units" -msgstr "LibrePlan: Unità di materiale" +msgid "TASKPM: Material Units" +msgstr "TASKPM: Unità di materiale" #: libreplan-webapp/src/main/webapp/orders/_editOrderElement.zul:39 #: libreplan-webapp/src/main/webapp/templates/_editTemplateWindow.zul:42 @@ -4568,7 +4568,7 @@ msgid "Concept" msgstr "Concetto" #: libreplan-webapp/src/main/webapp/common/configuration.zul:147 -msgid "Enable/Disable warning about new LibrePlan versions available" +msgid "Enable/Disable warning about new TASKPM versions available" msgstr "" "Abilita/Disabilita l'avviso circa la disponibilità di una nuova versione di " "LibrePlan" @@ -4601,8 +4601,8 @@ msgid "Delete Template element" msgstr "Eliminare modello" #: libreplan-webapp/src/main/webapp/calendars/calendars.zul:22 -msgid "LibrePlan: Calendars" -msgstr "LibrePlan: Calendari" +msgid "TASKPM: Calendars" +msgstr "TASKPM: Calendari" #: org/libreplan/web/limitingresources/QueueComponent.java:504 msgid "Unassign" @@ -4912,8 +4912,8 @@ msgid "Stacktrace" msgstr "Stacktrace" #: libreplan-webapp/src/main/webapp/planner/advance_allocation.zul:22 -msgid "LibrePlan: Advanced allocation" -msgstr "LibrePlan: Allocazione avanzata" +msgid "TASKPM: Advanced allocation" +msgstr "TASKPM: Allocazione avanzata" #: libreplan-webapp/src/main/webapp/advance/_listAdvanceTypes.zul:22 msgid "Progress Types List" @@ -4938,8 +4938,8 @@ msgid "Show all" msgstr "Mostra tutti" #: libreplan-webapp/src/main/webapp/email/email_templates.zul:21 -msgid "LibrePlan: Email Templates" -msgstr "LibrePlan: Modelli Email" +msgid "TASKPM: Email Templates" +msgstr "TASKPM: Modelli Email" #: libreplan-business/src/main/java/org/libreplan/business/common/IntegrationEntity.java:47 msgid "code not specified" @@ -5241,8 +5241,8 @@ msgid "Virtual worker group name must be unique" msgstr "Il nome del gruppo di lavoratori virtuali dev'essere unico" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerInAMonthReport.zul:21 -msgid "LibrePlan: Total Worked Hours By Resource In A Month" -msgstr "LibrePlan: Numero totale di ore lavorate per risorsa in un mese" +msgid "TASKPM: Total Worked Hours By Resource In A Month" +msgstr "TASKPM: Numero totale di ore lavorate per risorsa in un mese" #: libreplan-webapp/src/main/webapp/common/configuration.zul:307 #: libreplan-webapp/src/main/webapp/advance/_editAdvanceTypes.zul:47 @@ -5466,8 +5466,8 @@ msgid "Task Status" msgstr "Stato del compito" #: libreplan-webapp/src/main/webapp/orders/imports/projectImport.zul:21 -msgid "LibrePlan: Import Project" -msgstr "LibrePlan: Importa progetto" +msgid "TASKPM: Import Project" +msgstr "TASKPM: Importa progetto" #: org/libreplan/web/planner/chart/EarnedValueChartFiller.java:250 msgid "Budget At Completion" @@ -5599,8 +5599,8 @@ msgid "Percentage" msgstr "Percentuale" #: libreplan-webapp/src/main/webapp/profiles/profiles.zul:23 -msgid "LibrePlan: Profiles" -msgstr "LibrePlan: Profili" +msgid "TASKPM: Profiles" +msgstr "TASKPM: Profili" #: org/libreplan/web/orders/ManageOrderElementAdvancesController.java:673 msgid "Calculated progress can not be modified" @@ -5732,8 +5732,8 @@ msgid "From today" msgstr "Da oggi" #: libreplan-webapp/src/main/webapp/common/jobScheduling.zul:20 -msgid "LibrePlan: Job Scheduling" -msgstr "LibrePlan: Pianificazione lavoro" +msgid "TASKPM: Job Scheduling" +msgstr "TASKPM: Pianificazione lavoro" #: org/libreplan/web/users/dashboard/PersonalTimesheetDTO.java:125 msgid "Week {0}" @@ -5871,8 +5871,8 @@ msgid "Project name" msgstr "Nome progetto" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:22 -msgid "LibrePlan: Settings" -msgstr "LibrePlan: Impostazioni" +msgid "TASKPM: Settings" +msgstr "TASKPM: Impostazioni" #: libreplan-webapp/src/main/webapp/excetiondays/_listExceptionDayTypes.zul:32 #: libreplan-webapp/src/main/webapp/excetiondays/_editExceptionDayType.zul:62 @@ -5940,8 +5940,8 @@ msgid "Specific Allocations" msgstr "Allocazioni specifiche" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:20 -msgid "LibrePlan: Received From Subcontractors" -msgstr "LibrePlan: Ricevuto dai subappaltatori" +msgid "TASKPM: Received From Subcontractors" +msgstr "TASKPM: Ricevuto dai subappaltatori" #: org/libreplan/web/orders/OrderCRUDController.java:1057 #: org/libreplan/web/templates/OrderTemplatesController.java:369 @@ -6018,8 +6018,8 @@ msgid "Confirm deleting this file. Are you sure?" msgstr "Conferma l'eliminazione del file. Sei sicuro?" #: libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul:22 -msgid "LibrePlan: Send To Subcontractors" -msgstr "LibrePlan: Invia a Sub appaltatori" +msgid "TASKPM: Send To Subcontractors" +msgstr "TASKPM: Invia a Sub appaltatori" #: org/libreplan/web/planner/allocation/AllocationRow.java:446 msgid "Only {0} resources per day were achieved for current allocation" @@ -6425,8 +6425,8 @@ msgid "New password" msgstr "Nuova password" #: libreplan-webapp/src/main/webapp/excetiondays/exceptionDays.zul:22 -msgid "LibrePlan: Calendar Exception Days" -msgstr "LibrePlan: giorni d'eccezione Calendario" +msgid "TASKPM: Calendar Exception Days" +msgstr "TASKPM: giorni d'eccezione Calendario" #: libreplan-webapp/src/main/webapp/myaccount/personalTimesheet.zul:95 msgid "Total other" @@ -6442,8 +6442,8 @@ msgid "Number of digits" msgstr "Numero di cifre" #: libreplan-webapp/src/main/webapp/orders/_timImpExpInfo.zul:20 -msgid "LibrePlan: Tim import export info" -msgstr "LibrePlan: Informazioni d'importazione/esportazione con Tim" +msgid "TASKPM: Tim import export info" +msgstr "TASKPM: Informazioni d'importazione/esportazione con Tim" #: org/libreplan/web/orders/JiraSynchronizationController.java:195 msgid "No JIRA issues to import" @@ -6516,8 +6516,8 @@ msgid "Schedule from start to deadline" msgstr "Pianifica dall'inizio alla scadenza" #: libreplan-webapp/src/main/webapp/myaccount/changePassword.zul:21 -msgid "LibrePlan: Change password" -msgstr "LibrePlan: Cambia password" +msgid "TASKPM: Change password" +msgstr "TASKPM: Cambia password" #: libreplan-business/src/main/java/org/libreplan/business/users/entities/Profile.java:89 msgid "profile name is already being used by another profile" @@ -6792,8 +6792,8 @@ msgid "Select criteria or resources" msgstr "Seleziona un criterio o una risorsa" #: libreplan-webapp/src/main/webapp/common/accessForbidden.zul:20 -msgid "LibrePlan: Access Forbidden" -msgstr "LibrePlan: Accesso proibito" +msgid "TASKPM: Access Forbidden" +msgstr "TASKPM: Accesso proibito" #: libreplan-business/src/main/java/org/libreplan/business/advance/entities/AdvanceType.java:127 msgid "unit name not specified" @@ -6941,8 +6941,8 @@ msgid "Some allocations needed" msgstr "Alcune allocazioni sono richieste" #: libreplan-webapp/src/main/webapp/myaccount/userDashboard.zul:21 -msgid "LibrePlan: My Dashboard" -msgstr "LibrePlan: Mio pannello strumenti" +msgid "TASKPM: My Dashboard" +msgstr "TASKPM: Mio pannello strumenti" #: org/libreplan/web/tree/TreeComponent.java:58 #: org/libreplan/web/workreports/WorkReportCRUDController.java:902 @@ -7144,8 +7144,8 @@ msgid "Number of tasks" msgstr "Numero di compiti" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerReport.zul:21 -msgid "LibrePlan: Hours Worked Per Resource" -msgstr "LibrePlan: Ore lavorate per risorsa" +msgid "TASKPM: Hours Worked Per Resource" +msgstr "TASKPM: Ore lavorate per risorsa" #: libreplan-webapp/src/main/webapp/orders/_listOrderElementTaskQualityForms.zul:50 msgid "Task quality form name" @@ -7271,8 +7271,8 @@ msgid "OUTSOURCED" msgstr "ESTERNALIZZATO" #: libreplan-webapp/src/main/webapp/reports/projectStatusReport.zul:20 -msgid "LibrePlan: Project Status Report" -msgstr "LibrePlan: Rapporto Stato Progetto" +msgid "TASKPM: Project Status Report" +msgstr "TASKPM: Rapporto Stato Progetto" #: libreplan-webapp/src/main/webapp/calendars/_edition.zul:140 msgid "Activation periods" @@ -7419,8 +7419,8 @@ msgid "Select the elements to import into LibrePlan" msgstr "Seleziona gli elementi da importare in LibrePlan" #: libreplan-webapp/src/main/webapp/advance/advanceTypes.zul:22 -msgid "LibrePlan: Progress Types" -msgstr "LibrePlan: Tipi di progresso" +msgid "TASKPM: Progress Types" +msgstr "TASKPM: Tipi di progresso" #: org/libreplan/web/workreports/WorkReportCRUDController.java:886 #: libreplan-webapp/src/main/webapp/orders/_listOrderElementHours.zul:33 @@ -7518,7 +7518,7 @@ msgid "Calculated progress cannot be removed" msgstr "I progressi calcolati non possono essere rimossi" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:184 -msgid "without you, LibrePlan can’t exist." +msgid "without you, TASKPM can’t exist." msgstr "senza di te, LibrePlan non può esistere." #: org/libreplan/web/users/UserCRUDController.java:98 @@ -7612,8 +7612,8 @@ msgid "Name" msgstr "Nome" #: libreplan-webapp/src/main/webapp/typeofworkhours/typeOfWorkHours.zul:23 -msgid "LibrePlan: Hours Types" -msgstr "LibrePlan: Tipi d'ore" +msgid "TASKPM: Hours Types" +msgstr "TASKPM: Tipi d'ore" #: libreplan-webapp/src/main/webapp/calendars/_edition.zul:303 msgid "Expiry date" @@ -7851,8 +7851,8 @@ msgid "Required materials" msgstr "Materiali richiesti" #: libreplan-webapp/src/main/webapp/reports/workingProgressPerTaskReport.zul:21 -msgid "LibrePlan: Work And Progress Per Task" -msgstr "LibrePlan: Lavoro e progresso per compito" +msgid "TASKPM: Work And Progress Per Task" +msgstr "TASKPM: Lavoro e progresso per compito" #: libreplan-webapp/src/main/webapp/resources/_criterions.zul:36 msgid "Show only current satisfied criteria" @@ -7956,8 +7956,8 @@ msgid "List of materials for category: {0}" msgstr "Lista dei materiali per categoria: {0}" #: libreplan-webapp/src/main/webapp/resources/criterions/criterions.zul:24 -msgid "LibrePlan: Criteria" -msgstr "LibrePlan: Criteri" +msgid "TASKPM: Criteria" +msgstr "TASKPM: Criteri" #: org/libreplan/web/resources/worker/WorkerCRUDController.java:972 msgid "Do you want to remove bound user \"{0}\" too?" @@ -8173,8 +8173,8 @@ msgid "connector name not specified" msgstr "nome del connettore non specificato" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:21 -msgid "LibrePlan: User access" -msgstr "LibrePlan: Accesso utenti" +msgid "TASKPM: User access" +msgstr "TASKPM: Accesso utenti" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:156 msgid "Label filter" @@ -8395,7 +8395,7 @@ msgstr "costo unitario non specificato" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:180 msgid "" -"Did you know LibrePlan is funded only by donations, from people like you?" +"Did you know TASKPM is funded only by donations, from people like you?" msgstr "" "Sapevi che LibrePlan è finanziato solo da donazioni, da parte di persone " "come te?" @@ -8615,8 +8615,8 @@ msgid "task end date not specified" msgstr "data di fine del compito non specificata" #: libreplan-webapp/src/main/webapp/resources/worker/worker.zul:22 -msgid "LibrePlan: Workers" -msgstr "LibrePlan: Lavoratori" +msgid "TASKPM: Workers" +msgstr "TASKPM: Lavoratori" #: libreplan-webapp/src/main/webapp/dashboard/_dashboardfororder.zul:131 msgid "No tasks available yet" @@ -8769,8 +8769,8 @@ msgid "Total hours" msgstr "Ore totali" #: libreplan-webapp/src/main/webapp/users/users.zul:23 -msgid "LibrePlan: User Accounts" -msgstr "LibrePlan: Account utente" +msgid "TASKPM: User Accounts" +msgstr "TASKPM: Account utente" #: libreplan-business/src/main/java/org/libreplan/business/expensesheet/entities/ExpenseSheet.java:109 msgid "total must be greater or equal than 0" @@ -8833,8 +8833,8 @@ msgid "Work description" msgstr "Descrizione del lavoro" #: libreplan-webapp/src/main/webapp/materials/materials.zul:21 -msgid "LibrePlan: Materials" -msgstr "LibrePlan: Materiali" +msgid "TASKPM: Materials" +msgstr "TASKPM: Materiali" #: libreplan-webapp/src/main/webapp/common/layout/template.zul:88 msgid "Change scenario" @@ -9168,8 +9168,8 @@ msgid "Entity type" msgstr "Tipo d'entità" #: libreplan-webapp/src/main/webapp/labels/labelTypes.zul:21 -msgid "LibrePlan: Labels" -msgstr "LibrePlan: Etichette" +msgid "TASKPM: Labels" +msgstr "TASKPM: Etichette" #: libreplan-webapp/src/main/webapp/workreports/workReportQuery.zul:79 msgid "type" @@ -9530,8 +9530,8 @@ msgid "Work amount" msgstr "Ammontare del lavoro" #: libreplan-webapp/src/main/webapp/reports/orderCostsPerResource.zul:21 -msgid "LibrePlan: Project Costs" -msgstr "LibrePlan: Costi del progetto" +msgid "TASKPM: Project Costs" +msgstr "TASKPM: Costi del progetto" #: libreplan-business/src/main/java/org/libreplan/business/costcategories/entities/ResourcesCostCategoryAssignment.java:145 msgid "cost assignment with end date before start date" diff --git a/libreplan-webapp/src/main/resources/i18n/ja.po b/libreplan-webapp/src/main/resources/i18n/ja.po index f01519a1a..c5cb2c1b8 100644 --- a/libreplan-webapp/src/main/resources/i18n/ja.po +++ b/libreplan-webapp/src/main/resources/i18n/ja.po @@ -7,7 +7,7 @@ # Jeroen Baten , 2016 msgid "" msgstr "" -"Project-Id-Version: LibrePlan\n" +"Project-Id-Version: TASKPM\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-10-10 17:54+0200\n" "PO-Revision-Date: 2016-08-18 21:05+0000\n" @@ -20,8 +20,8 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" #: libreplan-webapp/src/main/webapp/qualityforms/qualityForms.zul:22 -msgid "LibrePlan: Quality Forms" -msgstr "LibrePlan: 品質フォーム" +msgid "TASKPM: Quality Forms" +msgstr "TASKPM: 品質フォーム" #: libreplan-webapp/src/main/webapp/orders/_projectDetails.zul:58 #: libreplan-webapp/src/main/webapp/orders/_list.zul:30 @@ -45,8 +45,8 @@ msgid "Overtime" msgstr "超過作業" #: libreplan-webapp/src/main/webapp/excetiondays/exceptionDays.zul:22 -msgid "LibrePlan: Calendar Exception Days" -msgstr "LibrePlan: カレンダー例外日" +msgid "TASKPM: Calendar Exception Days" +msgstr "TASKPM: カレンダー例外日" #: org/libreplan/web/calendars/BaseCalendarModel.java:488 #: org/libreplan/web/calendars/BaseCalendarModel.java:520 @@ -135,8 +135,8 @@ msgid "Subcategory names must be unique." msgstr "サブカテゴリ名はユニークでなければなりません" #: libreplan-webapp/src/main/webapp/reports/timeLineMaterialReport.zul:21 -msgid "LibrePlan: Materials Needed At Date" -msgstr "LibrePlan: 日次マテリアル必要量" +msgid "TASKPM: Materials Needed At Date" +msgstr "TASKPM: 日次マテリアル必要量" #: org/libreplan/web/resources/machine/MachineCRUDController.java:630 msgid "Machines limit reached" @@ -482,8 +482,8 @@ msgid "please, select a project" msgstr "プロジェクトを選択してください" #: libreplan-webapp/src/main/webapp/reports/projectStatusReport.zul:20 -msgid "LibrePlan: Project Status Report" -msgstr "LibrePlan: プロジェクト状況レポート" +msgid "TASKPM: Project Status Report" +msgstr "TASKPM: プロジェクト状況レポート" #: org/libreplan/web/calendars/BaseCalendarEditionController.java:627 #: org/libreplan/web/calendars/BaseCalendarEditionController.java:1263 @@ -544,8 +544,8 @@ msgid "Exit session" msgstr "セッション終了" #: libreplan-webapp/src/main/webapp/orders/_timImpExpInfo.zul:20 -msgid "LibrePlan: Tim import export info" -msgstr "LibrePlan: Timエクスポート情報" +msgid "TASKPM: Tim import export info" +msgstr "TASKPM: Timエクスポート情報" #: org/libreplan/web/planner/allocation/FormBinder.java:671 msgid "resources per day cannot be empty or less than zero" @@ -658,8 +658,8 @@ msgid "Companies List" msgstr "会社一覧" #: libreplan-webapp/src/main/webapp/resources/worker/virtualWorkers.zul:22 -msgid "LibrePlan: Virtual Worker Groups" -msgstr "LibrePlan: 仮想ワーカーグループ" +msgid "TASKPM: Virtual Worker Groups" +msgstr "TASKPM: 仮想ワーカーグループ" #: org/libreplan/web/planner/tabs/MonteCarloTabCreator.java:51 #: org/libreplan/web/planner/tabs/MonteCarloTabCreator.java:159 @@ -672,8 +672,8 @@ msgid "Cost category" msgstr "コスト区分" #: libreplan-webapp/src/main/webapp/myaccount/personalTimesheet.zul:21 -msgid "LibrePlan: Personal timesheet" -msgstr "LibrePlan: パーソナルタイムシート" +msgid "TASKPM: Personal timesheet" +msgstr "TASKPM: パーソナルタイムシート" #: libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReportLine.java:264 msgid "clock finish cannot be empty if number of hours is calcultate by clock" @@ -699,7 +699,7 @@ msgid "Unsaved changes will be lost. Are you sure?" msgstr "保存されていない変更は失われます。よろしいですか?" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/ConfigurationRolesLDAP.java:56 -msgid "LibrePlan role not specified" +msgid "TASKPM role not specified" msgstr "LibrePlanのロールが指定されていません" #: libreplan-webapp/src/main/webapp/scenarios/transferOrders.zul:39 @@ -715,8 +715,8 @@ msgid "Move" msgstr "移動" #: libreplan-webapp/src/main/webapp/orders/_jiraSyncInfo.zul:20 -msgid "LibrePlan: JIRA synchronization info" -msgstr "LibrePlan: JIRA同期情報" +msgid "TASKPM: JIRA synchronization info" +msgstr "TASKPM: JIRA同期情報" #: org/libreplan/web/common/components/finders/OrderFilterEnum.java:31 #: org/libreplan/web/common/components/finders/TaskGroupFilterEnum.java:31 @@ -760,8 +760,8 @@ msgid "Profiles List" msgstr "プロファイル一覧" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:21 -msgid "LibrePlan: User access" -msgstr "LibrePlan: ユーザーアクセス" +msgid "TASKPM: User access" +msgstr "TASKPM: ユーザーアクセス" #: libreplan-business/src/main/java/org/libreplan/business/labels/entities/LabelType.java:158 msgid "label code is already being used" @@ -1539,7 +1539,7 @@ msgid "Violated deadline" msgstr "期限違反" #: libreplan-webapp/src/main/webapp/common/configuration.zul:126 -msgid "Enable/Disable warning about new LibrePlan versions available" +msgid "Enable/Disable warning about new TASKPM versions available" msgstr "LibrePlanの新バージョンが利用可能なことを通知する/しない" #: libreplan-business/src/main/java/org/libreplan/business/orders/entities/HoursGroup.java:186 @@ -1582,8 +1582,8 @@ msgid "Progress sent successfully" msgstr "進行状況は正常に送信されました" #: libreplan-webapp/src/main/webapp/myaccount/userDashboard.zul:21 -msgid "LibrePlan: My Dashboard" -msgstr "LibrePlan: マイ・ダッシュボード" +msgid "TASKPM: My Dashboard" +msgstr "TASKPM: マイ・ダッシュボード" #: libreplan-webapp/src/main/webapp/calendars/_edition.zul:131 msgid "Work week" @@ -1603,8 +1603,8 @@ msgstr "ラベルタイプフィールド" #: libreplan-webapp/src/main/webapp/common/event_error.zul:22 #: libreplan-webapp/src/main/webapp/common/error.zul:21 -msgid "LibrePlan: Runtime Error" -msgstr "LibrePlan: 実行時エラー" +msgid "TASKPM: Runtime Error" +msgstr "TASKPM: 実行時エラー" #: org/libreplan/web/planner/tabs/PlanningTabCreator.java:152 #: libreplan-webapp/src/main/webapp/common/components/schedulingStateToggler.zul:29 @@ -1651,7 +1651,7 @@ msgid "Criterion Types" msgstr "基準タイプ" #: libreplan-webapp/src/main/webapp/common/configuration.zul:125 -msgid "Show a notification when new LibrePlan versions are released" +msgid "Show a notification when new TASKPM versions are released" msgstr "新しいLibrePlanバージョンがリリースされたときに通知する" #: org/libreplan/web/workreports/WorkReportTypeCRUDController.java:900 @@ -1720,8 +1720,8 @@ msgid "units not specified" msgstr "単位が指定されていません" #: libreplan-webapp/src/main/webapp/advance/advanceTypes.zul:22 -msgid "LibrePlan: Progress Types" -msgstr "LibrePlan: 進捗タイプ" +msgid "TASKPM: Progress Types" +msgstr "TASKPM: 進捗タイプ" #: libreplan-webapp/src/main/webapp/planner/montecarlo_function.zul:36 msgid "MonteCarlo chart" @@ -1928,8 +1928,8 @@ msgid "percentage should be between 1 and 100" msgstr "比率は1から100の間でなければなりません" #: libreplan-webapp/src/main/webapp/workreports/workReportQuery.zul:23 -msgid "LibrePlan: Timesheet Lines List" -msgstr "LibrePlan: タイムシート行一覧" +msgid "TASKPM: Timesheet Lines List" +msgstr "TASKPM: タイムシート行一覧" #: org/libreplan/web/labels/LabelTypeModel.java:269 msgid "Already exists other label with the same name" @@ -2056,8 +2056,8 @@ msgid "You have exceeded the maximum limit of users" msgstr "最大ユーザー数を超過しました" #: libreplan-webapp/src/main/webapp/reports/schedulingProgressPerOrderReport.zul:21 -msgid "LibrePlan: Work And Progress Per Project" -msgstr "LibrePlan: プロジェクト毎作業進捗状況" +msgid "TASKPM: Work And Progress Per Project" +msgstr "TASKPM: プロジェクト毎作業進捗状況" #: libreplan-webapp/src/main/webapp/orders/_orderElementTreeFilter.zul:42 #: libreplan-webapp/src/main/webapp/orders/_orderFilter.zul:30 @@ -2121,8 +2121,8 @@ msgid "No roster-exceptions found in the response" msgstr "応答に例外が登録されていませんでした。" #: libreplan-webapp/src/main/webapp/calendars/calendars.zul:22 -msgid "LibrePlan: Calendars" -msgstr "LibrePlan: カレンダー" +msgid "TASKPM: Calendars" +msgstr "TASKPM: カレンダー" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/EntitySequence.java:192 msgid "entity name not specified" @@ -2146,8 +2146,8 @@ msgid "Subcontracting date" msgstr "委託日" #: libreplan-webapp/src/main/webapp/common/job_scheduling.zul:20 -msgid "LibrePlan: Job Scheduling" -msgstr "LibrePlan: ジョブスケジューリング" +msgid "TASKPM: Job Scheduling" +msgstr "TASKPM: ジョブスケジューリング" #: org/libreplan/importers/ImportRosterFromTim.java:182 msgid "No valid response for department \"{0}\"" @@ -2299,8 +2299,8 @@ msgid "Filter timesheet lines by" msgstr "タイムシート行のフィルタリング:" #: libreplan-webapp/src/main/webapp/unittypes/unitTypes.zul:21 -msgid "LibrePlan: Material Units" -msgstr "LibrePlan: マテリアルの単位" +msgid "TASKPM: Material Units" +msgstr "TASKPM: マテリアルの単位" #: org/libreplan/web/templates/TemplatesTreeComponent.java:64 msgid "New Template element" @@ -2453,8 +2453,8 @@ msgid "Maximum/minimum of worked hours in finished applications" msgstr "完成したアプリケーションの稼働時間の最大値/最小値" #: libreplan-webapp/src/main/webapp/labels/labelTypes.zul:21 -msgid "LibrePlan: Labels" -msgstr "LibrePlan: ラベル" +msgid "TASKPM: Labels" +msgstr "TASKPM: ラベル" #: libreplan-webapp/src/main/webapp/resources/worker/_edition.zul:31 msgid "Personal data" @@ -2504,8 +2504,8 @@ msgid "Observations" msgstr "管理" #: libreplan-webapp/src/main/webapp/common/page_not_found.zul:22 -msgid "LibrePlan: Page not found" -msgstr "LibrePlan: ページが見つかりません" +msgid "TASKPM: Page not found" +msgstr "TASKPM: ページが見つかりません" #: libreplan-webapp/src/main/webapp/orders/_edition.zul:251 #: libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul:55 @@ -2596,8 +2596,8 @@ msgid "Output format:" msgstr "出力フォーマット: " #: libreplan-webapp/src/main/webapp/reports/workingProgressPerTaskReport.zul:21 -msgid "LibrePlan: Work And Progress Per Task" -msgstr "LibrePlan: タスク毎作業進捗状況" +msgid "TASKPM: Work And Progress Per Task" +msgstr "TASKPM: タスク毎作業進捗状況" #: org/libreplan/web/advance/AdvanceTypeCRUDController.java:81 msgid "" @@ -2688,8 +2688,8 @@ msgid "Label type already assigned" msgstr "すでに割り当てられたラベルタイプです" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:20 -msgid "LibrePlan: Received From Subcontractors" -msgstr "LibrePlan: 委託先より受け取り" +msgid "TASKPM: Received From Subcontractors" +msgstr "TASKPM: 委託先より受け取り" #: libreplan-webapp/src/main/webapp/common/configuration.zul:58 msgid "Company code" @@ -2909,8 +2909,8 @@ msgid "label type: the timesheet have not assigned this label type" msgstr "ラベルタイプ: タイムシートにはこのラベルタイプが割り当てされていません" #: libreplan-webapp/src/main/webapp/typeofworkhours/typeOfWorkHours.zul:23 -msgid "LibrePlan: Hours Types" -msgstr "LibrePlan: 時間タイプ" +msgid "TASKPM: Hours Types" +msgstr "TASKPM: 時間タイプ" #: org/libreplan/web/common/CustomMenuController.java:264 #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:109 @@ -2938,8 +2938,8 @@ msgid "Please try it again." msgstr "もう一度やり直してください" #: libreplan-webapp/src/main/webapp/expensesheet/expenseSheet.zul:21 -msgid "LibrePlan: Expenses" -msgstr "LibrePlan: 費用" +msgid "TASKPM: Expenses" +msgstr "TASKPM: 費用" #: org/libreplan/web/tree/TreeController.java:1294 msgid "Modified" @@ -2999,8 +2999,8 @@ msgid "Date last progress measurement" msgstr "最終進捗評価日" #: libreplan-webapp/src/main/webapp/reports/completedEstimatedHoursPerTask.zul:21 -msgid "LibrePlan: Estimated/Planned Hours Per Task" -msgstr "LibrePlan: タスク毎の見積時間/計画時間" +msgid "TASKPM: Estimated/Planned Hours Per Task" +msgstr "TASKPM: タスク毎の見積時間/計画時間" #: libreplan-webapp/src/main/webapp/orders/_listOrderElementAuthorizations.zul:43 #: libreplan-webapp/src/main/webapp/orders/_listOrderElementAuthorizations.zul:67 @@ -3206,8 +3206,8 @@ msgid "Finished" msgstr "完了" #: libreplan-webapp/src/main/webapp/planner/index.zul:22 -msgid "LibrePlan: Planning" -msgstr "LibrePlan: 計画" +msgid "TASKPM: Planning" +msgstr "TASKPM: 計画" #: org/libreplan/web/scenarios/ScenarioModel.java:126 msgid "You cannot remove the current scenario" @@ -3279,8 +3279,8 @@ msgid "Property strategy" msgstr "プロパティ方式" #: libreplan-webapp/src/main/webapp/reports/orderCostsPerResource.zul:21 -msgid "LibrePlan: Project Costs" -msgstr "LibrePlan: プロジェクト費用" +msgid "TASKPM: Project Costs" +msgstr "TASKPM: プロジェクト費用" #: org/libreplan/web/common/ConfigurationController.java:265 msgid "Changes saved" @@ -3315,8 +3315,8 @@ msgid "Calendar exception days" msgstr "カレンダー例外日" #: libreplan-webapp/src/main/webapp/myaccount/changePassword.zul:21 -msgid "LibrePlan: Change password" -msgstr "LibrePlan: パスワードの変更" +msgid "TASKPM: Change password" +msgstr "TASKPM: パスワードの変更" #: org/libreplan/web/planner/allocation/GenericAllocationRow.java:55 msgid "Generic" @@ -3896,7 +3896,7 @@ msgstr "連絡方法" #: libreplan-webapp/src/main/webapp/common/page_not_found.zul:49 msgid "" -"If you reached this page from another page of LibrePlan please notify us in " +"If you reached this page from another page of TASKPM please notify us in " "order to fix it as soon as possible." msgstr "LibrePlanの別のページからこのページに到達した場合は,早急な修正のために,私達に連絡してください。" @@ -3932,8 +3932,8 @@ msgid "Repeated Hours Group code {0} in Project {1}" msgstr "プロジェクト{1}のグループコード{0}が重複しています" #: libreplan-webapp/src/main/webapp/resources/worker/worker.zul:22 -msgid "LibrePlan: Workers" -msgstr "LibrePlan: ワーカー" +msgid "TASKPM: Workers" +msgstr "TASKPM: ワーカー" #: org/libreplan/web/planner/allocation/AdvancedAllocationController.java:1573 msgid "Not configurable" @@ -4390,8 +4390,8 @@ msgid "" msgstr "リソースコスト区分の割り当てコードは,リソース内でユニークでなければなりません" #: libreplan-webapp/src/main/webapp/materials/materials.zul:21 -msgid "LibrePlan: Materials" -msgstr "LibrePlan: マテリアル" +msgid "TASKPM: Materials" +msgstr "TASKPM: マテリアル" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:104 msgid "User disabled" @@ -4637,8 +4637,8 @@ msgid "Stretches with Interpolation" msgstr "ストレッチと補完" #: libreplan-webapp/src/main/webapp/workreports/workReportTypes.zul:23 -msgid "LibrePlan: Timesheets Templates" -msgstr "LibrePlan: タイムシートテンプレート" +msgid "TASKPM: Timesheets Templates" +msgstr "TASKPM: タイムシートテンプレート" #: org/libreplan/web/common/CustomMenuController.java:514 msgid "Reports" @@ -4668,8 +4668,8 @@ msgid "" msgstr "タスク\"{0}\"を削除できません 。その親の唯一の子であり,その親が時間や帰属の費用を追跡しているためです。" #: libreplan-webapp/src/main/webapp/reports/workingArrangementsPerOrderReport.zul:21 -msgid "LibrePlan: Task Scheduling Status In Project" -msgstr "LibrePlan: プロジェクトのタスクスケジューリング状況" +msgid "TASKPM: Task Scheduling Status In Project" +msgstr "TASKPM: プロジェクトのタスクスケジューリング状況" #: libreplan-webapp/src/main/webapp/common/layout/_customMenu.zul:55 msgid "START" @@ -4904,8 +4904,8 @@ msgid "Reassigning type" msgstr "再割り当てタイプ" #: libreplan-webapp/src/main/webapp/common/configuration.zul:23 -msgid "LibrePlan: Main Settings" -msgstr "LibrePlan: 基本設定" +msgid "TASKPM: Main Settings" +msgstr "TASKPM: 基本設定" #: org/libreplan/web/common/CustomMenuController.java:419 #: libreplan-business/src/main/java/org/libreplan/business/users/entities/UserRole.java:69 @@ -5001,8 +5001,8 @@ msgid "Expand taskgroups" msgstr "タスクグループの展開" #: libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul:22 -msgid "LibrePlan: Send To Subcontractors" -msgstr "LibrePlan: 委託先へ" +msgid "TASKPM: Send To Subcontractors" +msgstr "TASKPM: 委託先へ" #: org/libreplan/web/limitingresources/ManualAllocationController.java:492 msgid "END" @@ -5140,16 +5140,16 @@ msgid "" msgstr "管理者に連絡して,LibrePlanでの権限を確認してください" #: libreplan-webapp/src/main/webapp/costcategories/costCategory.zul:23 -msgid "LibrePlan: Cost Categories" -msgstr "LibrePlan: コスト区分" +msgid "TASKPM: Cost Categories" +msgstr "TASKPM: コスト区分" #: libreplan-webapp/src/main/webapp/users/_editUser.zul:120 msgid "Unbound resource" msgstr "バインドされていないリソース" #: libreplan-webapp/src/main/webapp/subcontract/customerCommunications.zul:20 -msgid "LibrePlan: Received From Customers" -msgstr "LibrePlan: 顧客より受取" +msgid "TASKPM: Received From Customers" +msgstr "TASKPM: 顧客より受取" #: libreplan-webapp/src/main/webapp/workreports/_listWorkReportTypes.zul:47 #: libreplan-webapp/src/main/webapp/workreports/workReport.zul:106 @@ -5892,8 +5892,8 @@ msgid "Calendar allocation" msgstr "カレンダーの割り当て" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerInAMonthReport.zul:21 -msgid "LibrePlan: Total Worked Hours By Resource In A Month" -msgstr "LibrePlan: 月次リソース別総稼働時間" +msgid "TASKPM: Total Worked Hours By Resource In A Month" +msgstr "TASKPM: 月次リソース別総稼働時間" #: org/libreplan/web/resources/criterion/CriterionAdminController.java:257 msgid "" @@ -5949,8 +5949,8 @@ msgid "" msgstr "このプログラムの使用法についてLibrePlan開発者にフィードバックを送りたい場合,このオプションをチェックしてください" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:22 -msgid "LibrePlan: Settings" -msgstr "LibrePlan: 設定" +msgid "TASKPM: Settings" +msgstr "TASKPM: 設定" #: org/libreplan/web/common/CustomMenuController.java:345 #: libreplan-webapp/src/main/webapp/orders/_editOrderElement.zul:54 @@ -5981,8 +5981,8 @@ msgid "Change the password" msgstr "パスワードの変更" #: libreplan-webapp/src/main/webapp/common/access_forbidden.zul:20 -msgid "LibrePlan: Access Forbidden" -msgstr "LibrePlan: アクセス禁止" +msgid "TASKPM: Access Forbidden" +msgstr "TASKPM: アクセス禁止" #: libreplan-webapp/src/main/webapp/montecarlo/_montecarlo.zul:50 #: libreplan-webapp/src/main/webapp/montecarlo/_montecarlo.zul:52 @@ -6062,8 +6062,8 @@ msgid "No authorizations were added because you did not select any." msgstr "追加する権限が選択されていません。権限は追加されませんでした。" #: libreplan-webapp/src/main/webapp/users/users.zul:23 -msgid "LibrePlan: User Accounts" -msgstr "LibrePlan: ユーザーアカウント" +msgid "TASKPM: User Accounts" +msgstr "TASKPM: ユーザーアカウント" #: libreplan-webapp/src/main/webapp/templates/_assignedQualityForms.zul:30 msgid "Quality forms" @@ -6110,8 +6110,8 @@ msgid "Interacts with applications" msgstr "アプリケーション操作" #: libreplan-webapp/src/main/webapp/planner/advance_allocation.zul:22 -msgid "LibrePlan: Advanced allocation" -msgstr "LibrePlan: 詳細な割り当て" +msgid "TASKPM: Advanced allocation" +msgstr "TASKPM: 詳細な割り当て" #: org/libreplan/importers/CalendarImporterMPXJ.java:365 msgid "Calendar name already in use" @@ -6236,8 +6236,8 @@ msgid "Standard Effort" msgstr "標準工数" #: libreplan-webapp/src/main/webapp/orders/imports/projectImport.zul:21 -msgid "LibrePlan: Import Project" -msgstr "LibrePlan: プロジェクトのインポート" +msgid "TASKPM: Import Project" +msgstr "TASKPM: プロジェクトのインポート" #: org/libreplan/web/resources/worker/WorkerCRUDController.java:730 msgid "Create Virtual Workers Group" @@ -6250,8 +6250,8 @@ msgid "" msgstr "互換性のあるブラウザを使用してください: Chrome, Firefox, Safari, Epiphany" #: libreplan-webapp/src/main/webapp/scenarios/transferOrders.zul:23 -msgid "LibrePlan: Transfer Projects Between Scenarios" -msgstr "LibrePlan: シナリオ間のプロジェクト移動" +msgid "TASKPM: Transfer Projects Between Scenarios" +msgstr "TASKPM: シナリオ間のプロジェクト移動" #: org/libreplan/web/common/CustomMenuController.java:306 #: libreplan-business/src/main/java/org/libreplan/business/users/entities/UserRole.java:50 @@ -6487,8 +6487,8 @@ msgid "quality form item position not specified" msgstr "品質フォーム項目の位置が指定されていません" #: libreplan-webapp/src/main/webapp/profiles/profiles.zul:23 -msgid "LibrePlan: Profiles" -msgstr "LibrePlan: プロファイル" +msgid "TASKPM: Profiles" +msgstr "TASKPM: プロファイル" #: libreplan-webapp/src/main/webapp/orders/_orderElementDetails.zul:38 msgid "Code " @@ -6499,8 +6499,8 @@ msgid "Budget At Completion" msgstr "完成時総予算" #: libreplan-webapp/src/main/webapp/workreports/workReport.zul:23 -msgid "LibrePlan: Timesheets" -msgstr "LibrePlan: タイムシート" +msgid "TASKPM: Timesheets" +msgstr "TASKPM: タイムシート" #: libreplan-webapp/src/main/webapp/orders/_listHoursGroupCriterionRequirement.zul:22 msgid "Criteria Requirement" @@ -6894,8 +6894,8 @@ msgid "" msgstr "タスクの予定開始日(Enterキーを押してカレンダーポップアップを開くか,または直接日付を入力するテキストボックスに入力します)" #: libreplan-webapp/src/main/webapp/externalcompanies/externalcompanies.zul:23 -msgid "LibrePlan: Companies" -msgstr "LibrePlan: 企業" +msgid "TASKPM: Companies" +msgstr "TASKPM: 企業" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:53 msgid "Subcontrated task" @@ -6922,8 +6922,8 @@ msgid "Date must be inside visualization area" msgstr "日付は表示範囲内でなければなりません" #: libreplan-webapp/src/main/webapp/templates/templates.zul:22 -msgid "LibrePlan: Templates" -msgstr "LibrePlan: テンプレート" +msgid "TASKPM: Templates" +msgstr "TASKPM: テンプレート" #: libreplan-webapp/src/main/webapp/resourceload/resourceload.zul:22 #: libreplan-webapp/src/main/webapp/planner/taskpanels/_tabPanelLimitingResourceAllocation.zul:22 @@ -6932,12 +6932,12 @@ msgstr "LibrePlan: テンプレート" #: libreplan-webapp/src/main/webapp/planner/montecarlo_function.zul:22 #: libreplan-webapp/src/main/webapp/planner/resources_use.zul:22 #: libreplan-webapp/src/main/webapp/planner/order.zul:22 -msgid "LibrePlan: Scheduling" -msgstr "LibrePlan: スケジューリング" +msgid "TASKPM: Scheduling" +msgstr "TASKPM: スケジューリング" #: libreplan-webapp/src/main/webapp/subcontract/reportAdvances.zul:22 -msgid "LibrePlan: Send To Customers" -msgstr "LibrePlan: 顧客へ" +msgid "TASKPM: Send To Customers" +msgstr "TASKPM: 顧客へ" #: libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReport.java:436 msgid "The timesheet line codes must be unique." @@ -7425,8 +7425,8 @@ msgid "The code cannot be empty and it must be unique." msgstr "コードは空以外のユニークなものでなければなりません" #: libreplan-webapp/src/main/webapp/resources/criterions/criterions.zul:24 -msgid "LibrePlan: Criteria" -msgstr "LibrePlan: 基準" +msgid "TASKPM: Criteria" +msgstr "TASKPM: 基準" #: org/libreplan/importers/OrderImporterMPXJ.java:660 msgid "Linked calendar not found" @@ -7839,8 +7839,8 @@ msgid "Start filtering date must be before than end filtering date" msgstr "フィルタリングの開始日付は終了日付より前でなければなりません" #: libreplan-webapp/src/main/webapp/orders/_synchronizationInfo.zul:20 -msgid "LibrePlan: Synchronization info" -msgstr "LibrePlan: 同期情報" +msgid "TASKPM: Synchronization info" +msgstr "TASKPM: 同期情報" #: org/libreplan/web/orders/DetailsOrderElementController.java:128 msgid "must be after starting date" @@ -8197,8 +8197,8 @@ msgid "Dedication chart" msgstr "就業時間チャート" #: libreplan-webapp/src/main/webapp/scenarios/scenarios.zul:23 -msgid "LibrePlan: Scenarios Management" -msgstr "LibrePlan: シナリオ管理" +msgid "TASKPM: Scenarios Management" +msgstr "TASKPM: シナリオ管理" #: org/libreplan/web/reports/CompletedEstimatedHoursPerTaskController.java:170 #: org/libreplan/web/reports/OrderCostsPerResourceController.java:213 @@ -8332,8 +8332,8 @@ msgid "Delete Template element" msgstr "テンプレート要素の削除" #: libreplan-webapp/src/main/webapp/resources/machine/machines.zul:22 -msgid "LibrePlan: Machines" -msgstr "LibrePlan: マシン" +msgid "TASKPM: Machines" +msgstr "TASKPM: マシン" #: libreplan-webapp/src/main/webapp/orders/_orderElementTreeFilter.zul:36 #: libreplan-webapp/src/main/webapp/orders/_orderFilter.zul:35 @@ -8520,7 +8520,7 @@ msgid "Must be after 2010!" msgstr "2010年以降でなければなりません。" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:144 -msgid "is not supported for its use with LibrePlan." +msgid "is not supported for its use with TASKPM." msgstr "LibrePlanでの使用はサポートされていません" #: libreplan-business/src/main/java/org/libreplan/business/qualityforms/entities/TaskQualityFormItem.java:99 @@ -8769,8 +8769,8 @@ msgid "number of digits must be between {0} and {1}" msgstr "{0}桁から{1}桁の間でなければなりません" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerReport.zul:21 -msgid "LibrePlan: Hours Worked Per Resource" -msgstr "LibrePlan: リソース単位の稼働時間" +msgid "TASKPM: Hours Worked Per Resource" +msgstr "TASKPM: リソース単位の稼働時間" #: org/libreplan/web/calendars/BaseCalendarEditionController.java:642 #: org/libreplan/web/calendars/BaseCalendarEditionController.java:1278 diff --git a/libreplan-webapp/src/main/resources/i18n/nb.po b/libreplan-webapp/src/main/resources/i18n/nb.po index 5cbf6a581..609c7127d 100644 --- a/libreplan-webapp/src/main/resources/i18n/nb.po +++ b/libreplan-webapp/src/main/resources/i18n/nb.po @@ -6,7 +6,7 @@ # kent thoresen , 2014-2015 msgid "" msgstr "" -"Project-Id-Version: LibrePlan\n" +"Project-Id-Version: TASKPM\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-10-10 17:54+0200\n" "PO-Revision-Date: 2016-07-18 18:26+0000\n" @@ -19,8 +19,8 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: libreplan-webapp/src/main/webapp/qualityforms/qualityForms.zul:22 -msgid "LibrePlan: Quality Forms" -msgstr "LibrePlan: Kvalitet skjema" +msgid "TASKPM: Quality Forms" +msgstr "TASKPM: Kvalitet skjema" #: libreplan-webapp/src/main/webapp/orders/_projectDetails.zul:58 #: libreplan-webapp/src/main/webapp/orders/_list.zul:30 @@ -44,8 +44,8 @@ msgid "Overtime" msgstr "Overtid" #: libreplan-webapp/src/main/webapp/excetiondays/exceptionDays.zul:22 -msgid "LibrePlan: Calendar Exception Days" -msgstr "LibrePlan: Kalender unntaksdager" +msgid "TASKPM: Calendar Exception Days" +msgstr "TASKPM: Kalender unntaksdager" #: org/libreplan/web/calendars/BaseCalendarModel.java:488 #: org/libreplan/web/calendars/BaseCalendarModel.java:520 @@ -134,8 +134,8 @@ msgid "Subcategory names must be unique." msgstr "Undernavn må være unike." #: libreplan-webapp/src/main/webapp/reports/timeLineMaterialReport.zul:21 -msgid "LibrePlan: Materials Needed At Date" -msgstr "LibrePlan: Materialer behov på dato" +msgid "TASKPM: Materials Needed At Date" +msgstr "TASKPM: Materialer behov på dato" #: org/libreplan/web/resources/machine/MachineCRUDController.java:630 msgid "Machines limit reached" @@ -481,8 +481,8 @@ msgid "please, select a project" msgstr "vær så snill, velge et prosjekt" #: libreplan-webapp/src/main/webapp/reports/projectStatusReport.zul:20 -msgid "LibrePlan: Project Status Report" -msgstr "LibrePlan: Prosjekt Status Report" +msgid "TASKPM: Project Status Report" +msgstr "TASKPM: Prosjekt Status Report" #: org/libreplan/web/calendars/BaseCalendarEditionController.java:627 #: org/libreplan/web/calendars/BaseCalendarEditionController.java:1263 @@ -543,8 +543,8 @@ msgid "Exit session" msgstr "Avslutt økten" #: libreplan-webapp/src/main/webapp/orders/_timImpExpInfo.zul:20 -msgid "LibrePlan: Tim import export info" -msgstr "LibrePlan: Tim import eksport info" +msgid "TASKPM: Tim import export info" +msgstr "TASKPM: Tim import eksport info" #: org/libreplan/web/planner/allocation/FormBinder.java:671 msgid "resources per day cannot be empty or less than zero" @@ -657,8 +657,8 @@ msgid "Companies List" msgstr "Selskaper Liste" #: libreplan-webapp/src/main/webapp/resources/worker/virtualWorkers.zul:22 -msgid "LibrePlan: Virtual Worker Groups" -msgstr "LibrePlan: Virtuell arbeider grupper " +msgid "TASKPM: Virtual Worker Groups" +msgstr "TASKPM: Virtuell arbeider grupper " #: org/libreplan/web/planner/tabs/MonteCarloTabCreator.java:51 #: org/libreplan/web/planner/tabs/MonteCarloTabCreator.java:159 @@ -671,8 +671,8 @@ msgid "Cost category" msgstr "Kostnadskategori" #: libreplan-webapp/src/main/webapp/myaccount/personalTimesheet.zul:21 -msgid "LibrePlan: Personal timesheet" -msgstr "LibrePlan: Personlig timeliste" +msgid "TASKPM: Personal timesheet" +msgstr "TASKPM: Personlig timeliste" #: libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReportLine.java:264 msgid "clock finish cannot be empty if number of hours is calcultate by clock" @@ -698,7 +698,7 @@ msgid "Unsaved changes will be lost. Are you sure?" msgstr "Ulagrede forandringer vil gå tapt. ønsker du å fortsette?" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/ConfigurationRolesLDAP.java:56 -msgid "LibrePlan role not specified" +msgid "TASKPM role not specified" msgstr "LibrePlan rolle ikke spesifisert" #: libreplan-webapp/src/main/webapp/scenarios/transferOrders.zul:39 @@ -714,8 +714,8 @@ msgid "Move" msgstr "Flytt" #: libreplan-webapp/src/main/webapp/orders/_jiraSyncInfo.zul:20 -msgid "LibrePlan: JIRA synchronization info" -msgstr "LibrePlan: Jira synkronisering info" +msgid "TASKPM: JIRA synchronization info" +msgstr "TASKPM: Jira synkronisering info" #: org/libreplan/web/common/components/finders/OrderFilterEnum.java:31 #: org/libreplan/web/common/components/finders/TaskGroupFilterEnum.java:31 @@ -759,8 +759,8 @@ msgid "Profiles List" msgstr "Profilliste" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:21 -msgid "LibrePlan: User access" -msgstr "LibrePlan: Bruker tilgang" +msgid "TASKPM: User access" +msgstr "TASKPM: Bruker tilgang" #: libreplan-business/src/main/java/org/libreplan/business/labels/entities/LabelType.java:158 msgid "label code is already being used" @@ -1538,7 +1538,7 @@ msgid "Violated deadline" msgstr "Krenket fristen" #: libreplan-webapp/src/main/webapp/common/configuration.zul:126 -msgid "Enable/Disable warning about new LibrePlan versions available" +msgid "Enable/Disable warning about new TASKPM versions available" msgstr "Aktiver / deaktiver advarer om nye LibrePlan versjoner tilgjengelige" #: libreplan-business/src/main/java/org/libreplan/business/orders/entities/HoursGroup.java:186 @@ -1581,8 +1581,8 @@ msgid "Progress sent successfully" msgstr "Fremskritts vellykket sendt" #: libreplan-webapp/src/main/webapp/myaccount/userDashboard.zul:21 -msgid "LibrePlan: My Dashboard" -msgstr "LibrePlan: My Dashboard" +msgid "TASKPM: My Dashboard" +msgstr "TASKPM: My Dashboard" #: libreplan-webapp/src/main/webapp/calendars/_edition.zul:131 msgid "Work week" @@ -1602,7 +1602,7 @@ msgstr "Etikett type felt" #: libreplan-webapp/src/main/webapp/common/event_error.zul:22 #: libreplan-webapp/src/main/webapp/common/error.zul:21 -msgid "LibrePlan: Runtime Error" +msgid "TASKPM: Runtime Error" msgstr "Libreplan: Driftsfeil" #: org/libreplan/web/planner/tabs/PlanningTabCreator.java:152 @@ -1650,7 +1650,7 @@ msgid "Criterion Types" msgstr "Criterion Typer" #: libreplan-webapp/src/main/webapp/common/configuration.zul:125 -msgid "Show a notification when new LibrePlan versions are released" +msgid "Show a notification when new TASKPM versions are released" msgstr "Vis et varsel når nye LibrePlan versjoner er lansert" #: org/libreplan/web/workreports/WorkReportTypeCRUDController.java:900 @@ -1719,8 +1719,8 @@ msgid "units not specified" msgstr "enheter ikke spesifisert" #: libreplan-webapp/src/main/webapp/advance/advanceTypes.zul:22 -msgid "LibrePlan: Progress Types" -msgstr "LibrePlan: Progress Typer" +msgid "TASKPM: Progress Types" +msgstr "TASKPM: Progress Typer" #: libreplan-webapp/src/main/webapp/planner/montecarlo_function.zul:36 msgid "MonteCarlo chart" @@ -1927,8 +1927,8 @@ msgid "percentage should be between 1 and 100" msgstr "andelen bør være mellom 1 og 100" #: libreplan-webapp/src/main/webapp/workreports/workReportQuery.zul:23 -msgid "LibrePlan: Timesheet Lines List" -msgstr "LibrePlan: Timeregistrering Lines List" +msgid "TASKPM: Timesheet Lines List" +msgstr "TASKPM: Timeregistrering Lines List" #: org/libreplan/web/labels/LabelTypeModel.java:269 msgid "Already exists other label with the same name" @@ -2055,8 +2055,8 @@ msgid "You have exceeded the maximum limit of users" msgstr "Du har overskredet maksgrense for brukere" #: libreplan-webapp/src/main/webapp/reports/schedulingProgressPerOrderReport.zul:21 -msgid "LibrePlan: Work And Progress Per Project" -msgstr "LibrePlan: Arbeid Og Fremskritts Per-prosjektet" +msgid "TASKPM: Work And Progress Per Project" +msgstr "TASKPM: Arbeid Og Fremskritts Per-prosjektet" #: libreplan-webapp/src/main/webapp/orders/_orderElementTreeFilter.zul:42 #: libreplan-webapp/src/main/webapp/orders/_orderFilter.zul:30 @@ -2120,8 +2120,8 @@ msgid "No roster-exceptions found in the response" msgstr "Inget roster-unntak funnet i responsen" #: libreplan-webapp/src/main/webapp/calendars/calendars.zul:22 -msgid "LibrePlan: Calendars" -msgstr "LibrePlan: Kalendere" +msgid "TASKPM: Calendars" +msgstr "TASKPM: Kalendere" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/EntitySequence.java:192 msgid "entity name not specified" @@ -2145,8 +2145,8 @@ msgid "Subcontracting date" msgstr "Underleveranser dato" #: libreplan-webapp/src/main/webapp/common/job_scheduling.zul:20 -msgid "LibrePlan: Job Scheduling" -msgstr "LibrePlan: Job Planlegging" +msgid "TASKPM: Job Scheduling" +msgstr "TASKPM: Job Planlegging" #: org/libreplan/importers/ImportRosterFromTim.java:182 msgid "No valid response for department \"{0}\"" @@ -2298,8 +2298,8 @@ msgid "Filter timesheet lines by" msgstr "Filtrer timeliste linjer etter" #: libreplan-webapp/src/main/webapp/unittypes/unitTypes.zul:21 -msgid "LibrePlan: Material Units" -msgstr "LibrePlan: Material Units" +msgid "TASKPM: Material Units" +msgstr "TASKPM: Material Units" #: org/libreplan/web/templates/TemplatesTreeComponent.java:64 msgid "New Template element" @@ -2452,8 +2452,8 @@ msgid "Maximum/minimum of worked hours in finished applications" msgstr "Maksimum / minimum av arbeidstimer i ferdige programmer" #: libreplan-webapp/src/main/webapp/labels/labelTypes.zul:21 -msgid "LibrePlan: Labels" -msgstr "LibrePlan: Etiketter" +msgid "TASKPM: Labels" +msgstr "TASKPM: Etiketter" #: libreplan-webapp/src/main/webapp/resources/worker/_edition.zul:31 msgid "Personal data" @@ -2503,8 +2503,8 @@ msgid "Observations" msgstr "Observasjoner" #: libreplan-webapp/src/main/webapp/common/page_not_found.zul:22 -msgid "LibrePlan: Page not found" -msgstr "LibrePlan: Side ikke funnet" +msgid "TASKPM: Page not found" +msgstr "TASKPM: Side ikke funnet" #: libreplan-webapp/src/main/webapp/orders/_edition.zul:251 #: libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul:55 @@ -2595,8 +2595,8 @@ msgid "Output format:" msgstr "Output format:" #: libreplan-webapp/src/main/webapp/reports/workingProgressPerTaskReport.zul:21 -msgid "LibrePlan: Work And Progress Per Task" -msgstr "LibrePlan: Arbeid Og Fremskritts Per Task" +msgid "TASKPM: Work And Progress Per Task" +msgstr "TASKPM: Arbeid Og Fremskritts Per Task" #: org/libreplan/web/advance/AdvanceTypeCRUDController.java:81 msgid "" @@ -2687,8 +2687,8 @@ msgid "Label type already assigned" msgstr "Etikett type allerede tilordnet" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:20 -msgid "LibrePlan: Received From Subcontractors" -msgstr "LibrePlan: Mottatt fra Underleverandører" +msgid "TASKPM: Received From Subcontractors" +msgstr "TASKPM: Mottatt fra Underleverandører" #: libreplan-webapp/src/main/webapp/common/configuration.zul:58 msgid "Company code" @@ -2908,8 +2908,8 @@ msgid "label type: the timesheet have not assigned this label type" msgstr "etikett Type: time har ikke fått tildelt denne type etikett" #: libreplan-webapp/src/main/webapp/typeofworkhours/typeOfWorkHours.zul:23 -msgid "LibrePlan: Hours Types" -msgstr "LibrePlan: Timetyper" +msgid "TASKPM: Hours Types" +msgstr "TASKPM: Timetyper" #: org/libreplan/web/common/CustomMenuController.java:264 #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:109 @@ -2937,8 +2937,8 @@ msgid "Please try it again." msgstr "Vennligst prøv igjen." #: libreplan-webapp/src/main/webapp/expensesheet/expenseSheet.zul:21 -msgid "LibrePlan: Expenses" -msgstr "LibrePlan: Utgifter" +msgid "TASKPM: Expenses" +msgstr "TASKPM: Utgifter" #: org/libreplan/web/tree/TreeController.java:1294 msgid "Modified" @@ -2998,8 +2998,8 @@ msgid "Date last progress measurement" msgstr "Dato måling siste fremgang" #: libreplan-webapp/src/main/webapp/reports/completedEstimatedHoursPerTask.zul:21 -msgid "LibrePlan: Estimated/Planned Hours Per Task" -msgstr "LibrePlan: Estimert / Planlagte timer per Task" +msgid "TASKPM: Estimated/Planned Hours Per Task" +msgstr "TASKPM: Estimert / Planlagte timer per Task" #: libreplan-webapp/src/main/webapp/orders/_listOrderElementAuthorizations.zul:43 #: libreplan-webapp/src/main/webapp/orders/_listOrderElementAuthorizations.zul:67 @@ -3205,8 +3205,8 @@ msgid "Finished" msgstr "Ferdig" #: libreplan-webapp/src/main/webapp/planner/index.zul:22 -msgid "LibrePlan: Planning" -msgstr "LibrePlan: Planlegging" +msgid "TASKPM: Planning" +msgstr "TASKPM: Planlegging" #: org/libreplan/web/scenarios/ScenarioModel.java:126 msgid "You cannot remove the current scenario" @@ -3278,8 +3278,8 @@ msgid "Property strategy" msgstr "eiendom strategi" #: libreplan-webapp/src/main/webapp/reports/orderCostsPerResource.zul:21 -msgid "LibrePlan: Project Costs" -msgstr "LibrePlan: prosjektkostnader" +msgid "TASKPM: Project Costs" +msgstr "TASKPM: prosjektkostnader" #: org/libreplan/web/common/ConfigurationController.java:265 msgid "Changes saved" @@ -3314,8 +3314,8 @@ msgid "Calendar exception days" msgstr "Kalender unntaksdager" #: libreplan-webapp/src/main/webapp/myaccount/changePassword.zul:21 -msgid "LibrePlan: Change password" -msgstr "LibrePlan: Endre passord" +msgid "TASKPM: Change password" +msgstr "TASKPM: Endre passord" #: org/libreplan/web/planner/allocation/GenericAllocationRow.java:55 msgid "Generic" @@ -3895,7 +3895,7 @@ msgstr "Kommunikasjon Type" #: libreplan-webapp/src/main/webapp/common/page_not_found.zul:49 msgid "" -"If you reached this page from another page of LibrePlan please notify us in " +"If you reached this page from another page of TASKPM please notify us in " "order to fix it as soon as possible." msgstr "Hvis du kom til denne siden fra en annen side av LibrePlan vennligst varsle oss for å fikse det så snart som mulig." @@ -3931,8 +3931,8 @@ msgid "Repeated Hours Group code {0} in Project {1}" msgstr "Assosiasjon med roller" #: libreplan-webapp/src/main/webapp/resources/worker/worker.zul:22 -msgid "LibrePlan: Workers" -msgstr "LibrePlan: Arbeidere" +msgid "TASKPM: Workers" +msgstr "TASKPM: Arbeidere" #: org/libreplan/web/planner/allocation/AdvancedAllocationController.java:1573 msgid "Not configurable" @@ -4389,8 +4389,8 @@ msgid "" msgstr "ressurs kost kategori oppdrag koder, må være unike i en ressurs" #: libreplan-webapp/src/main/webapp/materials/materials.zul:21 -msgid "LibrePlan: Materials" -msgstr "LibrePlan: Materialer" +msgid "TASKPM: Materials" +msgstr "TASKPM: Materialer" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:104 msgid "User disabled" @@ -4636,8 +4636,8 @@ msgid "Stretches with Interpolation" msgstr "Strekker med interpole" #: libreplan-webapp/src/main/webapp/workreports/workReportTypes.zul:23 -msgid "LibrePlan: Timesheets Templates" -msgstr "LibrePlan: Timelister Maler" +msgid "TASKPM: Timesheets Templates" +msgstr "TASKPM: Timelister Maler" #: org/libreplan/web/common/CustomMenuController.java:514 msgid "Reports" @@ -4667,8 +4667,8 @@ msgid "" msgstr "Du kan ikke fjerne oppgaven \"{0}\" fordi det er eneste barn av sin overordnede og moder har sporet tid eller kalkulatoriske kostnader" #: libreplan-webapp/src/main/webapp/reports/workingArrangementsPerOrderReport.zul:21 -msgid "LibrePlan: Task Scheduling Status In Project" -msgstr "LibrePlan: Task Scheduling Status I Prosjekt" +msgid "TASKPM: Task Scheduling Status In Project" +msgstr "TASKPM: Task Scheduling Status I Prosjekt" #: libreplan-webapp/src/main/webapp/common/layout/_customMenu.zul:55 msgid "START" @@ -4903,8 +4903,8 @@ msgid "Reassigning type" msgstr "Reassigning typen" #: libreplan-webapp/src/main/webapp/common/configuration.zul:23 -msgid "LibrePlan: Main Settings" -msgstr "LibrePlan: Hovedinnstillinger" +msgid "TASKPM: Main Settings" +msgstr "TASKPM: Hovedinnstillinger" #: org/libreplan/web/common/CustomMenuController.java:419 #: libreplan-business/src/main/java/org/libreplan/business/users/entities/UserRole.java:69 @@ -5000,8 +5000,8 @@ msgid "Expand taskgroups" msgstr "Utvide taskgroups" #: libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul:22 -msgid "LibrePlan: Send To Subcontractors" -msgstr "LibrePlan: Send til underlevernadører" +msgid "TASKPM: Send To Subcontractors" +msgstr "TASKPM: Send til underlevernadører" #: org/libreplan/web/limitingresources/ManualAllocationController.java:492 msgid "END" @@ -5139,16 +5139,16 @@ msgid "" msgstr "Vennligst prøv å ta kontakt med en administrator for å gjennomgå dine rettigheter i LibrePlan." #: libreplan-webapp/src/main/webapp/costcategories/costCategory.zul:23 -msgid "LibrePlan: Cost Categories" -msgstr "LibrePlan: Kostnads ​​Kategorier" +msgid "TASKPM: Cost Categories" +msgstr "TASKPM: Kostnads ​​Kategorier" #: libreplan-webapp/src/main/webapp/users/_editUser.zul:120 msgid "Unbound resource" msgstr "ubundet ressurs" #: libreplan-webapp/src/main/webapp/subcontract/customerCommunications.zul:20 -msgid "LibrePlan: Received From Customers" -msgstr "LibrePlan: Mottatt fra Kunder" +msgid "TASKPM: Received From Customers" +msgstr "TASKPM: Mottatt fra Kunder" #: libreplan-webapp/src/main/webapp/workreports/_listWorkReportTypes.zul:47 #: libreplan-webapp/src/main/webapp/workreports/workReport.zul:106 @@ -5891,8 +5891,8 @@ msgid "Calendar allocation" msgstr "Kalender tildeling" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerInAMonthReport.zul:21 -msgid "LibrePlan: Total Worked Hours By Resource In A Month" -msgstr "LibrePlan: Total Jobbet timer av ressursen på en måned" +msgid "TASKPM: Total Worked Hours By Resource In A Month" +msgstr "TASKPM: Total Jobbet timer av ressursen på en måned" #: org/libreplan/web/resources/criterion/CriterionAdminController.java:257 msgid "" @@ -5948,8 +5948,8 @@ msgid "" msgstr "Kryss av dette valget hvis du ønsker å sende tilbakemelding til LibrePlan utviklere om bruk program" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:22 -msgid "LibrePlan: Settings" -msgstr "LibrePlan: Innstillinger" +msgid "TASKPM: Settings" +msgstr "TASKPM: Innstillinger" #: org/libreplan/web/common/CustomMenuController.java:345 #: libreplan-webapp/src/main/webapp/orders/_editOrderElement.zul:54 @@ -5980,8 +5980,8 @@ msgid "Change the password" msgstr "Endre passord" #: libreplan-webapp/src/main/webapp/common/access_forbidden.zul:20 -msgid "LibrePlan: Access Forbidden" -msgstr "LibrePlan: Tilgang Forbidden" +msgid "TASKPM: Access Forbidden" +msgstr "TASKPM: Tilgang Forbidden" #: libreplan-webapp/src/main/webapp/montecarlo/_montecarlo.zul:50 #: libreplan-webapp/src/main/webapp/montecarlo/_montecarlo.zul:52 @@ -6061,8 +6061,8 @@ msgid "No authorizations were added because you did not select any." msgstr "Ingen rettigheter ble lagt til fordi du ikke valgte noen," #: libreplan-webapp/src/main/webapp/users/users.zul:23 -msgid "LibrePlan: User Accounts" -msgstr "LibrePlan: Brukerkontoer" +msgid "TASKPM: User Accounts" +msgstr "TASKPM: Brukerkontoer" #: libreplan-webapp/src/main/webapp/templates/_assignedQualityForms.zul:30 msgid "Quality forms" @@ -6109,7 +6109,7 @@ msgid "Interacts with applications" msgstr "Samhandler med applikasjoner" #: libreplan-webapp/src/main/webapp/planner/advance_allocation.zul:22 -msgid "LibrePlan: Advanced allocation" +msgid "TASKPM: Advanced allocation" msgstr "Libreplan: Avansert tildeling" #: org/libreplan/importers/CalendarImporterMPXJ.java:365 @@ -6235,8 +6235,8 @@ msgid "Standard Effort" msgstr "standard Innsats" #: libreplan-webapp/src/main/webapp/orders/imports/projectImport.zul:21 -msgid "LibrePlan: Import Project" -msgstr "LibrePlan: Import-prosjektet" +msgid "TASKPM: Import Project" +msgstr "TASKPM: Import-prosjektet" #: org/libreplan/web/resources/worker/WorkerCRUDController.java:730 msgid "Create Virtual Workers Group" @@ -6249,8 +6249,8 @@ msgid "" msgstr "Bruk noen av de kompatible nettlesere: Chrome, Firefox, Safari eller Epiphany." #: libreplan-webapp/src/main/webapp/scenarios/transferOrders.zul:23 -msgid "LibrePlan: Transfer Projects Between Scenarios" -msgstr "LibrePlan: Overfør prosjekter mellom Scenarier" +msgid "TASKPM: Transfer Projects Between Scenarios" +msgstr "TASKPM: Overfør prosjekter mellom Scenarier" #: org/libreplan/web/common/CustomMenuController.java:306 #: libreplan-business/src/main/java/org/libreplan/business/users/entities/UserRole.java:50 @@ -6486,8 +6486,8 @@ msgid "quality form item position not specified" msgstr "kvalitet skjema element posisjon ikke spesifisert" #: libreplan-webapp/src/main/webapp/profiles/profiles.zul:23 -msgid "LibrePlan: Profiles" -msgstr "LibrePlan: Profiler" +msgid "TASKPM: Profiles" +msgstr "TASKPM: Profiler" #: libreplan-webapp/src/main/webapp/orders/_orderElementDetails.zul:38 msgid "Code " @@ -6498,8 +6498,8 @@ msgid "Budget At Completion" msgstr "Budsjett på Completion" #: libreplan-webapp/src/main/webapp/workreports/workReport.zul:23 -msgid "LibrePlan: Timesheets" -msgstr "LibrePlan: Timelister" +msgid "TASKPM: Timesheets" +msgstr "TASKPM: Timelister" #: libreplan-webapp/src/main/webapp/orders/_listHoursGroupCriterionRequirement.zul:22 msgid "Criteria Requirement" @@ -6893,8 +6893,8 @@ msgid "" msgstr "Estimert startdato for oppgaven (trykk enter i tekstboksen for å åpne kalender popup eller skriv inn dato direkte)" #: libreplan-webapp/src/main/webapp/externalcompanies/externalcompanies.zul:23 -msgid "LibrePlan: Companies" -msgstr "LibrePlan: Selskaper" +msgid "TASKPM: Companies" +msgstr "TASKPM: Selskaper" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:53 msgid "Subcontrated task" @@ -6921,8 +6921,8 @@ msgid "Date must be inside visualization area" msgstr "Dato må være inne visualisering område" #: libreplan-webapp/src/main/webapp/templates/templates.zul:22 -msgid "LibrePlan: Templates" -msgstr "LibrePlan: Maler" +msgid "TASKPM: Templates" +msgstr "TASKPM: Maler" #: libreplan-webapp/src/main/webapp/resourceload/resourceload.zul:22 #: libreplan-webapp/src/main/webapp/planner/taskpanels/_tabPanelLimitingResourceAllocation.zul:22 @@ -6931,12 +6931,12 @@ msgstr "LibrePlan: Maler" #: libreplan-webapp/src/main/webapp/planner/montecarlo_function.zul:22 #: libreplan-webapp/src/main/webapp/planner/resources_use.zul:22 #: libreplan-webapp/src/main/webapp/planner/order.zul:22 -msgid "LibrePlan: Scheduling" -msgstr "LibrePlan: Planlegging" +msgid "TASKPM: Scheduling" +msgstr "TASKPM: Planlegging" #: libreplan-webapp/src/main/webapp/subcontract/reportAdvances.zul:22 -msgid "LibrePlan: Send To Customers" -msgstr "LibrePlan: Send til kunder" +msgid "TASKPM: Send To Customers" +msgstr "TASKPM: Send til kunder" #: libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReport.java:436 msgid "The timesheet line codes must be unique." @@ -7424,8 +7424,8 @@ msgid "The code cannot be empty and it must be unique." msgstr "Koden kan ikke være tom og må være unik" #: libreplan-webapp/src/main/webapp/resources/criterions/criterions.zul:24 -msgid "LibrePlan: Criteria" -msgstr "LibrePlan: Kriterier" +msgid "TASKPM: Criteria" +msgstr "TASKPM: Kriterier" #: org/libreplan/importers/OrderImporterMPXJ.java:660 msgid "Linked calendar not found" @@ -7838,8 +7838,8 @@ msgid "Start filtering date must be before than end filtering date" msgstr "Begynn å filtrere dato må være før enn sluttfiltrering dato" #: libreplan-webapp/src/main/webapp/orders/_synchronizationInfo.zul:20 -msgid "LibrePlan: Synchronization info" -msgstr "LibrePlan: Synkronisering info" +msgid "TASKPM: Synchronization info" +msgstr "TASKPM: Synkronisering info" #: org/libreplan/web/orders/DetailsOrderElementController.java:128 msgid "must be after starting date" @@ -8196,8 +8196,8 @@ msgid "Dedication chart" msgstr "Dedikasjons kart" #: libreplan-webapp/src/main/webapp/scenarios/scenarios.zul:23 -msgid "LibrePlan: Scenarios Management" -msgstr "LibrePlan: Scenarier Ledelse" +msgid "TASKPM: Scenarios Management" +msgstr "TASKPM: Scenarier Ledelse" #: org/libreplan/web/reports/CompletedEstimatedHoursPerTaskController.java:170 #: org/libreplan/web/reports/OrderCostsPerResourceController.java:213 @@ -8331,8 +8331,8 @@ msgid "Delete Template element" msgstr "Slett mal element" #: libreplan-webapp/src/main/webapp/resources/machine/machines.zul:22 -msgid "LibrePlan: Machines" -msgstr "LibrePlan: Maskiner" +msgid "TASKPM: Machines" +msgstr "TASKPM: Maskiner" #: libreplan-webapp/src/main/webapp/orders/_orderElementTreeFilter.zul:36 #: libreplan-webapp/src/main/webapp/orders/_orderFilter.zul:35 @@ -8519,7 +8519,7 @@ msgid "Must be after 2010!" msgstr "" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:144 -msgid "is not supported for its use with LibrePlan." +msgid "is not supported for its use with TASKPM." msgstr "Det er ikke støtte for sin bruk med LibrePlan." #: libreplan-business/src/main/java/org/libreplan/business/qualityforms/entities/TaskQualityFormItem.java:99 @@ -8768,8 +8768,8 @@ msgid "number of digits must be between {0} and {1}" msgstr "antall sifre må være mellom {0} og {1}" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerReport.zul:21 -msgid "LibrePlan: Hours Worked Per Resource" -msgstr "LibrePlan: arbeidstimer per Resource" +msgid "TASKPM: Hours Worked Per Resource" +msgstr "TASKPM: arbeidstimer per Resource" #: org/libreplan/web/calendars/BaseCalendarEditionController.java:642 #: org/libreplan/web/calendars/BaseCalendarEditionController.java:1278 diff --git a/libreplan-webapp/src/main/resources/i18n/nl.po b/libreplan-webapp/src/main/resources/i18n/nl.po index d9148e377..35fb3d9a7 100644 --- a/libreplan-webapp/src/main/resources/i18n/nl.po +++ b/libreplan-webapp/src/main/resources/i18n/nl.po @@ -8,7 +8,7 @@ # Jeroen Baten , 2015-2016 msgid "" msgstr "" -"Project-Id-Version: LibrePlan\n" +"Project-Id-Version: TASKPM\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-11-27 20:07+0100\n" "PO-Revision-Date: 2011-12-12 19:43+0000\n" @@ -96,8 +96,8 @@ msgid "Select template" msgstr "Kies sjabloon" #: libreplan-webapp/src/main/webapp/workreports/workReport.zul:23 -msgid "LibrePlan: Timesheets" -msgstr "LibrePlan: Urenstaten" +msgid "TASKPM: Timesheets" +msgstr "TASKPM: Urenstaten" #: libreplan-webapp/src/main/webapp/myaccount/_myTasksArea.zul:39 msgid "Work done" @@ -144,7 +144,7 @@ msgid "job class name not specified" msgstr "taakgroepsnaam niet gespecificeerd" #: libreplan-webapp/src/main/webapp/common/configuration.zul:146 -msgid "Show a notification when new LibrePlan versions are released" +msgid "Show a notification when new TASKPM versions are released" msgstr "Toon een melding als er een nieuwe LibrePlan versie is verschenen" #: org/libreplan/web/orders/OrderCRUDController.java:492 @@ -268,8 +268,8 @@ msgid "Task quality forms" msgstr "Taak kwaliteitsformulier" #: libreplan-webapp/src/main/webapp/templates/templates.zul:22 -msgid "LibrePlan: Templates" -msgstr "LibrePlan: Sjablonen" +msgid "TASKPM: Templates" +msgstr "TASKPM: Sjablonen" #: org/libreplan/web/workreports/WorkReportTypeModel.java:414 msgid "There is another timesheet template with the same name" @@ -313,8 +313,8 @@ msgid "Authentication type" msgstr "Authenticatietype" #: libreplan-webapp/src/main/webapp/reports/workingArrangementsPerOrderReport.zul:21 -msgid "LibrePlan: Task Scheduling Status In Project" -msgstr "LibrePlan: Taakplanningsstatus in project" +msgid "TASKPM: Task Scheduling Status In Project" +msgstr "TASKPM: Taakplanningsstatus in project" #: org/libreplan/web/resources/criterion/CriterionsModel.java:216 msgid "Resource type cannot be empty" @@ -450,8 +450,8 @@ msgid "Schedule from deadline to start" msgstr "Plan van deadline naar start" #: libreplan-webapp/src/main/webapp/resources/machine/machines.zul:22 -msgid "LibrePlan: Machines" -msgstr "LibrePlan: Machines" +msgid "TASKPM: Machines" +msgstr "TASKPM: Machines" #: org/libreplan/web/common/CustomMenuController.java:400 #: org/libreplan/web/workreports/WorkReportTypeCRUDController.java:878 @@ -479,8 +479,8 @@ msgid "Criterion cannot be empty" msgstr "Criteria kunnen niet leeg zijn" #: libreplan-webapp/src/main/webapp/planner/index.zul:22 -msgid "LibrePlan: Planning" -msgstr "LibrePlan: Planning" +msgid "TASKPM: Planning" +msgstr "TASKPM: Planning" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/Configuration.java:146 msgid "default calendar not specified" @@ -729,8 +729,8 @@ msgid "Save and Continue" msgstr "Opslaan en doorgaan" #: libreplan-webapp/src/main/webapp/externalcompanies/externalcompanies.zul:23 -msgid "LibrePlan: Companies" -msgstr "LibrePlan: Bedrijven" +msgid "TASKPM: Companies" +msgstr "TASKPM: Bedrijven" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/EntitySequence.java:152 msgid "format sequence code invalid. It must not contain '_'" @@ -893,7 +893,7 @@ msgstr "Aktieve periode vanaf" #: libreplan-webapp/src/main/webapp/common/pageNotFound.zul:49 msgid "" -"If you reached this page from another page of LibrePlan please notify us in " +"If you reached this page from another page of TASKPM please notify us in " "order to fix it as soon as possible." msgstr "" "Als u deze pagina bereikt vanuit een andere pagina van LibrePlan laat het " @@ -1166,8 +1166,8 @@ msgstr "" "de tabel een niet lege CommunicationDate hebben." #: libreplan-webapp/src/main/webapp/common/pageNotFound.zul:22 -msgid "LibrePlan: Page not found" -msgstr "LibrePlan: Pagina niet gevonden" +msgid "TASKPM: Page not found" +msgstr "TASKPM: Pagina niet gevonden" #: org/libreplan/web/users/dashboard/ExpensesAreaController.java:87 msgid "Expense sheet \"{0}\" deleted" @@ -1303,8 +1303,8 @@ msgid "Advanced Allocation" msgstr "Gevorderd toekennen" #: libreplan-webapp/src/main/webapp/reports/timeLineMaterialReport.zul:21 -msgid "LibrePlan: Materials Needed At Date" -msgstr "LibrePlan: Materialen nodig op datum" +msgid "TASKPM: Materials Needed At Date" +msgstr "TASKPM: Materialen nodig op datum" #: libreplan-webapp/src/main/webapp/unittypes/unitTypes.zul:42 #: libreplan-webapp/src/main/webapp/templates/_editTemplate.zul:165 @@ -1344,8 +1344,8 @@ msgstr "" "Waarschuwing: Niet te wijzigen vanaf de homepage van gekoppelde gebruikers" #: libreplan-webapp/src/main/webapp/workreports/workReportQuery.zul:23 -msgid "LibrePlan: Timesheet Lines List" -msgstr "LibrePlan: Urenstaatregelslijst" +msgid "TASKPM: Timesheet Lines List" +msgstr "TASKPM: Urenstaatregelslijst" #: org/libreplan/web/users/dashboard/PersonalTimesheetController.java:664 #: org/libreplan/web/common/components/finders/OrderElementBandboxFinder.java:51 @@ -1430,8 +1430,8 @@ msgstr "" "gekozen toekenningsstrategie" #: libreplan-webapp/src/main/webapp/orders/_jiraSyncInfo.zul:20 -msgid "LibrePlan: JIRA synchronization info" -msgstr "LibrePlan: JIRA synchronisatie info" +msgid "TASKPM: JIRA synchronization info" +msgstr "TASKPM: JIRA synchronisatie info" #: org/libreplan/web/common/CustomMenuController.java:290 #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:112 @@ -1519,8 +1519,8 @@ msgstr "Maak nieuw project" #: libreplan-webapp/src/main/webapp/common/eventError.zul:22 #: libreplan-webapp/src/main/webapp/common/error.zul:21 -msgid "LibrePlan: Runtime Error" -msgstr "LibrePlan: Runtime Error" +msgid "TASKPM: Runtime Error" +msgstr "TASKPM: Runtime Error" #: libreplan-webapp/src/main/webapp/common/configuration.zul:467 msgid "Role property" @@ -1655,8 +1655,8 @@ msgid "Estimations" msgstr "Schattingen" #: libreplan-webapp/src/main/webapp/orders/_synchronizationInfo.zul:20 -msgid "LibrePlan: Synchronization info" -msgstr "LibrePlan: Synchronisatie info" +msgid "TASKPM: Synchronization info" +msgstr "TASKPM: Synchronisatie info" #: libreplan-webapp/src/main/webapp/common/_editJobScheduling.zul:152 msgid "1 or 7 is Sunday, or use names" @@ -1932,8 +1932,8 @@ msgid "Change password" msgstr "Wijzig wachtwoord" #: libreplan-webapp/src/main/webapp/reports/schedulingProgressPerOrderReport.zul:21 -msgid "LibrePlan: Work And Progress Per Project" -msgstr "LibrePlan: Werk en voortgang per project" +msgid "TASKPM: Work And Progress Per Project" +msgstr "TASKPM: Werk en voortgang per project" #: org/libreplan/importers/ExportTimesheetsToTim.java:224 msgid "Registration response with empty refs" @@ -2042,16 +2042,16 @@ msgid "All changes will be lost. Are you sure?" msgstr "Alle wijzigingen zullen verloren gaan. Weet u het zeker?" #: libreplan-webapp/src/main/webapp/common/configuration.zul:23 -msgid "LibrePlan: Main Settings" -msgstr "LibrePlan: Basis Instellingen" +msgid "TASKPM: Main Settings" +msgstr "TASKPM: Basis Instellingen" #: org/libreplan/web/users/dashboard/UserDashboardController.java:71 msgid "Expense sheet \"{0}\" saved" msgstr "Onkostendeclaratie \"{0}\" opgeslagen" #: libreplan-webapp/src/main/webapp/workreports/workReportTypes.zul:23 -msgid "LibrePlan: Timesheets Templates" -msgstr "LibrePlan: Urenstaat Sjablonen" +msgid "TASKPM: Timesheets Templates" +msgstr "TASKPM: Urenstaat Sjablonen" #: org/libreplan/web/planner/allocation/FormBinder.java:640 msgid "{0} already assigned to resource allocation list" @@ -2186,7 +2186,7 @@ msgstr "Urenmarge" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:185 msgid "" -"Giving a gift today means LibrePlan continues to remain available and in " +"Giving a gift today means TASKPM continues to remain available and in " "active development tomorrow!" msgstr "" "Een donatie betekent dat LibrePlan ook morgen beschikbaar blijft en in " @@ -2499,8 +2499,8 @@ msgid "At least one {0} sequence is needed" msgstr "Minimaal één {0} sequence is nodig" #: libreplan-webapp/src/main/webapp/resources/worker/virtualWorkers.zul:22 -msgid "LibrePlan: Virtual Worker Groups" -msgstr "LibrePlan: Virtueel team" +msgid "TASKPM: Virtual Worker Groups" +msgstr "TASKPM: Virtueel team" #: libreplan-webapp/src/main/webapp/resources/worker/_localizations.zul:64 msgid "Log" @@ -2565,8 +2565,8 @@ msgid " (%d tasks)" msgstr "(%d taken)" #: libreplan-webapp/src/main/webapp/subcontract/reportAdvances.zul:22 -msgid "LibrePlan: Send To Customers" -msgstr "LibrePlan: Zend naar klanten" +msgid "TASKPM: Send To Customers" +msgstr "TASKPM: Zend naar klanten" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:138 #: libreplan-webapp/src/main/webapp/common/configuration.zul:93 @@ -2660,8 +2660,8 @@ msgid "Date Resolved" msgstr "Datum opgelosd" #: libreplan-webapp/src/main/webapp/reports/completedEstimatedHoursPerTask.zul:21 -msgid "LibrePlan: Estimated/Planned Hours Per Task" -msgstr "LibrePlan: Geschatte/Geplande uren per taak" +msgid "TASKPM: Estimated/Planned Hours Per Task" +msgstr "TASKPM: Geschatte/Geplande uren per taak" #: org/libreplan/web/orders/DynamicDatebox.java:152 msgid "Date format is wrong. Please, use the following format: {0}" @@ -2758,8 +2758,8 @@ msgid "Manual allocation" msgstr "Handmatig toekennen" #: libreplan-webapp/src/main/webapp/costcategories/costCategory.zul:23 -msgid "LibrePlan: Cost Categories" -msgstr "LibrePlan: Kostencategorien" +msgid "TASKPM: Cost Categories" +msgstr "TASKPM: Kostencategorien" #: libreplan-business/src/main/java/org/libreplan/business/advance/entities/AdvanceMeasurement.java:100 #: libreplan-business/src/main/java/org/libreplan/business/workreports/valueobjects/DescriptionValue.java:80 @@ -3405,7 +3405,7 @@ msgid "Progress Types" msgstr "Voortgang types" #: libreplan-webapp/src/main/webapp/scenarios/scenarios.zul:23 -msgid "LibrePlan: Scenarios Management" +msgid "TASKPM: Scenarios Management" msgstr "Libreplan: Scenario Management" #: libreplan-webapp/src/main/webapp/templates/_historicalStatistics.zul:55 @@ -3445,8 +3445,8 @@ msgid "Add From Template" msgstr "Toevoegen vanaf sjabloon" #: libreplan-webapp/src/main/webapp/qualityforms/qualityForms.zul:22 -msgid "LibrePlan: Quality Forms" -msgstr "LibrePlan: Kwaliteits Formulieren" +msgid "TASKPM: Quality Forms" +msgstr "TASKPM: Kwaliteits Formulieren" #: org/libreplan/importers/ExportTimesheetsToTim.java:185 msgid "No work reportlines are found for order: \"{0}\"" @@ -3477,8 +3477,8 @@ msgstr "Urentypes zijn leeg. Maak aub enkele urentypes aan voor u verder gaat" #: libreplan-webapp/src/main/webapp/planner/montecarlo_function.zul:22 #: libreplan-webapp/src/main/webapp/planner/resources_use.zul:22 #: libreplan-webapp/src/main/webapp/planner/stretches_function.zul:22 -msgid "LibrePlan: Scheduling" -msgstr "LibrePlan: Planning" +msgid "TASKPM: Scheduling" +msgstr "TASKPM: Planning" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:84 msgid "Application settings" @@ -4123,8 +4123,8 @@ msgid "Issue log" msgstr "Issue-log" #: libreplan-webapp/src/main/webapp/subcontract/customerCommunications.zul:20 -msgid "LibrePlan: Received From Customers" -msgstr "LibrePlan: Ontvang van klanten" +msgid "TASKPM: Received From Customers" +msgstr "TASKPM: Ontvang van klanten" #: libreplan-webapp/src/main/webapp/common/eventError.zul:26 #: libreplan-webapp/src/main/webapp/common/error.zul:31 @@ -4140,12 +4140,12 @@ msgid "Already exists other label with the same name" msgstr "Er bestaat reeds een label met de zelfde naam" #: libreplan-webapp/src/main/webapp/scenarios/transferOrders.zul:23 -msgid "LibrePlan: Transfer Projects Between Scenarios" -msgstr "LibrePlan: Kopieer projecten tussen scenarios" +msgid "TASKPM: Transfer Projects Between Scenarios" +msgstr "TASKPM: Kopieer projecten tussen scenarios" #: libreplan-webapp/src/main/webapp/expensesheet/expenseSheet.zul:21 -msgid "LibrePlan: Expenses" -msgstr "LibrePlan: Uitgaven" +msgid "TASKPM: Expenses" +msgstr "TASKPM: Uitgaven" #: libreplan-webapp/src/main/webapp/orders/_edition.zul:302 #: libreplan-webapp/src/main/webapp/orders/_edition.zul:338 @@ -4156,7 +4156,7 @@ msgid "Communication date" msgstr "Communicatiedatum" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:207 -msgid "is not supported for its use with LibrePlan." +msgid "is not supported for its use with TASKPM." msgstr "wordt niet ondersteund voor gebruik binnen LibrePlan." #: libreplan-webapp/src/main/webapp/subcontract/customerCommunications.zul:44 @@ -4208,8 +4208,8 @@ msgid "label names must be unique inside a label type" msgstr "labelnamen moeten uniek zijn binnen een labeltype" #: libreplan-webapp/src/main/webapp/myaccount/personalTimesheet.zul:21 -msgid "LibrePlan: Personal timesheet" -msgstr "LibrePlan: Persoonlijke urenstaat" +msgid "TASKPM: Personal timesheet" +msgstr "TASKPM: Persoonlijke urenstaat" #: org/libreplan/importers/ExportTimesheetsToTim.java:130 msgid "Order should not be empty" @@ -4274,7 +4274,7 @@ msgid "Manual" msgstr "Manual" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/ConfigurationRolesLDAP.java:56 -msgid "LibrePlan role not specified" +msgid "TASKPM role not specified" msgstr "LibrePlan rol niet gespecificeerd" #: org/libreplan/web/subcontract/ReportAdvancesModel.java:225 @@ -4408,8 +4408,8 @@ msgid "Personal timesheet \"{0}\" saved" msgstr "Persoonlijke urenstaat \"{0}\" opgeslagen" #: libreplan-webapp/src/main/webapp/unittypes/unitTypes.zul:21 -msgid "LibrePlan: Material Units" -msgstr "LibrePlan: Materiaal Eenheden" +msgid "TASKPM: Material Units" +msgstr "TASKPM: Materiaal Eenheden" #: libreplan-webapp/src/main/webapp/orders/_editOrderElement.zul:39 #: libreplan-webapp/src/main/webapp/templates/_editTemplateWindow.zul:42 @@ -4537,7 +4537,7 @@ msgid "Concept" msgstr "Concept" #: libreplan-webapp/src/main/webapp/common/configuration.zul:147 -msgid "Enable/Disable warning about new LibrePlan versions available" +msgid "Enable/Disable warning about new TASKPM versions available" msgstr "" "In-/Uitschakelen waarschuwing over een beschikbare nieuwe LibrePlan versie" @@ -4569,8 +4569,8 @@ msgid "Delete Template element" msgstr "Verwijder Sjabloon element" #: libreplan-webapp/src/main/webapp/calendars/calendars.zul:22 -msgid "LibrePlan: Calendars" -msgstr "LibrePlan: Kalenders" +msgid "TASKPM: Calendars" +msgstr "TASKPM: Kalenders" #: org/libreplan/web/limitingresources/QueueComponent.java:504 msgid "Unassign" @@ -4879,8 +4879,8 @@ msgid "Stacktrace" msgstr "Stacktrace" #: libreplan-webapp/src/main/webapp/planner/advance_allocation.zul:22 -msgid "LibrePlan: Advanced allocation" -msgstr "LibrePlan: Gevorderd toekennen" +msgid "TASKPM: Advanced allocation" +msgstr "TASKPM: Gevorderd toekennen" #: libreplan-webapp/src/main/webapp/advance/_listAdvanceTypes.zul:22 msgid "Progress Types List" @@ -4904,8 +4904,8 @@ msgid "Show all" msgstr "Toon alles" #: libreplan-webapp/src/main/webapp/email/email_templates.zul:21 -msgid "LibrePlan: Email Templates" -msgstr "LibrePlan: Email Sjablonen" +msgid "TASKPM: Email Templates" +msgstr "TASKPM: Email Sjablonen" #: libreplan-business/src/main/java/org/libreplan/business/common/IntegrationEntity.java:47 msgid "code not specified" @@ -5208,8 +5208,8 @@ msgid "Virtual worker group name must be unique" msgstr "Virtueel teamnaam moet uniek zijn" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerInAMonthReport.zul:21 -msgid "LibrePlan: Total Worked Hours By Resource In A Month" -msgstr "LibrePlan: Totaal Gewerkte Uren door Resources in een maand" +msgid "TASKPM: Total Worked Hours By Resource In A Month" +msgstr "TASKPM: Totaal Gewerkte Uren door Resources in een maand" #: libreplan-webapp/src/main/webapp/common/configuration.zul:307 #: libreplan-webapp/src/main/webapp/advance/_editAdvanceTypes.zul:47 @@ -5429,8 +5429,8 @@ msgid "Task Status" msgstr "Taakstatus" #: libreplan-webapp/src/main/webapp/orders/imports/projectImport.zul:21 -msgid "LibrePlan: Import Project" -msgstr "LibrePlan: Importeer project" +msgid "TASKPM: Import Project" +msgstr "TASKPM: Importeer project" #: org/libreplan/web/planner/chart/EarnedValueChartFiller.java:250 msgid "Budget At Completion" @@ -5560,8 +5560,8 @@ msgid "Percentage" msgstr "Percentage" #: libreplan-webapp/src/main/webapp/profiles/profiles.zul:23 -msgid "LibrePlan: Profiles" -msgstr "LibrePlan: Profielen" +msgid "TASKPM: Profiles" +msgstr "TASKPM: Profielen" #: org/libreplan/web/orders/ManageOrderElementAdvancesController.java:673 msgid "Calculated progress can not be modified" @@ -5690,8 +5690,8 @@ msgid "From today" msgstr "Vanaf vandaag" #: libreplan-webapp/src/main/webapp/common/jobScheduling.zul:20 -msgid "LibrePlan: Job Scheduling" -msgstr "LibrePlan:Taakplanner" +msgid "TASKPM: Job Scheduling" +msgstr "TASKPM:Taakplanner" #: org/libreplan/web/users/dashboard/PersonalTimesheetDTO.java:125 msgid "Week {0}" @@ -5829,8 +5829,8 @@ msgid "Project name" msgstr "Projectnaam" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:22 -msgid "LibrePlan: Settings" -msgstr "LibrePlan: Instellingen" +msgid "TASKPM: Settings" +msgstr "TASKPM: Instellingen" #: libreplan-webapp/src/main/webapp/excetiondays/_listExceptionDayTypes.zul:32 #: libreplan-webapp/src/main/webapp/excetiondays/_editExceptionDayType.zul:62 @@ -5898,8 +5898,8 @@ msgid "Specific Allocations" msgstr "Specifieke toekenning" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:20 -msgid "LibrePlan: Received From Subcontractors" -msgstr "LibrePlan: Ontvang van onderaannemers" +msgid "TASKPM: Received From Subcontractors" +msgstr "TASKPM: Ontvang van onderaannemers" #: org/libreplan/web/orders/OrderCRUDController.java:1057 #: org/libreplan/web/templates/OrderTemplatesController.java:369 @@ -5977,8 +5977,8 @@ msgid "Confirm deleting this file. Are you sure?" msgstr "Bevestig verwijderen bestand. Weet u het zeker?" #: libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul:22 -msgid "LibrePlan: Send To Subcontractors" -msgstr "LibrePlan: Zend naar onderaannemers" +msgid "TASKPM: Send To Subcontractors" +msgstr "TASKPM: Zend naar onderaannemers" #: org/libreplan/web/planner/allocation/AllocationRow.java:446 msgid "Only {0} resources per day were achieved for current allocation" @@ -6383,8 +6383,8 @@ msgid "New password" msgstr "Nieuw wachtwoord" #: libreplan-webapp/src/main/webapp/excetiondays/exceptionDays.zul:22 -msgid "LibrePlan: Calendar Exception Days" -msgstr "LibrePlan: Kalender uitzonderingsdagen" +msgid "TASKPM: Calendar Exception Days" +msgstr "TASKPM: Kalender uitzonderingsdagen" #: libreplan-webapp/src/main/webapp/myaccount/personalTimesheet.zul:95 msgid "Total other" @@ -6400,8 +6400,8 @@ msgid "Number of digits" msgstr "Aantal cijfers" #: libreplan-webapp/src/main/webapp/orders/_timImpExpInfo.zul:20 -msgid "LibrePlan: Tim import export info" -msgstr "LibrePlan: Tim import export info" +msgid "TASKPM: Tim import export info" +msgstr "TASKPM: Tim import export info" #: org/libreplan/web/orders/JiraSynchronizationController.java:195 msgid "No JIRA issues to import" @@ -6472,8 +6472,8 @@ msgid "Schedule from start to deadline" msgstr "Plan vanaf start tot deadline" #: libreplan-webapp/src/main/webapp/myaccount/changePassword.zul:21 -msgid "LibrePlan: Change password" -msgstr "LibrePlan: wijzig wachtwoord" +msgid "TASKPM: Change password" +msgstr "TASKPM: wijzig wachtwoord" #: libreplan-business/src/main/java/org/libreplan/business/users/entities/Profile.java:89 msgid "profile name is already being used by another profile" @@ -6744,8 +6744,8 @@ msgid "Select criteria or resources" msgstr "Selecteer criteria of resources" #: libreplan-webapp/src/main/webapp/common/accessForbidden.zul:20 -msgid "LibrePlan: Access Forbidden" -msgstr "LibrePlan: Toegang niet toegestaan" +msgid "TASKPM: Access Forbidden" +msgstr "TASKPM: Toegang niet toegestaan" #: libreplan-business/src/main/java/org/libreplan/business/advance/entities/AdvanceType.java:127 msgid "unit name not specified" @@ -6892,8 +6892,8 @@ msgid "Some allocations needed" msgstr "Sommige allocaties noodzakelijk" #: libreplan-webapp/src/main/webapp/myaccount/userDashboard.zul:21 -msgid "LibrePlan: My Dashboard" -msgstr "LibrePlan: Mijn Dashboard" +msgid "TASKPM: My Dashboard" +msgstr "TASKPM: Mijn Dashboard" #: org/libreplan/web/tree/TreeComponent.java:58 #: org/libreplan/web/workreports/WorkReportCRUDController.java:902 @@ -7094,8 +7094,8 @@ msgid "Number of tasks" msgstr "Aantal taken" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerReport.zul:21 -msgid "LibrePlan: Hours Worked Per Resource" -msgstr "LibrePlan: Gewerkte uren per resource" +msgid "TASKPM: Hours Worked Per Resource" +msgstr "TASKPM: Gewerkte uren per resource" #: libreplan-webapp/src/main/webapp/orders/_listOrderElementTaskQualityForms.zul:50 msgid "Task quality form name" @@ -7222,8 +7222,8 @@ msgid "OUTSOURCED" msgstr "Uitbesteed" #: libreplan-webapp/src/main/webapp/reports/projectStatusReport.zul:20 -msgid "LibrePlan: Project Status Report" -msgstr "LibrePlan: Project statusrapport" +msgid "TASKPM: Project Status Report" +msgstr "TASKPM: Project statusrapport" #: libreplan-webapp/src/main/webapp/calendars/_edition.zul:140 msgid "Activation periods" @@ -7370,8 +7370,8 @@ msgid "Select the elements to import into LibrePlan" msgstr "Kies de elementen om in LibrePlan te importeren" #: libreplan-webapp/src/main/webapp/advance/advanceTypes.zul:22 -msgid "LibrePlan: Progress Types" -msgstr "LibrePlan: Voortgangstypes" +msgid "TASKPM: Progress Types" +msgstr "TASKPM: Voortgangstypes" #: org/libreplan/web/workreports/WorkReportCRUDController.java:886 #: libreplan-webapp/src/main/webapp/orders/_listOrderElementHours.zul:33 @@ -7467,7 +7467,7 @@ msgid "Calculated progress cannot be removed" msgstr "Berekende voortgang kan niet verwijderd worden" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:184 -msgid "without you, LibrePlan can’t exist." +msgid "without you, TASKPM can’t exist." msgstr "zonder jou, kan LibrePlan niet bestaan." #: org/libreplan/web/users/UserCRUDController.java:98 @@ -7561,8 +7561,8 @@ msgid "Name" msgstr "naam" #: libreplan-webapp/src/main/webapp/typeofworkhours/typeOfWorkHours.zul:23 -msgid "LibrePlan: Hours Types" -msgstr "LibrePlan: Urentypes" +msgid "TASKPM: Hours Types" +msgstr "TASKPM: Urentypes" #: libreplan-webapp/src/main/webapp/calendars/_edition.zul:303 msgid "Expiry date" @@ -7801,8 +7801,8 @@ msgid "Required materials" msgstr "Vereiste materialen" #: libreplan-webapp/src/main/webapp/reports/workingProgressPerTaskReport.zul:21 -msgid "LibrePlan: Work And Progress Per Task" -msgstr "LibrePlan: Werk en voortgang per taak" +msgid "TASKPM: Work And Progress Per Task" +msgstr "TASKPM: Werk en voortgang per taak" #: libreplan-webapp/src/main/webapp/resources/_criterions.zul:36 msgid "Show only current satisfied criteria" @@ -7906,8 +7906,8 @@ msgid "List of materials for category: {0}" msgstr "Lijst met materialen voor categorie: {0}" #: libreplan-webapp/src/main/webapp/resources/criterions/criterions.zul:24 -msgid "LibrePlan: Criteria" -msgstr "LibrePlan: Criteria" +msgid "TASKPM: Criteria" +msgstr "TASKPM: Criteria" #: org/libreplan/web/resources/worker/WorkerCRUDController.java:972 msgid "Do you want to remove bound user \"{0}\" too?" @@ -8120,8 +8120,8 @@ msgid "connector name not specified" msgstr "connectornaam niet gespecificeerd" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:21 -msgid "LibrePlan: User access" -msgstr "LibrePlan: Gebruikerstoegang" +msgid "TASKPM: User access" +msgstr "TASKPM: Gebruikerstoegang" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:156 msgid "Label filter" @@ -8341,7 +8341,7 @@ msgstr "Stuksprijs niet gespecificeerd" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:180 msgid "" -"Did you know LibrePlan is funded only by donations, from people like you?" +"Did you know TASKPM is funded only by donations, from people like you?" msgstr "" "Wist u dat LibrePlan alleen ondersteund wordt met donaties, door mensen " "zoals jij?\n" @@ -8563,8 +8563,8 @@ msgid "task end date not specified" msgstr "taak einddatum niet gespecificeerd" #: libreplan-webapp/src/main/webapp/resources/worker/worker.zul:22 -msgid "LibrePlan: Workers" -msgstr "LibrePlan: Werkers" +msgid "TASKPM: Workers" +msgstr "TASKPM: Werkers" #: libreplan-webapp/src/main/webapp/dashboard/_dashboardfororder.zul:131 msgid "No tasks available yet" @@ -8712,8 +8712,8 @@ msgid "Total hours" msgstr "Totaal aantal uren" #: libreplan-webapp/src/main/webapp/users/users.zul:23 -msgid "LibrePlan: User Accounts" -msgstr "LibrePlan: Gebruikersaccounts" +msgid "TASKPM: User Accounts" +msgstr "TASKPM: Gebruikersaccounts" #: libreplan-business/src/main/java/org/libreplan/business/expensesheet/entities/ExpenseSheet.java:109 msgid "total must be greater or equal than 0" @@ -8776,8 +8776,8 @@ msgid "Work description" msgstr "Werkomschrijving" #: libreplan-webapp/src/main/webapp/materials/materials.zul:21 -msgid "LibrePlan: Materials" -msgstr "LibrePlan: Materialen" +msgid "TASKPM: Materials" +msgstr "TASKPM: Materialen" #: libreplan-webapp/src/main/webapp/common/layout/template.zul:88 msgid "Change scenario" @@ -9110,8 +9110,8 @@ msgid "Entity type" msgstr "Entiteittype" #: libreplan-webapp/src/main/webapp/labels/labelTypes.zul:21 -msgid "LibrePlan: Labels" -msgstr "LibrePlan: Labels" +msgid "TASKPM: Labels" +msgstr "TASKPM: Labels" #: libreplan-webapp/src/main/webapp/workreports/workReportQuery.zul:79 msgid "type" @@ -9468,8 +9468,8 @@ msgid "Work amount" msgstr "Hoeveelheid werk" #: libreplan-webapp/src/main/webapp/reports/orderCostsPerResource.zul:21 -msgid "LibrePlan: Project Costs" -msgstr "LibrePlan: Projectkosten" +msgid "TASKPM: Project Costs" +msgstr "TASKPM: Projectkosten" #: libreplan-business/src/main/java/org/libreplan/business/costcategories/entities/ResourcesCostCategoryAssignment.java:145 msgid "cost assignment with end date before start date" diff --git a/libreplan-webapp/src/main/resources/i18n/pl.po b/libreplan-webapp/src/main/resources/i18n/pl.po index 1cd72049b..19208a879 100644 --- a/libreplan-webapp/src/main/resources/i18n/pl.po +++ b/libreplan-webapp/src/main/resources/i18n/pl.po @@ -9,7 +9,7 @@ # whitee , 2014 msgid "" msgstr "" -"Project-Id-Version: LibrePlan\n" +"Project-Id-Version: TASKPM\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-10-10 17:54+0200\n" "PO-Revision-Date: 2016-07-18 18:26+0000\n" @@ -22,8 +22,8 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: libreplan-webapp/src/main/webapp/qualityforms/qualityForms.zul:22 -msgid "LibrePlan: Quality Forms" -msgstr "LibrePlan: Formularze Jakości" +msgid "TASKPM: Quality Forms" +msgstr "TASKPM: Formularze Jakości" #: libreplan-webapp/src/main/webapp/orders/_projectDetails.zul:58 #: libreplan-webapp/src/main/webapp/orders/_list.zul:30 @@ -47,8 +47,8 @@ msgid "Overtime" msgstr "" #: libreplan-webapp/src/main/webapp/excetiondays/exceptionDays.zul:22 -msgid "LibrePlan: Calendar Exception Days" -msgstr "LibrePlan: Dni wyjątków" +msgid "TASKPM: Calendar Exception Days" +msgstr "TASKPM: Dni wyjątków" #: org/libreplan/web/calendars/BaseCalendarModel.java:488 #: org/libreplan/web/calendars/BaseCalendarModel.java:520 @@ -137,7 +137,7 @@ msgid "Subcategory names must be unique." msgstr "" #: libreplan-webapp/src/main/webapp/reports/timeLineMaterialReport.zul:21 -msgid "LibrePlan: Materials Needed At Date" +msgid "TASKPM: Materials Needed At Date" msgstr "" #: org/libreplan/web/resources/machine/MachineCRUDController.java:630 @@ -484,7 +484,7 @@ msgid "please, select a project" msgstr "proszę wybrać projekt" #: libreplan-webapp/src/main/webapp/reports/projectStatusReport.zul:20 -msgid "LibrePlan: Project Status Report" +msgid "TASKPM: Project Status Report" msgstr "" #: org/libreplan/web/calendars/BaseCalendarEditionController.java:627 @@ -546,7 +546,7 @@ msgid "Exit session" msgstr "Wyjdź z sesji" #: libreplan-webapp/src/main/webapp/orders/_timImpExpInfo.zul:20 -msgid "LibrePlan: Tim import export info" +msgid "TASKPM: Tim import export info" msgstr "" #: org/libreplan/web/planner/allocation/FormBinder.java:671 @@ -660,8 +660,8 @@ msgid "Companies List" msgstr "Lista firm" #: libreplan-webapp/src/main/webapp/resources/worker/virtualWorkers.zul:22 -msgid "LibrePlan: Virtual Worker Groups" -msgstr "LibrePlan: Wirtualne Grupy Pracowników" +msgid "TASKPM: Virtual Worker Groups" +msgstr "TASKPM: Wirtualne Grupy Pracowników" #: org/libreplan/web/planner/tabs/MonteCarloTabCreator.java:51 #: org/libreplan/web/planner/tabs/MonteCarloTabCreator.java:159 @@ -674,8 +674,8 @@ msgid "Cost category" msgstr "Kategoria kosztów" #: libreplan-webapp/src/main/webapp/myaccount/personalTimesheet.zul:21 -msgid "LibrePlan: Personal timesheet" -msgstr "LibrePlan: Osobisty raport godzin" +msgid "TASKPM: Personal timesheet" +msgstr "TASKPM: Osobisty raport godzin" #: libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReportLine.java:264 msgid "clock finish cannot be empty if number of hours is calcultate by clock" @@ -701,7 +701,7 @@ msgid "Unsaved changes will be lost. Are you sure?" msgstr "Niezapisane zmiany zostaną utracone. Jesteś pewien?" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/ConfigurationRolesLDAP.java:56 -msgid "LibrePlan role not specified" +msgid "TASKPM role not specified" msgstr "Rola LibrePlan nie zdefiniowana" #: libreplan-webapp/src/main/webapp/scenarios/transferOrders.zul:39 @@ -717,8 +717,8 @@ msgid "Move" msgstr "Przenieś" #: libreplan-webapp/src/main/webapp/orders/_jiraSyncInfo.zul:20 -msgid "LibrePlan: JIRA synchronization info" -msgstr "LibrePlan: Informacja o synchronizacji JIRA" +msgid "TASKPM: JIRA synchronization info" +msgstr "TASKPM: Informacja o synchronizacji JIRA" #: org/libreplan/web/common/components/finders/OrderFilterEnum.java:31 #: org/libreplan/web/common/components/finders/TaskGroupFilterEnum.java:31 @@ -762,8 +762,8 @@ msgid "Profiles List" msgstr "Lista profili" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:21 -msgid "LibrePlan: User access" -msgstr "LibrePlan: Dostęp użytkownika" +msgid "TASKPM: User access" +msgstr "TASKPM: Dostęp użytkownika" #: libreplan-business/src/main/java/org/libreplan/business/labels/entities/LabelType.java:158 msgid "label code is already being used" @@ -1541,7 +1541,7 @@ msgid "Violated deadline" msgstr "" #: libreplan-webapp/src/main/webapp/common/configuration.zul:126 -msgid "Enable/Disable warning about new LibrePlan versions available" +msgid "Enable/Disable warning about new TASKPM versions available" msgstr "Włącz/wyłącz ostrzeżenie o nowej wersji LibrePlan" #: libreplan-business/src/main/java/org/libreplan/business/orders/entities/HoursGroup.java:186 @@ -1584,7 +1584,7 @@ msgid "Progress sent successfully" msgstr "Postęp został wysłany" #: libreplan-webapp/src/main/webapp/myaccount/userDashboard.zul:21 -msgid "LibrePlan: My Dashboard" +msgid "TASKPM: My Dashboard" msgstr "" #: libreplan-webapp/src/main/webapp/calendars/_edition.zul:131 @@ -1605,8 +1605,8 @@ msgstr "Pola typów etykiety" #: libreplan-webapp/src/main/webapp/common/event_error.zul:22 #: libreplan-webapp/src/main/webapp/common/error.zul:21 -msgid "LibrePlan: Runtime Error" -msgstr "LibrePlan: Runtime Error" +msgid "TASKPM: Runtime Error" +msgstr "TASKPM: Runtime Error" #: org/libreplan/web/planner/tabs/PlanningTabCreator.java:152 #: libreplan-webapp/src/main/webapp/common/components/schedulingStateToggler.zul:29 @@ -1653,7 +1653,7 @@ msgid "Criterion Types" msgstr "" #: libreplan-webapp/src/main/webapp/common/configuration.zul:125 -msgid "Show a notification when new LibrePlan versions are released" +msgid "Show a notification when new TASKPM versions are released" msgstr "Pokaż powiadomienie w przypadku pojawienia się nowej wersji LibrePlan" #: org/libreplan/web/workreports/WorkReportTypeCRUDController.java:900 @@ -1722,7 +1722,7 @@ msgid "units not specified" msgstr "jednostki nie zdefiniowane" #: libreplan-webapp/src/main/webapp/advance/advanceTypes.zul:22 -msgid "LibrePlan: Progress Types" +msgid "TASKPM: Progress Types" msgstr "" #: libreplan-webapp/src/main/webapp/planner/montecarlo_function.zul:36 @@ -1930,7 +1930,7 @@ msgid "percentage should be between 1 and 100" msgstr "" #: libreplan-webapp/src/main/webapp/workreports/workReportQuery.zul:23 -msgid "LibrePlan: Timesheet Lines List" +msgid "TASKPM: Timesheet Lines List" msgstr "" #: org/libreplan/web/labels/LabelTypeModel.java:269 @@ -2058,8 +2058,8 @@ msgid "You have exceeded the maximum limit of users" msgstr "Przekroczyłeś maksymalny limit użytkowników" #: libreplan-webapp/src/main/webapp/reports/schedulingProgressPerOrderReport.zul:21 -msgid "LibrePlan: Work And Progress Per Project" -msgstr "LibrePlan: Praca i Postęp na projekt" +msgid "TASKPM: Work And Progress Per Project" +msgstr "TASKPM: Praca i Postęp na projekt" #: libreplan-webapp/src/main/webapp/orders/_orderElementTreeFilter.zul:42 #: libreplan-webapp/src/main/webapp/orders/_orderFilter.zul:30 @@ -2123,8 +2123,8 @@ msgid "No roster-exceptions found in the response" msgstr "Brak wyjątków \"roster\" w odpowiedzi" #: libreplan-webapp/src/main/webapp/calendars/calendars.zul:22 -msgid "LibrePlan: Calendars" -msgstr "LibrePlan: Kalendarze" +msgid "TASKPM: Calendars" +msgstr "TASKPM: Kalendarze" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/EntitySequence.java:192 msgid "entity name not specified" @@ -2148,7 +2148,7 @@ msgid "Subcontracting date" msgstr "" #: libreplan-webapp/src/main/webapp/common/job_scheduling.zul:20 -msgid "LibrePlan: Job Scheduling" +msgid "TASKPM: Job Scheduling" msgstr "" #: org/libreplan/importers/ImportRosterFromTim.java:182 @@ -2301,7 +2301,7 @@ msgid "Filter timesheet lines by" msgstr "Filtruj wiersze raportu godzinowego wg." #: libreplan-webapp/src/main/webapp/unittypes/unitTypes.zul:21 -msgid "LibrePlan: Material Units" +msgid "TASKPM: Material Units" msgstr "" #: org/libreplan/web/templates/TemplatesTreeComponent.java:64 @@ -2455,8 +2455,8 @@ msgid "Maximum/minimum of worked hours in finished applications" msgstr "Maksymalne/minimalne przepracowane godziny w gotowych aplikacjach" #: libreplan-webapp/src/main/webapp/labels/labelTypes.zul:21 -msgid "LibrePlan: Labels" -msgstr "LibrePlan: Etykiety" +msgid "TASKPM: Labels" +msgstr "TASKPM: Etykiety" #: libreplan-webapp/src/main/webapp/resources/worker/_edition.zul:31 msgid "Personal data" @@ -2506,8 +2506,8 @@ msgid "Observations" msgstr "Obserwacje" #: libreplan-webapp/src/main/webapp/common/page_not_found.zul:22 -msgid "LibrePlan: Page not found" -msgstr "LibrePlan: Strona nie została znaleziona" +msgid "TASKPM: Page not found" +msgstr "TASKPM: Strona nie została znaleziona" #: libreplan-webapp/src/main/webapp/orders/_edition.zul:251 #: libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul:55 @@ -2598,8 +2598,8 @@ msgid "Output format:" msgstr "Format wyjściowy:" #: libreplan-webapp/src/main/webapp/reports/workingProgressPerTaskReport.zul:21 -msgid "LibrePlan: Work And Progress Per Task" -msgstr "LibrePlan: praca i postęp na zadanie" +msgid "TASKPM: Work And Progress Per Task" +msgstr "TASKPM: praca i postęp na zadanie" #: org/libreplan/web/advance/AdvanceTypeCRUDController.java:81 msgid "" @@ -2690,7 +2690,7 @@ msgid "Label type already assigned" msgstr "Typ etykiety już przypisany" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:20 -msgid "LibrePlan: Received From Subcontractors" +msgid "TASKPM: Received From Subcontractors" msgstr "" #: libreplan-webapp/src/main/webapp/common/configuration.zul:58 @@ -2911,8 +2911,8 @@ msgid "label type: the timesheet have not assigned this label type" msgstr "" #: libreplan-webapp/src/main/webapp/typeofworkhours/typeOfWorkHours.zul:23 -msgid "LibrePlan: Hours Types" -msgstr "LibrePlan: Typy Godzin" +msgid "TASKPM: Hours Types" +msgstr "TASKPM: Typy Godzin" #: org/libreplan/web/common/CustomMenuController.java:264 #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:109 @@ -2940,8 +2940,8 @@ msgid "Please try it again." msgstr "Proszę spróbować ponownie" #: libreplan-webapp/src/main/webapp/expensesheet/expenseSheet.zul:21 -msgid "LibrePlan: Expenses" -msgstr "LibrePlan: Wydatki" +msgid "TASKPM: Expenses" +msgstr "TASKPM: Wydatki" #: org/libreplan/web/tree/TreeController.java:1294 msgid "Modified" @@ -3001,8 +3001,8 @@ msgid "Date last progress measurement" msgstr "Data ostatniego pomiaru postępu" #: libreplan-webapp/src/main/webapp/reports/completedEstimatedHoursPerTask.zul:21 -msgid "LibrePlan: Estimated/Planned Hours Per Task" -msgstr "LibrePlan: Szacowane / Planowane godziny na zadanie" +msgid "TASKPM: Estimated/Planned Hours Per Task" +msgstr "TASKPM: Szacowane / Planowane godziny na zadanie" #: libreplan-webapp/src/main/webapp/orders/_listOrderElementAuthorizations.zul:43 #: libreplan-webapp/src/main/webapp/orders/_listOrderElementAuthorizations.zul:67 @@ -3208,8 +3208,8 @@ msgid "Finished" msgstr "Skończone" #: libreplan-webapp/src/main/webapp/planner/index.zul:22 -msgid "LibrePlan: Planning" -msgstr "LibrePlan: Planowanie" +msgid "TASKPM: Planning" +msgstr "TASKPM: Planowanie" #: org/libreplan/web/scenarios/ScenarioModel.java:126 msgid "You cannot remove the current scenario" @@ -3281,8 +3281,8 @@ msgid "Property strategy" msgstr "Strategia własności" #: libreplan-webapp/src/main/webapp/reports/orderCostsPerResource.zul:21 -msgid "LibrePlan: Project Costs" -msgstr "LibrePlan: Koszty projektu" +msgid "TASKPM: Project Costs" +msgstr "TASKPM: Koszty projektu" #: org/libreplan/web/common/ConfigurationController.java:265 msgid "Changes saved" @@ -3317,8 +3317,8 @@ msgid "Calendar exception days" msgstr "" #: libreplan-webapp/src/main/webapp/myaccount/changePassword.zul:21 -msgid "LibrePlan: Change password" -msgstr "LibrePlan: Zmień hasło" +msgid "TASKPM: Change password" +msgstr "TASKPM: Zmień hasło" #: org/libreplan/web/planner/allocation/GenericAllocationRow.java:55 msgid "Generic" @@ -3898,7 +3898,7 @@ msgstr "" #: libreplan-webapp/src/main/webapp/common/page_not_found.zul:49 msgid "" -"If you reached this page from another page of LibrePlan please notify us in " +"If you reached this page from another page of TASKPM please notify us in " "order to fix it as soon as possible." msgstr "" @@ -3934,8 +3934,8 @@ msgid "Repeated Hours Group code {0} in Project {1}" msgstr "Kod grupy godzin powtarza się w {0} w projekcie {1}" #: libreplan-webapp/src/main/webapp/resources/worker/worker.zul:22 -msgid "LibrePlan: Workers" -msgstr "LibrePlan: Pracownicy" +msgid "TASKPM: Workers" +msgstr "TASKPM: Pracownicy" #: org/libreplan/web/planner/allocation/AdvancedAllocationController.java:1573 msgid "Not configurable" @@ -4392,8 +4392,8 @@ msgid "" msgstr "przypisane kody zasobów kosztów kategorii muszą być unikalne wewnątrz zasobu" #: libreplan-webapp/src/main/webapp/materials/materials.zul:21 -msgid "LibrePlan: Materials" -msgstr "LibrePlan: Materiały" +msgid "TASKPM: Materials" +msgstr "TASKPM: Materiały" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:104 msgid "User disabled" @@ -4639,8 +4639,8 @@ msgid "Stretches with Interpolation" msgstr "Odcinki z interpolacją" #: libreplan-webapp/src/main/webapp/workreports/workReportTypes.zul:23 -msgid "LibrePlan: Timesheets Templates" -msgstr "LibrePlan: Szablon raportu godzin" +msgid "TASKPM: Timesheets Templates" +msgstr "TASKPM: Szablon raportu godzin" #: org/libreplan/web/common/CustomMenuController.java:514 msgid "Reports" @@ -4670,8 +4670,8 @@ msgid "" msgstr "" #: libreplan-webapp/src/main/webapp/reports/workingArrangementsPerOrderReport.zul:21 -msgid "LibrePlan: Task Scheduling Status In Project" -msgstr "LibrePlan: Status Planowania zadań w Projekcie" +msgid "TASKPM: Task Scheduling Status In Project" +msgstr "TASKPM: Status Planowania zadań w Projekcie" #: libreplan-webapp/src/main/webapp/common/layout/_customMenu.zul:55 msgid "START" @@ -4906,7 +4906,7 @@ msgid "Reassigning type" msgstr "Typ ponownego przypisywania" #: libreplan-webapp/src/main/webapp/common/configuration.zul:23 -msgid "LibrePlan: Main Settings" +msgid "TASKPM: Main Settings" msgstr "" #: org/libreplan/web/common/CustomMenuController.java:419 @@ -5003,8 +5003,8 @@ msgid "Expand taskgroups" msgstr "Rozwiń grupy zadań" #: libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul:22 -msgid "LibrePlan: Send To Subcontractors" -msgstr "LibrePlan: Wyślij do poddostawców" +msgid "TASKPM: Send To Subcontractors" +msgstr "TASKPM: Wyślij do poddostawców" #: org/libreplan/web/limitingresources/ManualAllocationController.java:492 msgid "END" @@ -5142,15 +5142,15 @@ msgid "" msgstr "Skontaktuj się z administratorem aby sprawdzić twoje uprawnienia w LibrePlan." #: libreplan-webapp/src/main/webapp/costcategories/costCategory.zul:23 -msgid "LibrePlan: Cost Categories" -msgstr "LibrePlan: Kategorie kosztów" +msgid "TASKPM: Cost Categories" +msgstr "TASKPM: Kategorie kosztów" #: libreplan-webapp/src/main/webapp/users/_editUser.zul:120 msgid "Unbound resource" msgstr "Zasób nieprzypisany" #: libreplan-webapp/src/main/webapp/subcontract/customerCommunications.zul:20 -msgid "LibrePlan: Received From Customers" +msgid "TASKPM: Received From Customers" msgstr "" #: libreplan-webapp/src/main/webapp/workreports/_listWorkReportTypes.zul:47 @@ -5894,7 +5894,7 @@ msgid "Calendar allocation" msgstr "Alokacja kalendarza" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerInAMonthReport.zul:21 -msgid "LibrePlan: Total Worked Hours By Resource In A Month" +msgid "TASKPM: Total Worked Hours By Resource In A Month" msgstr "Wszystkie przepracowane godziny przez zasoby w miesiącu" #: org/libreplan/web/resources/criterion/CriterionAdminController.java:257 @@ -5951,8 +5951,8 @@ msgid "" msgstr "" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:22 -msgid "LibrePlan: Settings" -msgstr "LibrePlan: Ustawienia" +msgid "TASKPM: Settings" +msgstr "TASKPM: Ustawienia" #: org/libreplan/web/common/CustomMenuController.java:345 #: libreplan-webapp/src/main/webapp/orders/_editOrderElement.zul:54 @@ -5983,8 +5983,8 @@ msgid "Change the password" msgstr "Zmień hasło" #: libreplan-webapp/src/main/webapp/common/access_forbidden.zul:20 -msgid "LibrePlan: Access Forbidden" -msgstr "LibrePlan: Dostęp zabroniony" +msgid "TASKPM: Access Forbidden" +msgstr "TASKPM: Dostęp zabroniony" #: libreplan-webapp/src/main/webapp/montecarlo/_montecarlo.zul:50 #: libreplan-webapp/src/main/webapp/montecarlo/_montecarlo.zul:52 @@ -6064,7 +6064,7 @@ msgid "No authorizations were added because you did not select any." msgstr "Nie zostały dodane żadne autoryzacje, ponieważ żadne nie zostały wybrane." #: libreplan-webapp/src/main/webapp/users/users.zul:23 -msgid "LibrePlan: User Accounts" +msgid "TASKPM: User Accounts" msgstr "" #: libreplan-webapp/src/main/webapp/templates/_assignedQualityForms.zul:30 @@ -6112,8 +6112,8 @@ msgid "Interacts with applications" msgstr "Interakcja z aplikacjami" #: libreplan-webapp/src/main/webapp/planner/advance_allocation.zul:22 -msgid "LibrePlan: Advanced allocation" -msgstr "LibrePlan: Zaawansowany przydział" +msgid "TASKPM: Advanced allocation" +msgstr "TASKPM: Zaawansowany przydział" #: org/libreplan/importers/CalendarImporterMPXJ.java:365 msgid "Calendar name already in use" @@ -6238,8 +6238,8 @@ msgid "Standard Effort" msgstr "Standardowy wysiłek" #: libreplan-webapp/src/main/webapp/orders/imports/projectImport.zul:21 -msgid "LibrePlan: Import Project" -msgstr "LibrePlan: Importuj Projekt" +msgid "TASKPM: Import Project" +msgstr "TASKPM: Importuj Projekt" #: org/libreplan/web/resources/worker/WorkerCRUDController.java:730 msgid "Create Virtual Workers Group" @@ -6252,8 +6252,8 @@ msgid "" msgstr "Proszę korzystać z niektórych kompatybilnych przeglądarek: Chrome, Firefox, Safari lub Epiphany." #: libreplan-webapp/src/main/webapp/scenarios/transferOrders.zul:23 -msgid "LibrePlan: Transfer Projects Between Scenarios" -msgstr "LibrePlan: Przenieś projekty między scenariuszami" +msgid "TASKPM: Transfer Projects Between Scenarios" +msgstr "TASKPM: Przenieś projekty między scenariuszami" #: org/libreplan/web/common/CustomMenuController.java:306 #: libreplan-business/src/main/java/org/libreplan/business/users/entities/UserRole.java:50 @@ -6489,8 +6489,8 @@ msgid "quality form item position not specified" msgstr "" #: libreplan-webapp/src/main/webapp/profiles/profiles.zul:23 -msgid "LibrePlan: Profiles" -msgstr "LibrePlan: Profile" +msgid "TASKPM: Profiles" +msgstr "TASKPM: Profile" #: libreplan-webapp/src/main/webapp/orders/_orderElementDetails.zul:38 msgid "Code " @@ -6501,8 +6501,8 @@ msgid "Budget At Completion" msgstr "Budżet na zakończenie" #: libreplan-webapp/src/main/webapp/workreports/workReport.zul:23 -msgid "LibrePlan: Timesheets" -msgstr "LibrePlan: Raporty godzin" +msgid "TASKPM: Timesheets" +msgstr "TASKPM: Raporty godzin" #: libreplan-webapp/src/main/webapp/orders/_listHoursGroupCriterionRequirement.zul:22 msgid "Criteria Requirement" @@ -6896,8 +6896,8 @@ msgid "" msgstr "" #: libreplan-webapp/src/main/webapp/externalcompanies/externalcompanies.zul:23 -msgid "LibrePlan: Companies" -msgstr "LibrePlan: Firmy" +msgid "TASKPM: Companies" +msgstr "TASKPM: Firmy" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:53 msgid "Subcontrated task" @@ -6924,8 +6924,8 @@ msgid "Date must be inside visualization area" msgstr "" #: libreplan-webapp/src/main/webapp/templates/templates.zul:22 -msgid "LibrePlan: Templates" -msgstr "LibrePlan: Szablony" +msgid "TASKPM: Templates" +msgstr "TASKPM: Szablony" #: libreplan-webapp/src/main/webapp/resourceload/resourceload.zul:22 #: libreplan-webapp/src/main/webapp/planner/taskpanels/_tabPanelLimitingResourceAllocation.zul:22 @@ -6934,12 +6934,12 @@ msgstr "LibrePlan: Szablony" #: libreplan-webapp/src/main/webapp/planner/montecarlo_function.zul:22 #: libreplan-webapp/src/main/webapp/planner/resources_use.zul:22 #: libreplan-webapp/src/main/webapp/planner/order.zul:22 -msgid "LibrePlan: Scheduling" -msgstr "LibrePlan: Planowanie" +msgid "TASKPM: Scheduling" +msgstr "TASKPM: Planowanie" #: libreplan-webapp/src/main/webapp/subcontract/reportAdvances.zul:22 -msgid "LibrePlan: Send To Customers" -msgstr "LibrePlan: Wysłane do Klientów" +msgid "TASKPM: Send To Customers" +msgstr "TASKPM: Wysłane do Klientów" #: libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReport.java:436 msgid "The timesheet line codes must be unique." @@ -7427,8 +7427,8 @@ msgid "The code cannot be empty and it must be unique." msgstr "Kod nie może być pusty i musi być unikalny" #: libreplan-webapp/src/main/webapp/resources/criterions/criterions.zul:24 -msgid "LibrePlan: Criteria" -msgstr "LibrePlan: Kryteria" +msgid "TASKPM: Criteria" +msgstr "TASKPM: Kryteria" #: org/libreplan/importers/OrderImporterMPXJ.java:660 msgid "Linked calendar not found" @@ -7841,8 +7841,8 @@ msgid "Start filtering date must be before than end filtering date" msgstr "" #: libreplan-webapp/src/main/webapp/orders/_synchronizationInfo.zul:20 -msgid "LibrePlan: Synchronization info" -msgstr "LibrePlan: Informacja o synchronizacji" +msgid "TASKPM: Synchronization info" +msgstr "TASKPM: Informacja o synchronizacji" #: org/libreplan/web/orders/DetailsOrderElementController.java:128 msgid "must be after starting date" @@ -8199,8 +8199,8 @@ msgid "Dedication chart" msgstr "Wykres zaangażowania" #: libreplan-webapp/src/main/webapp/scenarios/scenarios.zul:23 -msgid "LibrePlan: Scenarios Management" -msgstr "LibrePlan: Zarządzanie Scenariuszami" +msgid "TASKPM: Scenarios Management" +msgstr "TASKPM: Zarządzanie Scenariuszami" #: org/libreplan/web/reports/CompletedEstimatedHoursPerTaskController.java:170 #: org/libreplan/web/reports/OrderCostsPerResourceController.java:213 @@ -8334,8 +8334,8 @@ msgid "Delete Template element" msgstr "Usuń element Szablonu" #: libreplan-webapp/src/main/webapp/resources/machine/machines.zul:22 -msgid "LibrePlan: Machines" -msgstr "LibrePlan: Maszyny" +msgid "TASKPM: Machines" +msgstr "TASKPM: Maszyny" #: libreplan-webapp/src/main/webapp/orders/_orderElementTreeFilter.zul:36 #: libreplan-webapp/src/main/webapp/orders/_orderFilter.zul:35 @@ -8522,7 +8522,7 @@ msgid "Must be after 2010!" msgstr "" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:144 -msgid "is not supported for its use with LibrePlan." +msgid "is not supported for its use with TASKPM." msgstr "nie jest wspierany przez używanie tego w LibrePlan." #: libreplan-business/src/main/java/org/libreplan/business/qualityforms/entities/TaskQualityFormItem.java:99 @@ -8771,8 +8771,8 @@ msgid "number of digits must be between {0} and {1}" msgstr "liczba cyfr musi wynosić między {0} i {1}" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerReport.zul:21 -msgid "LibrePlan: Hours Worked Per Resource" -msgstr "LibrePlan: godziny przepracowane w Zasobach" +msgid "TASKPM: Hours Worked Per Resource" +msgstr "TASKPM: godziny przepracowane w Zasobach" #: org/libreplan/web/calendars/BaseCalendarEditionController.java:642 #: org/libreplan/web/calendars/BaseCalendarEditionController.java:1278 diff --git a/libreplan-webapp/src/main/resources/i18n/pt.po b/libreplan-webapp/src/main/resources/i18n/pt.po index b094f1c57..fb68f368b 100644 --- a/libreplan-webapp/src/main/resources/i18n/pt.po +++ b/libreplan-webapp/src/main/resources/i18n/pt.po @@ -9,7 +9,7 @@ # Thiago Cangussu , 2012 msgid "" msgstr "" -"Project-Id-Version: LibrePlan\n" +"Project-Id-Version: TASKPM\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-10-10 17:54+0200\n" "PO-Revision-Date: 2016-07-18 18:26+0000\n" @@ -22,8 +22,8 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: libreplan-webapp/src/main/webapp/qualityforms/qualityForms.zul:22 -msgid "LibrePlan: Quality Forms" -msgstr "LibrePlan: Formulários de Qualidade" +msgid "TASKPM: Quality Forms" +msgstr "TASKPM: Formulários de Qualidade" #: libreplan-webapp/src/main/webapp/orders/_projectDetails.zul:58 #: libreplan-webapp/src/main/webapp/orders/_list.zul:30 @@ -47,8 +47,8 @@ msgid "Overtime" msgstr "" #: libreplan-webapp/src/main/webapp/excetiondays/exceptionDays.zul:22 -msgid "LibrePlan: Calendar Exception Days" -msgstr "LibrePlan: Dias de Exceção do Calendário" +msgid "TASKPM: Calendar Exception Days" +msgstr "TASKPM: Dias de Exceção do Calendário" #: org/libreplan/web/calendars/BaseCalendarModel.java:488 #: org/libreplan/web/calendars/BaseCalendarModel.java:520 @@ -137,7 +137,7 @@ msgid "Subcategory names must be unique." msgstr "" #: libreplan-webapp/src/main/webapp/reports/timeLineMaterialReport.zul:21 -msgid "LibrePlan: Materials Needed At Date" +msgid "TASKPM: Materials Needed At Date" msgstr "" #: org/libreplan/web/resources/machine/MachineCRUDController.java:630 @@ -484,8 +484,8 @@ msgid "please, select a project" msgstr "por favor selecione um projeto" #: libreplan-webapp/src/main/webapp/reports/projectStatusReport.zul:20 -msgid "LibrePlan: Project Status Report" -msgstr "LibrePlan: Relatório de condição do Projeto" +msgid "TASKPM: Project Status Report" +msgstr "TASKPM: Relatório de condição do Projeto" #: org/libreplan/web/calendars/BaseCalendarEditionController.java:627 #: org/libreplan/web/calendars/BaseCalendarEditionController.java:1263 @@ -546,7 +546,7 @@ msgid "Exit session" msgstr "Sair da sessão" #: libreplan-webapp/src/main/webapp/orders/_timImpExpInfo.zul:20 -msgid "LibrePlan: Tim import export info" +msgid "TASKPM: Tim import export info" msgstr "" #: org/libreplan/web/planner/allocation/FormBinder.java:671 @@ -660,8 +660,8 @@ msgid "Companies List" msgstr "Lista de empresas" #: libreplan-webapp/src/main/webapp/resources/worker/virtualWorkers.zul:22 -msgid "LibrePlan: Virtual Worker Groups" -msgstr "LibrePlan: Grupos de Trabalhadores Virtuais" +msgid "TASKPM: Virtual Worker Groups" +msgstr "TASKPM: Grupos de Trabalhadores Virtuais" #: org/libreplan/web/planner/tabs/MonteCarloTabCreator.java:51 #: org/libreplan/web/planner/tabs/MonteCarloTabCreator.java:159 @@ -674,7 +674,7 @@ msgid "Cost category" msgstr "Categoria de custo" #: libreplan-webapp/src/main/webapp/myaccount/personalTimesheet.zul:21 -msgid "LibrePlan: Personal timesheet" +msgid "TASKPM: Personal timesheet" msgstr "" #: libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReportLine.java:264 @@ -701,7 +701,7 @@ msgid "Unsaved changes will be lost. Are you sure?" msgstr "As alterações não guardadas serão perdidas. Deseja continuar?" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/ConfigurationRolesLDAP.java:56 -msgid "LibrePlan role not specified" +msgid "TASKPM role not specified" msgstr "" #: libreplan-webapp/src/main/webapp/scenarios/transferOrders.zul:39 @@ -717,7 +717,7 @@ msgid "Move" msgstr "Mover" #: libreplan-webapp/src/main/webapp/orders/_jiraSyncInfo.zul:20 -msgid "LibrePlan: JIRA synchronization info" +msgid "TASKPM: JIRA synchronization info" msgstr "" #: org/libreplan/web/common/components/finders/OrderFilterEnum.java:31 @@ -762,8 +762,8 @@ msgid "Profiles List" msgstr "Lista de Perfis" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:21 -msgid "LibrePlan: User access" -msgstr "LibrePlan: Acesso de utilizadores" +msgid "TASKPM: User access" +msgstr "TASKPM: Acesso de utilizadores" #: libreplan-business/src/main/java/org/libreplan/business/labels/entities/LabelType.java:158 msgid "label code is already being used" @@ -1541,7 +1541,7 @@ msgid "Violated deadline" msgstr "Prazo de entrega excedido" #: libreplan-webapp/src/main/webapp/common/configuration.zul:126 -msgid "Enable/Disable warning about new LibrePlan versions available" +msgid "Enable/Disable warning about new TASKPM versions available" msgstr "Ativar/Desativar avisos sobre novas versões do LibrePlan" #: libreplan-business/src/main/java/org/libreplan/business/orders/entities/HoursGroup.java:186 @@ -1584,8 +1584,8 @@ msgid "Progress sent successfully" msgstr "Progresso enviado com sucesso" #: libreplan-webapp/src/main/webapp/myaccount/userDashboard.zul:21 -msgid "LibrePlan: My Dashboard" -msgstr "LibrePlan: Meu Painel" +msgid "TASKPM: My Dashboard" +msgstr "TASKPM: Meu Painel" #: libreplan-webapp/src/main/webapp/calendars/_edition.zul:131 msgid "Work week" @@ -1605,8 +1605,8 @@ msgstr "Campos de tipo de etiqueta" #: libreplan-webapp/src/main/webapp/common/event_error.zul:22 #: libreplan-webapp/src/main/webapp/common/error.zul:21 -msgid "LibrePlan: Runtime Error" -msgstr "LibrePlan: Erro de Execução" +msgid "TASKPM: Runtime Error" +msgstr "TASKPM: Erro de Execução" #: org/libreplan/web/planner/tabs/PlanningTabCreator.java:152 #: libreplan-webapp/src/main/webapp/common/components/schedulingStateToggler.zul:29 @@ -1653,7 +1653,7 @@ msgid "Criterion Types" msgstr "" #: libreplan-webapp/src/main/webapp/common/configuration.zul:125 -msgid "Show a notification when new LibrePlan versions are released" +msgid "Show a notification when new TASKPM versions are released" msgstr "Mostrar uma notificação quando forem lançadas novas versões do LibrePlan" #: org/libreplan/web/workreports/WorkReportTypeCRUDController.java:900 @@ -1722,8 +1722,8 @@ msgid "units not specified" msgstr "unidade não especificada" #: libreplan-webapp/src/main/webapp/advance/advanceTypes.zul:22 -msgid "LibrePlan: Progress Types" -msgstr "LibrePlan: Tipos de Progresso" +msgid "TASKPM: Progress Types" +msgstr "TASKPM: Tipos de Progresso" #: libreplan-webapp/src/main/webapp/planner/montecarlo_function.zul:36 msgid "MonteCarlo chart" @@ -1930,7 +1930,7 @@ msgid "percentage should be between 1 and 100" msgstr "porcentagem deve estar entre 1 e 100" #: libreplan-webapp/src/main/webapp/workreports/workReportQuery.zul:23 -msgid "LibrePlan: Timesheet Lines List" +msgid "TASKPM: Timesheet Lines List" msgstr "" #: org/libreplan/web/labels/LabelTypeModel.java:269 @@ -2058,8 +2058,8 @@ msgid "You have exceeded the maximum limit of users" msgstr "Você excedeu o limite máximo de usuários" #: libreplan-webapp/src/main/webapp/reports/schedulingProgressPerOrderReport.zul:21 -msgid "LibrePlan: Work And Progress Per Project" -msgstr "LibrePlan: Trabalho e Progresso por Projeto" +msgid "TASKPM: Work And Progress Per Project" +msgstr "TASKPM: Trabalho e Progresso por Projeto" #: libreplan-webapp/src/main/webapp/orders/_orderElementTreeFilter.zul:42 #: libreplan-webapp/src/main/webapp/orders/_orderFilter.zul:30 @@ -2123,8 +2123,8 @@ msgid "No roster-exceptions found in the response" msgstr "" #: libreplan-webapp/src/main/webapp/calendars/calendars.zul:22 -msgid "LibrePlan: Calendars" -msgstr "LibrePlan: Calendários" +msgid "TASKPM: Calendars" +msgstr "TASKPM: Calendários" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/EntitySequence.java:192 msgid "entity name not specified" @@ -2148,7 +2148,7 @@ msgid "Subcontracting date" msgstr "" #: libreplan-webapp/src/main/webapp/common/job_scheduling.zul:20 -msgid "LibrePlan: Job Scheduling" +msgid "TASKPM: Job Scheduling" msgstr "" #: org/libreplan/importers/ImportRosterFromTim.java:182 @@ -2301,7 +2301,7 @@ msgid "Filter timesheet lines by" msgstr "Filtrar planilha de tempo por linha" #: libreplan-webapp/src/main/webapp/unittypes/unitTypes.zul:21 -msgid "LibrePlan: Material Units" +msgid "TASKPM: Material Units" msgstr "" #: org/libreplan/web/templates/TemplatesTreeComponent.java:64 @@ -2455,8 +2455,8 @@ msgid "Maximum/minimum of worked hours in finished applications" msgstr "Máximo/mínimo das horas trabalhadas em aplicações finalizadas" #: libreplan-webapp/src/main/webapp/labels/labelTypes.zul:21 -msgid "LibrePlan: Labels" -msgstr "LibrePlan: Etiquetas" +msgid "TASKPM: Labels" +msgstr "TASKPM: Etiquetas" #: libreplan-webapp/src/main/webapp/resources/worker/_edition.zul:31 msgid "Personal data" @@ -2506,8 +2506,8 @@ msgid "Observations" msgstr "Observações" #: libreplan-webapp/src/main/webapp/common/page_not_found.zul:22 -msgid "LibrePlan: Page not found" -msgstr "LibrePlan: Página não encontrada" +msgid "TASKPM: Page not found" +msgstr "TASKPM: Página não encontrada" #: libreplan-webapp/src/main/webapp/orders/_edition.zul:251 #: libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul:55 @@ -2598,8 +2598,8 @@ msgid "Output format:" msgstr "Formato de saída:" #: libreplan-webapp/src/main/webapp/reports/workingProgressPerTaskReport.zul:21 -msgid "LibrePlan: Work And Progress Per Task" -msgstr "LibrePlan: Trabalho e Progresso por Tarefa" +msgid "TASKPM: Work And Progress Per Task" +msgstr "TASKPM: Trabalho e Progresso por Tarefa" #: org/libreplan/web/advance/AdvanceTypeCRUDController.java:81 msgid "" @@ -2690,8 +2690,8 @@ msgid "Label type already assigned" msgstr "Tipo de rótulo já atribuído" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:20 -msgid "LibrePlan: Received From Subcontractors" -msgstr "LibrePlan: recebido de sub-contratados" +msgid "TASKPM: Received From Subcontractors" +msgstr "TASKPM: recebido de sub-contratados" #: libreplan-webapp/src/main/webapp/common/configuration.zul:58 msgid "Company code" @@ -2911,8 +2911,8 @@ msgid "label type: the timesheet have not assigned this label type" msgstr "" #: libreplan-webapp/src/main/webapp/typeofworkhours/typeOfWorkHours.zul:23 -msgid "LibrePlan: Hours Types" -msgstr "LibrePlan: tipo de horas" +msgid "TASKPM: Hours Types" +msgstr "TASKPM: tipo de horas" #: org/libreplan/web/common/CustomMenuController.java:264 #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:109 @@ -2940,8 +2940,8 @@ msgid "Please try it again." msgstr "Por favor, volte a tentar." #: libreplan-webapp/src/main/webapp/expensesheet/expenseSheet.zul:21 -msgid "LibrePlan: Expenses" -msgstr "LibrePlan: Gastos" +msgid "TASKPM: Expenses" +msgstr "TASKPM: Gastos" #: org/libreplan/web/tree/TreeController.java:1294 msgid "Modified" @@ -3001,8 +3001,8 @@ msgid "Date last progress measurement" msgstr "Data da última medida de progresso" #: libreplan-webapp/src/main/webapp/reports/completedEstimatedHoursPerTask.zul:21 -msgid "LibrePlan: Estimated/Planned Hours Per Task" -msgstr "LibrePlan: Horas Estimadas/Planificadas por Tarefa" +msgid "TASKPM: Estimated/Planned Hours Per Task" +msgstr "TASKPM: Horas Estimadas/Planificadas por Tarefa" #: libreplan-webapp/src/main/webapp/orders/_listOrderElementAuthorizations.zul:43 #: libreplan-webapp/src/main/webapp/orders/_listOrderElementAuthorizations.zul:67 @@ -3208,8 +3208,8 @@ msgid "Finished" msgstr "Finalizado" #: libreplan-webapp/src/main/webapp/planner/index.zul:22 -msgid "LibrePlan: Planning" -msgstr "LibrePlan: Planejamento" +msgid "TASKPM: Planning" +msgstr "TASKPM: Planejamento" #: org/libreplan/web/scenarios/ScenarioModel.java:126 msgid "You cannot remove the current scenario" @@ -3281,8 +3281,8 @@ msgid "Property strategy" msgstr "Estratégia de propriedade" #: libreplan-webapp/src/main/webapp/reports/orderCostsPerResource.zul:21 -msgid "LibrePlan: Project Costs" -msgstr "LibrePlan: Custos do Projeto" +msgid "TASKPM: Project Costs" +msgstr "TASKPM: Custos do Projeto" #: org/libreplan/web/common/ConfigurationController.java:265 msgid "Changes saved" @@ -3317,8 +3317,8 @@ msgid "Calendar exception days" msgstr "Dias de exceção do calendário" #: libreplan-webapp/src/main/webapp/myaccount/changePassword.zul:21 -msgid "LibrePlan: Change password" -msgstr "LibrePlan: Alterar a palavra-passe" +msgid "TASKPM: Change password" +msgstr "TASKPM: Alterar a palavra-passe" #: org/libreplan/web/planner/allocation/GenericAllocationRow.java:55 msgid "Generic" @@ -3898,7 +3898,7 @@ msgstr "Tipo de comunicação" #: libreplan-webapp/src/main/webapp/common/page_not_found.zul:49 msgid "" -"If you reached this page from another page of LibrePlan please notify us in " +"If you reached this page from another page of TASKPM please notify us in " "order to fix it as soon as possible." msgstr "" @@ -3934,8 +3934,8 @@ msgid "Repeated Hours Group code {0} in Project {1}" msgstr "Código {0} de grupo de horas repetido no projeto {1}" #: libreplan-webapp/src/main/webapp/resources/worker/worker.zul:22 -msgid "LibrePlan: Workers" -msgstr "LibrePlan: Trabalhadores" +msgid "TASKPM: Workers" +msgstr "TASKPM: Trabalhadores" #: org/libreplan/web/planner/allocation/AdvancedAllocationController.java:1573 msgid "Not configurable" @@ -4392,8 +4392,8 @@ msgid "" msgstr "" #: libreplan-webapp/src/main/webapp/materials/materials.zul:21 -msgid "LibrePlan: Materials" -msgstr "LibrePlan: Materiais" +msgid "TASKPM: Materials" +msgstr "TASKPM: Materiais" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:104 msgid "User disabled" @@ -4639,7 +4639,7 @@ msgid "Stretches with Interpolation" msgstr "Trechos com Interpolação" #: libreplan-webapp/src/main/webapp/workreports/workReportTypes.zul:23 -msgid "LibrePlan: Timesheets Templates" +msgid "TASKPM: Timesheets Templates" msgstr "" #: org/libreplan/web/common/CustomMenuController.java:514 @@ -4670,8 +4670,8 @@ msgid "" msgstr "" #: libreplan-webapp/src/main/webapp/reports/workingArrangementsPerOrderReport.zul:21 -msgid "LibrePlan: Task Scheduling Status In Project" -msgstr "LibrePlan: Estado de Planificação de Projeto" +msgid "TASKPM: Task Scheduling Status In Project" +msgstr "TASKPM: Estado de Planificação de Projeto" #: libreplan-webapp/src/main/webapp/common/layout/_customMenu.zul:55 msgid "START" @@ -4906,8 +4906,8 @@ msgid "Reassigning type" msgstr "Tipo de reatribuição" #: libreplan-webapp/src/main/webapp/common/configuration.zul:23 -msgid "LibrePlan: Main Settings" -msgstr "LibrePlan: Definições principais" +msgid "TASKPM: Main Settings" +msgstr "TASKPM: Definições principais" #: org/libreplan/web/common/CustomMenuController.java:419 #: libreplan-business/src/main/java/org/libreplan/business/users/entities/UserRole.java:69 @@ -5003,8 +5003,8 @@ msgid "Expand taskgroups" msgstr "Expandir grupos de tarefas" #: libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul:22 -msgid "LibrePlan: Send To Subcontractors" -msgstr "LibrePlan: Enviado para sub-contratados" +msgid "TASKPM: Send To Subcontractors" +msgstr "TASKPM: Enviado para sub-contratados" #: org/libreplan/web/limitingresources/ManualAllocationController.java:492 msgid "END" @@ -5142,15 +5142,15 @@ msgid "" msgstr "Por favor contate o administrador para rever suas permissões no LibrePlan." #: libreplan-webapp/src/main/webapp/costcategories/costCategory.zul:23 -msgid "LibrePlan: Cost Categories" -msgstr "LibrePlan: Categorías de Custo" +msgid "TASKPM: Cost Categories" +msgstr "TASKPM: Categorías de Custo" #: libreplan-webapp/src/main/webapp/users/_editUser.zul:120 msgid "Unbound resource" msgstr "" #: libreplan-webapp/src/main/webapp/subcontract/customerCommunications.zul:20 -msgid "LibrePlan: Received From Customers" +msgid "TASKPM: Received From Customers" msgstr "" #: libreplan-webapp/src/main/webapp/workreports/_listWorkReportTypes.zul:47 @@ -5894,8 +5894,8 @@ msgid "Calendar allocation" msgstr "Atribuição de calendário" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerInAMonthReport.zul:21 -msgid "LibrePlan: Total Worked Hours By Resource In A Month" -msgstr "LibrePlan: Total de Horas Trabalhadas por Recurso no Mês" +msgid "TASKPM: Total Worked Hours By Resource In A Month" +msgstr "TASKPM: Total de Horas Trabalhadas por Recurso no Mês" #: org/libreplan/web/resources/criterion/CriterionAdminController.java:257 msgid "" @@ -5951,8 +5951,8 @@ msgid "" msgstr "" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:22 -msgid "LibrePlan: Settings" -msgstr "LibrePlan: Configurações" +msgid "TASKPM: Settings" +msgstr "TASKPM: Configurações" #: org/libreplan/web/common/CustomMenuController.java:345 #: libreplan-webapp/src/main/webapp/orders/_editOrderElement.zul:54 @@ -5983,8 +5983,8 @@ msgid "Change the password" msgstr "Alterar a palavra-passe" #: libreplan-webapp/src/main/webapp/common/access_forbidden.zul:20 -msgid "LibrePlan: Access Forbidden" -msgstr "LibrePlan: acesso proibido" +msgid "TASKPM: Access Forbidden" +msgstr "TASKPM: acesso proibido" #: libreplan-webapp/src/main/webapp/montecarlo/_montecarlo.zul:50 #: libreplan-webapp/src/main/webapp/montecarlo/_montecarlo.zul:52 @@ -6064,7 +6064,7 @@ msgid "No authorizations were added because you did not select any." msgstr "Não se adicionaram atualizações porque nenhuma foi selecionada" #: libreplan-webapp/src/main/webapp/users/users.zul:23 -msgid "LibrePlan: User Accounts" +msgid "TASKPM: User Accounts" msgstr "" #: libreplan-webapp/src/main/webapp/templates/_assignedQualityForms.zul:30 @@ -6112,8 +6112,8 @@ msgid "Interacts with applications" msgstr "Interage com aplicações" #: libreplan-webapp/src/main/webapp/planner/advance_allocation.zul:22 -msgid "LibrePlan: Advanced allocation" -msgstr "LibrePlan: Atribuição avançada" +msgid "TASKPM: Advanced allocation" +msgstr "TASKPM: Atribuição avançada" #: org/libreplan/importers/CalendarImporterMPXJ.java:365 msgid "Calendar name already in use" @@ -6238,7 +6238,7 @@ msgid "Standard Effort" msgstr "Esforço Padrão" #: libreplan-webapp/src/main/webapp/orders/imports/projectImport.zul:21 -msgid "LibrePlan: Import Project" +msgid "TASKPM: Import Project" msgstr "" #: org/libreplan/web/resources/worker/WorkerCRUDController.java:730 @@ -6252,8 +6252,8 @@ msgid "" msgstr "Por favor use um navegador compatível: Chrome, Firefox, Safari ou Epiphany." #: libreplan-webapp/src/main/webapp/scenarios/transferOrders.zul:23 -msgid "LibrePlan: Transfer Projects Between Scenarios" -msgstr "LibrePlan: Transferir Projetos Entre Cenários" +msgid "TASKPM: Transfer Projects Between Scenarios" +msgstr "TASKPM: Transferir Projetos Entre Cenários" #: org/libreplan/web/common/CustomMenuController.java:306 #: libreplan-business/src/main/java/org/libreplan/business/users/entities/UserRole.java:50 @@ -6489,8 +6489,8 @@ msgid "quality form item position not specified" msgstr "" #: libreplan-webapp/src/main/webapp/profiles/profiles.zul:23 -msgid "LibrePlan: Profiles" -msgstr "LibrePlan: Perfis" +msgid "TASKPM: Profiles" +msgstr "TASKPM: Perfis" #: libreplan-webapp/src/main/webapp/orders/_orderElementDetails.zul:38 msgid "Code " @@ -6501,8 +6501,8 @@ msgid "Budget At Completion" msgstr "Orçamento Total Planificado" #: libreplan-webapp/src/main/webapp/workreports/workReport.zul:23 -msgid "LibrePlan: Timesheets" -msgstr "LibrePlan: Planilha de Horas" +msgid "TASKPM: Timesheets" +msgstr "TASKPM: Planilha de Horas" #: libreplan-webapp/src/main/webapp/orders/_listHoursGroupCriterionRequirement.zul:22 msgid "Criteria Requirement" @@ -6896,8 +6896,8 @@ msgid "" msgstr "" #: libreplan-webapp/src/main/webapp/externalcompanies/externalcompanies.zul:23 -msgid "LibrePlan: Companies" -msgstr "LibrePlan: Empresas" +msgid "TASKPM: Companies" +msgstr "TASKPM: Empresas" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:53 msgid "Subcontrated task" @@ -6924,8 +6924,8 @@ msgid "Date must be inside visualization area" msgstr "" #: libreplan-webapp/src/main/webapp/templates/templates.zul:22 -msgid "LibrePlan: Templates" -msgstr "LibrePlan: Modelos" +msgid "TASKPM: Templates" +msgstr "TASKPM: Modelos" #: libreplan-webapp/src/main/webapp/resourceload/resourceload.zul:22 #: libreplan-webapp/src/main/webapp/planner/taskpanels/_tabPanelLimitingResourceAllocation.zul:22 @@ -6934,12 +6934,12 @@ msgstr "LibrePlan: Modelos" #: libreplan-webapp/src/main/webapp/planner/montecarlo_function.zul:22 #: libreplan-webapp/src/main/webapp/planner/resources_use.zul:22 #: libreplan-webapp/src/main/webapp/planner/order.zul:22 -msgid "LibrePlan: Scheduling" -msgstr "LibrePlan: Planificação" +msgid "TASKPM: Scheduling" +msgstr "TASKPM: Planificação" #: libreplan-webapp/src/main/webapp/subcontract/reportAdvances.zul:22 -msgid "LibrePlan: Send To Customers" -msgstr "LibrePlan: enviado para clientes" +msgid "TASKPM: Send To Customers" +msgstr "TASKPM: enviado para clientes" #: libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReport.java:436 msgid "The timesheet line codes must be unique." @@ -7427,8 +7427,8 @@ msgid "The code cannot be empty and it must be unique." msgstr "" #: libreplan-webapp/src/main/webapp/resources/criterions/criterions.zul:24 -msgid "LibrePlan: Criteria" -msgstr "LibrePlan: Critérios" +msgid "TASKPM: Criteria" +msgstr "TASKPM: Critérios" #: org/libreplan/importers/OrderImporterMPXJ.java:660 msgid "Linked calendar not found" @@ -7841,7 +7841,7 @@ msgid "Start filtering date must be before than end filtering date" msgstr "" #: libreplan-webapp/src/main/webapp/orders/_synchronizationInfo.zul:20 -msgid "LibrePlan: Synchronization info" +msgid "TASKPM: Synchronization info" msgstr "" #: org/libreplan/web/orders/DetailsOrderElementController.java:128 @@ -8199,8 +8199,8 @@ msgid "Dedication chart" msgstr "Gráfico de dedicação" #: libreplan-webapp/src/main/webapp/scenarios/scenarios.zul:23 -msgid "LibrePlan: Scenarios Management" -msgstr "LibrePlan: Gestão de Cenários" +msgid "TASKPM: Scenarios Management" +msgstr "TASKPM: Gestão de Cenários" #: org/libreplan/web/reports/CompletedEstimatedHoursPerTaskController.java:170 #: org/libreplan/web/reports/OrderCostsPerResourceController.java:213 @@ -8334,8 +8334,8 @@ msgid "Delete Template element" msgstr "Apagar elemento de modelo" #: libreplan-webapp/src/main/webapp/resources/machine/machines.zul:22 -msgid "LibrePlan: Machines" -msgstr "LibrePlan: Máquinas" +msgid "TASKPM: Machines" +msgstr "TASKPM: Máquinas" #: libreplan-webapp/src/main/webapp/orders/_orderElementTreeFilter.zul:36 #: libreplan-webapp/src/main/webapp/orders/_orderFilter.zul:35 @@ -8522,7 +8522,7 @@ msgid "Must be after 2010!" msgstr "" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:144 -msgid "is not supported for its use with LibrePlan." +msgid "is not supported for its use with TASKPM." msgstr "não é suportado o uso com o LibrePlan." #: libreplan-business/src/main/java/org/libreplan/business/qualityforms/entities/TaskQualityFormItem.java:99 @@ -8771,8 +8771,8 @@ msgid "number of digits must be between {0} and {1}" msgstr "o número de dígitos deve estar entre {0} e {1}" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerReport.zul:21 -msgid "LibrePlan: Hours Worked Per Resource" -msgstr "LibrePlan: Horas Trabalhadas por Recurso" +msgid "TASKPM: Hours Worked Per Resource" +msgstr "TASKPM: Horas Trabalhadas por Recurso" #: org/libreplan/web/calendars/BaseCalendarEditionController.java:642 #: org/libreplan/web/calendars/BaseCalendarEditionController.java:1278 diff --git a/libreplan-webapp/src/main/resources/i18n/pt_BR.po b/libreplan-webapp/src/main/resources/i18n/pt_BR.po index dfd3e68a8..16d2ea799 100644 --- a/libreplan-webapp/src/main/resources/i18n/pt_BR.po +++ b/libreplan-webapp/src/main/resources/i18n/pt_BR.po @@ -9,7 +9,7 @@ # staifer , 2014 msgid "" msgstr "" -"Project-Id-Version: LibrePlan\n" +"Project-Id-Version: TASKPM\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-11-27 20:07+0100\n" "PO-Revision-Date: 2011-12-12 19:43+0000\n" @@ -99,8 +99,8 @@ msgid "Select template" msgstr "Selecione modelo" #: libreplan-webapp/src/main/webapp/workreports/workReport.zul:23 -msgid "LibrePlan: Timesheets" -msgstr "LibrePlan: Folhas de horas" +msgid "TASKPM: Timesheets" +msgstr "TASKPM: Folhas de horas" #: libreplan-webapp/src/main/webapp/myaccount/_myTasksArea.zul:39 msgid "Work done" @@ -146,7 +146,7 @@ msgid "job class name not specified" msgstr "nome da classe de trabalho não especificado" #: libreplan-webapp/src/main/webapp/common/configuration.zul:146 -msgid "Show a notification when new LibrePlan versions are released" +msgid "Show a notification when new TASKPM versions are released" msgstr "" "Mostrar uma notificação quando uma nova versão do LibrePlan estiver " "disponível" @@ -273,8 +273,8 @@ msgid "Task quality forms" msgstr "Formulários de qualidade de tarefa" #: libreplan-webapp/src/main/webapp/templates/templates.zul:22 -msgid "LibrePlan: Templates" -msgstr "LibrePlan: Modelos" +msgid "TASKPM: Templates" +msgstr "TASKPM: Modelos" #: org/libreplan/web/workreports/WorkReportTypeModel.java:414 msgid "There is another timesheet template with the same name" @@ -318,8 +318,8 @@ msgid "Authentication type" msgstr "Tipo de autenticação" #: libreplan-webapp/src/main/webapp/reports/workingArrangementsPerOrderReport.zul:21 -msgid "LibrePlan: Task Scheduling Status In Project" -msgstr "LibrePlan: Status de agendamento de tarefas no projeto" +msgid "TASKPM: Task Scheduling Status In Project" +msgstr "TASKPM: Status de agendamento de tarefas no projeto" #: org/libreplan/web/resources/criterion/CriterionsModel.java:216 msgid "Resource type cannot be empty" @@ -455,8 +455,8 @@ msgid "Schedule from deadline to start" msgstr "Agendar do prazo final ao início" #: libreplan-webapp/src/main/webapp/resources/machine/machines.zul:22 -msgid "LibrePlan: Machines" -msgstr "LibrePlan: Equipamentos" +msgid "TASKPM: Machines" +msgstr "TASKPM: Equipamentos" #: org/libreplan/web/common/CustomMenuController.java:400 #: org/libreplan/web/workreports/WorkReportTypeCRUDController.java:878 @@ -484,8 +484,8 @@ msgid "Criterion cannot be empty" msgstr "O critério não pode ser vazio" #: libreplan-webapp/src/main/webapp/planner/index.zul:22 -msgid "LibrePlan: Planning" -msgstr "LibrePlan: Plejamento" +msgid "TASKPM: Planning" +msgstr "TASKPM: Plejamento" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/Configuration.java:146 msgid "default calendar not specified" @@ -733,8 +733,8 @@ msgid "Save and Continue" msgstr "Salvar e continuar" #: libreplan-webapp/src/main/webapp/externalcompanies/externalcompanies.zul:23 -msgid "LibrePlan: Companies" -msgstr "LibrePlan: Empresas" +msgid "TASKPM: Companies" +msgstr "TASKPM: Empresas" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/EntitySequence.java:152 msgid "format sequence code invalid. It must not contain '_'" @@ -895,7 +895,7 @@ msgstr "Período ativo desde" #: libreplan-webapp/src/main/webapp/common/pageNotFound.zul:49 msgid "" -"If you reached this page from another page of LibrePlan please notify us in " +"If you reached this page from another page of TASKPM please notify us in " "order to fix it as soon as possible." msgstr "" "Se você veio a esta página por intermédio de outra página do LibrePlan, por " @@ -1169,8 +1169,8 @@ msgstr "" "entrega na tabela já tenham uma data de comunicação preenchida." #: libreplan-webapp/src/main/webapp/common/pageNotFound.zul:22 -msgid "LibrePlan: Page not found" -msgstr "LibrePlan: Página não encontrada" +msgid "TASKPM: Page not found" +msgstr "TASKPM: Página não encontrada" #: org/libreplan/web/users/dashboard/ExpensesAreaController.java:87 msgid "Expense sheet \"{0}\" deleted" @@ -1305,8 +1305,8 @@ msgid "Advanced Allocation" msgstr "Alocação avançada" #: libreplan-webapp/src/main/webapp/reports/timeLineMaterialReport.zul:21 -msgid "LibrePlan: Materials Needed At Date" -msgstr "LibrePlan: Materiais Necessários Na Data" +msgid "TASKPM: Materials Needed At Date" +msgstr "TASKPM: Materiais Necessários Na Data" #: libreplan-webapp/src/main/webapp/unittypes/unitTypes.zul:42 #: libreplan-webapp/src/main/webapp/templates/_editTemplate.zul:165 @@ -1345,8 +1345,8 @@ msgid "Warning: Not editing from home page of bound users" msgstr "Aviso: A edição não está sendo feita na página dos usuários vinculados" #: libreplan-webapp/src/main/webapp/workreports/workReportQuery.zul:23 -msgid "LibrePlan: Timesheet Lines List" -msgstr "LibrePlan: Lista de linhas de folha de horas" +msgid "TASKPM: Timesheet Lines List" +msgstr "TASKPM: Lista de linhas de folha de horas" #: org/libreplan/web/users/dashboard/PersonalTimesheetController.java:664 #: org/libreplan/web/common/components/finders/OrderElementBandboxFinder.java:51 @@ -1432,8 +1432,8 @@ msgstr "" "usar a estrategia de atribuição selecionada." #: libreplan-webapp/src/main/webapp/orders/_jiraSyncInfo.zul:20 -msgid "LibrePlan: JIRA synchronization info" -msgstr "LibrePlan: informações de sincronização do JIRA" +msgid "TASKPM: JIRA synchronization info" +msgstr "TASKPM: informações de sincronização do JIRA" #: org/libreplan/web/common/CustomMenuController.java:290 #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:112 @@ -1521,8 +1521,8 @@ msgstr "Criar projeto novo" #: libreplan-webapp/src/main/webapp/common/eventError.zul:22 #: libreplan-webapp/src/main/webapp/common/error.zul:21 -msgid "LibrePlan: Runtime Error" -msgstr "LibrePlan: Erro em tempo de execução" +msgid "TASKPM: Runtime Error" +msgstr "TASKPM: Erro em tempo de execução" #: libreplan-webapp/src/main/webapp/common/configuration.zul:467 msgid "Role property" @@ -1657,8 +1657,8 @@ msgid "Estimations" msgstr "Estimativas" #: libreplan-webapp/src/main/webapp/orders/_synchronizationInfo.zul:20 -msgid "LibrePlan: Synchronization info" -msgstr "LibrePlan: Informações de sincronização" +msgid "TASKPM: Synchronization info" +msgstr "TASKPM: Informações de sincronização" #: libreplan-webapp/src/main/webapp/common/_editJobScheduling.zul:152 msgid "1 or 7 is Sunday, or use names" @@ -1934,8 +1934,8 @@ msgid "Change password" msgstr "Alterar senha" #: libreplan-webapp/src/main/webapp/reports/schedulingProgressPerOrderReport.zul:21 -msgid "LibrePlan: Work And Progress Per Project" -msgstr "LibrePlan: Trabalho e progresso por projeto" +msgid "TASKPM: Work And Progress Per Project" +msgstr "TASKPM: Trabalho e progresso por projeto" #: org/libreplan/importers/ExportTimesheetsToTim.java:224 msgid "Registration response with empty refs" @@ -2046,16 +2046,16 @@ msgid "All changes will be lost. Are you sure?" msgstr "Todas as alterações serão perdidas. Deseja continuar?" #: libreplan-webapp/src/main/webapp/common/configuration.zul:23 -msgid "LibrePlan: Main Settings" -msgstr "LibrePlan: Configurações principais" +msgid "TASKPM: Main Settings" +msgstr "TASKPM: Configurações principais" #: org/libreplan/web/users/dashboard/UserDashboardController.java:71 msgid "Expense sheet \"{0}\" saved" msgstr "Tabela de despesa \"{0}\" salvada" #: libreplan-webapp/src/main/webapp/workreports/workReportTypes.zul:23 -msgid "LibrePlan: Timesheets Templates" -msgstr "LibrePlan: Modelos de folhas de horas" +msgid "TASKPM: Timesheets Templates" +msgstr "TASKPM: Modelos de folhas de horas" #: org/libreplan/web/planner/allocation/FormBinder.java:640 msgid "{0} already assigned to resource allocation list" @@ -2190,7 +2190,7 @@ msgstr "Margem de horas" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:185 msgid "" -"Giving a gift today means LibrePlan continues to remain available and in " +"Giving a gift today means TASKPM continues to remain available and in " "active development tomorrow!" msgstr "" "Dar uma doação hoje significa que o LibrePlan continuará disponível e em " @@ -2504,8 +2504,8 @@ msgid "At least one {0} sequence is needed" msgstr "Ao menos uma {0} sequência é necessária" #: libreplan-webapp/src/main/webapp/resources/worker/virtualWorkers.zul:22 -msgid "LibrePlan: Virtual Worker Groups" -msgstr "LibrePlan: Grupos de trabalhadores virtuais" +msgid "TASKPM: Virtual Worker Groups" +msgstr "TASKPM: Grupos de trabalhadores virtuais" #: libreplan-webapp/src/main/webapp/resources/worker/_localizations.zul:64 msgid "Log" @@ -2570,8 +2570,8 @@ msgid " (%d tasks)" msgstr "(%d tarefas)" #: libreplan-webapp/src/main/webapp/subcontract/reportAdvances.zul:22 -msgid "LibrePlan: Send To Customers" -msgstr "LibrePlan: Enviar ao cliente" +msgid "TASKPM: Send To Customers" +msgstr "TASKPM: Enviar ao cliente" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:138 #: libreplan-webapp/src/main/webapp/common/configuration.zul:93 @@ -2665,8 +2665,8 @@ msgid "Date Resolved" msgstr "Data de solução" #: libreplan-webapp/src/main/webapp/reports/completedEstimatedHoursPerTask.zul:21 -msgid "LibrePlan: Estimated/Planned Hours Per Task" -msgstr "LibrePlan: Horas estimadas/planejadas por tarefa" +msgid "TASKPM: Estimated/Planned Hours Per Task" +msgstr "TASKPM: Horas estimadas/planejadas por tarefa" #: org/libreplan/web/orders/DynamicDatebox.java:152 msgid "Date format is wrong. Please, use the following format: {0}" @@ -2761,8 +2761,8 @@ msgid "Manual allocation" msgstr "Alocação manual" #: libreplan-webapp/src/main/webapp/costcategories/costCategory.zul:23 -msgid "LibrePlan: Cost Categories" -msgstr "LibrePlan: Categorias de custo" +msgid "TASKPM: Cost Categories" +msgstr "TASKPM: Categorias de custo" #: libreplan-business/src/main/java/org/libreplan/business/advance/entities/AdvanceMeasurement.java:100 #: libreplan-business/src/main/java/org/libreplan/business/workreports/valueobjects/DescriptionValue.java:80 @@ -3408,8 +3408,8 @@ msgid "Progress Types" msgstr "Tipos de progresso" #: libreplan-webapp/src/main/webapp/scenarios/scenarios.zul:23 -msgid "LibrePlan: Scenarios Management" -msgstr "LibrePlan: Gerenciamento de cenários" +msgid "TASKPM: Scenarios Management" +msgstr "TASKPM: Gerenciamento de cenários" #: libreplan-webapp/src/main/webapp/templates/_historicalStatistics.zul:55 msgid "Maximum/minimum of estimated hours" @@ -3448,8 +3448,8 @@ msgid "Add From Template" msgstr "Adicionar do modelo" #: libreplan-webapp/src/main/webapp/qualityforms/qualityForms.zul:22 -msgid "LibrePlan: Quality Forms" -msgstr "LibrePlan: Formulários de qualidade" +msgid "TASKPM: Quality Forms" +msgstr "TASKPM: Formulários de qualidade" #: org/libreplan/importers/ExportTimesheetsToTim.java:185 msgid "No work reportlines are found for order: \"{0}\"" @@ -3484,8 +3484,8 @@ msgstr "" #: libreplan-webapp/src/main/webapp/planner/montecarlo_function.zul:22 #: libreplan-webapp/src/main/webapp/planner/resources_use.zul:22 #: libreplan-webapp/src/main/webapp/planner/stretches_function.zul:22 -msgid "LibrePlan: Scheduling" -msgstr "LibrePlan: Agendamento" +msgid "TASKPM: Scheduling" +msgstr "TASKPM: Agendamento" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:84 msgid "Application settings" @@ -4128,8 +4128,8 @@ msgid "Issue log" msgstr "Registro de problemas" #: libreplan-webapp/src/main/webapp/subcontract/customerCommunications.zul:20 -msgid "LibrePlan: Received From Customers" -msgstr "LibrePlan: Recebido dos clientes" +msgid "TASKPM: Received From Customers" +msgstr "TASKPM: Recebido dos clientes" #: libreplan-webapp/src/main/webapp/common/eventError.zul:26 #: libreplan-webapp/src/main/webapp/common/error.zul:31 @@ -4145,12 +4145,12 @@ msgid "Already exists other label with the same name" msgstr "Já existe outro rótulo com mesmo nome" #: libreplan-webapp/src/main/webapp/scenarios/transferOrders.zul:23 -msgid "LibrePlan: Transfer Projects Between Scenarios" -msgstr "LibrePlan: Transferir projetos entre cenários" +msgid "TASKPM: Transfer Projects Between Scenarios" +msgstr "TASKPM: Transferir projetos entre cenários" #: libreplan-webapp/src/main/webapp/expensesheet/expenseSheet.zul:21 -msgid "LibrePlan: Expenses" -msgstr "LibrePlan: Despesas" +msgid "TASKPM: Expenses" +msgstr "TASKPM: Despesas" #: libreplan-webapp/src/main/webapp/orders/_edition.zul:302 #: libreplan-webapp/src/main/webapp/orders/_edition.zul:338 @@ -4161,7 +4161,7 @@ msgid "Communication date" msgstr "Data de comunicação" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:207 -msgid "is not supported for its use with LibrePlan." +msgid "is not supported for its use with TASKPM." msgstr "não é suportado para uso com o LibrePlan." #: libreplan-webapp/src/main/webapp/subcontract/customerCommunications.zul:44 @@ -4212,8 +4212,8 @@ msgid "label names must be unique inside a label type" msgstr "nome dos rótulos devem ser exclusivos dentro de um tipo de rótulo" #: libreplan-webapp/src/main/webapp/myaccount/personalTimesheet.zul:21 -msgid "LibrePlan: Personal timesheet" -msgstr "LibrePlan: Folha de horas pessoal" +msgid "TASKPM: Personal timesheet" +msgstr "TASKPM: Folha de horas pessoal" #: org/libreplan/importers/ExportTimesheetsToTim.java:130 msgid "Order should not be empty" @@ -4278,7 +4278,7 @@ msgid "Manual" msgstr "Manual" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/ConfigurationRolesLDAP.java:56 -msgid "LibrePlan role not specified" +msgid "TASKPM role not specified" msgstr "Papel LibrePlan não especificado" #: org/libreplan/web/subcontract/ReportAdvancesModel.java:225 @@ -4411,8 +4411,8 @@ msgid "Personal timesheet \"{0}\" saved" msgstr "Folha de horas pessoal \"{0}\" salva" #: libreplan-webapp/src/main/webapp/unittypes/unitTypes.zul:21 -msgid "LibrePlan: Material Units" -msgstr "LibrePlan: Unidades de materiais" +msgid "TASKPM: Material Units" +msgstr "TASKPM: Unidades de materiais" #: libreplan-webapp/src/main/webapp/orders/_editOrderElement.zul:39 #: libreplan-webapp/src/main/webapp/templates/_editTemplateWindow.zul:42 @@ -4539,7 +4539,7 @@ msgid "Concept" msgstr "Descrição" #: libreplan-webapp/src/main/webapp/common/configuration.zul:147 -msgid "Enable/Disable warning about new LibrePlan versions available" +msgid "Enable/Disable warning about new TASKPM versions available" msgstr "Ativar/Desativar aviso de nova versão disponível do LibrePlan" #: org/libreplan/web/scenarios/TransferOrdersModel.java:148 @@ -4570,8 +4570,8 @@ msgid "Delete Template element" msgstr "Excluir elemento de modelo" #: libreplan-webapp/src/main/webapp/calendars/calendars.zul:22 -msgid "LibrePlan: Calendars" -msgstr "LibrePlan: Calendários" +msgid "TASKPM: Calendars" +msgstr "TASKPM: Calendários" #: org/libreplan/web/limitingresources/QueueComponent.java:504 msgid "Unassign" @@ -4880,8 +4880,8 @@ msgid "Stacktrace" msgstr "Rastreamento em pilha" #: libreplan-webapp/src/main/webapp/planner/advance_allocation.zul:22 -msgid "LibrePlan: Advanced allocation" -msgstr "LibrePlan: Alocação avançada" +msgid "TASKPM: Advanced allocation" +msgstr "TASKPM: Alocação avançada" #: libreplan-webapp/src/main/webapp/advance/_listAdvanceTypes.zul:22 msgid "Progress Types List" @@ -4904,8 +4904,8 @@ msgid "Show all" msgstr "Mostrar tudo" #: libreplan-webapp/src/main/webapp/email/email_templates.zul:21 -msgid "LibrePlan: Email Templates" -msgstr "LibrePlan: Modelos de e-mail" +msgid "TASKPM: Email Templates" +msgstr "TASKPM: Modelos de e-mail" #: libreplan-business/src/main/java/org/libreplan/business/common/IntegrationEntity.java:47 msgid "code not specified" @@ -5203,8 +5203,8 @@ msgid "Virtual worker group name must be unique" msgstr "O nome do grupo de trabalhadores virtuais deve ser exclusivo" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerInAMonthReport.zul:21 -msgid "LibrePlan: Total Worked Hours By Resource In A Month" -msgstr "LibrePlan: Total de horas trabalhadas por recurso em um mês" +msgid "TASKPM: Total Worked Hours By Resource In A Month" +msgstr "TASKPM: Total de horas trabalhadas por recurso em um mês" #: libreplan-webapp/src/main/webapp/common/configuration.zul:307 #: libreplan-webapp/src/main/webapp/advance/_editAdvanceTypes.zul:47 @@ -5425,8 +5425,8 @@ msgid "Task Status" msgstr "Status da tarefa" #: libreplan-webapp/src/main/webapp/orders/imports/projectImport.zul:21 -msgid "LibrePlan: Import Project" -msgstr "LibrePlan: Importar Projeto" +msgid "TASKPM: Import Project" +msgstr "TASKPM: Importar Projeto" #: org/libreplan/web/planner/chart/EarnedValueChartFiller.java:250 msgid "Budget At Completion" @@ -5557,8 +5557,8 @@ msgid "Percentage" msgstr "Percentual" #: libreplan-webapp/src/main/webapp/profiles/profiles.zul:23 -msgid "LibrePlan: Profiles" -msgstr "LibrePlan: Perfis" +msgid "TASKPM: Profiles" +msgstr "TASKPM: Perfis" #: org/libreplan/web/orders/ManageOrderElementAdvancesController.java:673 msgid "Calculated progress can not be modified" @@ -5689,8 +5689,8 @@ msgid "From today" msgstr "A partir de hoje" #: libreplan-webapp/src/main/webapp/common/jobScheduling.zul:20 -msgid "LibrePlan: Job Scheduling" -msgstr "LibrePlan: Agendamento de trabalho" +msgid "TASKPM: Job Scheduling" +msgstr "TASKPM: Agendamento de trabalho" #: org/libreplan/web/users/dashboard/PersonalTimesheetDTO.java:125 msgid "Week {0}" @@ -5828,8 +5828,8 @@ msgid "Project name" msgstr "Nome do projeto" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:22 -msgid "LibrePlan: Settings" -msgstr "LibrePlan: Preferências" +msgid "TASKPM: Settings" +msgstr "TASKPM: Preferências" #: libreplan-webapp/src/main/webapp/excetiondays/_listExceptionDayTypes.zul:32 #: libreplan-webapp/src/main/webapp/excetiondays/_editExceptionDayType.zul:62 @@ -5897,8 +5897,8 @@ msgid "Specific Allocations" msgstr "Alocações específicas" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:20 -msgid "LibrePlan: Received From Subcontractors" -msgstr "LibrePlan: Recebido das terceirizadas" +msgid "TASKPM: Received From Subcontractors" +msgstr "TASKPM: Recebido das terceirizadas" #: org/libreplan/web/orders/OrderCRUDController.java:1057 #: org/libreplan/web/templates/OrderTemplatesController.java:369 @@ -5975,8 +5975,8 @@ msgid "Confirm deleting this file. Are you sure?" msgstr "Deseja realmente deletar este arquivo?" #: libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul:22 -msgid "LibrePlan: Send To Subcontractors" -msgstr "LibrePlan: Enviar à terceirizadas" +msgid "TASKPM: Send To Subcontractors" +msgstr "TASKPM: Enviar à terceirizadas" #: org/libreplan/web/planner/allocation/AllocationRow.java:446 msgid "Only {0} resources per day were achieved for current allocation" @@ -6377,8 +6377,8 @@ msgid "New password" msgstr "Nova senha" #: libreplan-webapp/src/main/webapp/excetiondays/exceptionDays.zul:22 -msgid "LibrePlan: Calendar Exception Days" -msgstr "LibrePlan: Dias de exceção no calendário" +msgid "TASKPM: Calendar Exception Days" +msgstr "TASKPM: Dias de exceção no calendário" #: libreplan-webapp/src/main/webapp/myaccount/personalTimesheet.zul:95 msgid "Total other" @@ -6394,8 +6394,8 @@ msgid "Number of digits" msgstr "Número de dígitos" #: libreplan-webapp/src/main/webapp/orders/_timImpExpInfo.zul:20 -msgid "LibrePlan: Tim import export info" -msgstr "LibrePlan: Informações de importação e exportação do Tim" +msgid "TASKPM: Tim import export info" +msgstr "TASKPM: Informações de importação e exportação do Tim" #: org/libreplan/web/orders/JiraSynchronizationController.java:195 msgid "No JIRA issues to import" @@ -6468,8 +6468,8 @@ msgid "Schedule from start to deadline" msgstr "Agendar do inicio ao prazo final" #: libreplan-webapp/src/main/webapp/myaccount/changePassword.zul:21 -msgid "LibrePlan: Change password" -msgstr "LibrePlan: Alterar senha" +msgid "TASKPM: Change password" +msgstr "TASKPM: Alterar senha" #: libreplan-business/src/main/java/org/libreplan/business/users/entities/Profile.java:89 msgid "profile name is already being used by another profile" @@ -6742,8 +6742,8 @@ msgid "Select criteria or resources" msgstr "Selecione critérios ou recursos" #: libreplan-webapp/src/main/webapp/common/accessForbidden.zul:20 -msgid "LibrePlan: Access Forbidden" -msgstr "LibrePlan: Acesso negado" +msgid "TASKPM: Access Forbidden" +msgstr "TASKPM: Acesso negado" #: libreplan-business/src/main/java/org/libreplan/business/advance/entities/AdvanceType.java:127 msgid "unit name not specified" @@ -6891,8 +6891,8 @@ msgid "Some allocations needed" msgstr "É necessário algumas alocações" #: libreplan-webapp/src/main/webapp/myaccount/userDashboard.zul:21 -msgid "LibrePlan: My Dashboard" -msgstr "LibrePlan: Meu painel de controle" +msgid "TASKPM: My Dashboard" +msgstr "TASKPM: Meu painel de controle" #: org/libreplan/web/tree/TreeComponent.java:58 #: org/libreplan/web/workreports/WorkReportCRUDController.java:902 @@ -7096,8 +7096,8 @@ msgid "Number of tasks" msgstr "Número de tarefas" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerReport.zul:21 -msgid "LibrePlan: Hours Worked Per Resource" -msgstr "LibrePlan: Horas trabalhadas por recurso" +msgid "TASKPM: Hours Worked Per Resource" +msgstr "TASKPM: Horas trabalhadas por recurso" #: libreplan-webapp/src/main/webapp/orders/_listOrderElementTaskQualityForms.zul:50 msgid "Task quality form name" @@ -7223,8 +7223,8 @@ msgid "OUTSOURCED" msgstr "TERCEIRIZADO" #: libreplan-webapp/src/main/webapp/reports/projectStatusReport.zul:20 -msgid "LibrePlan: Project Status Report" -msgstr "LibrePlan: Relatório de status do projeto" +msgid "TASKPM: Project Status Report" +msgstr "TASKPM: Relatório de status do projeto" #: libreplan-webapp/src/main/webapp/calendars/_edition.zul:140 msgid "Activation periods" @@ -7371,8 +7371,8 @@ msgid "Select the elements to import into LibrePlan" msgstr "Selecione os elementos a serem importados no LibrePlan" #: libreplan-webapp/src/main/webapp/advance/advanceTypes.zul:22 -msgid "LibrePlan: Progress Types" -msgstr "LibrePlan: Tipos de progresso" +msgid "TASKPM: Progress Types" +msgstr "TASKPM: Tipos de progresso" #: org/libreplan/web/workreports/WorkReportCRUDController.java:886 #: libreplan-webapp/src/main/webapp/orders/_listOrderElementHours.zul:33 @@ -7469,7 +7469,7 @@ msgid "Calculated progress cannot be removed" msgstr "Progresso calculado não pode ser removido" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:184 -msgid "without you, LibrePlan can’t exist." +msgid "without you, TASKPM can’t exist." msgstr "sem você, o LibrePlan não pode existir." #: org/libreplan/web/users/UserCRUDController.java:98 @@ -7563,8 +7563,8 @@ msgid "Name" msgstr "Nome" #: libreplan-webapp/src/main/webapp/typeofworkhours/typeOfWorkHours.zul:23 -msgid "LibrePlan: Hours Types" -msgstr "LibrePlan: Tipo de horas" +msgid "TASKPM: Hours Types" +msgstr "TASKPM: Tipo de horas" #: libreplan-webapp/src/main/webapp/calendars/_edition.zul:303 msgid "Expiry date" @@ -7806,8 +7806,8 @@ msgid "Required materials" msgstr "Materiais requeridos" #: libreplan-webapp/src/main/webapp/reports/workingProgressPerTaskReport.zul:21 -msgid "LibrePlan: Work And Progress Per Task" -msgstr "LibrePlan: Trabalho e Progresso por tarefa" +msgid "TASKPM: Work And Progress Per Task" +msgstr "TASKPM: Trabalho e Progresso por tarefa" #: libreplan-webapp/src/main/webapp/resources/_criterions.zul:36 msgid "Show only current satisfied criteria" @@ -7911,8 +7911,8 @@ msgid "List of materials for category: {0}" msgstr "Lista de materiais para categoria: {0}" #: libreplan-webapp/src/main/webapp/resources/criterions/criterions.zul:24 -msgid "LibrePlan: Criteria" -msgstr "LibrePlan: Critério" +msgid "TASKPM: Criteria" +msgstr "TASKPM: Critério" #: org/libreplan/web/resources/worker/WorkerCRUDController.java:972 msgid "Do you want to remove bound user \"{0}\" too?" @@ -8126,8 +8126,8 @@ msgid "connector name not specified" msgstr "nome do conector não especificado" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:21 -msgid "LibrePlan: User access" -msgstr "LibrePlan: Acesso de usuários" +msgid "TASKPM: User access" +msgstr "TASKPM: Acesso de usuários" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:156 msgid "Label filter" @@ -8347,7 +8347,7 @@ msgstr "preço unitário não especificado" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:180 msgid "" -"Did you know LibrePlan is funded only by donations, from people like you?" +"Did you know TASKPM is funded only by donations, from people like you?" msgstr "" "Você sabia que o LibrePlan é financiado apenas por doações de pessoas como " "você?" @@ -8566,8 +8566,8 @@ msgid "task end date not specified" msgstr "data de término da tarefa não especificado" #: libreplan-webapp/src/main/webapp/resources/worker/worker.zul:22 -msgid "LibrePlan: Workers" -msgstr "LibrePlan: Trabalhadores" +msgid "TASKPM: Workers" +msgstr "TASKPM: Trabalhadores" #: libreplan-webapp/src/main/webapp/dashboard/_dashboardfororder.zul:131 msgid "No tasks available yet" @@ -8717,8 +8717,8 @@ msgid "Total hours" msgstr "Total de horas" #: libreplan-webapp/src/main/webapp/users/users.zul:23 -msgid "LibrePlan: User Accounts" -msgstr "LibrePlan: Contas de usuário" +msgid "TASKPM: User Accounts" +msgstr "TASKPM: Contas de usuário" #: libreplan-business/src/main/java/org/libreplan/business/expensesheet/entities/ExpenseSheet.java:109 msgid "total must be greater or equal than 0" @@ -8781,8 +8781,8 @@ msgid "Work description" msgstr "Descrição do trabalho" #: libreplan-webapp/src/main/webapp/materials/materials.zul:21 -msgid "LibrePlan: Materials" -msgstr "LibrePlan: Materiais" +msgid "TASKPM: Materials" +msgstr "TASKPM: Materiais" #: libreplan-webapp/src/main/webapp/common/layout/template.zul:88 msgid "Change scenario" @@ -9115,8 +9115,8 @@ msgid "Entity type" msgstr "Tipo de entidade" #: libreplan-webapp/src/main/webapp/labels/labelTypes.zul:21 -msgid "LibrePlan: Labels" -msgstr "LibrePlan: Rótulos" +msgid "TASKPM: Labels" +msgstr "TASKPM: Rótulos" #: libreplan-webapp/src/main/webapp/workreports/workReportQuery.zul:79 msgid "type" @@ -9472,8 +9472,8 @@ msgid "Work amount" msgstr "Quantidade de trabalho" #: libreplan-webapp/src/main/webapp/reports/orderCostsPerResource.zul:21 -msgid "LibrePlan: Project Costs" -msgstr "LibrePlan: Custos do projeto" +msgid "TASKPM: Project Costs" +msgstr "TASKPM: Custos do projeto" #: libreplan-business/src/main/java/org/libreplan/business/costcategories/entities/ResourcesCostCategoryAssignment.java:145 msgid "cost assignment with end date before start date" diff --git a/libreplan-webapp/src/main/resources/i18n/ru.po b/libreplan-webapp/src/main/resources/i18n/ru.po index 6a9bb0924..ee6da3e77 100644 --- a/libreplan-webapp/src/main/resources/i18n/ru.po +++ b/libreplan-webapp/src/main/resources/i18n/ru.po @@ -15,7 +15,7 @@ # Andrey Voronin, 2016 msgid "" msgstr "" -"Project-Id-Version: LibrePlan\n" +"Project-Id-Version: TASKPM\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-10-10 17:54+0200\n" "PO-Revision-Date: 2016-10-13 08:33+0000\n" @@ -28,8 +28,8 @@ msgstr "" "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" #: libreplan-webapp/src/main/webapp/qualityforms/qualityForms.zul:22 -msgid "LibrePlan: Quality Forms" -msgstr "LibrePlan: Формы качества" +msgid "TASKPM: Quality Forms" +msgstr "TASKPM: Формы качества" #: libreplan-webapp/src/main/webapp/orders/_projectDetails.zul:58 #: libreplan-webapp/src/main/webapp/orders/_list.zul:30 @@ -53,8 +53,8 @@ msgid "Overtime" msgstr "Сверхурочно" #: libreplan-webapp/src/main/webapp/excetiondays/exceptionDays.zul:22 -msgid "LibrePlan: Calendar Exception Days" -msgstr "LibrePlan: Исключения календаря" +msgid "TASKPM: Calendar Exception Days" +msgstr "TASKPM: Исключения календаря" #: org/libreplan/web/calendars/BaseCalendarModel.java:488 #: org/libreplan/web/calendars/BaseCalendarModel.java:520 @@ -143,8 +143,8 @@ msgid "Subcategory names must be unique." msgstr "Имена подкатегорий должны быть уникальными." #: libreplan-webapp/src/main/webapp/reports/timeLineMaterialReport.zul:21 -msgid "LibrePlan: Materials Needed At Date" -msgstr "LibrePlan: Материалы требуются к дате" +msgid "TASKPM: Materials Needed At Date" +msgstr "TASKPM: Материалы требуются к дате" #: org/libreplan/web/resources/machine/MachineCRUDController.java:630 msgid "Machines limit reached" @@ -490,8 +490,8 @@ msgid "please, select a project" msgstr "Пожалуйста, выберите проект" #: libreplan-webapp/src/main/webapp/reports/projectStatusReport.zul:20 -msgid "LibrePlan: Project Status Report" -msgstr "LibrePlan: отчет о состоянии проекта" +msgid "TASKPM: Project Status Report" +msgstr "TASKPM: отчет о состоянии проекта" #: org/libreplan/web/calendars/BaseCalendarEditionController.java:627 #: org/libreplan/web/calendars/BaseCalendarEditionController.java:1263 @@ -552,7 +552,7 @@ msgid "Exit session" msgstr "Окончить сессию" #: libreplan-webapp/src/main/webapp/orders/_timImpExpInfo.zul:20 -msgid "LibrePlan: Tim import export info" +msgid "TASKPM: Tim import export info" msgstr "" #: org/libreplan/web/planner/allocation/FormBinder.java:671 @@ -666,8 +666,8 @@ msgid "Companies List" msgstr "Список компаний" #: libreplan-webapp/src/main/webapp/resources/worker/virtualWorkers.zul:22 -msgid "LibrePlan: Virtual Worker Groups" -msgstr "LibrePlan: Виртуальная группа работников" +msgid "TASKPM: Virtual Worker Groups" +msgstr "TASKPM: Виртуальная группа работников" #: org/libreplan/web/planner/tabs/MonteCarloTabCreator.java:51 #: org/libreplan/web/planner/tabs/MonteCarloTabCreator.java:159 @@ -680,8 +680,8 @@ msgid "Cost category" msgstr "Категория стоимости" #: libreplan-webapp/src/main/webapp/myaccount/personalTimesheet.zul:21 -msgid "LibrePlan: Personal timesheet" -msgstr "LibrePlan: Личный табель" +msgid "TASKPM: Personal timesheet" +msgstr "TASKPM: Личный табель" #: libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReportLine.java:264 msgid "clock finish cannot be empty if number of hours is calcultate by clock" @@ -707,7 +707,7 @@ msgid "Unsaved changes will be lost. Are you sure?" msgstr "Не сохраненные данные будут утеряны. Вы уверены?" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/ConfigurationRolesLDAP.java:56 -msgid "LibrePlan role not specified" +msgid "TASKPM role not specified" msgstr "LibrePlan роль не определена" #: libreplan-webapp/src/main/webapp/scenarios/transferOrders.zul:39 @@ -723,8 +723,8 @@ msgid "Move" msgstr "Переместить" #: libreplan-webapp/src/main/webapp/orders/_jiraSyncInfo.zul:20 -msgid "LibrePlan: JIRA synchronization info" -msgstr "LibrePlan: Jira Информация о синхронизации" +msgid "TASKPM: JIRA synchronization info" +msgstr "TASKPM: Jira Информация о синхронизации" #: org/libreplan/web/common/components/finders/OrderFilterEnum.java:31 #: org/libreplan/web/common/components/finders/TaskGroupFilterEnum.java:31 @@ -768,8 +768,8 @@ msgid "Profiles List" msgstr "Список профилей" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:21 -msgid "LibrePlan: User access" -msgstr "LibrePlan: Доступ пользователя" +msgid "TASKPM: User access" +msgstr "TASKPM: Доступ пользователя" #: libreplan-business/src/main/java/org/libreplan/business/labels/entities/LabelType.java:158 msgid "label code is already being used" @@ -1547,7 +1547,7 @@ msgid "Violated deadline" msgstr "Дедлайн нарушен" #: libreplan-webapp/src/main/webapp/common/configuration.zul:126 -msgid "Enable/Disable warning about new LibrePlan versions available" +msgid "Enable/Disable warning about new TASKPM versions available" msgstr "Разрешить/запретить уведомление о наличии новой версии LibrePlan" #: libreplan-business/src/main/java/org/libreplan/business/orders/entities/HoursGroup.java:186 @@ -1590,8 +1590,8 @@ msgid "Progress sent successfully" msgstr "Ход работ послан успешно" #: libreplan-webapp/src/main/webapp/myaccount/userDashboard.zul:21 -msgid "LibrePlan: My Dashboard" -msgstr "LibrePlan: Мой Дисплей" +msgid "TASKPM: My Dashboard" +msgstr "TASKPM: Мой Дисплей" #: libreplan-webapp/src/main/webapp/calendars/_edition.zul:131 msgid "Work week" @@ -1611,8 +1611,8 @@ msgstr "Поля типа метки" #: libreplan-webapp/src/main/webapp/common/event_error.zul:22 #: libreplan-webapp/src/main/webapp/common/error.zul:21 -msgid "LibrePlan: Runtime Error" -msgstr "LibrePlan: Ошибка запуска" +msgid "TASKPM: Runtime Error" +msgstr "TASKPM: Ошибка запуска" #: org/libreplan/web/planner/tabs/PlanningTabCreator.java:152 #: libreplan-webapp/src/main/webapp/common/components/schedulingStateToggler.zul:29 @@ -1659,7 +1659,7 @@ msgid "Criterion Types" msgstr "Типы критериев" #: libreplan-webapp/src/main/webapp/common/configuration.zul:125 -msgid "Show a notification when new LibrePlan versions are released" +msgid "Show a notification when new TASKPM versions are released" msgstr "Показывать уведомление о новых версиях LibrePlan" #: org/libreplan/web/workreports/WorkReportTypeCRUDController.java:900 @@ -1728,8 +1728,8 @@ msgid "units not specified" msgstr "элементы не определены" #: libreplan-webapp/src/main/webapp/advance/advanceTypes.zul:22 -msgid "LibrePlan: Progress Types" -msgstr "LibrePlan: Типы хода работ" +msgid "TASKPM: Progress Types" +msgstr "TASKPM: Типы хода работ" #: libreplan-webapp/src/main/webapp/planner/montecarlo_function.zul:36 msgid "MonteCarlo chart" @@ -1936,8 +1936,8 @@ msgid "percentage should be between 1 and 100" msgstr "процент должен быть между 1 и 100" #: libreplan-webapp/src/main/webapp/workreports/workReportQuery.zul:23 -msgid "LibrePlan: Timesheet Lines List" -msgstr "LibrePlan: Список строк табеля" +msgid "TASKPM: Timesheet Lines List" +msgstr "TASKPM: Список строк табеля" #: org/libreplan/web/labels/LabelTypeModel.java:269 msgid "Already exists other label with the same name" @@ -2064,8 +2064,8 @@ msgid "You have exceeded the maximum limit of users" msgstr "Вы достигли максимального количества пользователей" #: libreplan-webapp/src/main/webapp/reports/schedulingProgressPerOrderReport.zul:21 -msgid "LibrePlan: Work And Progress Per Project" -msgstr "LibrePlan: Работа и Ход Работ на Проекте" +msgid "TASKPM: Work And Progress Per Project" +msgstr "TASKPM: Работа и Ход Работ на Проекте" #: libreplan-webapp/src/main/webapp/orders/_orderElementTreeFilter.zul:42 #: libreplan-webapp/src/main/webapp/orders/_orderFilter.zul:30 @@ -2129,8 +2129,8 @@ msgid "No roster-exceptions found in the response" msgstr "" #: libreplan-webapp/src/main/webapp/calendars/calendars.zul:22 -msgid "LibrePlan: Calendars" -msgstr "LibrePlan: Календари" +msgid "TASKPM: Calendars" +msgstr "TASKPM: Календари" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/EntitySequence.java:192 msgid "entity name not specified" @@ -2154,7 +2154,7 @@ msgid "Subcontracting date" msgstr "Дата субконтракта" #: libreplan-webapp/src/main/webapp/common/job_scheduling.zul:20 -msgid "LibrePlan: Job Scheduling" +msgid "TASKPM: Job Scheduling" msgstr "" #: org/libreplan/importers/ImportRosterFromTim.java:182 @@ -2307,8 +2307,8 @@ msgid "Filter timesheet lines by" msgstr "Фильтровать строки табеля по" #: libreplan-webapp/src/main/webapp/unittypes/unitTypes.zul:21 -msgid "LibrePlan: Material Units" -msgstr "LibrePlan: Ед. изм. материалов" +msgid "TASKPM: Material Units" +msgstr "TASKPM: Ед. изм. материалов" #: org/libreplan/web/templates/TemplatesTreeComponent.java:64 msgid "New Template element" @@ -2461,8 +2461,8 @@ msgid "Maximum/minimum of worked hours in finished applications" msgstr "Максимум/минимум отработанных часов в завершенных приложениях" #: libreplan-webapp/src/main/webapp/labels/labelTypes.zul:21 -msgid "LibrePlan: Labels" -msgstr "LibrePlan: Метки" +msgid "TASKPM: Labels" +msgstr "TASKPM: Метки" #: libreplan-webapp/src/main/webapp/resources/worker/_edition.zul:31 msgid "Personal data" @@ -2512,8 +2512,8 @@ msgid "Observations" msgstr "Наблюдения" #: libreplan-webapp/src/main/webapp/common/page_not_found.zul:22 -msgid "LibrePlan: Page not found" -msgstr "LibrePlan: Страница не найдена" +msgid "TASKPM: Page not found" +msgstr "TASKPM: Страница не найдена" #: libreplan-webapp/src/main/webapp/orders/_edition.zul:251 #: libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul:55 @@ -2604,8 +2604,8 @@ msgid "Output format:" msgstr "Формат вывода:" #: libreplan-webapp/src/main/webapp/reports/workingProgressPerTaskReport.zul:21 -msgid "LibrePlan: Work And Progress Per Task" -msgstr "LibrePlan: Работа и Ход Работ на задачу" +msgid "TASKPM: Work And Progress Per Task" +msgstr "TASKPM: Работа и Ход Работ на задачу" #: org/libreplan/web/advance/AdvanceTypeCRUDController.java:81 msgid "" @@ -2696,8 +2696,8 @@ msgid "Label type already assigned" msgstr "" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:20 -msgid "LibrePlan: Received From Subcontractors" -msgstr "LibrePlan: Принято от субподрядчиков" +msgid "TASKPM: Received From Subcontractors" +msgstr "TASKPM: Принято от субподрядчиков" #: libreplan-webapp/src/main/webapp/common/configuration.zul:58 msgid "Company code" @@ -2917,8 +2917,8 @@ msgid "label type: the timesheet have not assigned this label type" msgstr "" #: libreplan-webapp/src/main/webapp/typeofworkhours/typeOfWorkHours.zul:23 -msgid "LibrePlan: Hours Types" -msgstr "LibrePlan: Типы часов" +msgid "TASKPM: Hours Types" +msgstr "TASKPM: Типы часов" #: org/libreplan/web/common/CustomMenuController.java:264 #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:109 @@ -2946,8 +2946,8 @@ msgid "Please try it again." msgstr "Пожалуйста повторите попытку" #: libreplan-webapp/src/main/webapp/expensesheet/expenseSheet.zul:21 -msgid "LibrePlan: Expenses" -msgstr "LibrePlan: Расходы" +msgid "TASKPM: Expenses" +msgstr "TASKPM: Расходы" #: org/libreplan/web/tree/TreeController.java:1294 msgid "Modified" @@ -3007,8 +3007,8 @@ msgid "Date last progress measurement" msgstr "Дата последнего измерения хода работ" #: libreplan-webapp/src/main/webapp/reports/completedEstimatedHoursPerTask.zul:21 -msgid "LibrePlan: Estimated/Planned Hours Per Task" -msgstr "LibrePlan: Предполагается/Запланировано Часов на задачу" +msgid "TASKPM: Estimated/Planned Hours Per Task" +msgstr "TASKPM: Предполагается/Запланировано Часов на задачу" #: libreplan-webapp/src/main/webapp/orders/_listOrderElementAuthorizations.zul:43 #: libreplan-webapp/src/main/webapp/orders/_listOrderElementAuthorizations.zul:67 @@ -3214,8 +3214,8 @@ msgid "Finished" msgstr "Закончено" #: libreplan-webapp/src/main/webapp/planner/index.zul:22 -msgid "LibrePlan: Planning" -msgstr "LibrePlan: Планирование" +msgid "TASKPM: Planning" +msgstr "TASKPM: Планирование" #: org/libreplan/web/scenarios/ScenarioModel.java:126 msgid "You cannot remove the current scenario" @@ -3287,8 +3287,8 @@ msgid "Property strategy" msgstr "Свойства стратегии" #: libreplan-webapp/src/main/webapp/reports/orderCostsPerResource.zul:21 -msgid "LibrePlan: Project Costs" -msgstr "LibrePlan: Расценки проекта" +msgid "TASKPM: Project Costs" +msgstr "TASKPM: Расценки проекта" #: org/libreplan/web/common/ConfigurationController.java:265 msgid "Changes saved" @@ -3323,8 +3323,8 @@ msgid "Calendar exception days" msgstr "Исключения из календаря" #: libreplan-webapp/src/main/webapp/myaccount/changePassword.zul:21 -msgid "LibrePlan: Change password" -msgstr "LibrePlan: Изменение пароля" +msgid "TASKPM: Change password" +msgstr "TASKPM: Изменение пароля" #: org/libreplan/web/planner/allocation/GenericAllocationRow.java:55 msgid "Generic" @@ -3904,7 +3904,7 @@ msgstr "Тип связи" #: libreplan-webapp/src/main/webapp/common/page_not_found.zul:49 msgid "" -"If you reached this page from another page of LibrePlan please notify us in " +"If you reached this page from another page of TASKPM please notify us in " "order to fix it as soon as possible." msgstr "Если Вы попали на эту страницу с другой страницы сайта LibrePlan, пожалуйста уведомьте нас что бы мы исправили это как можно раньше." @@ -3940,8 +3940,8 @@ msgid "Repeated Hours Group code {0} in Project {1}" msgstr "Повторяющаяся группа часов код {0} в Проекте {1}" #: libreplan-webapp/src/main/webapp/resources/worker/worker.zul:22 -msgid "LibrePlan: Workers" -msgstr "LibrePlan: Работники" +msgid "TASKPM: Workers" +msgstr "TASKPM: Работники" #: org/libreplan/web/planner/allocation/AdvancedAllocationController.java:1573 msgid "Not configurable" @@ -4398,8 +4398,8 @@ msgid "" msgstr "назначаемые коды категории стоимости ресурса должны быть уникальны в пределах ресурса" #: libreplan-webapp/src/main/webapp/materials/materials.zul:21 -msgid "LibrePlan: Materials" -msgstr "LibrePlan: Материалы" +msgid "TASKPM: Materials" +msgstr "TASKPM: Материалы" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:104 msgid "User disabled" @@ -4645,8 +4645,8 @@ msgid "Stretches with Interpolation" msgstr "Участки с интерполяцией" #: libreplan-webapp/src/main/webapp/workreports/workReportTypes.zul:23 -msgid "LibrePlan: Timesheets Templates" -msgstr "LibrePlan: Шаблоны табелей" +msgid "TASKPM: Timesheets Templates" +msgstr "TASKPM: Шаблоны табелей" #: org/libreplan/web/common/CustomMenuController.java:514 msgid "Reports" @@ -4676,8 +4676,8 @@ msgid "" msgstr "" #: libreplan-webapp/src/main/webapp/reports/workingArrangementsPerOrderReport.zul:21 -msgid "LibrePlan: Task Scheduling Status In Project" -msgstr "LibrePlan: Статус расписания задач в проекте" +msgid "TASKPM: Task Scheduling Status In Project" +msgstr "TASKPM: Статус расписания задач в проекте" #: libreplan-webapp/src/main/webapp/common/layout/_customMenu.zul:55 msgid "START" @@ -4912,8 +4912,8 @@ msgid "Reassigning type" msgstr "Переназначение типа" #: libreplan-webapp/src/main/webapp/common/configuration.zul:23 -msgid "LibrePlan: Main Settings" -msgstr "LibrePlan: Основные настройки" +msgid "TASKPM: Main Settings" +msgstr "TASKPM: Основные настройки" #: org/libreplan/web/common/CustomMenuController.java:419 #: libreplan-business/src/main/java/org/libreplan/business/users/entities/UserRole.java:69 @@ -5009,8 +5009,8 @@ msgid "Expand taskgroups" msgstr "Развернуть группу задач" #: libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul:22 -msgid "LibrePlan: Send To Subcontractors" -msgstr "LibrePlan: Отправить субподрядчикам" +msgid "TASKPM: Send To Subcontractors" +msgstr "TASKPM: Отправить субподрядчикам" #: org/libreplan/web/limitingresources/ManualAllocationController.java:492 msgid "END" @@ -5148,16 +5148,16 @@ msgid "" msgstr "Попробуйте связаться с администратором для пересмотра .ваших прав в LibrePlan." #: libreplan-webapp/src/main/webapp/costcategories/costCategory.zul:23 -msgid "LibrePlan: Cost Categories" -msgstr "LibrePlan: Категории расходов" +msgid "TASKPM: Cost Categories" +msgstr "TASKPM: Категории расходов" #: libreplan-webapp/src/main/webapp/users/_editUser.zul:120 msgid "Unbound resource" msgstr "Несвязанный ресурс" #: libreplan-webapp/src/main/webapp/subcontract/customerCommunications.zul:20 -msgid "LibrePlan: Received From Customers" -msgstr "LibrePlan: Получено от Клиентов" +msgid "TASKPM: Received From Customers" +msgstr "TASKPM: Получено от Клиентов" #: libreplan-webapp/src/main/webapp/workreports/_listWorkReportTypes.zul:47 #: libreplan-webapp/src/main/webapp/workreports/workReport.zul:106 @@ -5900,7 +5900,7 @@ msgid "Calendar allocation" msgstr "Распределение календаря" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerInAMonthReport.zul:21 -msgid "LibrePlan: Total Worked Hours By Resource In A Month" +msgid "TASKPM: Total Worked Hours By Resource In A Month" msgstr "Libreplan: Итого рабочих часов для ресурса в месяц" #: org/libreplan/web/resources/criterion/CriterionAdminController.java:257 @@ -5957,8 +5957,8 @@ msgid "" msgstr "Включите эту опцию, если Вы хотите отправлять обратную связь об использовании программы разработчикам LibrePlan" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:22 -msgid "LibrePlan: Settings" -msgstr "LibrePlan: Настройки" +msgid "TASKPM: Settings" +msgstr "TASKPM: Настройки" #: org/libreplan/web/common/CustomMenuController.java:345 #: libreplan-webapp/src/main/webapp/orders/_editOrderElement.zul:54 @@ -5989,8 +5989,8 @@ msgid "Change the password" msgstr "Изменить пароль" #: libreplan-webapp/src/main/webapp/common/access_forbidden.zul:20 -msgid "LibrePlan: Access Forbidden" -msgstr "LibrePlan: Доступ запрещен" +msgid "TASKPM: Access Forbidden" +msgstr "TASKPM: Доступ запрещен" #: libreplan-webapp/src/main/webapp/montecarlo/_montecarlo.zul:50 #: libreplan-webapp/src/main/webapp/montecarlo/_montecarlo.zul:52 @@ -6070,8 +6070,8 @@ msgid "No authorizations were added because you did not select any." msgstr "Ни одной авторизации не добавлено, потому что Вы ничего не выбрали." #: libreplan-webapp/src/main/webapp/users/users.zul:23 -msgid "LibrePlan: User Accounts" -msgstr "LibrePlan: Пользователи" +msgid "TASKPM: User Accounts" +msgstr "TASKPM: Пользователи" #: libreplan-webapp/src/main/webapp/templates/_assignedQualityForms.zul:30 msgid "Quality forms" @@ -6118,8 +6118,8 @@ msgid "Interacts with applications" msgstr "Взаимодействие с приложениями" #: libreplan-webapp/src/main/webapp/planner/advance_allocation.zul:22 -msgid "LibrePlan: Advanced allocation" -msgstr "LibrePlan: Расширенные распределения" +msgid "TASKPM: Advanced allocation" +msgstr "TASKPM: Расширенные распределения" #: org/libreplan/importers/CalendarImporterMPXJ.java:365 msgid "Calendar name already in use" @@ -6244,8 +6244,8 @@ msgid "Standard Effort" msgstr "Стандартная работа" #: libreplan-webapp/src/main/webapp/orders/imports/projectImport.zul:21 -msgid "LibrePlan: Import Project" -msgstr "LibrePlan: Импорт проекта" +msgid "TASKPM: Import Project" +msgstr "TASKPM: Импорт проекта" #: org/libreplan/web/resources/worker/WorkerCRUDController.java:730 msgid "Create Virtual Workers Group" @@ -6258,8 +6258,8 @@ msgid "" msgstr "Пожалуйста, используйте совместимые браузеры: Chrome, Firefox, Safari или Epiphany." #: libreplan-webapp/src/main/webapp/scenarios/transferOrders.zul:23 -msgid "LibrePlan: Transfer Projects Between Scenarios" -msgstr "LibrePlan: Передача проектов между сценариями" +msgid "TASKPM: Transfer Projects Between Scenarios" +msgstr "TASKPM: Передача проектов между сценариями" #: org/libreplan/web/common/CustomMenuController.java:306 #: libreplan-business/src/main/java/org/libreplan/business/users/entities/UserRole.java:50 @@ -6495,7 +6495,7 @@ msgid "quality form item position not specified" msgstr "" #: libreplan-webapp/src/main/webapp/profiles/profiles.zul:23 -msgid "LibrePlan: Profiles" +msgid "TASKPM: Profiles" msgstr "LibrePlans: Профили" #: libreplan-webapp/src/main/webapp/orders/_orderElementDetails.zul:38 @@ -6507,8 +6507,8 @@ msgid "Budget At Completion" msgstr "Бюджет на завершение" #: libreplan-webapp/src/main/webapp/workreports/workReport.zul:23 -msgid "LibrePlan: Timesheets" -msgstr "LibrePlan: Табеля" +msgid "TASKPM: Timesheets" +msgstr "TASKPM: Табеля" #: libreplan-webapp/src/main/webapp/orders/_listHoursGroupCriterionRequirement.zul:22 msgid "Criteria Requirement" @@ -6902,8 +6902,8 @@ msgid "" msgstr "Предполагаемая дата начала для задачи (нажмите Enter в ячейке чтобы открыть календарь или введите дату напрямую)" #: libreplan-webapp/src/main/webapp/externalcompanies/externalcompanies.zul:23 -msgid "LibrePlan: Companies" -msgstr "LibrePlan: Компании" +msgid "TASKPM: Companies" +msgstr "TASKPM: Компании" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:53 msgid "Subcontrated task" @@ -6930,8 +6930,8 @@ msgid "Date must be inside visualization area" msgstr "Дата должна быть внутри визуализируемого пространства" #: libreplan-webapp/src/main/webapp/templates/templates.zul:22 -msgid "LibrePlan: Templates" -msgstr "LibrePlan: Шаблоны" +msgid "TASKPM: Templates" +msgstr "TASKPM: Шаблоны" #: libreplan-webapp/src/main/webapp/resourceload/resourceload.zul:22 #: libreplan-webapp/src/main/webapp/planner/taskpanels/_tabPanelLimitingResourceAllocation.zul:22 @@ -6940,12 +6940,12 @@ msgstr "LibrePlan: Шаблоны" #: libreplan-webapp/src/main/webapp/planner/montecarlo_function.zul:22 #: libreplan-webapp/src/main/webapp/planner/resources_use.zul:22 #: libreplan-webapp/src/main/webapp/planner/order.zul:22 -msgid "LibrePlan: Scheduling" -msgstr "LibrePlan: Расписание" +msgid "TASKPM: Scheduling" +msgstr "TASKPM: Расписание" #: libreplan-webapp/src/main/webapp/subcontract/reportAdvances.zul:22 -msgid "LibrePlan: Send To Customers" -msgstr "LibrePlan: Отправка клиентам" +msgid "TASKPM: Send To Customers" +msgstr "TASKPM: Отправка клиентам" #: libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReport.java:436 msgid "The timesheet line codes must be unique." @@ -7433,8 +7433,8 @@ msgid "The code cannot be empty and it must be unique." msgstr "Код не может быть пустым и должен быть уникальным" #: libreplan-webapp/src/main/webapp/resources/criterions/criterions.zul:24 -msgid "LibrePlan: Criteria" -msgstr "LibrePlan: Критерий" +msgid "TASKPM: Criteria" +msgstr "TASKPM: Критерий" #: org/libreplan/importers/OrderImporterMPXJ.java:660 msgid "Linked calendar not found" @@ -7847,8 +7847,8 @@ msgid "Start filtering date must be before than end filtering date" msgstr "" #: libreplan-webapp/src/main/webapp/orders/_synchronizationInfo.zul:20 -msgid "LibrePlan: Synchronization info" -msgstr "LibrePlan: Информация о синхронизации" +msgid "TASKPM: Synchronization info" +msgstr "TASKPM: Информация о синхронизации" #: org/libreplan/web/orders/DetailsOrderElementController.java:128 msgid "must be after starting date" @@ -8205,8 +8205,8 @@ msgid "Dedication chart" msgstr "График затраченного времени" #: libreplan-webapp/src/main/webapp/scenarios/scenarios.zul:23 -msgid "LibrePlan: Scenarios Management" -msgstr "LibrePlan: Сценарии управления" +msgid "TASKPM: Scenarios Management" +msgstr "TASKPM: Сценарии управления" #: org/libreplan/web/reports/CompletedEstimatedHoursPerTaskController.java:170 #: org/libreplan/web/reports/OrderCostsPerResourceController.java:213 @@ -8340,8 +8340,8 @@ msgid "Delete Template element" msgstr "Удалить элемент шаблона" #: libreplan-webapp/src/main/webapp/resources/machine/machines.zul:22 -msgid "LibrePlan: Machines" -msgstr "LibrePlan: Машины" +msgid "TASKPM: Machines" +msgstr "TASKPM: Машины" #: libreplan-webapp/src/main/webapp/orders/_orderElementTreeFilter.zul:36 #: libreplan-webapp/src/main/webapp/orders/_orderFilter.zul:35 @@ -8528,7 +8528,7 @@ msgid "Must be after 2010!" msgstr "" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:144 -msgid "is not supported for its use with LibrePlan." +msgid "is not supported for its use with TASKPM." msgstr "не поддерживается для использования в LibrePlan." #: libreplan-business/src/main/java/org/libreplan/business/qualityforms/entities/TaskQualityFormItem.java:99 @@ -8777,8 +8777,8 @@ msgid "number of digits must be between {0} and {1}" msgstr "количество цифр должно быть между {0} и {1}" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerReport.zul:21 -msgid "LibrePlan: Hours Worked Per Resource" -msgstr "LibrePlan: Время отработанное работниками" +msgid "TASKPM: Hours Worked Per Resource" +msgstr "TASKPM: Время отработанное работниками" #: org/libreplan/web/calendars/BaseCalendarEditionController.java:642 #: org/libreplan/web/calendars/BaseCalendarEditionController.java:1278 diff --git a/libreplan-webapp/src/main/resources/i18n/sv_SE.po b/libreplan-webapp/src/main/resources/i18n/sv_SE.po index 9df215629..5572f984e 100644 --- a/libreplan-webapp/src/main/resources/i18n/sv_SE.po +++ b/libreplan-webapp/src/main/resources/i18n/sv_SE.po @@ -7,7 +7,7 @@ # Roberto Spagnolo , 2013 msgid "" msgstr "" -"Project-Id-Version: LibrePlan\n" +"Project-Id-Version: TASKPM\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-10-10 17:54+0200\n" "PO-Revision-Date: 2016-07-18 18:26+0000\n" @@ -20,7 +20,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: libreplan-webapp/src/main/webapp/qualityforms/qualityForms.zul:22 -msgid "LibrePlan: Quality Forms" +msgid "TASKPM: Quality Forms" msgstr "" #: libreplan-webapp/src/main/webapp/orders/_projectDetails.zul:58 @@ -45,7 +45,7 @@ msgid "Overtime" msgstr "" #: libreplan-webapp/src/main/webapp/excetiondays/exceptionDays.zul:22 -msgid "LibrePlan: Calendar Exception Days" +msgid "TASKPM: Calendar Exception Days" msgstr "" #: org/libreplan/web/calendars/BaseCalendarModel.java:488 @@ -135,7 +135,7 @@ msgid "Subcategory names must be unique." msgstr "" #: libreplan-webapp/src/main/webapp/reports/timeLineMaterialReport.zul:21 -msgid "LibrePlan: Materials Needed At Date" +msgid "TASKPM: Materials Needed At Date" msgstr "" #: org/libreplan/web/resources/machine/MachineCRUDController.java:630 @@ -482,7 +482,7 @@ msgid "please, select a project" msgstr "" #: libreplan-webapp/src/main/webapp/reports/projectStatusReport.zul:20 -msgid "LibrePlan: Project Status Report" +msgid "TASKPM: Project Status Report" msgstr "" #: org/libreplan/web/calendars/BaseCalendarEditionController.java:627 @@ -544,7 +544,7 @@ msgid "Exit session" msgstr "" #: libreplan-webapp/src/main/webapp/orders/_timImpExpInfo.zul:20 -msgid "LibrePlan: Tim import export info" +msgid "TASKPM: Tim import export info" msgstr "" #: org/libreplan/web/planner/allocation/FormBinder.java:671 @@ -658,7 +658,7 @@ msgid "Companies List" msgstr "" #: libreplan-webapp/src/main/webapp/resources/worker/virtualWorkers.zul:22 -msgid "LibrePlan: Virtual Worker Groups" +msgid "TASKPM: Virtual Worker Groups" msgstr "" #: org/libreplan/web/planner/tabs/MonteCarloTabCreator.java:51 @@ -672,7 +672,7 @@ msgid "Cost category" msgstr "" #: libreplan-webapp/src/main/webapp/myaccount/personalTimesheet.zul:21 -msgid "LibrePlan: Personal timesheet" +msgid "TASKPM: Personal timesheet" msgstr "" #: libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReportLine.java:264 @@ -699,7 +699,7 @@ msgid "Unsaved changes will be lost. Are you sure?" msgstr "" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/ConfigurationRolesLDAP.java:56 -msgid "LibrePlan role not specified" +msgid "TASKPM role not specified" msgstr "" #: libreplan-webapp/src/main/webapp/scenarios/transferOrders.zul:39 @@ -715,7 +715,7 @@ msgid "Move" msgstr "" #: libreplan-webapp/src/main/webapp/orders/_jiraSyncInfo.zul:20 -msgid "LibrePlan: JIRA synchronization info" +msgid "TASKPM: JIRA synchronization info" msgstr "" #: org/libreplan/web/common/components/finders/OrderFilterEnum.java:31 @@ -760,7 +760,7 @@ msgid "Profiles List" msgstr "" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:21 -msgid "LibrePlan: User access" +msgid "TASKPM: User access" msgstr "" #: libreplan-business/src/main/java/org/libreplan/business/labels/entities/LabelType.java:158 @@ -1539,7 +1539,7 @@ msgid "Violated deadline" msgstr "" #: libreplan-webapp/src/main/webapp/common/configuration.zul:126 -msgid "Enable/Disable warning about new LibrePlan versions available" +msgid "Enable/Disable warning about new TASKPM versions available" msgstr "" #: libreplan-business/src/main/java/org/libreplan/business/orders/entities/HoursGroup.java:186 @@ -1582,7 +1582,7 @@ msgid "Progress sent successfully" msgstr "" #: libreplan-webapp/src/main/webapp/myaccount/userDashboard.zul:21 -msgid "LibrePlan: My Dashboard" +msgid "TASKPM: My Dashboard" msgstr "" #: libreplan-webapp/src/main/webapp/calendars/_edition.zul:131 @@ -1603,7 +1603,7 @@ msgstr "" #: libreplan-webapp/src/main/webapp/common/event_error.zul:22 #: libreplan-webapp/src/main/webapp/common/error.zul:21 -msgid "LibrePlan: Runtime Error" +msgid "TASKPM: Runtime Error" msgstr "" #: org/libreplan/web/planner/tabs/PlanningTabCreator.java:152 @@ -1651,7 +1651,7 @@ msgid "Criterion Types" msgstr "" #: libreplan-webapp/src/main/webapp/common/configuration.zul:125 -msgid "Show a notification when new LibrePlan versions are released" +msgid "Show a notification when new TASKPM versions are released" msgstr "" #: org/libreplan/web/workreports/WorkReportTypeCRUDController.java:900 @@ -1720,7 +1720,7 @@ msgid "units not specified" msgstr "" #: libreplan-webapp/src/main/webapp/advance/advanceTypes.zul:22 -msgid "LibrePlan: Progress Types" +msgid "TASKPM: Progress Types" msgstr "" #: libreplan-webapp/src/main/webapp/planner/montecarlo_function.zul:36 @@ -1928,7 +1928,7 @@ msgid "percentage should be between 1 and 100" msgstr "" #: libreplan-webapp/src/main/webapp/workreports/workReportQuery.zul:23 -msgid "LibrePlan: Timesheet Lines List" +msgid "TASKPM: Timesheet Lines List" msgstr "" #: org/libreplan/web/labels/LabelTypeModel.java:269 @@ -2056,7 +2056,7 @@ msgid "You have exceeded the maximum limit of users" msgstr "" #: libreplan-webapp/src/main/webapp/reports/schedulingProgressPerOrderReport.zul:21 -msgid "LibrePlan: Work And Progress Per Project" +msgid "TASKPM: Work And Progress Per Project" msgstr "" #: libreplan-webapp/src/main/webapp/orders/_orderElementTreeFilter.zul:42 @@ -2121,7 +2121,7 @@ msgid "No roster-exceptions found in the response" msgstr "" #: libreplan-webapp/src/main/webapp/calendars/calendars.zul:22 -msgid "LibrePlan: Calendars" +msgid "TASKPM: Calendars" msgstr "" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/EntitySequence.java:192 @@ -2146,7 +2146,7 @@ msgid "Subcontracting date" msgstr "" #: libreplan-webapp/src/main/webapp/common/job_scheduling.zul:20 -msgid "LibrePlan: Job Scheduling" +msgid "TASKPM: Job Scheduling" msgstr "" #: org/libreplan/importers/ImportRosterFromTim.java:182 @@ -2299,7 +2299,7 @@ msgid "Filter timesheet lines by" msgstr "" #: libreplan-webapp/src/main/webapp/unittypes/unitTypes.zul:21 -msgid "LibrePlan: Material Units" +msgid "TASKPM: Material Units" msgstr "" #: org/libreplan/web/templates/TemplatesTreeComponent.java:64 @@ -2453,7 +2453,7 @@ msgid "Maximum/minimum of worked hours in finished applications" msgstr "" #: libreplan-webapp/src/main/webapp/labels/labelTypes.zul:21 -msgid "LibrePlan: Labels" +msgid "TASKPM: Labels" msgstr "" #: libreplan-webapp/src/main/webapp/resources/worker/_edition.zul:31 @@ -2504,7 +2504,7 @@ msgid "Observations" msgstr "" #: libreplan-webapp/src/main/webapp/common/page_not_found.zul:22 -msgid "LibrePlan: Page not found" +msgid "TASKPM: Page not found" msgstr "" #: libreplan-webapp/src/main/webapp/orders/_edition.zul:251 @@ -2596,7 +2596,7 @@ msgid "Output format:" msgstr "" #: libreplan-webapp/src/main/webapp/reports/workingProgressPerTaskReport.zul:21 -msgid "LibrePlan: Work And Progress Per Task" +msgid "TASKPM: Work And Progress Per Task" msgstr "" #: org/libreplan/web/advance/AdvanceTypeCRUDController.java:81 @@ -2688,7 +2688,7 @@ msgid "Label type already assigned" msgstr "" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:20 -msgid "LibrePlan: Received From Subcontractors" +msgid "TASKPM: Received From Subcontractors" msgstr "" #: libreplan-webapp/src/main/webapp/common/configuration.zul:58 @@ -2909,7 +2909,7 @@ msgid "label type: the timesheet have not assigned this label type" msgstr "" #: libreplan-webapp/src/main/webapp/typeofworkhours/typeOfWorkHours.zul:23 -msgid "LibrePlan: Hours Types" +msgid "TASKPM: Hours Types" msgstr "" #: org/libreplan/web/common/CustomMenuController.java:264 @@ -2938,7 +2938,7 @@ msgid "Please try it again." msgstr "" #: libreplan-webapp/src/main/webapp/expensesheet/expenseSheet.zul:21 -msgid "LibrePlan: Expenses" +msgid "TASKPM: Expenses" msgstr "" #: org/libreplan/web/tree/TreeController.java:1294 @@ -2999,7 +2999,7 @@ msgid "Date last progress measurement" msgstr "" #: libreplan-webapp/src/main/webapp/reports/completedEstimatedHoursPerTask.zul:21 -msgid "LibrePlan: Estimated/Planned Hours Per Task" +msgid "TASKPM: Estimated/Planned Hours Per Task" msgstr "" #: libreplan-webapp/src/main/webapp/orders/_listOrderElementAuthorizations.zul:43 @@ -3206,7 +3206,7 @@ msgid "Finished" msgstr "" #: libreplan-webapp/src/main/webapp/planner/index.zul:22 -msgid "LibrePlan: Planning" +msgid "TASKPM: Planning" msgstr "" #: org/libreplan/web/scenarios/ScenarioModel.java:126 @@ -3279,7 +3279,7 @@ msgid "Property strategy" msgstr "" #: libreplan-webapp/src/main/webapp/reports/orderCostsPerResource.zul:21 -msgid "LibrePlan: Project Costs" +msgid "TASKPM: Project Costs" msgstr "" #: org/libreplan/web/common/ConfigurationController.java:265 @@ -3315,7 +3315,7 @@ msgid "Calendar exception days" msgstr "" #: libreplan-webapp/src/main/webapp/myaccount/changePassword.zul:21 -msgid "LibrePlan: Change password" +msgid "TASKPM: Change password" msgstr "" #: org/libreplan/web/planner/allocation/GenericAllocationRow.java:55 @@ -3896,7 +3896,7 @@ msgstr "" #: libreplan-webapp/src/main/webapp/common/page_not_found.zul:49 msgid "" -"If you reached this page from another page of LibrePlan please notify us in " +"If you reached this page from another page of TASKPM please notify us in " "order to fix it as soon as possible." msgstr "" @@ -3932,7 +3932,7 @@ msgid "Repeated Hours Group code {0} in Project {1}" msgstr "" #: libreplan-webapp/src/main/webapp/resources/worker/worker.zul:22 -msgid "LibrePlan: Workers" +msgid "TASKPM: Workers" msgstr "" #: org/libreplan/web/planner/allocation/AdvancedAllocationController.java:1573 @@ -4390,7 +4390,7 @@ msgid "" msgstr "" #: libreplan-webapp/src/main/webapp/materials/materials.zul:21 -msgid "LibrePlan: Materials" +msgid "TASKPM: Materials" msgstr "" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:104 @@ -4637,7 +4637,7 @@ msgid "Stretches with Interpolation" msgstr "" #: libreplan-webapp/src/main/webapp/workreports/workReportTypes.zul:23 -msgid "LibrePlan: Timesheets Templates" +msgid "TASKPM: Timesheets Templates" msgstr "" #: org/libreplan/web/common/CustomMenuController.java:514 @@ -4668,7 +4668,7 @@ msgid "" msgstr "" #: libreplan-webapp/src/main/webapp/reports/workingArrangementsPerOrderReport.zul:21 -msgid "LibrePlan: Task Scheduling Status In Project" +msgid "TASKPM: Task Scheduling Status In Project" msgstr "" #: libreplan-webapp/src/main/webapp/common/layout/_customMenu.zul:55 @@ -4904,7 +4904,7 @@ msgid "Reassigning type" msgstr "" #: libreplan-webapp/src/main/webapp/common/configuration.zul:23 -msgid "LibrePlan: Main Settings" +msgid "TASKPM: Main Settings" msgstr "" #: org/libreplan/web/common/CustomMenuController.java:419 @@ -5001,7 +5001,7 @@ msgid "Expand taskgroups" msgstr "" #: libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul:22 -msgid "LibrePlan: Send To Subcontractors" +msgid "TASKPM: Send To Subcontractors" msgstr "" #: org/libreplan/web/limitingresources/ManualAllocationController.java:492 @@ -5140,7 +5140,7 @@ msgid "" msgstr "" #: libreplan-webapp/src/main/webapp/costcategories/costCategory.zul:23 -msgid "LibrePlan: Cost Categories" +msgid "TASKPM: Cost Categories" msgstr "" #: libreplan-webapp/src/main/webapp/users/_editUser.zul:120 @@ -5148,7 +5148,7 @@ msgid "Unbound resource" msgstr "" #: libreplan-webapp/src/main/webapp/subcontract/customerCommunications.zul:20 -msgid "LibrePlan: Received From Customers" +msgid "TASKPM: Received From Customers" msgstr "" #: libreplan-webapp/src/main/webapp/workreports/_listWorkReportTypes.zul:47 @@ -5892,7 +5892,7 @@ msgid "Calendar allocation" msgstr "" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerInAMonthReport.zul:21 -msgid "LibrePlan: Total Worked Hours By Resource In A Month" +msgid "TASKPM: Total Worked Hours By Resource In A Month" msgstr "" #: org/libreplan/web/resources/criterion/CriterionAdminController.java:257 @@ -5949,7 +5949,7 @@ msgid "" msgstr "" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:22 -msgid "LibrePlan: Settings" +msgid "TASKPM: Settings" msgstr "" #: org/libreplan/web/common/CustomMenuController.java:345 @@ -5981,7 +5981,7 @@ msgid "Change the password" msgstr "" #: libreplan-webapp/src/main/webapp/common/access_forbidden.zul:20 -msgid "LibrePlan: Access Forbidden" +msgid "TASKPM: Access Forbidden" msgstr "" #: libreplan-webapp/src/main/webapp/montecarlo/_montecarlo.zul:50 @@ -6062,7 +6062,7 @@ msgid "No authorizations were added because you did not select any." msgstr "" #: libreplan-webapp/src/main/webapp/users/users.zul:23 -msgid "LibrePlan: User Accounts" +msgid "TASKPM: User Accounts" msgstr "" #: libreplan-webapp/src/main/webapp/templates/_assignedQualityForms.zul:30 @@ -6110,7 +6110,7 @@ msgid "Interacts with applications" msgstr "" #: libreplan-webapp/src/main/webapp/planner/advance_allocation.zul:22 -msgid "LibrePlan: Advanced allocation" +msgid "TASKPM: Advanced allocation" msgstr "" #: org/libreplan/importers/CalendarImporterMPXJ.java:365 @@ -6236,7 +6236,7 @@ msgid "Standard Effort" msgstr "" #: libreplan-webapp/src/main/webapp/orders/imports/projectImport.zul:21 -msgid "LibrePlan: Import Project" +msgid "TASKPM: Import Project" msgstr "" #: org/libreplan/web/resources/worker/WorkerCRUDController.java:730 @@ -6250,7 +6250,7 @@ msgid "" msgstr "" #: libreplan-webapp/src/main/webapp/scenarios/transferOrders.zul:23 -msgid "LibrePlan: Transfer Projects Between Scenarios" +msgid "TASKPM: Transfer Projects Between Scenarios" msgstr "" #: org/libreplan/web/common/CustomMenuController.java:306 @@ -6487,7 +6487,7 @@ msgid "quality form item position not specified" msgstr "" #: libreplan-webapp/src/main/webapp/profiles/profiles.zul:23 -msgid "LibrePlan: Profiles" +msgid "TASKPM: Profiles" msgstr "" #: libreplan-webapp/src/main/webapp/orders/_orderElementDetails.zul:38 @@ -6499,7 +6499,7 @@ msgid "Budget At Completion" msgstr "" #: libreplan-webapp/src/main/webapp/workreports/workReport.zul:23 -msgid "LibrePlan: Timesheets" +msgid "TASKPM: Timesheets" msgstr "" #: libreplan-webapp/src/main/webapp/orders/_listHoursGroupCriterionRequirement.zul:22 @@ -6894,7 +6894,7 @@ msgid "" msgstr "" #: libreplan-webapp/src/main/webapp/externalcompanies/externalcompanies.zul:23 -msgid "LibrePlan: Companies" +msgid "TASKPM: Companies" msgstr "" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:53 @@ -6922,7 +6922,7 @@ msgid "Date must be inside visualization area" msgstr "" #: libreplan-webapp/src/main/webapp/templates/templates.zul:22 -msgid "LibrePlan: Templates" +msgid "TASKPM: Templates" msgstr "" #: libreplan-webapp/src/main/webapp/resourceload/resourceload.zul:22 @@ -6932,11 +6932,11 @@ msgstr "" #: libreplan-webapp/src/main/webapp/planner/montecarlo_function.zul:22 #: libreplan-webapp/src/main/webapp/planner/resources_use.zul:22 #: libreplan-webapp/src/main/webapp/planner/order.zul:22 -msgid "LibrePlan: Scheduling" +msgid "TASKPM: Scheduling" msgstr "" #: libreplan-webapp/src/main/webapp/subcontract/reportAdvances.zul:22 -msgid "LibrePlan: Send To Customers" +msgid "TASKPM: Send To Customers" msgstr "" #: libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReport.java:436 @@ -7425,7 +7425,7 @@ msgid "The code cannot be empty and it must be unique." msgstr "" #: libreplan-webapp/src/main/webapp/resources/criterions/criterions.zul:24 -msgid "LibrePlan: Criteria" +msgid "TASKPM: Criteria" msgstr "" #: org/libreplan/importers/OrderImporterMPXJ.java:660 @@ -7839,7 +7839,7 @@ msgid "Start filtering date must be before than end filtering date" msgstr "" #: libreplan-webapp/src/main/webapp/orders/_synchronizationInfo.zul:20 -msgid "LibrePlan: Synchronization info" +msgid "TASKPM: Synchronization info" msgstr "" #: org/libreplan/web/orders/DetailsOrderElementController.java:128 @@ -8197,7 +8197,7 @@ msgid "Dedication chart" msgstr "" #: libreplan-webapp/src/main/webapp/scenarios/scenarios.zul:23 -msgid "LibrePlan: Scenarios Management" +msgid "TASKPM: Scenarios Management" msgstr "" #: org/libreplan/web/reports/CompletedEstimatedHoursPerTaskController.java:170 @@ -8332,7 +8332,7 @@ msgid "Delete Template element" msgstr "" #: libreplan-webapp/src/main/webapp/resources/machine/machines.zul:22 -msgid "LibrePlan: Machines" +msgid "TASKPM: Machines" msgstr "" #: libreplan-webapp/src/main/webapp/orders/_orderElementTreeFilter.zul:36 @@ -8520,7 +8520,7 @@ msgid "Must be after 2010!" msgstr "" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:144 -msgid "is not supported for its use with LibrePlan." +msgid "is not supported for its use with TASKPM." msgstr "" #: libreplan-business/src/main/java/org/libreplan/business/qualityforms/entities/TaskQualityFormItem.java:99 @@ -8769,7 +8769,7 @@ msgid "number of digits must be between {0} and {1}" msgstr "" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerReport.zul:21 -msgid "LibrePlan: Hours Worked Per Resource" +msgid "TASKPM: Hours Worked Per Resource" msgstr "" #: org/libreplan/web/calendars/BaseCalendarEditionController.java:642 diff --git a/libreplan-webapp/src/main/resources/i18n/zh.po b/libreplan-webapp/src/main/resources/i18n/zh.po index 99169eb23..3897b39b9 100644 --- a/libreplan-webapp/src/main/resources/i18n/zh.po +++ b/libreplan-webapp/src/main/resources/i18n/zh.po @@ -266,7 +266,7 @@ msgid "username not specified" msgstr "用户名不指定" #: libreplan-webapp/src/main/webapp/planner/advance_allocation.zul:22 -msgid "LibrePlan: Advanced allocation" +msgid "TASKPM: Advanced allocation" msgstr "LibrePlan:高级配置" #: libreplan-webapp/src/main/webapp/resources/machine/_machineConfigurationUnits.zul:82 @@ -386,7 +386,7 @@ msgid "Criteria of this criterion type have been assigned to some resource." msgstr "该标准型标准已被分配给某些资源。" #: libreplan-webapp/src/main/webapp/calendars/calendars.zul:22 -msgid "LibrePlan: Calendars" +msgid "TASKPM: Calendars" msgstr "LibrePlan:日历" #: libreplan-webapp/src/main/webapp/planner/_legendLoadChartOrder.zul:37 @@ -513,7 +513,7 @@ msgstr "估计总额小时" #: libreplan-webapp/src/main/webapp/common/error.zul:21 #: libreplan-webapp/src/main/webapp/common/eventError.zul:22 -msgid "LibrePlan: Runtime Error" +msgid "TASKPM: Runtime Error" msgstr "LibrePlan:运行时错误" #: libreplan-webapp/src/main/java/org/libreplan/web/calendars/BaseCalendarCRUDController.java:137 @@ -538,7 +538,7 @@ msgid "New quality form item" msgstr "新的质量表格项目" #: libreplan-webapp/src/main/webapp/labels/labelTypes.zul:21 -msgid "LibrePlan: Labels" +msgid "TASKPM: Labels" msgstr "LibrePlan:标签" #: libreplan-business/src/main/java/org/libreplan/business/users/entities/User.java:363 @@ -618,7 +618,7 @@ msgid "Maximum/minimum of estimated hours" msgstr "最大/最小的估计小时" #: libreplan-webapp/src/main/webapp/qualityforms/qualityForms.zul:22 -msgid "LibrePlan: Quality Forms" +msgid "TASKPM: Quality Forms" msgstr "LibrePlan:质量表格" #: libreplan-webapp/src/main/java/org/libreplan/web/orders/AssignedTaskQualityFormsToOrderElementController.java:388 @@ -718,7 +718,7 @@ msgid "Complementary text fields" msgstr "补充文本字段" #: libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul:22 -msgid "LibrePlan: Send To Subcontractors" +msgid "TASKPM: Send To Subcontractors" msgstr "LibrePlan:发送给分包商" #: libreplan-webapp/src/main/java/org/libreplan/web/materials/MaterialsController.java:291 @@ -834,7 +834,7 @@ msgid "End date" msgstr "结束日期" #: libreplan-webapp/src/main/webapp/excetiondays/exceptionDays.zul:22 -msgid "LibrePlan: Calendar Exception Days" +msgid "TASKPM: Calendar Exception Days" msgstr "LibrePlan:日历例外日" #: libreplan-webapp/src/main/java/org/libreplan/web/resources/worker/WorkerCRUDController.java:976 @@ -1008,7 +1008,7 @@ msgid "There is not any assigned progress to current task" msgstr "没有任何分配到当前的任务方面取得的进展" #: libreplan-webapp/src/main/webapp/common/pageNotFound.zul:22 -msgid "LibrePlan: Page not found" +msgid "TASKPM: Page not found" msgstr "LibrePlan:找不到网页" #: libreplan-business/src/main/java/org/libreplan/business/orders/entities/Order.java:576 @@ -1202,7 +1202,7 @@ msgid "Date Start" msgstr "日期开始" #: libreplan-webapp/src/main/webapp/typeofworkhours/typeOfWorkHours.zul:23 -msgid "LibrePlan: Hours Types" +msgid "TASKPM: Hours Types" msgstr "LibrePlan:时间类型" #: libreplan-webapp/src/main/java/org/libreplan/web/dashboard/GlobalProgressChart.java:61 @@ -1307,7 +1307,7 @@ msgid "Company name" msgstr "公司名称" #: libreplan-webapp/src/main/webapp/subcontract/reportAdvances.zul:22 -msgid "LibrePlan: Send To Customers" +msgid "TASKPM: Send To Customers" msgstr "LibrePlan:发送给客户" #: libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReportLine.java:493 @@ -1714,7 +1714,7 @@ msgid "Date cannot include the entire next work week" msgstr "日期不能包括整个的下一个工作周" #: libreplan-webapp/src/main/webapp/resources/worker/virtualWorkers.zul:22 -msgid "LibrePlan: Virtual Worker Groups" +msgid "TASKPM: Virtual Worker Groups" msgstr "LibrePlan:虚拟的职工群体" #: libreplan-webapp/src/main/webapp/common/configuration.zul:344 @@ -1745,7 +1745,7 @@ msgid "to {0}" msgstr "{0}" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerInAMonthReport.zul:21 -msgid "LibrePlan: Total Worked Hours By Resource In A Month" +msgid "TASKPM: Total Worked Hours By Resource In A Month" msgstr "LibrePlan:在一个月内通过资源的总工作小时" #: libreplan-webapp/src/main/webapp/limitingresources/limitingResourcesLayout.zul:65 @@ -1866,7 +1866,7 @@ msgstr "未保存的更改将丢失。你确定吗?" #: libreplan-webapp/src/main/webapp/planner/taskpanels/_tabPanelLimitingResourceAllocation.zul:22 #: libreplan-webapp/src/main/webapp/planner/order.zul:22 #: libreplan-webapp/src/main/webapp/resourceload/resourceload.zul:22 -msgid "LibrePlan: Scheduling" +msgid "TASKPM: Scheduling" msgstr "LibrePlan:调度" #: libreplan-webapp/src/main/webapp/planner/_legendLoadChartCompany.zul:44 @@ -2526,7 +2526,7 @@ msgid "Select scenario" msgstr "选择场景" #: libreplan-webapp/src/main/webapp/templates/templates.zul:22 -msgid "LibrePlan: Templates" +msgid "TASKPM: Templates" msgstr "LibrePlan:模板" #: libreplan-webapp/src/main/java/org/libreplan/web/resources/worker/WorkerCRUDController.java:417 @@ -2542,7 +2542,7 @@ msgid "Criterion requirement" msgstr "标准要求" #: libreplan-webapp/src/main/webapp/expensesheet/expenseSheet.zul:21 -msgid "LibrePlan: Expenses" +msgid "TASKPM: Expenses" msgstr "LibrePlan:费用" #: libreplan-webapp/src/main/webapp/templates/_historicalStatistics.zul:63 @@ -2606,7 +2606,7 @@ msgid "Date last progress measurement" msgstr "日期最近的进展测量" #: libreplan-webapp/src/main/webapp/externalcompanies/externalcompanies.zul:23 -msgid "LibrePlan: Companies" +msgid "TASKPM: Companies" msgstr "LibrePlan公司" #: libreplan-webapp/src/main/java/org/libreplan/web/common/components/ResourceAllocationBehaviour.java:63 @@ -2695,7 +2695,7 @@ msgid "format filters are not valid" msgstr "格式过滤器是无效的" #: libreplan-webapp/src/main/webapp/reports/orderCostsPerResource.zul:21 -msgid "LibrePlan: Project Costs" +msgid "TASKPM: Project Costs" msgstr "LibrePlan:项目成本" #: libreplan-webapp/src/main/java/org/libreplan/web/reports/ProjectStatusReportController.java:212 @@ -2824,7 +2824,7 @@ msgid "user" msgstr "用户" #: libreplan-webapp/src/main/webapp/materials/materials.zul:21 -msgid "LibrePlan: Materials" +msgid "TASKPM: Materials" msgstr "LibrePlan:材料" #: libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderElementTreeModel.java:53 @@ -2997,7 +2997,7 @@ msgid "Total Worked Hours By Resource In A Month" msgstr "在一个月内通过资源的总工作小时" #: libreplan-webapp/src/main/webapp/common/accessForbidden.zul:20 -msgid "LibrePlan: Access Forbidden" +msgid "TASKPM: Access Forbidden" msgstr "LibrePlan:拒绝访问" #: libreplan-webapp/src/main/java/org/libreplan/web/resourceload/ResourceLoadModel.java:703 @@ -3049,7 +3049,7 @@ msgid "At least one {0} sequence is needed" msgstr "至少有一个{0}序列需要" #: libreplan-webapp/src/main/webapp/costcategories/costCategory.zul:23 -msgid "LibrePlan: Cost Categories" +msgid "TASKPM: Cost Categories" msgstr "LibrePlan:成本类别" #: libreplan-webapp/src/main/java/org/libreplan/web/common/components/TwoWaySelector.java:68 @@ -3080,7 +3080,7 @@ msgid "More options" msgstr "更多选项" #: libreplan-webapp/src/main/webapp/myaccount/personalTimesheet.zul:21 -msgid "LibrePlan: Personal timesheet" +msgid "TASKPM: Personal timesheet" msgstr "LibrePlan:个人时间表" #: libreplan-webapp/src/main/java/org/libreplan/web/orders/TreeElementOperationsController.java:244 @@ -3104,7 +3104,7 @@ msgid "Change Password" msgstr "更改密码" #: libreplan-webapp/src/main/webapp/reports/workingProgressPerTaskReport.zul:21 -msgid "LibrePlan: Work And Progress Per Task" +msgid "TASKPM: Work And Progress Per Task" msgstr "LibrePlan:每个任务的工作和进展" #: libreplan-webapp/src/main/java/org/libreplan/web/common/CustomMenuController.java:270 @@ -3346,11 +3346,11 @@ msgid "hours type" msgstr "小时类型" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/ConfigurationRolesLDAP.java:56 -msgid "LibrePlan role not specified" +msgid "TASKPM role not specified" msgstr "LibrePlan没有指定的角色" #: libreplan-webapp/src/main/webapp/reports/workingArrangementsPerOrderReport.zul:21 -msgid "LibrePlan: Task Scheduling Status In Project" +msgid "TASKPM: Task Scheduling Status In Project" msgstr "LibrePlan:项目的任务调度状态" #: libreplan-webapp/src/main/webapp/qualityforms/_listQualityForm.zul:27 @@ -3403,7 +3403,7 @@ msgid "Edit task {0}" msgstr "编辑任务{0}" #: libreplan-webapp/src/main/webapp/workreports/workReport.zul:23 -msgid "LibrePlan: Timesheets" +msgid "TASKPM: Timesheets" msgstr "LibrePlan:时间表" #: libreplan-business/src/main/java/org/libreplan/business/users/entities/User.java:231 @@ -3474,7 +3474,7 @@ msgid "Task" msgstr "任务" #: libreplan-webapp/src/main/webapp/myaccount/changePassword.zul:21 -msgid "LibrePlan: Change password" +msgid "TASKPM: Change password" msgstr "LibrePlan:更改密码" #: libreplan-webapp/src/main/java/org/libreplan/web/reports/CompletedEstimatedHoursPerTaskController.java:130 @@ -3496,7 +3496,7 @@ msgid "Add profile" msgstr "添加配置文件" #: libreplan-webapp/src/main/webapp/scenarios/scenarios.zul:23 -msgid "LibrePlan: Scenarios Management" +msgid "TASKPM: Scenarios Management" msgstr "LibrePlan:场景管理" #: libreplan-business/src/main/java/org/libreplan/business/costcategories/entities/ResourcesCostCategoryAssignment.java:145 @@ -3684,7 +3684,7 @@ msgid "{0} not supported yet" msgstr "{0}不支持" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:144 -msgid "is not supported for its use with LibrePlan." +msgid "is not supported for its use with TASKPM." msgstr "不支持它与LibrePlan的使用。" #: libreplan-webapp/src/main/webapp/resources/worker/_workRelationships.zul:53 @@ -3708,7 +3708,7 @@ msgid "Changes have been canceled" msgstr "更改已被取消" #: libreplan-webapp/src/main/webapp/planner/index.zul:22 -msgid "LibrePlan: Planning" +msgid "TASKPM: Planning" msgstr "LibrePlan:规划" #: libreplan-webapp/src/main/webapp/common/configuration.zul:197 @@ -3860,7 +3860,7 @@ msgid "last hours cost sequence code not specified" msgstr "最后一个小时的成本没有指定的序列码" #: libreplan-webapp/src/main/webapp/myaccount/userDashboard.zul:21 -msgid "LibrePlan: My Dashboard" +msgid "TASKPM: My Dashboard" msgstr "LibrePlan:我的仪表板" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:33 @@ -3957,7 +3957,7 @@ msgid "You do not have permissions to go to edit user window" msgstr "您没有权限去用户编辑窗口" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:21 -msgid "LibrePlan: User access" +msgid "TASKPM: User access" msgstr "LibrePlan:用户访问" #: libreplan-webapp/src/main/java/org/libreplan/web/common/components/finders/TaskGroupFilterEnum.java:30 @@ -4175,7 +4175,7 @@ msgid "default password was not changed" msgstr "默认情况下未更改密码" #: libreplan-webapp/src/main/webapp/unittypes/unitTypes.zul:21 -msgid "LibrePlan: Material Units" +msgid "TASKPM: Material Units" msgstr "LibrePlan:材料单位" #: libreplan-business/src/main/java/org/libreplan/business/resources/entities/Worker.java:256 @@ -4345,7 +4345,7 @@ msgid "Date must be inside visualization area" msgstr "日期必须是区域内的可视化" #: libreplan-webapp/src/main/webapp/common/configuration.zul:124 -msgid "Show a notification when new LibrePlan versions are released" +msgid "Show a notification when new TASKPM versions are released" msgstr "新LibrePlan版本发布时显示通知" #: libreplan-webapp/src/main/webapp/common/layout/template.zul:69 @@ -4695,7 +4695,7 @@ msgid "Value last progress measurement" msgstr "值最后的进步测量" #: libreplan-webapp/src/main/webapp/reports/timeLineMaterialReport.zul:21 -msgid "LibrePlan: Materials Needed At Date" +msgid "TASKPM: Materials Needed At Date" msgstr "LibrePlan:材料需要在日期" #: libreplan-webapp/src/main/webapp/resources/machine/_machineConfigurationUnits.zul:44 @@ -4774,7 +4774,7 @@ msgid "" msgstr "你即将离开的规划版本,未保存的更改将丢失。" #: libreplan-webapp/src/main/webapp/resources/machine/machines.zul:22 -msgid "LibrePlan: Machines" +msgid "TASKPM: Machines" msgstr "LibrePlan:机" #: libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/MyTasksAreaController.java:75 @@ -5126,7 +5126,7 @@ msgid "Reference date" msgstr "参考日期" #: libreplan-webapp/src/main/webapp/reports/completedEstimatedHoursPerTask.zul:21 -msgid "LibrePlan: Estimated/Planned Hours Per Task" +msgid "TASKPM: Estimated/Planned Hours Per Task" msgstr "LibrePlan:估计小时数/计划任务" #: libreplan-business/src/main/java/org/libreplan/business/qualityforms/entities/QualityFormItem.java:94 @@ -5245,7 +5245,7 @@ msgid "Reception date" msgstr "接收日期" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:21 -msgid "LibrePlan: Settings" +msgid "TASKPM: Settings" msgstr "LibrePlan:设置" #: libreplan-business/src/main/java/org/libreplan/business/resources/entities/Worker.java:131 @@ -5286,7 +5286,7 @@ msgid "Select entity, please" msgstr "请选择实体," #: libreplan-webapp/src/main/webapp/profiles/profiles.zul:23 -msgid "LibrePlan: Profiles" +msgid "TASKPM: Profiles" msgstr "LibrePlan:配置文件" #: libreplan-webapp/src/main/java/org/libreplan/web/workreports/WorkReportCRUDController.java:837 @@ -5504,7 +5504,7 @@ msgid "" msgstr "帮助项目开发商LibrePlan版本,你使用的是收集信息" #: libreplan-webapp/src/main/webapp/resources/worker/worker.zul:22 -msgid "LibrePlan: Workers" +msgid "TASKPM: Workers" msgstr "LibrePlan:" #: libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/UserDashboardController.java:64 @@ -5516,7 +5516,7 @@ msgid "Create Virtual Workers Group" msgstr "创建虚拟工群体" #: libreplan-webapp/src/main/webapp/common/configuration.zul:125 -msgid "Enable/Disable warning about new LibrePlan versions available" +msgid "Enable/Disable warning about new TASKPM versions available" msgstr "新的LibrePlan版本的启用/禁用警告" #: libreplan-business/src/main/java/org/libreplan/business/externalcompanies/entities/ExternalCompany.java:183 @@ -5627,7 +5627,7 @@ msgid "Category" msgstr "类别" #: libreplan-webapp/src/main/webapp/advance/advanceTypes.zul:22 -msgid "LibrePlan: Progress Types" +msgid "TASKPM: Progress Types" msgstr "LibrePlan进展" #: libreplan-webapp/src/main/webapp/resources/search/allocation_selector.zul:79 @@ -5668,11 +5668,11 @@ msgid "Source scenario" msgstr "来源场景" #: libreplan-webapp/src/main/webapp/resources/criterions/criterions.zul:24 -msgid "LibrePlan: Criteria" +msgid "TASKPM: Criteria" msgstr "LibrePlan:标准" #: libreplan-webapp/src/main/webapp/scenarios/transferOrders.zul:23 -msgid "LibrePlan: Transfer Projects Between Scenarios" +msgid "TASKPM: Transfer Projects Between Scenarios" msgstr "LibrePlan:调水工程方案之间" #: libreplan-business/src/main/java/org/libreplan/business/planner/entities/Task.java:171 @@ -5765,7 +5765,7 @@ msgid "Close" msgstr "关闭" #: libreplan-webapp/src/main/webapp/workreports/workReportQuery.zul:23 -msgid "LibrePlan: Timesheet Lines List" +msgid "TASKPM: Timesheet Lines List" msgstr "LibrePlan:时间表行列表" #: libreplan-webapp/src/main/java/org/libreplan/web/resourceload/ResourceLoadModel.java:976 @@ -5995,7 +5995,7 @@ msgid "Subcategory names must be unique." msgstr "子目录名称必须是唯一的。" #: libreplan-webapp/src/main/webapp/reports/schedulingProgressPerOrderReport.zul:21 -msgid "LibrePlan: Work And Progress Per Project" +msgid "TASKPM: Work And Progress Per Project" msgstr "LibrePlan:每个项目的工作及进展情况" #: libreplan-webapp/src/main/webapp/workreports/workReport.zul:54 @@ -6194,7 +6194,7 @@ msgstr "任务的总时数" #: libreplan-webapp/src/main/webapp/common/pageNotFound.zul:49 msgid "" -"If you reached this page from another page of LibrePlan please notify us in " +"If you reached this page from another page of TASKPM please notify us in " "order to fix it as soon as possible." msgstr "如果您从另一页LibrePlan到达了该网页,请立即通知我们,为了解决这个问题,尽快。" @@ -6207,7 +6207,7 @@ msgid "expense sheet not specified" msgstr "不指定费用表" #: libreplan-webapp/src/main/webapp/workreports/workReportTypes.zul:23 -msgid "LibrePlan: Timesheets Templates" +msgid "TASKPM: Timesheets Templates" msgstr "LibrePlan时间表模板" #: libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderCRUDController.java:1066 @@ -6392,7 +6392,7 @@ msgid "code is already used" msgstr "已经使用的代码" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:20 -msgid "LibrePlan: Received From Subcontractors" +msgid "TASKPM: Received From Subcontractors" msgstr "LibrePlan:收稿从分包商" #: libreplan-webapp/src/main/webapp/labels/_editLabelType.zul:67 @@ -6684,11 +6684,11 @@ msgid "Personal Data" msgstr "个人资料" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerReport.zul:21 -msgid "LibrePlan: Hours Worked Per Resource" +msgid "TASKPM: Hours Worked Per Resource" msgstr "LibrePlan:工作时数资源" #: libreplan-webapp/src/main/webapp/users/users.zul:23 -msgid "LibrePlan: User Accounts" +msgid "TASKPM: User Accounts" msgstr "LibrePlan:用户帐号" #: libreplan-webapp/src/main/webapp/orders/_listOrderElementHours.zul:213 @@ -7082,7 +7082,7 @@ msgid "Progress that are reported by quality forms cannot be modified" msgstr "所报告的质量形式的进展,不能修改" #: libreplan-webapp/src/main/webapp/common/configuration.zul:23 -msgid "LibrePlan: Main Settings" +msgid "TASKPM: Main Settings" msgstr "LibrePlan:主要设置" #: libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReportLabelTypeAssignment.java:64 @@ -7379,7 +7379,7 @@ msgid "Click the following link to return to home page: " msgstr "点击以下链接返回首页:" #: libreplan-webapp/src/main/webapp/reports/projectStatusReport.zul:20 -msgid "LibrePlan: Project Status Report" +msgid "TASKPM: Project Status Report" msgstr "LibrePlan:项目状态报告" #: libreplan-webapp/src/main/webapp/myaccount/changePassword.zul:71 @@ -7397,7 +7397,7 @@ msgid "{0} 2nd fortnight" msgstr "{0}第二个两周" #: libreplan-webapp/src/main/webapp/subcontract/customerCommunications.zul:20 -msgid "LibrePlan: Received From Customers" +msgid "TASKPM: Received From Customers" msgstr "LibrePlan:从客户收取" #: libreplan-webapp/src/main/webapp/resources/worker/_edition.zul:134 diff --git a/libreplan-webapp/src/main/resources/i18n/zh_CN.po b/libreplan-webapp/src/main/resources/i18n/zh_CN.po index 6216f9ccf..a31f21e0d 100644 --- a/libreplan-webapp/src/main/resources/i18n/zh_CN.po +++ b/libreplan-webapp/src/main/resources/i18n/zh_CN.po @@ -15,7 +15,7 @@ # Zamba Lee , 2016 msgid "" msgstr "" -"Project-Id-Version: LibrePlan\n" +"Project-Id-Version: TASKPM\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-10-10 17:54+0200\n" "PO-Revision-Date: 2016-11-21 16:23+0000\n" @@ -28,7 +28,7 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" #: libreplan-webapp/src/main/webapp/qualityforms/qualityForms.zul:22 -msgid "LibrePlan: Quality Forms" +msgid "TASKPM: Quality Forms" msgstr "LibrePlan:质量表单" #: libreplan-webapp/src/main/webapp/orders/_projectDetails.zul:58 @@ -53,7 +53,7 @@ msgid "Overtime" msgstr "加班" #: libreplan-webapp/src/main/webapp/excetiondays/exceptionDays.zul:22 -msgid "LibrePlan: Calendar Exception Days" +msgid "TASKPM: Calendar Exception Days" msgstr "LibrePlan:日历例外日" #: org/libreplan/web/calendars/BaseCalendarModel.java:488 @@ -143,7 +143,7 @@ msgid "Subcategory names must be unique." msgstr "子种类名称必须是唯一的。" #: libreplan-webapp/src/main/webapp/reports/timeLineMaterialReport.zul:21 -msgid "LibrePlan: Materials Needed At Date" +msgid "TASKPM: Materials Needed At Date" msgstr "LibrePlan:该日所需物料" #: org/libreplan/web/resources/machine/MachineCRUDController.java:630 @@ -490,7 +490,7 @@ msgid "please, select a project" msgstr "请选择一个项目" #: libreplan-webapp/src/main/webapp/reports/projectStatusReport.zul:20 -msgid "LibrePlan: Project Status Report" +msgid "TASKPM: Project Status Report" msgstr "LibrePlan:项目状态报告" #: org/libreplan/web/calendars/BaseCalendarEditionController.java:627 @@ -552,7 +552,7 @@ msgid "Exit session" msgstr "退出会话" #: libreplan-webapp/src/main/webapp/orders/_timImpExpInfo.zul:20 -msgid "LibrePlan: Tim import export info" +msgid "TASKPM: Tim import export info" msgstr "LibrePlan:Tim导入导出信息" #: org/libreplan/web/planner/allocation/FormBinder.java:671 @@ -666,7 +666,7 @@ msgid "Companies List" msgstr "企业名录" #: libreplan-webapp/src/main/webapp/resources/worker/virtualWorkers.zul:22 -msgid "LibrePlan: Virtual Worker Groups" +msgid "TASKPM: Virtual Worker Groups" msgstr "LibrePlan:虚拟员工组" #: org/libreplan/web/planner/tabs/MonteCarloTabCreator.java:51 @@ -680,7 +680,7 @@ msgid "Cost category" msgstr "成本类别" #: libreplan-webapp/src/main/webapp/myaccount/personalTimesheet.zul:21 -msgid "LibrePlan: Personal timesheet" +msgid "TASKPM: Personal timesheet" msgstr "LibrePlan:个人工时表" #: libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReportLine.java:264 @@ -707,7 +707,7 @@ msgid "Unsaved changes will be lost. Are you sure?" msgstr "未保存的更改将丢失。您确定吗?" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/ConfigurationRolesLDAP.java:56 -msgid "LibrePlan role not specified" +msgid "TASKPM role not specified" msgstr "LibrePlan没有指定的角色" #: libreplan-webapp/src/main/webapp/scenarios/transferOrders.zul:39 @@ -723,7 +723,7 @@ msgid "Move" msgstr "移动" #: libreplan-webapp/src/main/webapp/orders/_jiraSyncInfo.zul:20 -msgid "LibrePlan: JIRA synchronization info" +msgid "TASKPM: JIRA synchronization info" msgstr "LibrePlan:Jira同步信息" #: org/libreplan/web/common/components/finders/OrderFilterEnum.java:31 @@ -768,7 +768,7 @@ msgid "Profiles List" msgstr "配置文件列表" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:21 -msgid "LibrePlan: User access" +msgid "TASKPM: User access" msgstr "LibrePlan:用户访问" #: libreplan-business/src/main/java/org/libreplan/business/labels/entities/LabelType.java:158 @@ -1547,7 +1547,7 @@ msgid "Violated deadline" msgstr "违反了期限" #: libreplan-webapp/src/main/webapp/common/configuration.zul:126 -msgid "Enable/Disable warning about new LibrePlan versions available" +msgid "Enable/Disable warning about new TASKPM versions available" msgstr "新的LibrePlan版本的启用/禁用警告" #: libreplan-business/src/main/java/org/libreplan/business/orders/entities/HoursGroup.java:186 @@ -1590,7 +1590,7 @@ msgid "Progress sent successfully" msgstr "进度发送成功" #: libreplan-webapp/src/main/webapp/myaccount/userDashboard.zul:21 -msgid "LibrePlan: My Dashboard" +msgid "TASKPM: My Dashboard" msgstr "LibrePlan:我的首页" #: libreplan-webapp/src/main/webapp/calendars/_edition.zul:131 @@ -1611,7 +1611,7 @@ msgstr "标签类型字段" #: libreplan-webapp/src/main/webapp/common/event_error.zul:22 #: libreplan-webapp/src/main/webapp/common/error.zul:21 -msgid "LibrePlan: Runtime Error" +msgid "TASKPM: Runtime Error" msgstr "LibrePlan:运行错误" #: org/libreplan/web/planner/tabs/PlanningTabCreator.java:152 @@ -1659,7 +1659,7 @@ msgid "Criterion Types" msgstr "标准类型" #: libreplan-webapp/src/main/webapp/common/configuration.zul:125 -msgid "Show a notification when new LibrePlan versions are released" +msgid "Show a notification when new TASKPM versions are released" msgstr "新LibrePlan版本发布时显示通知" #: org/libreplan/web/workreports/WorkReportTypeCRUDController.java:900 @@ -1728,7 +1728,7 @@ msgid "units not specified" msgstr "未指定的单位" #: libreplan-webapp/src/main/webapp/advance/advanceTypes.zul:22 -msgid "LibrePlan: Progress Types" +msgid "TASKPM: Progress Types" msgstr "LibrePlan:进度" #: libreplan-webapp/src/main/webapp/planner/montecarlo_function.zul:36 @@ -1936,7 +1936,7 @@ msgid "percentage should be between 1 and 100" msgstr "百分比应为1到100之间" #: libreplan-webapp/src/main/webapp/workreports/workReportQuery.zul:23 -msgid "LibrePlan: Timesheet Lines List" +msgid "TASKPM: Timesheet Lines List" msgstr "LibrePlan:工时表基线列表" #: org/libreplan/web/labels/LabelTypeModel.java:269 @@ -2064,7 +2064,7 @@ msgid "You have exceeded the maximum limit of users" msgstr "您已超过最大用户限制" #: libreplan-webapp/src/main/webapp/reports/schedulingProgressPerOrderReport.zul:21 -msgid "LibrePlan: Work And Progress Per Project" +msgid "TASKPM: Work And Progress Per Project" msgstr "LibrePlan:每项目工作和进度" #: libreplan-webapp/src/main/webapp/orders/_orderElementTreeFilter.zul:42 @@ -2129,7 +2129,7 @@ msgid "No roster-exceptions found in the response" msgstr "在响应中没有发现名册异常" #: libreplan-webapp/src/main/webapp/calendars/calendars.zul:22 -msgid "LibrePlan: Calendars" +msgid "TASKPM: Calendars" msgstr "LibrePlan:日历" #: libreplan-business/src/main/java/org/libreplan/business/common/entities/EntitySequence.java:192 @@ -2154,7 +2154,7 @@ msgid "Subcontracting date" msgstr "分包日期" #: libreplan-webapp/src/main/webapp/common/job_scheduling.zul:20 -msgid "LibrePlan: Job Scheduling" +msgid "TASKPM: Job Scheduling" msgstr "LibrePlan:作业调度" #: org/libreplan/importers/ImportRosterFromTim.java:182 @@ -2307,7 +2307,7 @@ msgid "Filter timesheet lines by" msgstr "过滤工时表基线" #: libreplan-webapp/src/main/webapp/unittypes/unitTypes.zul:21 -msgid "LibrePlan: Material Units" +msgid "TASKPM: Material Units" msgstr "LibrePlan:物料单位" #: org/libreplan/web/templates/TemplatesTreeComponent.java:64 @@ -2461,7 +2461,7 @@ msgid "Maximum/minimum of worked hours in finished applications" msgstr "完成应用的最大/最小工时比" #: libreplan-webapp/src/main/webapp/labels/labelTypes.zul:21 -msgid "LibrePlan: Labels" +msgid "TASKPM: Labels" msgstr "LibrePlan:标签" #: libreplan-webapp/src/main/webapp/resources/worker/_edition.zul:31 @@ -2512,7 +2512,7 @@ msgid "Observations" msgstr "评论" #: libreplan-webapp/src/main/webapp/common/page_not_found.zul:22 -msgid "LibrePlan: Page not found" +msgid "TASKPM: Page not found" msgstr "LibrePlan:找不到网页" #: libreplan-webapp/src/main/webapp/orders/_edition.zul:251 @@ -2604,7 +2604,7 @@ msgid "Output format:" msgstr "输出格式:" #: libreplan-webapp/src/main/webapp/reports/workingProgressPerTaskReport.zul:21 -msgid "LibrePlan: Work And Progress Per Task" +msgid "TASKPM: Work And Progress Per Task" msgstr "LibrePlan:每任务工作和进度" #: org/libreplan/web/advance/AdvanceTypeCRUDController.java:81 @@ -2696,7 +2696,7 @@ msgid "Label type already assigned" msgstr "标签类型已经分配" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:20 -msgid "LibrePlan: Received From Subcontractors" +msgid "TASKPM: Received From Subcontractors" msgstr "LibrePlan:从分包商接收" #: libreplan-webapp/src/main/webapp/common/configuration.zul:58 @@ -2917,7 +2917,7 @@ msgid "label type: the timesheet have not assigned this label type" msgstr "标签类型:工时表还未指定这个标签类型" #: libreplan-webapp/src/main/webapp/typeofworkhours/typeOfWorkHours.zul:23 -msgid "LibrePlan: Hours Types" +msgid "TASKPM: Hours Types" msgstr "LibrePlan:工时类型" #: org/libreplan/web/common/CustomMenuController.java:264 @@ -2946,7 +2946,7 @@ msgid "Please try it again." msgstr "请再试一次。" #: libreplan-webapp/src/main/webapp/expensesheet/expenseSheet.zul:21 -msgid "LibrePlan: Expenses" +msgid "TASKPM: Expenses" msgstr "LibrePlan:费用" #: org/libreplan/web/tree/TreeController.java:1294 @@ -3007,7 +3007,7 @@ msgid "Date last progress measurement" msgstr "日期最近的进度测算" #: libreplan-webapp/src/main/webapp/reports/completedEstimatedHoursPerTask.zul:21 -msgid "LibrePlan: Estimated/Planned Hours Per Task" +msgid "TASKPM: Estimated/Planned Hours Per Task" msgstr "LibrePlan:每任务估算/规划工时" #: libreplan-webapp/src/main/webapp/orders/_listOrderElementAuthorizations.zul:43 @@ -3214,7 +3214,7 @@ msgid "Finished" msgstr "已完成" #: libreplan-webapp/src/main/webapp/planner/index.zul:22 -msgid "LibrePlan: Planning" +msgid "TASKPM: Planning" msgstr "LibrePlan:规划" #: org/libreplan/web/scenarios/ScenarioModel.java:126 @@ -3287,7 +3287,7 @@ msgid "Property strategy" msgstr "属性机制" #: libreplan-webapp/src/main/webapp/reports/orderCostsPerResource.zul:21 -msgid "LibrePlan: Project Costs" +msgid "TASKPM: Project Costs" msgstr "LibrePlan:项目成本" #: org/libreplan/web/common/ConfigurationController.java:265 @@ -3323,7 +3323,7 @@ msgid "Calendar exception days" msgstr "日历例外日" #: libreplan-webapp/src/main/webapp/myaccount/changePassword.zul:21 -msgid "LibrePlan: Change password" +msgid "TASKPM: Change password" msgstr "LibrePlan:更改密码" #: org/libreplan/web/planner/allocation/GenericAllocationRow.java:55 @@ -3904,7 +3904,7 @@ msgstr "通信类型" #: libreplan-webapp/src/main/webapp/common/page_not_found.zul:49 msgid "" -"If you reached this page from another page of LibrePlan please notify us in " +"If you reached this page from another page of TASKPM please notify us in " "order to fix it as soon as possible." msgstr "如果您从另一页LibrePlan到达此网页,请尽快通知我们修复这个错误。" @@ -3940,7 +3940,7 @@ msgid "Repeated Hours Group code {0} in Project {1}" msgstr "重复工时组代码{0}在项目{1}" #: libreplan-webapp/src/main/webapp/resources/worker/worker.zul:22 -msgid "LibrePlan: Workers" +msgid "TASKPM: Workers" msgstr "LibrePlan:员工" #: org/libreplan/web/planner/allocation/AdvancedAllocationController.java:1573 @@ -4398,7 +4398,7 @@ msgid "" msgstr "资源成本类别内的分配代码必须是唯一的" #: libreplan-webapp/src/main/webapp/materials/materials.zul:21 -msgid "LibrePlan: Materials" +msgid "TASKPM: Materials" msgstr "LibrePlan:物料" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:104 @@ -4645,7 +4645,7 @@ msgid "Stretches with Interpolation" msgstr "伸展与插值" #: libreplan-webapp/src/main/webapp/workreports/workReportTypes.zul:23 -msgid "LibrePlan: Timesheets Templates" +msgid "TASKPM: Timesheets Templates" msgstr "LibrePlan:工时表模板" #: org/libreplan/web/common/CustomMenuController.java:514 @@ -4676,7 +4676,7 @@ msgid "" msgstr "您不能删除任务“{0}”,因为它是它上级的唯一下级,其上级已追踪时间或已估算费用" #: libreplan-webapp/src/main/webapp/reports/workingArrangementsPerOrderReport.zul:21 -msgid "LibrePlan: Task Scheduling Status In Project" +msgid "TASKPM: Task Scheduling Status In Project" msgstr "LibrePlan:项目的任务调度状态" #: libreplan-webapp/src/main/webapp/common/layout/_customMenu.zul:55 @@ -4912,7 +4912,7 @@ msgid "Reassigning type" msgstr "重新分配类型" #: libreplan-webapp/src/main/webapp/common/configuration.zul:23 -msgid "LibrePlan: Main Settings" +msgid "TASKPM: Main Settings" msgstr "LibrePlan:主要设置" #: org/libreplan/web/common/CustomMenuController.java:419 @@ -5009,7 +5009,7 @@ msgid "Expand taskgroups" msgstr "展开taskgroups" #: libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul:22 -msgid "LibrePlan: Send To Subcontractors" +msgid "TASKPM: Send To Subcontractors" msgstr "LibrePlan:发送给分包商" #: org/libreplan/web/limitingresources/ManualAllocationController.java:492 @@ -5148,7 +5148,7 @@ msgid "" msgstr "请尝试与任何管理员联系,以审查您的LibrePlan权限。" #: libreplan-webapp/src/main/webapp/costcategories/costCategory.zul:23 -msgid "LibrePlan: Cost Categories" +msgid "TASKPM: Cost Categories" msgstr "LibrePlan:成本类别" #: libreplan-webapp/src/main/webapp/users/_editUser.zul:120 @@ -5156,7 +5156,7 @@ msgid "Unbound resource" msgstr "未绑定的资源" #: libreplan-webapp/src/main/webapp/subcontract/customerCommunications.zul:20 -msgid "LibrePlan: Received From Customers" +msgid "TASKPM: Received From Customers" msgstr "LibrePlan:从客户收取" #: libreplan-webapp/src/main/webapp/workreports/_listWorkReportTypes.zul:47 @@ -5900,7 +5900,7 @@ msgid "Calendar allocation" msgstr "日历分配" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerInAMonthReport.zul:21 -msgid "LibrePlan: Total Worked Hours By Resource In A Month" +msgid "TASKPM: Total Worked Hours By Resource In A Month" msgstr "LibrePlan:一个月内资源总工时" #: org/libreplan/web/resources/criterion/CriterionAdminController.java:257 @@ -5957,7 +5957,7 @@ msgid "" msgstr "勾选这个选项,如果您想发送反馈给有关程序使用的LibrePlan开发" #: libreplan-webapp/src/main/webapp/myaccount/settings.zul:22 -msgid "LibrePlan: Settings" +msgid "TASKPM: Settings" msgstr "LibrePlan:设置" #: org/libreplan/web/common/CustomMenuController.java:345 @@ -5989,7 +5989,7 @@ msgid "Change the password" msgstr "更改密码" #: libreplan-webapp/src/main/webapp/common/access_forbidden.zul:20 -msgid "LibrePlan: Access Forbidden" +msgid "TASKPM: Access Forbidden" msgstr "LibrePlan:拒绝访问" #: libreplan-webapp/src/main/webapp/montecarlo/_montecarlo.zul:50 @@ -6070,7 +6070,7 @@ msgid "No authorizations were added because you did not select any." msgstr "没有添加任何授权,因为您没有选择。" #: libreplan-webapp/src/main/webapp/users/users.zul:23 -msgid "LibrePlan: User Accounts" +msgid "TASKPM: User Accounts" msgstr "LibrePlan:用户帐号" #: libreplan-webapp/src/main/webapp/templates/_assignedQualityForms.zul:30 @@ -6118,7 +6118,7 @@ msgid "Interacts with applications" msgstr "与应用程序交互" #: libreplan-webapp/src/main/webapp/planner/advance_allocation.zul:22 -msgid "LibrePlan: Advanced allocation" +msgid "TASKPM: Advanced allocation" msgstr "LibrePlan:高级分配" #: org/libreplan/importers/CalendarImporterMPXJ.java:365 @@ -6244,7 +6244,7 @@ msgid "Standard Effort" msgstr "标准努力" #: libreplan-webapp/src/main/webapp/orders/imports/projectImport.zul:21 -msgid "LibrePlan: Import Project" +msgid "TASKPM: Import Project" msgstr "LibrePlan:导入项目" #: org/libreplan/web/resources/worker/WorkerCRUDController.java:730 @@ -6258,7 +6258,7 @@ msgid "" msgstr "请使用某个兼容的浏览器:Chrome,火狐,Safari。" #: libreplan-webapp/src/main/webapp/scenarios/transferOrders.zul:23 -msgid "LibrePlan: Transfer Projects Between Scenarios" +msgid "TASKPM: Transfer Projects Between Scenarios" msgstr "LibrePlan:场景之间转换项目" #: org/libreplan/web/common/CustomMenuController.java:306 @@ -6495,7 +6495,7 @@ msgid "quality form item position not specified" msgstr "未指定质量表格项的位置" #: libreplan-webapp/src/main/webapp/profiles/profiles.zul:23 -msgid "LibrePlan: Profiles" +msgid "TASKPM: Profiles" msgstr "LibrePlan:配置文件" #: libreplan-webapp/src/main/webapp/orders/_orderElementDetails.zul:38 @@ -6507,7 +6507,7 @@ msgid "Budget At Completion" msgstr "完成预算" #: libreplan-webapp/src/main/webapp/workreports/workReport.zul:23 -msgid "LibrePlan: Timesheets" +msgid "TASKPM: Timesheets" msgstr "LibrePlan:工时表" #: libreplan-webapp/src/main/webapp/orders/_listHoursGroupCriterionRequirement.zul:22 @@ -6902,7 +6902,7 @@ msgid "" msgstr "为任务预计开始日期(在文本框中按回车键打开日历或直接输入日期)" #: libreplan-webapp/src/main/webapp/externalcompanies/externalcompanies.zul:23 -msgid "LibrePlan: Companies" +msgid "TASKPM: Companies" msgstr "LibrePlan:组织" #: libreplan-webapp/src/main/webapp/subcontract/subcontractorCommunications.zul:53 @@ -6930,7 +6930,7 @@ msgid "Date must be inside visualization area" msgstr "日期必须是区域内的可视化" #: libreplan-webapp/src/main/webapp/templates/templates.zul:22 -msgid "LibrePlan: Templates" +msgid "TASKPM: Templates" msgstr "LibrePlan:模板" #: libreplan-webapp/src/main/webapp/resourceload/resourceload.zul:22 @@ -6940,11 +6940,11 @@ msgstr "LibrePlan:模板" #: libreplan-webapp/src/main/webapp/planner/montecarlo_function.zul:22 #: libreplan-webapp/src/main/webapp/planner/resources_use.zul:22 #: libreplan-webapp/src/main/webapp/planner/order.zul:22 -msgid "LibrePlan: Scheduling" +msgid "TASKPM: Scheduling" msgstr "LibrePlan:日程" #: libreplan-webapp/src/main/webapp/subcontract/reportAdvances.zul:22 -msgid "LibrePlan: Send To Customers" +msgid "TASKPM: Send To Customers" msgstr "LibrePlan:发送给客户" #: libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReport.java:436 @@ -7433,7 +7433,7 @@ msgid "The code cannot be empty and it must be unique." msgstr "该代码不能是空的,它必须是唯一的。" #: libreplan-webapp/src/main/webapp/resources/criterions/criterions.zul:24 -msgid "LibrePlan: Criteria" +msgid "TASKPM: Criteria" msgstr "LibrePlan:标准" #: org/libreplan/importers/OrderImporterMPXJ.java:660 @@ -7847,7 +7847,7 @@ msgid "Start filtering date must be before than end filtering date" msgstr "开始过滤日期必须在结束过滤日期之前" #: libreplan-webapp/src/main/webapp/orders/_synchronizationInfo.zul:20 -msgid "LibrePlan: Synchronization info" +msgid "TASKPM: Synchronization info" msgstr "LibrePlan:同步信息" #: org/libreplan/web/orders/DetailsOrderElementController.java:128 @@ -8205,7 +8205,7 @@ msgid "Dedication chart" msgstr "贡献图表" #: libreplan-webapp/src/main/webapp/scenarios/scenarios.zul:23 -msgid "LibrePlan: Scenarios Management" +msgid "TASKPM: Scenarios Management" msgstr "LibrePlan:场景管理" #: org/libreplan/web/reports/CompletedEstimatedHoursPerTaskController.java:170 @@ -8340,7 +8340,7 @@ msgid "Delete Template element" msgstr "删除模板元素" #: libreplan-webapp/src/main/webapp/resources/machine/machines.zul:22 -msgid "LibrePlan: Machines" +msgid "TASKPM: Machines" msgstr "LibrePlan:机器" #: libreplan-webapp/src/main/webapp/orders/_orderElementTreeFilter.zul:36 @@ -8528,7 +8528,7 @@ msgid "Must be after 2010!" msgstr "必须在2010年后!" #: libreplan-webapp/src/main/webapp/common/layout/login.zul:144 -msgid "is not supported for its use with LibrePlan." +msgid "is not supported for its use with TASKPM." msgstr "不支持在LibrePlan的使用。" #: libreplan-business/src/main/java/org/libreplan/business/qualityforms/entities/TaskQualityFormItem.java:99 @@ -8777,7 +8777,7 @@ msgid "number of digits must be between {0} and {1}" msgstr "数字位数必须介于{0}和{1}" #: libreplan-webapp/src/main/webapp/reports/hoursWorkedPerWorkerReport.zul:21 -msgid "LibrePlan: Hours Worked Per Resource" +msgid "TASKPM: Hours Worked Per Resource" msgstr "LibrePlan:每个资源的工作时数" #: org/libreplan/web/calendars/BaseCalendarEditionController.java:642 diff --git a/libreplan-webapp/src/main/resources/libreplan-webapp-spring-config.xml b/libreplan-webapp/src/main/resources/libreplan-webapp-spring-config.xml index c49edc8ec..956b9a105 100644 --- a/libreplan-webapp/src/main/resources/libreplan-webapp-spring-config.xml +++ b/libreplan-webapp/src/main/resources/libreplan-webapp-spring-config.xml @@ -5,8 +5,8 @@ xmlns:context="http://www.springframework.org/schema/context" xmlns:jaxrs="http://cxf.apache.org/jaxrs" xsi:schemaLocation="http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans-4.3.xsd - http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd + http://www.springframework.org/schema/beans/spring-beans.xsd + http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd"> diff --git a/libreplan-webapp/src/main/resources/libreplan-webapp-spring-security-config.xml b/libreplan-webapp/src/main/resources/libreplan-webapp-spring-security-config.xml index ba65a1c2a..996371110 100644 --- a/libreplan-webapp/src/main/resources/libreplan-webapp-spring-security-config.xml +++ b/libreplan-webapp/src/main/resources/libreplan-webapp-spring-security-config.xml @@ -4,9 +4,9 @@ xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans-4.3.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/security - http://www.springframework.org/schema/security/spring-security-4.2.xsd"> + https://www.springframework.org/schema/security/spring-security-5.8.xsd"> + + + + + + @@ -158,13 +164,7 @@ - - - - + class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder" /> + p:passwordEncoder-ref="passwordEncoder" /> - - - + + diff --git a/libreplan-webapp/src/main/webapp/WEB-INF/tld/i18n.tld b/libreplan-webapp/src/main/webapp/WEB-INF/tld/i18n.tld index 8995a7ceb..7a7bbb572 100644 --- a/libreplan-webapp/src/main/webapp/WEB-INF/tld/i18n.tld +++ b/libreplan-webapp/src/main/webapp/WEB-INF/tld/i18n.tld @@ -7,7 +7,7 @@ _ org.libreplan.web.I18nHelper - java.lang.String _(java.lang.String name) + java.lang.String tr(java.lang.String name) @@ -18,7 +18,7 @@ __ org.libreplan.web.I18nHelper - java.lang.String _(java.lang.String name, java.lang.Object arg0) + java.lang.String tr(java.lang.String name, java.lang.Object arg0) diff --git a/libreplan-webapp/src/main/webapp/WEB-INF/web.xml b/libreplan-webapp/src/main/webapp/WEB-INF/web.xml index 0d9d85935..ad2febf45 100644 --- a/libreplan-webapp/src/main/webapp/WEB-INF/web.xml +++ b/libreplan-webapp/src/main/webapp/WEB-INF/web.xml @@ -3,7 +3,7 @@ xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> - libreplan-webapp + taskpm-webapp +
diff --git a/libreplan-webapp/src/main/webapp/advance/advanceTypes.zul b/libreplan-webapp/src/main/webapp/advance/advanceTypes.zul index d3196d3af..ad93fa8eb 100644 --- a/libreplan-webapp/src/main/webapp/advance/advanceTypes.zul +++ b/libreplan-webapp/src/main/webapp/advance/advanceTypes.zul @@ -19,13 +19,13 @@ along with this program. If not, see . --> - + - - + + diff --git a/libreplan-webapp/src/main/webapp/calendars/calendars.zul b/libreplan-webapp/src/main/webapp/calendars/calendars.zul index 301d9fb79..ba711e71b 100644 --- a/libreplan-webapp/src/main/webapp/calendars/calendars.zul +++ b/libreplan-webapp/src/main/webapp/calendars/calendars.zul @@ -19,14 +19,14 @@ along with this program. If not, see . --> - + - - + + diff --git a/libreplan-webapp/src/main/webapp/common/accessForbidden.zul b/libreplan-webapp/src/main/webapp/common/accessForbidden.zul index 085fdf699..462c91b96 100644 --- a/libreplan-webapp/src/main/webapp/common/accessForbidden.zul +++ b/libreplan-webapp/src/main/webapp/common/accessForbidden.zul @@ -17,10 +17,10 @@ along with this program. If not, see . --> - + - - + + diff --git a/libreplan-webapp/src/main/webapp/common/concurrentModification.zul b/libreplan-webapp/src/main/webapp/common/concurrentModification.zul index aab5cfd6b..4db23734a 100644 --- a/libreplan-webapp/src/main/webapp/common/concurrentModification.zul +++ b/libreplan-webapp/src/main/webapp/common/concurrentModification.zul @@ -20,8 +20,8 @@ --> - - + + diff --git a/libreplan-webapp/src/main/webapp/common/configuration.zul b/libreplan-webapp/src/main/webapp/common/configuration.zul index 92262d7a8..854afe01d 100644 --- a/libreplan-webapp/src/main/webapp/common/configuration.zul +++ b/libreplan-webapp/src/main/webapp/common/configuration.zul @@ -20,14 +20,14 @@ . --> - + - - + + diff --git a/libreplan-webapp/src/main/webapp/common/css/libreplan.css b/libreplan-webapp/src/main/webapp/common/css/taskpm.css similarity index 100% rename from libreplan-webapp/src/main/webapp/common/css/libreplan.css rename to libreplan-webapp/src/main/webapp/common/css/taskpm.css diff --git a/libreplan-webapp/src/main/webapp/common/css/libreplan_zk.css b/libreplan-webapp/src/main/webapp/common/css/taskpm_zk.css similarity index 100% rename from libreplan-webapp/src/main/webapp/common/css/libreplan_zk.css rename to libreplan-webapp/src/main/webapp/common/css/taskpm_zk.css diff --git a/libreplan-webapp/src/main/webapp/common/error.zul b/libreplan-webapp/src/main/webapp/common/error.zul index ce9efedbf..d6fe13d50 100644 --- a/libreplan-webapp/src/main/webapp/common/error.zul +++ b/libreplan-webapp/src/main/webapp/common/error.zul @@ -18,10 +18,10 @@ You should have received a copy of the GNU Affero General Public License along with this program. If not, see . --> - + - - + + diff --git a/libreplan-webapp/src/main/webapp/common/eventError.zul b/libreplan-webapp/src/main/webapp/common/eventError.zul index 057b588e6..14cbfea84 100644 --- a/libreplan-webapp/src/main/webapp/common/eventError.zul +++ b/libreplan-webapp/src/main/webapp/common/eventError.zul @@ -19,7 +19,7 @@ along with this program. If not, see . --> - diff --git a/libreplan-webapp/src/main/webapp/common/img/logo.png b/libreplan-webapp/src/main/webapp/common/img/logo.png index 4e7d02651..8215f3973 100644 Binary files a/libreplan-webapp/src/main/webapp/common/img/logo.png and b/libreplan-webapp/src/main/webapp/common/img/logo.png differ diff --git a/libreplan-webapp/src/main/webapp/common/img/logo_login.png b/libreplan-webapp/src/main/webapp/common/img/logo_login.png index cb05d1198..8215f3973 100644 Binary files a/libreplan-webapp/src/main/webapp/common/img/logo_login.png and b/libreplan-webapp/src/main/webapp/common/img/logo_login.png differ diff --git a/libreplan-webapp/src/main/webapp/common/jobScheduling.zul b/libreplan-webapp/src/main/webapp/common/jobScheduling.zul index bd01b99b9..e7eb0ed8b 100644 --- a/libreplan-webapp/src/main/webapp/common/jobScheduling.zul +++ b/libreplan-webapp/src/main/webapp/common/jobScheduling.zul @@ -17,13 +17,13 @@ along with this program. If not, see . --> - + - - + + diff --git a/libreplan-webapp/src/main/webapp/common/layout/_customMenu.zul b/libreplan-webapp/src/main/webapp/common/layout/_customMenu.zul index ec8cebf6f..4a2dcdc7b 100644 --- a/libreplan-webapp/src/main/webapp/common/layout/_customMenu.zul +++ b/libreplan-webapp/src/main/webapp/common/layout/_customMenu.zul @@ -101,10 +101,10 @@ diff --git a/libreplan-webapp/src/main/webapp/common/layout/login.zul b/libreplan-webapp/src/main/webapp/common/layout/login.zul index 734ca4615..a4248d861 100644 --- a/libreplan-webapp/src/main/webapp/common/layout/login.zul +++ b/libreplan-webapp/src/main/webapp/common/layout/login.zul @@ -18,7 +18,7 @@ You should have received a copy of the GNU Affero General Public License along with this program. If not, see . --> - + @@ -34,7 +34,7 @@ controller = loginController; contextPath = Executions.getCurrent().getContextPath(); loginError = Executions.getCurrent().getParameter("login_error"); - logoLoginLink = contextPath + "/common/img/" + org.libreplan.web.I18nHelper._("en") + "/logo_login.png"; + logoLoginLink = contextPath + "/common/img/" + org.libreplan.web.I18nHelper.tr("en") + "/logo_login.png"; ]]>
@@ -47,7 +47,7 @@ - + @@ -167,7 +167,7 @@
- +
@@ -177,12 +177,12 @@ - ${i18n:_('Did you know LibrePlan is funded only by donations, from people like you?')} + ${i18n:_('Did you know TASKPM is funded only by donations, from people like you?')} ${i18n:_('We don’t show advertisements or sell your data.')} ${i18n:_('Ever!')} ${i18n:_('But')} - ${i18n:_('without you, LibrePlan can’t exist.')} - ${i18n:_('Giving a gift today means LibrePlan continues to remain available and in active development tomorrow!')} + ${i18n:_('without you, TASKPM can’t exist.')} + ${i18n:_('Giving a gift today means TASKPM continues to remain available and in active development tomorrow!')} @@ -204,7 +204,7 @@ document.getElementById("supported-browsers-box").setAttribute("class", "supported-browsers not-supported"); alertString = "${i18n:_('The browser you are using')}"; alertString += " ("+navigator.appName+") "; - alertString += "${i18n:_('is not supported for its use with LibrePlan.')}"; + alertString += "${i18n:_('is not supported for its use with TASKPM.')}"; alertString += "${i18n:_('Please use some of the compatible browsers: Chrome, Firefox, Safari or Epiphany.')}"; window.alert(alertString); } diff --git a/libreplan-webapp/src/main/webapp/common/layout/template.zul b/libreplan-webapp/src/main/webapp/common/layout/template.zul index 57d2bc98a..ce7afc08a 100644 --- a/libreplan-webapp/src/main/webapp/common/layout/template.zul +++ b/libreplan-webapp/src/main/webapp/common/layout/template.zul @@ -20,8 +20,8 @@ --> - - + + . --> - - + + diff --git a/libreplan-webapp/src/main/webapp/common/pageNotFound.zul b/libreplan-webapp/src/main/webapp/common/pageNotFound.zul index 53ddabfdc..158dd9d7b 100644 --- a/libreplan-webapp/src/main/webapp/common/pageNotFound.zul +++ b/libreplan-webapp/src/main/webapp/common/pageNotFound.zul @@ -19,11 +19,11 @@ along with this program. If not, see . --> - + - - + + diff --git a/libreplan-webapp/src/main/webapp/costcategories/costCategory.zul b/libreplan-webapp/src/main/webapp/costcategories/costCategory.zul index cc588d3d9..d0b77ff3a 100644 --- a/libreplan-webapp/src/main/webapp/costcategories/costCategory.zul +++ b/libreplan-webapp/src/main/webapp/costcategories/costCategory.zul @@ -20,11 +20,11 @@ --> - + - - + + diff --git a/libreplan-webapp/src/main/webapp/email/email_templates.zul b/libreplan-webapp/src/main/webapp/email/email_templates.zul index 716b1549f..6dd66d12b 100644 --- a/libreplan-webapp/src/main/webapp/email/email_templates.zul +++ b/libreplan-webapp/src/main/webapp/email/email_templates.zul @@ -18,14 +18,14 @@ --> - + - - + + diff --git a/libreplan-webapp/src/main/webapp/excetiondays/exceptionDays.zul b/libreplan-webapp/src/main/webapp/excetiondays/exceptionDays.zul index 3c12eebc0..d3a95279a 100644 --- a/libreplan-webapp/src/main/webapp/excetiondays/exceptionDays.zul +++ b/libreplan-webapp/src/main/webapp/excetiondays/exceptionDays.zul @@ -19,14 +19,14 @@ along with this program. If not, see . --> - + - - + + diff --git a/libreplan-webapp/src/main/webapp/expensesheet/expenseSheet.zul b/libreplan-webapp/src/main/webapp/expensesheet/expenseSheet.zul index db1330c5f..afc38a4ca 100644 --- a/libreplan-webapp/src/main/webapp/expensesheet/expenseSheet.zul +++ b/libreplan-webapp/src/main/webapp/expensesheet/expenseSheet.zul @@ -18,11 +18,11 @@ --> - + - - + + diff --git a/libreplan-webapp/src/main/webapp/externalcompanies/externalcompanies.zul b/libreplan-webapp/src/main/webapp/externalcompanies/externalcompanies.zul index 06bb5c71e..efa4f835a 100644 --- a/libreplan-webapp/src/main/webapp/externalcompanies/externalcompanies.zul +++ b/libreplan-webapp/src/main/webapp/externalcompanies/externalcompanies.zul @@ -20,11 +20,11 @@ --> - + - - + + diff --git a/libreplan-webapp/src/main/webapp/help/ca/01-introducion.html b/libreplan-webapp/src/main/webapp/help/ca/01-introducion.html new file mode 100644 index 000000000..294f7267c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ca/01-introducion.html @@ -0,0 +1,147 @@ + + + + + + +Introducción + + + +
+

Introducción

+ + +

El propósito de este documento es describir las características de LibrePlan y +proporcionar información a los usuarios sobre cómo configurar y utilizar la +aplicación.

+

LibrePlan es una aplicación web de código abierto para la planificación de +proyectos. Su objetivo principal es proporcionar una solución completa para la +gestión de los proyectos de la empresa. +Para cualquier información específica que necesites sobre este software, por +favor ponte en contacto con el equipo de desarrollo en +http://www.libreplan.com/contact/

+
+images/company_view.png +

Vista global de empresa

+
+
+

Vista global de la empresa y gestión de perspectivas

+

Como se muestra en la anterior la captura de la pantalla principal de la aplicación y la vista global de la empresa, una vista en la que el usuario puede ver la lista de proyectos planificados para conocer el estado global de la empresa, tanto a nivel de pedidos, como del uso de recursos. La vista global de la empresa está, asimismo, formado por 3 perspectivas:

+
    +
  • Vista de planificación: Vista que combina dos puntos de vista:

    +
    +
      +
    • Vista de los pedidos y su temporalidad: Cada proyecto es una caja de diagramas de Gantt indicando la fecha de comienzo y de fin del proyecto. Además, se combina dicha información con el mostrado de la fecha acordada de finalización (deadline) y con un contraste entre porcentaje de avance y horas realmente dedicadas a cada proyecto. Esta información da una visión clara de cómo se encuentra la empresa en un momento dado. Esta vista es la portada de la aplicación.
    • +
    • Gráfica de uso de los recursos de la empresa: Gráfica que busca la información de asignaciones de los recursos a los proyectos y que ofrece un resumen de cómo está el uso de los recursos de toda la empresa: el color verde indica asignaciones de recursos por debajo del 100%, la línea negra indica la carga disponible de recursos y el color amarillo indica las asignaciones a recursos que están por encima del 100%. Es posible disponer de menos asignaciones que recursos disponibles y al mismo tiempo contar con sobreasignaciones en recursos concretos.
    • +
    +
    +
  • +
  • Vista de carga de recursos: Pantalla que muestra el listado de trabajadores de la empresa y la carga debido la asignaciones específicas a tareas o asignaciones genéricas debido a que el recurso satisface una lista de criterios. Ver siguiente imagen. Para acceder a esta vista es necesario hacer click en Carga global de recursos.

    +
  • +
  • Vista de administración de pedidos. Pantalla que muestra el listado de pedidos de la empresa donde el usuario pode realizar las siguientes operaciones: filtrar, editar, borrar, visualizar en planificación o crear nuevo pedido. Para acceder a esta vista es necesario hacer click en Lista de pedidos.

    +
  • +
+
+images/resources_global.png +

Vista global de recursos

+
+
+images/order_list.png +

Estructura de Descomposición de Trabajo

+
+

La gestión de perspectivas que se comentó para la vista global de empresa es muy similar a la planteada para un solo proyecto. El acceso a un proyecto se puede realizar de varias formas:

+
    +
  • Presionando en el botón derecho sobre la caja de diagrama de Gantt del pedido y seleccionando en Planificar.
  • +
  • Accediendo al listado de pedidos y haciendo click en el icono simbolizando los diagramas de Gantt.
  • +
  • Creando un nuevo pedido y cambiar de perspectiva sobre el pedido siendo visualizado.
  • +
+

Sobre un pedido, la aplicación muestra las siguientes perspectivas:

+
    +
  • Vista de planificación. Vista en la que el usuario puede visualizar la planificación de las tareas, dependencias, hitos, etc. Ver sección de Planificación para más información.
  • +
  • Vista de carga de recursos. Vista en la que el usuario puede comprobar la carga de los recursos asignados al proyecto. El código de colores es mismo que en la vista global de empresa: verde para carga menor al 100%, amarillo para carga igual a 100% y rojo para carga mayor a 100%. La carga puede venir dada por una tarea o por una lista de criterios (asignación genérica).
  • +
  • Vista de edición de pedido. Vista en la que el usuario puede administrar los datos del pedido. Ver sección de Pedidos para más información.
  • +
  • Vista de asignación avanzada de recursos. Vista en la que el usuario puede asignar recursos de manera avanzada, seleccionando las horas por día o las funciones de asignación que desea aplicar. Ver sección de Asignación de recursos para más información.
  • +
+
+
+

¿Por que es útil LibrePlan?

+

LibrePlan es una aplicación que se ha desarrollado como una herramienta de +planificación de propósito general. Se basa en una serie de conceptos +descubiertos mediante el análisis de problemas en la planificación de proyectos +industriales que no estaban completamente cubiertos por ninguna herramienta de +planificación existente. Otras de las motivaciones para el desarrollo de +LibrePlan se basaban en proporcionar una alternativa de software libre, y +complétamente web, a las herramientas de planficación privativas existentes.

+

Los conceptos esenciales que se utilizan para el programa son los siguientes:

+
    +
  • Vista global de empresa y multiproyecto: LibrePlan es una aplicación orientada específicamente a dotar de información a los usuarios sobre proyectos que se llevan a cabo en una empresa, por lo que la base es multiproyecto. No se determinó que el enfoque del proyecto sea orientado individualmente a cada proyecto. Sin embargo, también é posible posible disponer de varias vistas específicas, entre ellas la de proyectos individuales.
  • +
  • Gestión de perspectivas: La vista global de empresa o vista multiproyecto se ve complementada con las perspectivas sobre la información que se almacena. Por ejemplo, la vista global de empresa permite visualizar los pedidos y contrastar el estado de los mismos, visualizar la carga general de recursos de la empresa y administrar los pedidos. Por otro lado, en la vista de proyecto, es posible visualizar la planificación, la carga de recursos, la vista de asignación de recursos avanzada y la edición del pedido relacionado.
  • +
  • Criterios: Los criterios son una entidad del sistema que permiten clasificar los recursos (tanto humanos como máquinas) y las tareas. Desde el punto de vista de los recursos, estos deben satisfacer criterios y, desde el punto de vista de las tareas, estas requiren criterios a ser satisfechos. Se corresponden con uno de los aspectos más importantes de la aplicación, ya que los criterios forman parte de la base de las asignaciones genéricas en la aplicación, resolviendo uno de los problemas más importantes para el sector, la alta temporalidad de los recursos humanos y la dificultad para tener estimaciones de carga de la empresa a largo plazo.
  • +
  • Recursos: Son de dos tipos diferentes: humanos y máquinas. Los recursos humanos son los trabajadores de la empresa que se utilizan para planificar, monitorizar y controlar la carga de la empresa. Y, por outro lado, las máquinas, dependientes de las persoas que las gestionan, son otros recursos que actúan de modo similar a los recursos humanos.
  • +
  • Asignación de recursos: Una de las claves es el hecho de ofrecer la posibilidade de dos tipos de asignación: asignación específica y asignación genérica. La genérica es una asignación basada en los criterios que se requieren para realizar una tarea, y que deben ser satisfechos por recursos que tienen la capacidad de realizarlas. Para entender la asignación genérica es necesario entender el siguiente caso: Jonh Smith es soldador, generalmente el propio Jonh Smith es asignado a la tarea planificada, pero "LibrePlan" ofrece la posibilidad de elegir un recurso en general entre los soldadores da empresa, sin preocuparse de si Jonh Smith es el asignado a la tarea.
  • +
  • Control de carga de la empresa: La aplicación da la posibilidad de tener un control sencillo de la carga de los recursos de la empresa. Este control se realiza a medio y largo plazo ya que se pueden controlar tanto los proyectos presentes como los potenciales proyectos a futuro. "LibrePlan" ofrece gráficos de uso de recursos.
  • +
  • Etiquetas: Son elementos que se usan para lo etiquetado de las tareas de los proyectos. Con estas etiquetas el usuario de la aplicación puede realizar agrupaciones conceptuales de las tareas para posteriormente poder consultarlas de manera agrupada y filtrada.
  • +
  • Filtrados: Dado que el sistema dispone de manera natural de elementos que etiquetan o caracterízan tareas y recursos, es posible utilizar filtrado de criterios o etiquetas, lo cual dota de una gran potencia para poder consultar información categorizada o extraer informes específicos en base a criterios o etiquetas.
  • +
  • Calendarios: Los calendarios determinan las horas productivas disponibles de los diferentes recursos. El usuario puede crear calendarios generales de la empresa y derivar las características para calendarios más concretos, llegando hasta a nivel de calendario por recurso o tarea.
  • +
  • Pedido y elementos de pedido: Los trabajos solicitados por los clientes tienen un reflejo en la aplicación en forma de pedido, que se estructura en elementos de pedido. El pedido con sus elementos conforman una estructura jerárquica en n niveles. Este árbol de elementos es sobre la que se trabaje a la hora de planificar trabajos.
  • +
  • Avances: La aplicación permite gestionar diversos tipos de avances. Un proyecto puede ser medido en porcentaje de avance, sin embargo, puede ser medido en unidades, presupuesto acordado, etc. Es responsabilidad de la persona que gestiona la planificación decidir que tipo de avance es utilizado para contrastar avances a niveles superiores de proyecto.
  • +
  • Tareas: Las tareas son los elementos de planificación de la aplicación. Son utilizadas para temporalizar los trabajos a realizar. Las características más importantes de las tareas son: tienen dependencias entre sí y pueden requerir criterios a ser satisfechos para asignar recursos.
  • +
  • Partes de trabajo: Son los partes de los trabajadores de las empresas, indicando las horas trabajadas y por otro lado las tareas asignadas a las horas que un trabajador realizó. Con esta información, el sistema es capaz de calcular cuantas horas fueron consumidas de una tarea con respeto al total de horas presupuestadas, permitiendo contrastar los avances respeto del consumo de horas real.
  • +
+

A mayores de las funcionalidades que ofrece la aplicación caben destacar otras características que lo distinguen de aplicaciones similares:

+
    +
  • Integración con ERP: La aplicación importa información directamente de los ERP de las empresas para los pedidos, recursos humanos, partes de trabajo y ciertos criterios.
  • +
  • Gestión de versiones: La aplicación permite la gestión de diversas versiones de planificaciones y al incluso tiempo a posibilidad de consultar la información de cada una de ellas.
  • +
  • Gestión de históricos: La aplicación no borra información, solo la invalida, por lo que es posible consultar mediante filtrados por fechas la información antigua.
  • +
+
+
+

Convenciones de usabilidad

+
+

Comportamiento de los formularios

+

Antes de realizar una exposición de las distintas funcionalidades asociadas a los módulos más importantes, es necesario hacer una explicación general de la filosofía de navegación y formularios.

+

Existen fundamentalmente 3 tipos de formularios de edición:

+
    +
  • Formularios con botón de Volver. Estos formularios forman parte de una navegación más completa, y los cambios que se van realizando se van almacenando en memoria. Los cambios sólo se aplican cuando el usuario almacena explícitamente toda los datos de la pantalla desde la que llegó la dicho formulario.
  • +
  • Formularios con botón de Guardar y Cerrar. Estos formularios permiten realizar 2 operaciones. La primera de ellas almacena y cierra la ventana actual y la segunda de ellas cierra sin almacenar los cambios.
  • +
  • Formularios con botón de Guardar y Continuar, "Guardar" y "Cerrar". Permiten realizar 3 operaciones. La primera de ellas almacena pero continúa en el formulario actual. La segunda almacena y cierra el formulario. Y la tercera cierra la ventana sin almacenar los cambios.
  • +
+
+
+

Iconos y botones estándar

+
    +
  • Edición: La edición de los registros de la aplicación puede ser realizada generalmente a través de un icono formado por un lápiz sobre una libreta blanca.
  • +
  • Indentado izquierda: Generalmente estas operaciones son necesarias para elementos de un árbol que se desean mover hacia niveles internos. Esta operación puede ser hecha con el icono formado por una flecha hacia derecha de color verde.
  • +
  • Indentado derecha: Generalmente estas operaciones son necesarias para elementos de un árbol que se desean mover desde niveles internos cara externos. Esta operación puede ser hecha con el icono formado por una flecha hacia izquierda de color verde.
  • +
  • Borrado: Los borrados pueden ser realizados con el icono de la papelera.
  • +
  • Búsqueda: La lupa es un icono que indica que la entrada de texto a la izquierda de la misma está pensada para la búsqueda de elementos.
  • +
+
+
+

Pestañas

+

Existirán formularios de edición y administración de contenidos que se encuentran representados mediante componentes gráficos basados en pestañas. Dicha presentación es un mecanismo para organizar la información de un formulario global en diferentes secciones que pueden ser accedidas presionando en los títulos de las diferentes pestañas, manteniendo el estado en el que se encontraban las demás. En todos estos casos, las operaciones de guardar o cancelar que se ejecuten afectan al conjunto de subformularios de las diferentes pestañas.

+
+
+

Acciones explícitas y ayuda contextual

+

Están implementados en la aplicación componentes que proporcionan un texto descriptivo adicional del elemento sobre que se encuentra enfocado al transcurrir un segundo sobre los mismos. +Las acciones que el usuario puede ejecutar en la aplicación están explicitadas tanto en las etiquetas de los botones y en los textos de ayuda que aparecen sobre los mismos, en las opciones del menú de navegación o en las opciones de los menús contextuales que se despliegan el hacer click en el botón derecho en el área del planificador. +Asimismo, también se proporcionan atajos a las operaciones principales haciendo doble click en los elementos que se listan, o asociando los eventos de teclado con los cursores y la tecla de retorno al desplazamiento por los formularios es a la acción de añadir elementos, respectivamente.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ca/02-criterios.html b/libreplan-webapp/src/main/webapp/help/ca/02-criterios.html new file mode 100644 index 000000000..dd8e946c4 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ca/02-criterios.html @@ -0,0 +1,68 @@ + + + + + + +Criterios + + + +
+

Criterios

+ + +

Los criterios son los elementos que se utilizan en la aplicación para categorizar los recursos y las tareas. Las tareas requieren criterios y los recursos los satisfacen. Un ejemplo de utilización de criterios es la siguiente secuencia: un recurso es asignado con el criterio "soldador" (es decir, satisface el criterio "soldador") y una tarea requiere el criterio "soldador" para ser realizada, en consecuencia ante una asignación de recursos a tareas los trabajadores con criterio "soldador" son los utilizados a la hora de asignar recursos genéricamente (no aplica en las asignaciones específicas). Ver capítulo de asignación de recursos para entender los distintos tipos de asignaciones.

+

En el proyecto, existen varias operaciones que se pueden realizar con criterios:

+
    +
  • Administración de criterios
  • +
  • Asignación de criterios a recursos.
  • +
  • Asignación de criterios a tareas.
  • +
  • Filtrado de entidades por criterios. Es posible filtrar tareas y elementos de pedido por criterios para realizar operaciones en la aplicación.
  • +
+

De las tres funcionalidades anteriores sólo se explicará la primera de ellas en esta sección dejando para secciones posteriores los dos tipos de asignación, la de recursos en el capitulo "Gestión de recursos" y la de filstrado en el capítulo "Planificación de tareas".

+
+

Administración de criterios

+

La administración de criterios es accesible desde el menú de administración:

+
+images/menu.png +

Pestañas de menú de primer nivel

+
+

La operación específica para administrar criterios es Gestionar Criterios. A partir de dicha operación es posible listar los criterios disponibles en el sistema.

+
+images/lista-criterios.png +

Listado de criterios

+
+

Presionando en el botón Crear se podrá acceder al formulario de creación/edición de un criterio. La edición de un criterio se realiza presionando en el icono de edición del incluso.

+
+images/edicion-criterio.png +

Edición de criterios

+
+

En el formulario de edición de criterios que se muestra en la imagen anterior se pueden realizar las siguientes operaciones:

+
    +
  • Edición del nombre del criterio
  • +
  • Indicar si es posible asignar varios valores simultáneamente ó mesmo elemento para el tipo de criterio seleccionado. Por ejemplo, un recurso que satisface dos criterios, soldador y torneiro.
  • +
  • Indicar el tipo del criterio:
      +
    • Tipo genérico: Criterio que puede satisfacer indistintamente una máquina o un trabajador.
    • +
    • Tipo trabajador: Criterio que puede satisfacer un trabajador exclusivamente.
    • +
    • Tipo máquina: Criterio que puede satisfacer una máquina exclusivamente.
    • +
    +
  • +
  • Indicar si el criterio es jerárquico o no. Existen casos en los que los criterios deben ser tratados jerarquicamente, es decir, que el hecho de ser un criterio asignado a un elemento no hoja haga que este criterio esté asignado automáticamente a los hijos. Un ejemplo claro de jerarquización de criterios es el criterio localización, por ser jerárquico una persona que haya asignado Galicia como localización pertenecerá a la localización España.
  • +
  • Indicar si el criterio está habilitado y deshabilitado. Esta es el modo de borrar criterios. Debido a que una vez creado un criterio, y utilizado en datos históricos, estos no pueden ser cambiados, el criterio debe existir en el sistema. Para evitar que este criterio salga en diferentes elementos de selección, puede ser invalidado.
  • +
  • Realizar una descripción del criterio.
  • +
  • Añadir nuevos valores. En la segunda parte del formulario aparece una entrada de texto con un botón Nuevo Criterio.
  • +
  • Editar el nombre de los criterios existentes.
  • +
  • Desplazar verticalmente los criterios en la lista de los existentes.
  • +
  • Eliminar un valor de criterio de la lista.
  • +
+

El formulario de administración de criterios es un formulario que responde a las características de los formularios comentados en la introducción como de 3 operaciones (guardar, guardar y cerrar y cerrar).

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ca/03-calendarios.html b/libreplan-webapp/src/main/webapp/help/ca/03-calendarios.html new file mode 100644 index 000000000..389ba3194 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ca/03-calendarios.html @@ -0,0 +1,210 @@ + + + + + + +Calendarios + + + +
+

Calendarios

+ + +

Los calendarios son las entidades de la aplicación que determinan las capacidad de carga de los distintos recursos. Un calendario está formado por una serie de días anuales, donde cada día dispone de horas disponibles para trabajar.

+

Por ejemplo, un festivo puede tener 0 horas disponibles y, si las horas de trabajo dentro de un día laboral son 8, es este número lo que se asigna como tiempo disponible para ese día.

+

Existen dos modos de indicar al sistema cuantas horas de trabajo tiene un día:

+
    +
  • Por día de la semana. Por ejemplo, los lunes se trabajan 8 horas generalmente.
  • +
  • Por excepciones. Por ejemplo, el lunes 30 de Enero se trabajan 10 horas.
  • +
+
+

Administración de calendarios

+

El sistema de calendarios es jerárquico, de modo que se pueden crear calendarios base o calendarios que heredan de dichos calendarios, manteniendo una estructura arbórea. Un calendario que hereda de un calendario de nivel superior del árbol, hereda las dedicaciones diarias y las excepciones, siempre y cuando no sean modificadas explícitamente para el calendario hijo. Además, es necesario entender los siguientes conceptos para administrar calendarios:

+
    +
  • Cada día es independiente entre sí y cada año tiene días diferentes, es decir, si se marca el 8 de Diciembre de 2009 cómo festivo eso no quiere decir que el año 2010 ya tenga el día 8 de Diciembre como festivo.
  • +
  • Los días laborales se marcan en base a días de la semana, es decir, si se determina que lo normal es trabajar 8 horas los lunes, quedan todos los lunes de todas las semanas de los diferentes años marcados cómo 8 horas disponibles.
  • +
  • Es posible marcar excepciones o intervalos de excepción, es decir, elegir un día concreto o grupo de días en los que las horas disponibles sean diferentes a la regla general para dichos días de la semana.
  • +
+
+images/calendar-administration.png +

Administración de calendarios

+
+

La administración de calendarios es accesible desde las operaciones de la pestaña de "Administración". Desde dicho punto el usuario puede realizar las siguientes operaciones:

+
    +
  1. Crear un nuevo calendario desde cero.
  2. +
  3. Crear un calendario derivado de otro calendario.
  4. +
  5. Crear un calendario como copia de otro calendario.
  6. +
  7. Editar un calendario existente.
  8. +
+
+

Creación de un nuevo calendario

+

Para la creación de un nuevo calendario es necesario presionar en el botón "Crear". El sistema muestra un formulario en el que el usuario puede realizar las siguientes operaciones:

+
    +
  • Elegir la pestaña en la que desea trabajar:

    +
    +
      +
    • Marcado de excepciones.
    • +
    • Selección de horas trabajadas por día.
    • +
    +
    +
  • +
  • +
    Si el usuario selecciona el marcado de excepciones:
    +
      +
    • Seleccionar un día específico del calendario.
    • +
    • Marcar el tipo de excepción. Los tipos disponibles son: vacaciones, baja, huelga, festivo, festivo trabajable.
    • +
    • Seleccionar la fecha de fin del intervalo de excepción (para marcar excepciones de 1 día de duración no se necesita modificar este campo).
    • +
    • Marcar el número de horas trabajadas durante los días excepcionales.
    • +
    • Borrar excepciones previas.
    • +
    +
    +
    +
  • +
  • Si el usuario elige la selección de horas trabajadas por día:

    +
    +
      +
    • Marcar las horas disponibles para cada día de la semana (lunes, martes, miércoles, jueves, viernes, sábados y domingos).
    • +
    • Crear nuevas distribuciones de horas semanales aplicables en el futuro.
    • +
    • Borrar distribuciones de horas realizadas previamente.
    • +
    +
    +
  • +
+

Con estas operaciones un usuario de la aplicación tiene la capacidad de personalizar los calendarios completamente a sus necesidades. Para almacenar los cambios en el formulario es necesario presionar en el botón "Guardar".

+
+images/calendar-edition.png +

Edición de calendario

+
+
+images/calendar-exceptions.png +

Inclusión de excepción en calendario

+
+
+
+

Creación de un calendario derivado

+

Un calendario derivado es un calendario que se crea como hijo de un existente, es decir, hereda todas las características del original y al mismo tiempo es posible modificarlo para que contenga sus particularidades.

+

Un ejemplo de uso de calendarios derivados es la existencia de un calendario general para España, y la creación de un derivado para sólo incluir los festivos gallegos añadidos sobre los que ya estaban definidos en el general.

+

Es importante destacar que ante cualquier modificación realizada sobre el calendario original el derivado es directamente afectado, siempre y cuando, no se hubiese definido una actuación concreta sobre él mismo. Por ejemplo, en el calendario de España se incluye un día laboral en el 17 de Mayo con 8 horas de trabajo y en el calendario gallego, que se creó como derivación, el día 17 de Mayo es considerado un día de 0 horas de trabajo por ser festivo. Si sobre el calendario español se cambian los días de la semana del 17 Mayo para que las horas disponibles sean 4 diarias, en el gallego lo que sucede es que todos los días de la semana del 17 de Mayo tiene 4 horas disponibles excepto el día 17 que tiene 0 horas, tal y como explícitamente se había establecido antes.

+
+images/calendar-create-derived.png +

Creación de calendario derivado

+
+

Para crear un calendario derivado en la aplicación, es necesario hacer el siguiente:

+
    +
  • Acceder al menú de Administración.
  • +
  • Presionar en la operación de Administración de calendarios.
  • +
  • Elegir uno de los calendarios sobre el que se desea realizar un derivado y presionar en el botón "Crear".
  • +
  • Una vez realizada esta operación el sistema muestra un formulario de edición con las mismas características que los formularios para crear calendarios desde cero, con la diferencia de que las excepciones y las horas por día de la semana se proponen en base al calendario original.
  • +
+
+
+

Creación de un calendario por copia

+

Un calendario copiado es un calendario que se crea como copia exacta de otro existente, es decir, que recibe todas las características del original y, al mismo tiempo, es posible modificarlo para que contenga sus particularidades.

+

La diferencia entre copiar y derivar un calendario radica en los cambios en el original. En el caso de copias, si el original es modificado, no afecta a la copia, sin embargo, cuando se deriva, sí afecta al hijo.

+

Un ejemplo de uso de calendario por copia es el disponer de un calendario para "Pontevedra" y necesitar un calendario para "A Coruña" donde la mayoría de las características son las mismas, sin embargo, no se espera que los cambios en uno afecten al otro.

+

Para crear un calendario copiado en la aplicación, es necesario hacer el siguiente:

+
    +
  • Acceder al menú de Administración.
  • +
  • Presionar en la operación de administración de calendarios.
  • +
  • Elegir uno de los calendarios sobre lo que se desea realizar un derivado y presionar en el botón "Crear".
  • +
  • Una vez realizada esta operación el sistema muestra un formulario de edición con las mismas características que los formularios para crear calendarios desde cero, con la diferencia de que las excepciones y las horas por día de la semana se proponen en base al calendario original.
  • +
+
+
+

Calendario por defecto

+

Uno de los calendarios existentes en el sistema puede ser dado de alta como por defecto. Este calendario es lo que se asigna a cualquier entidad que en el sistema sea gestionado con calendarios.

+

Para configurar el calendario por defecto se debe realizar el siguiente:

+
    +
  • Acceder al menú de Administración.
  • +
  • Presionar en la operación Configuración.
  • +
  • Donde aparece el texto Calendario por defecto, seleccionar el que se desee establecer como calendario por defecto de la aplicación.
  • +
  • Presionar en Guardar.
  • +
+
+images/default-calendar.png +

Creación de calendario por defecto

+
+
+
+

Asignación de calendario a recursos

+

Los recursos sólo tienen activación, es decir, horas disponibles para trabajar, si disponen de un calendario asignado con un período válido de activación. Si no se le asignó ningún calendario a los recursos, los recursos tienen asignado el calendario por defecto con un período de activación que comienza en la fecha de alta y sin fecha de caducidad.

+
+images/resource-calendar.png +

Calendario de recursos

+
+

Sin embargo, es posible eliminar el calendario asignado previamente a un recurso y crear un calendario nuevo a partir de un existente. De este modo hay recursos que puedan ser completamente personalizados a nivel de calendario.

+

Para asignar un calendario a un recurso es necesario dar los siguientes pasos:

+
    +
  • Acceder a la edición de recursos.

    +
  • +
  • Elegir un recurso y presionar en editar.

    +
  • +
  • Seleccionar la pestaña de "Calendario".

    +
  • +
  • A partir de la pestaña anterior aparece un calendario con las excepciones, las horas trabajables por día y los períodos de activación.

    +
  • +
  • Para cada pestaña:

    +
    +
      +
    • Excepciones: Es posible elegir el tipo de excepción y un período en el que se aplica para poder incluir las vacaciones, días festivos, laborables diferentes, etc.
    • +
    • Semana de trabajo: Es posible modificar las horas trabajadas durante los distintos días de la semana (lunes, martes, etc.).
    • +
    • Períodos de activación: Es posible crear nuevos períodos de activación que refleja las fechas de inicio y fin de los contratos asociados al recurso. Ver la siguiente imagen.
    • +
    +
    +
  • +
  • Para almacenar es necesario presionar en Guardar.

    +
  • +
  • El usuario puede presionar en Borrar se desea cambiar el calendario asignado al recurso.

    +
  • +
+
+images/new-resource-calendar.png +

Asignación de nuevo calendario a recurso

+
+
+
+

Asignación de calendario a pedidos

+

Los proyectos pueden disponer de un calendario diferente al calendario por defecto. Para cambiar el calendario del pedido es necesario:

+
+
    +
  • Acceder al listado de pedidos dentro de la vista global de empresa.
  • +
  • Editar el pedido en cuestión.
  • +
  • Acceder a la pestaña de "Datos generales".
  • +
  • Seleccionar en el desplegable de selección el calendario que se desea asignar.
  • +
  • Presionar en "Guardar" o "Guardar y Continuar".
  • +
+
+
+
+

Asignación de calendario a tareas

+

Al igual que se permite asignar calendarios a recursos o pedidos, es posible realizar la misma operación para tareas planificadas. Esta operación permite definir calendarios específicos para momentos concretos de un proyecto. Para realizar esta operación es necesario:

+
+
    +
  • Acceder a la planificación de un proyecto.
  • +
  • Presionar en el botón derecho sobre la tarea a la que se desea asignar calendario.
  • +
  • Seleccionar la operación "Asignación de calendario".
  • +
  • Elegir el calendario que se desea asignar a la tarea.
  • +
  • Presionar en "Aceptar".
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ca/04-avances.html b/libreplan-webapp/src/main/webapp/help/ca/04-avances.html new file mode 100644 index 000000000..040131831 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ca/04-avances.html @@ -0,0 +1,99 @@ + + + + + + +Avances + + + +
+

Avances

+ + +

El avance de un proyecto marca el grado en el que se está cumpliendo con el alcance estimado para la realización del mismo, además, el avance de una tarea indica ese mismo grado para el alcance estimado para dicha tarea.

+

Generalmente los avances no tienen un modo automático de ser medidos, y es una persona quien en base a la experiencia o a la realización de una lista de chequeo determina el grado de compleción de una tarea o un proyecto.

+

Cabe destacar que hay una diferencia importante entre el uso de horas asignadas a una tarea o proyecto, con el grado de avance en esa misma tarea o proyecto. Mientras que el uso de horas puede estar en desvío o no, el proyecto puede estar en un grado de avance inferior o superior al estimado para el día en el que se está controlando. Se producen, debido la estas dos medidas, varias posibles situaciones:

+
    +
  • Se consumieron menos horas de las estimadas para el elemento a medir y, al mismo tiempo, el proyecto está yendo más lento de lo estimado, porque el avance es inferior al estimado para el día de control.
  • +
  • Se consumieron menos horas de las estimadas para el elemento a medir y, al mismo tiempo, el proyecto está yendo más rápido del estimado, porque el avance es inferior al estimado para el día de control.
  • +
  • Se consumieron más horas de las estimadas y, al mismo tiempo, el proyecto está yendo más lento del estimado, porque el avance es inferior al estimado para el día de control.
  • +
  • Se consumieron más horas de las estimadas y, al mismo, tiempo el proyecto está yendo más rápido del estimado, porque el avance es inferior al estimado para el día de control.
  • +
+

El contraste de estas posibles situaciones es posible realizarlo desde la propia planificación, utilizando información del grado de avance y por otro lado del grado de uso de horas. En este capítulo se tratará la introducción de la información para poder llevar un control del avance.

+

La filosofía implantada en el proyecto para el control del avance está basada en que el usuario divida hasta el punto en el que desea el control de avances de sus proyectos. En consecuencia, si el usuario desea controlar a nivel de pedido, sólo debe introducir información en los elementos de nivel 1, cuando se desea poder disponer de un control más fino sobre las tareas, debe introducir información de avances en niveles inferiores, siendo el sistema que propaga hacia arriba en la jerarquía todos los datos.

+
+

Gestión de tipos de avance

+

Cada empresa puede tener unas necesidades diferentes de control del avance de sus proyectos, y concretamente de las tareas que los componen. Por esta razón fue necesario contemplar la existencia de unas entidades en el sistema llamadas "tipos de avance". Los tipos de avance son diferentes tipologías que cada usuario puede dar de alta en el sistema para medir el avance de una tarea. Por ejemplo, una tarea puede ser medida porcentualmente, pero al mismo tiempo ese avance porcentual se traduce en un avance en Toneladas sobre lo acordado con el cliente.

+

Un tipo de avance está caracterizado por un nombre, un valor máximo y una precisión:

+
    +
  • Nombre: Será un nombre representativo que el usuario debe recordar para cuando seleccione la asignación de avances sea capaz de entender que tipo de avance está midiendo.
  • +
  • Valor máximo: Es el valor máximo que se le permite a una tarea o proyecto establecer como medida total de avance. Por ejemplo, trabajando con Toneladas, si se considera que el máximo normal en toneladas es de 4000 y nunca va a haber tareas que requieran realizar más de 4000 toneladas de algún material, ese debería ser el valor máximo establecido.
  • +
  • Precisión: Es el valor de los incrementos que se permiten para el tipo de avance creado. Por ejemplo, si el avance en Toneladas se va a medir en valores redondeados, podría ser 1 la precisión. Desde ese momento, sólo se podrían introducir medidas de avance con números enteros, por ejemplo, 1, 2, 300, etc.
  • +
+

El sistema cuenta con dos tipos de avance creados por defecto:

+
    +
  • Porcentual: Tipo de avance general que permite medir el avance de un proyecto o tarea en base al porcentaje que se estima de compleción, por ejemplo, una tarea está al 30% respeto al 100% estimado en un día concreto.
  • +
  • Unidades: Tipo de avance general que permite medir el avance en unidades sin necesidad de especificar las unidades concretas. La tarea comprendía la creación de 3000 unidades y el avance son 500 unidades sobre las 3000 estimadas.
  • +
+
+images/tipos-avances.png +

Administración de tipos de avances

+
+

El usuario puede crear nuevos tipos de avance de la siguiente manera:

+
    +
  • El usuario accede a la sección de "Administración".
  • +
  • Presiona en la opción del menú de segundo nivel "Gestionar tipos de avance".
  • +
  • El sistema muestra un listado de tipos de avance existentes.
  • +
  • Con cada tipo de avance el usuario puede:
      +
    • Editar
    • +
    • Borrar
    • +
    +
  • +
  • A mayores, el usuario puede crear un tipo de avance nuevo.
  • +
  • Con la edición o la creación, el sistema muestra un formulario con la siguiente información:
      +
    • Nombre del tipo de avance.
    • +
    • Valor máximo que acepta el tipo de avance.
    • +
    • Precisión del tipo de avance.
    • +
    +
  • +
+
+
+

Introducción de avances en base a tipo

+

La introducción de los avances se realiza sobre los elementos de pedido, sin embargo, es posible hacerlo con un atajo desde las tareas de planificación. Es responsabilidad del usuario la decisión sobre qué tipos de avance desea asociar a cada elemento de pedido.

+

Es posible introducir un tipo de avance único y defectivo para todo un pedido.

+

Antes de poder realizar medidas de avance, es necesario asociar el tipo elegido al pedido, por ejemplo, un avance de tipo porcentaje para medir porcentualmente los avances realizados sobre el total de la tarea, o un avance de tipo pactado por se se quieren introducir a futuro mediciones de avances pactadas con el cliente.

+
+images/avance.png +

Pantalla de introducción de avances con visualización gráfica.

+
+

Para introducir mediciones de avance es necesario realizar el siguiente:

+
    +
  • Seleccionar el tipo de avance para lo cual desea introducir el avance.
      +
    • Si no existe ningún tipo de avance es necesario añadir un tipo de avance.
    • +
    +
  • +
  • En el formulario que aparece debajo con los campos "Valor" y "Fecha" introducir el valor absoluto de la medida y la fecha que se le desea asignar a la medida tomada.
  • +
  • El sistema almacena automáticamente los datos introducidos.
  • +
+
+
+

Contraste de avances sobre un elemento del pedido

+

Es posible contrastar graficamente las evoluciones de los avances de los pedidos en base a las mediciones realizadas. Cada tipo de avance dispone de una columna con botones de chequeo (de título "Mostrar") el cual al ser marcado se muestra la gráfica de evoluciones de medidas realizadas sobre el elemento de pedido.

+
+images/contraste-avance.png +

Contraste de varios avances.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ca/05-recursos.html b/libreplan-webapp/src/main/webapp/help/ca/05-recursos.html new file mode 100644 index 000000000..2126df896 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ca/05-recursos.html @@ -0,0 +1,177 @@ + + + + + + +Gestión de recursos + + + +
+

Gestión de recursos

+ + +

La aplicación gestiona dos tipos de recursos diferentes: recursos trabajadores y recursos máquinas.

+

Los recursos trabajadores representan los trabajadores de las empresas. Las características principales son:

+
    +
  • Satisfacen uno o varios criterios de tipo genérico o tipo trabajador.
  • +
  • Son asignables específicamente a una tarea.
  • +
  • Son asignables como parte de la asignación genérica a una tarea que requiera un criterio de tipo recurso.
  • +
  • Dispondrán de un calendario por defecto o específico si así lo decide el usuario.
  • +
+

Los recursos máquina representan las máquinas de las empresas. Las características principales son:

+
    +
  • Satisfacen uno o varios criterios de tipo genérico o tipo máquina.
  • +
  • Son asignables específicamente a una tarea.
  • +
  • Son asignables como parte de la asignación genérica a una tarea que requiera un criterio de tipo máquina.
  • +
  • Dispondrán de un calendario por defecto o específico si así lo decide el usuario.
  • +
  • Contará con una pantalla de configuración en la que se podrá establecer un valor alfa que represente la relación entre máquina y trabajador.
      +
    • El alfa representa cuanto tiempo de un trabajador es necesario para que la máquina funcione. Por ejemplo, un alfa de 0.5 indica que de cada 8 horas de máquina son necesarias 4 de un trabajador.
    • +
    • Es posible asignar un alfa de manera específica a un trabajador, es decir, se elige el trabajador que estará ocupado ese porcentaje de su tiempo con la máquina.
    • +
    • O bien, es posible hacer una asignación genérica en base a un criterio, de modo que se asigna un porcentaje del uso a todos los criterios que satisfacen ese criterio y tienen tiempo disponible. El funcionamiento de la asignación genérica es la misma que la explicada para asignaciones genéricas a tareas.
    • +
    +
  • +
+

El usuario puede crear, editar e invalidar (nunca borrar definitivamente) trabajadores de la empresa desde la pestaña de "Recursos". Desde dicha pestaña existen las siguientes operaciones:

+
    +
  • Listado de trabajadores: Los trabajadores se mostrarán listados y paginados, desde donde pueden gestionar sus datos.
  • +
  • Listado de máquinas: Las máquinas se mostrarán listados y paginados, desde donde pueden gestionar sus datos.
  • +
+
+

Gestión de trabajadores

+

La gestión de trabajadores se realiza desde la pestaña de "Recursos" y la operación de "Lista de trabajadores". Desde la lista de recursos es posible editar cada uno de los trabajadores presionando en el icono estándar de edición.

+

Una vez en la edición de un recurso, el usuario puede acceder a las siguientes pestañas:

+
    +
  1. Pestaña de datos de trabajador. Esta pestaña permite editar los datos básicos de identificación del trabajador.
      +
    • Nombre
    • +
    • Apellidos
    • +
    • DNI
    • +
    • Recursos limitantes (ver sección)
    • +
    +
  2. +
+
+images/worker-personal-data.png +

Edición de datos personales de trabajador

+
+
    +
  1. Pestaña de criterios. Desde este punto se podrá configurar los criterios que un trabajador satisface. El usuario puede asignar cualquier valor de criterio de tipo trabajador o genérico que así considere a un trabajador. ES importante, para que la aplicación sea utilizada en todo su valor, que los trabajadores satisfagan criterios. Para asignar criterios el usuario debe:
      +
    1. Presionar en el botón "Añadir criterio".
    2. +
    3. Buscar el criterio que desea añadir y seleccionar lo que encaje con su búsqueda.
    4. +
    5. Presionar en el botón de añadir.
    6. +
    7. Seleccionar fecha de inicio del criterio desde el momento que se aplica.
    8. +
    9. Seleccionar la fecha de fin de aplicación del criterio al recurso. Dicha fecha no es obligatoria indicando que el criterio es indefinido.
    10. +
    +
  2. +
+
+images/worker-criterions.png +

Asociación de criterios a trabajador

+
+
    +
  1. Pestaña de calendario. Pestaña desde la que se puede configurar un calendario específico para el recurso trabajador. Cada trabajador dispone de un calendario por defecto asignado, sin embargo, es posible asignar un calendario específico para cada uno a partir de uno existente.
  2. +
+
+images/worker-calendar.png +

Pestaña de calendario para un recurso

+
+
    +
  1. Pestaña de categoría de coste. Pestaña desde la que se puede configurar la categoría de coste que satisface un recurso en un período dado. Estos datos son utilizados para posteriormente calcular los costes asociados al trabajador en un proyecto.
  2. +
+
+images/worker-costcategory.png +

Pestaña de categoría de coste para recurso

+
+

La asignación de recursos se explica en la sección de asignación de recursos.

+
+
+

Gestión de máquinas

+

Las máquinas son recursos a todos los efectos, por lo cual, tal y como sucede con los trabajadores, las máquinas son administrables y asignables a tareas. La asignación de recursos se tratará en la sección de asignación. En este punto se explicarán las características específicas de las máquinas.

+

Las máquinas son administradas desde la entrada de menú "Recursos". En dicha sección existe una operación llamada "Listado de máquinas" que permite la visualización de las máquinas que disponen en una empresa. A partir de este listado se podrá editar o borrar una máquina.

+

En la edición de una máquina el sistema muestra una serie de pestañas desde las cuáles se permite administrar diferentes datos:

+
    +
  1. Pestaña de datos de la máquina. Pestaña para la edición de datos identificativos de las máquinas. Los datos modificables en esta pestaña son:

    +

    i Nombre.

    +

    ii Código de la máquina.

    +

    iii Descripción de la máquina.

    +
  2. +
+
+images/machine-data.png +

Edición de datos de máquina

+
+
    +
  1. Pestaña de criterios. Tal y como se comentó en la anterior sección de recursos trabajadores, esta es la pestaña en la que se pueden añadir criterios que satisfacen las diversas máquinas del sistema. Los criterios que son asignables a las máquinas son los de criterios de tipo máquina o genéricos. No se pueden asignar criterios de trabajadores. Para asignar criterios, el usuario debe:
      +
    1. Presionar en el botón "Añadir criterio".
    2. +
    3. Buscar el criterio que desea añadir y seleccionar lo que encaje con su búsqueda.
    4. +
    5. Seleccionar fecha de inicio del criterio desde el momento que deba aplicarse.
    6. +
    7. Seleccionar la fecha de fin de aplicación del criterio al recurso. Dicha fecha no es obligatoria indicando que el criterio es indefinido.
    8. +
    9. Presionar en el botón de "Guardar y Continuar".
    10. +
    +
  2. +
+
+images/machine-criterions.png +

Asignación de criterios a máquinas

+
+
    +
  1. Pestaña de calendario. Pestaña desde la que se puede configurar un calendario específico para el recurso máquina. Cada trabajador dispone de un calendario por defecto asignado, sin embargo, es posible asignar un calendario específico para cada uno a partir de un existente.
  2. +
+
+images/machine-calendar.png +

Asignación de calendario a máquina

+
+
    +
  1. Pestaña de configuración de máquinas: Desde esta pestaña es posible configurar la relación de las máquinas con los recursos trabajadores existentes. Una máquina dispone de un alfa que indica la relación entre la máquina y los recursos implicados, tal y como ya se comentó, un alfa de 0.5 indica que se consume trabajo de 0.5 personas para cada jornada completa de máquina. El sistema, a partir de un alfa, crea automáticamente asignaciones a los trabajadores que estén de alguna manera relacionados con la máquina una vez se asigna una máquina a una tarea. La forma de relacionar un trabajador con una máquina se puede hacer de dos maneras:

    +

    i Asignando específicamente un rango de fechas en las que el trabajador se desea asignar a una máquina. Es una asignación específica de modo que el sistema asigna automáticamente horas al trabajador cuando se planifique la máquina.

    +

    ii Asignando específicamente criterios que se desea satisfagan los trabajadores que sean asignados a las máquinas. De este modo se hará una asignación genérica a los trabajadores que satisfacen los criterios.

    +
  2. +
+
+images/machine-configuration.png +

Configuración de máquina

+
+
    +
  1. Pestaña de categoría de coste. Pestaña desde la que se puede configurar la categoría de coste que satisface una máquina en un período dado. Estos datos son utilizados para posteriormente calcular los costes asociados al trabajador en un proyecto.
  2. +
+
+images/machine-costcategory.png +

Asignación de categoría de coste a máquina

+
+
+
+

Grupos de trabajadores virtuales

+

La aplicación permite la creación de recursos en el sistema, los cuales no son trabajadores reales, sino que son personal simulado que permite aumentar la capacidad productiva en un momento determinado según las configuraciones que se definan de su calendario.

+

Mediante los grupos de trabajadores virtuales es posible comprobar cómo se vería afectada la planificación de los proyectos, contratando y asignando personal que satisfaga los criterios que se definan, ayudando de este modo en el proceso de toma de decisiones.

+

Las pestañas de las que consta el formulario de creación de grupos de trabajadores virtuales son las mismas que las que permiten configurar los trabajadores, y decir:

+
+
    +
  • Datos generales
  • +
  • Criterios asignados
  • +
  • Calendarios
  • +
  • Horas asociadas
  • +
+
+

La diferencia con respeto a los trabajadores, es que en los grupos de trabajadores virtuales se especifica un nombre para el grupo y una cantidad que se corresponde con el número de personas reales que forman este grupo. Adicionalmente existe un campo de observaciones en el que se puede aportar información adicional como, por ejemplo, para que proyecto estaría prevista la contratación del equivalente del grupo de recursos virtuales, etc.

+
+images/virtual-resources.png +

Recursos virtuales

+
+
+
+

Recursos limitantes

+

Los recursos limitantes son un tipo especial de elementos productivos que sólamente pueden encontrarse no asignados o con un 100% de dedicación. Lo que es lo mismo, no pueden de tener más de una tarea asignada al mismo tiempo o encontrarse sobreplanificados.

+

Por cada recurso limitante se crea automáticamente una cola para que las tareas que tiene planificadas puedan ser gestionadas de forma específica mediante los métodos de asignación proporcionados, realizando asignaciones automáticas de las tareas a las colas que cumplan los criterios que requieren o moviendo tareas entre colas.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ca/06-pedidos.html b/libreplan-webapp/src/main/webapp/help/ca/06-pedidos.html new file mode 100644 index 000000000..38dce8828 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ca/06-pedidos.html @@ -0,0 +1,337 @@ + + + + + + +Pedidos y elementos de pedidos + + + +
+

Pedidos y elementos de pedidos

+ + +

Los pedidos son las entidades que describen los trabajos a realizar por parte de los usuarios que utilicen la aplicación. +Cada pedido se corresponde con los proyectos que las empresas van a ofrecer a sus clientes.

+

Un pedido está formado por una o varias líneas de pedido. Cada línea de pedido se corresponde con la estruturación que se desee realizar sobre los trabajos dentro de ese pedido. Las líneas de pedido se organizan de modo jerárquica sin limitaciones de profundidad. El hecho de que las líneas de pedido se organicen de modo jerárquico marca el funcionamiento de diversas características heredables, tal como las etiquetas.

+

En las siguientes secciones se describirán las operaciones que un usuario puede realizar con los pedidos y las líneas de pedidos.

+
+

Pedido

+

Un pedido es un proyecto o trabajo que un cliente le solicita a una empresa. El pedido para lo planificador identifica la entidad de proyecto dentro de la empresa. La diferencia de las aplicaciones de gestión globales, "LibrePlan" sólo necesita utilizar ciertos datos de los pedidos. Estos datos son:

+
    +
  • Nombre del pedido
  • +
  • Código del pedido.
  • +
  • Importe total del pedido
  • +
  • Fecha de comienzo estimada
  • +
  • Fecha de finalización
  • +
  • Responsable
  • +
  • Descripción
  • +
  • Calendario asignado.
  • +
  • Autogeneración de códigos. Campo para indicarle al sistema que autogenere los códigos de los elementos de pedido y de los grupos de horas.
  • +
  • Preferencia entre dependencias y restricciones. El usuario puede elegir dependencias o restricciones como prioritarios a la hora de ser aplicados cuendo entran en conflicto.
  • +
+

Sin embargo, el propio pedido está relacionado con otras entidades que finalmente lo dotan de una mayor riqueza:

+
    +
  • Horas asignadas al pedido.
  • +
  • Avances imputados al pedido.
  • +
  • Etiquetas.
  • +
  • Criterios asignados al pedido.
  • +
  • Materiales
  • +
  • Formularios de calidad
  • +
+

Para editar o crear un pedido es posible realizarlo desde varios puntos de la aplicación:

+
    +
  • Accediendo a la perspectiva de "Lista de pedidos" dentro de la vista global de empresa.

    +
    +
      +
    • La edición se realiza presionando en el botón de editar sobre lo pedido elegido.
    • +
    • La creación se realiza presionando en "Nuevo pedido".
    • +
    +
    +
  • +
  • Accediendo a un pedido en el diagrama de Gantt y cambiando de perspectiva a la de detalles de pedido.

    +
  • +
+

Desde la edición de pedido es posible acceder a las siguientes pestañas:

+
    +
  • Edición de los datos de pedidos. Desde dicha pantalla es posible editar los datos básicos del pedido. Actualmente:
      +
    • Nombre
    • +
    • Código
    • +
    • Fecha de comienzo estimada
    • +
    • Fecha de finalización
    • +
    • Responsable
    • +
    • Cliente
    • +
    • Descripción
    • +
    +
  • +
+
+images/order-edition.png +

Edición de pedido

+
+
    +
  • Listado de elementos de pedido. Desde lo listado de elementos de pedido es posible realizar varias operaciones:
      +
    • Crear nuevos elementos de pedido.
    • +
    • Subir en un mismo nivel de la jerarquía un elemento de pedido.
    • +
    • Bajar en un mismo nivel de la jerarquía un elemento de pedido.
    • +
    • Indentar un elemento de pedido, o lo que es lo mismo, mover hacia abajo en la jerarquía, cambiando de nivel del elemento.
    • +
    • Des-indentar un elemento de pedido, o lo que es lo mismo, mover hacia arriba en la jerarquía, cambiando de nivel del elemento.
    • +
    • Filtrar los elementos de pedido.
    • +
    • Borrar elementos de pedido.
    • +
    • Mover arrastrando y soltando un elemento de pedido en la jerarquía.
    • +
    +
  • +
+
+images/order-elements-list.png +

Listado de elementos de pedido

+
+
    +
  • Horas asignadas. Pantalla en la que se muestran las horas totales imputadas al proyecto, tratándose de una pantalla de visualización donde se agrupan las horas imputadas a los elementos de pedido.
  • +
+
+images/order-assigned-hours.png +

Asignación de horas imputadas al pedido por los trabajadores

+
+
    +
  • Avances. Pantalla en la que se permiten imputar tipos de avances y medidas de avances al pedido. Ver sección de "Avances" para el funcionamiento de la misma.
  • +
  • Etiquetas. Pantalla en la que se permite asignar etiquetas a un pedido y conocer las etiquetas directas e indirectas que ya fueron asignadas. Ver la siguiente sección de edición de elementos de pedido más en profundidad para conocer el procedimiento de gestionar las etiquetas.
  • +
+
+images/order-labels.png +

Etiquetas de pedido

+
+
    +
  • Criterios. Pantalla en la que se pueden asignar los criterios que se desean aplicar globalmente a todas las tareas de un pedido. Estos criterios serían aplicados de manera automática a todos los elementos de pedido, excepto que estos fueran invalidados explícitamente. Asimismo, se pueden visualizar los grupos de horas de los elementos de pedidos agrupados por criterios, lo cual permite conocer los criterios que se exigen a lo largo de un pedido.
  • +
+
+images/order-criterions.png +

Criterios de pedido

+
+
    +
  • Materiales. Pantalla en la que se puede asignar el material disponible al pedido. El material es seleccionable de entre las categorías de material que existen en la aplicación. Los materiales son gestionados del siguiente modo:

    +
    +
      +
    • El usuario selecciona la pestaña que se muestra en la zona inferior de la pantalla llamada "Búsqueda de materiales".
    • +
    • El usuario puede introducir un texto para la búsqueda de materiales o seleccionar las categorías para las que se desea mostrar materiales.
    • +
    • El sistema filtra los resultados.
    • +
    • El usuario selecciona los materiales que desea (para seleccionar más de un material el usuario puede presionar en el botón "Ctrl" que permite la selección múltiple en el listado.
    • +
    • El usuario presiona en "Asignar".
    • +
    • El sistema muestra el listado de materiales ya asignado al pedido.
    • +
    • El usuario selecciona las unidades y el estado que desea asignarle al pedido.
    • +
    • El usuario presiona en "Guardar" o "Guardar y Continuar".
    • +
    • Si el usuario desea gestionar la recepción de material, el sistema permite presionar en "Dividir" para cambiar el estado de una cantidad parcial de materiales.
    • +
    +
    +
  • +
+
+images/order-material.png +

Material asociado a un pedido

+
+
    +
  • Calidad. Es posible asignar un formulario de calidad al pedido con el objetivo de ser cumplimentado para asegurar la realización de ciertas actividades asociadas al pedido. Ver la sección siguiente sobre edición de elementos de pedido para conocer el procedimiento de gestionar el formulario de calidad.
  • +
+
+images/order-quality.png +

Formulario de calidad asociado al pedido

+
+
+
+

Edición de elementos de pedido

+

La edición de elementos de pedido se realiza desde la pestaña de "Listado de elementos de pedido" a partir del icono de edición. Si el usuario presiona en el icono de edición, el sistema muestra una nueva pantalla desde la que el usuario puede realizar lo siguiente:

+
    +
  • Editar la información del elemento de pedido.
  • +
  • Visualización de horas imputadas a elemento de pedido.
  • +
  • Gestionar los avances de los elementos de pedido.
  • +
  • Gestionar las etiquetas del pedido.
  • +
  • Gestionar los criterios exigidos por el elemento de pedido.
  • +
  • Gestionar los materiales.
  • +
  • Gestionar los formularios de calidad.
  • +
+

Las siguientes subsecciones tratan cada uno de las operaciones en profundidad.

+
+

Edición de la información del elemento de pedido

+

La edición de información de elemento de pedido incluye la edición de los siguientes datos:

+
    +
  • Nombre del elemento de pedido.
  • +
  • Código del elemento de pedido.
  • +
  • Fecha de inicio del elemento de pedido.
  • +
  • Fecha estimada de fin del elemento de pedido.
  • +
  • Horas totales del elemento de pedido. Estas horas pueden ser calculadas a partir de los grupos de horas añadidas o introducidas directamente en este punto que se habían repartido entre los grupos de horas, creando algún nuevo si los porcentajes no coinciden con los porcentajes iniciales.
  • +
  • Grupos de horas: ES posible añadir uno o varios grupos de horas al elemento de pedido. El significado disteis grupos de horas es el establecimiento de los requerimientos que se le exigen a los recursos que vayan a ser asignados para realizarlas.
  • +
  • Criterios: ES posible añadir criterios que se deben satisfacer para poder se asignado xenericamente para realizar dicho elemento de pedido.
  • +
+
+images/order-element-edition.png +

Edición de elemento de pedido

+
+
+
+

Visualización de horas imputadas a elementos de pedido

+

La pestaña de "Horas asignadas" permite visualizar los partes de trabajo asociados a un elemento de pedido y al incluso tiempo permite visualizar cuantas horas de las presupuestadas están ya realizadas.

+
+images/order-element-hours.png +

Horas asignadas a elementos de pedido

+
+

La pantalla está dividida en dos partes:

+
    +
  • Listado de partes de trabajo: El usuario ve el listado de partes de trabajo que están asociados al elemento de pedido pudiendo comprobar la fecha y hora, recurso y número de horas dedicadas a la tarea.
  • +
  • Uso de las horas presupuestadas: El sistema calcula el total de horas dedicadas a la tarea y las contrasta con las que estaban presupuestadas.
  • +
+
+
+

Gestión de avances de los elementos de pedido

+

La introducción de tipos de avances y gestión de los avances de los elementos de pedido fue descrita en el capítulo de "Avances".

+
+
+

Gestión de etiquetas del pedido

+

Las etiquetas, tal y como se describen en el capítulo dedicado a las mismas, son entidades que permiten categorizar los elementos de pedido. De este modo, el usuario puede agrupar información de planificación o pedidos en base a ellas.

+

Un usuario puede asignar etiquetas directamente a un elemento de pedido o bien a un antecesor en la jerarquía del elemento de pedido. A partir del momento en el que se asigna una etiqueta de uno de las dos formas anteriores, tanto el elemento de pedido como la tarea de planificación asociada estan asociadas a dicha etiqueta, siendo utilizadas para posteriores filtrados.

+
+images/order-element-tags.png +

Asignación de etiquetas para elementos de pedido

+
+

Tal y como se puede ver en la imagen, desde la pestaña de etiquetas, el usuario puede realizar las siguientes operaciones:

+
    +
  • Visualización de las etiquetas que un elemento del pedido tiene asociadas por herencia de un elemento de pedido superior en la jerarquía a la que le fue asignada directamente. La tarea de planificación asociada a cada elemento de pedido tiene las mismas etiquetas asociadas.
  • +
  • Visualización de las etiquetas que un elemento del pedido tiene asociadas directamente a través del siguiente formulario de asignación de etiquetas inferior.
  • +
  • Asignar etiquetas existentes: Un usuario puede asignar etiquetas a partir de la búsqueda de una entre las existentes en el formulario inferior al listado de etiquetas directas. Para buscar una etiqueta llega con presionar en el icono con la lupa o escribir el inicio de la etiqueta en la entrada de texto para que el sistema muestre las opciones disponibles.
  • +
  • Crear y asignar etiquetas nuevas: Un usuario puede crear nuevas etiquetas asociadas a un tipo de etiquetas existente desde dicho formulario. Para realizar la operación es necesario que seleccione un tipo de etiqueta a la que se asocia y se introduzca el valor de la etiqueta para el tipo seleccionado. Presionando en "Crear y asignar" el sistema ya la crea automáticamente y la asigna al elemento de pedido.
  • +
+
+
+

Gestionar los criterios exigidos por el elemento de pedido y los grupos de horas

+

Tanto un pedido como un elemento de pedido pueden tener asignados los criterios que se exigen para ser realizados. Los criterios pueden afectar de manera directa o de manera indirecta:

+
    +
  • Criterios directos: Son los que se asignan directamente al elemento de pedido. Son los criterios que se van a exigir a los grupos de horas que forman parte del elemento de pedido.
  • +
  • Criterios indirectos: Son los criterios que se asignan en elementos de pedido superiores en la jerarquía y son heredados por el elemento en edición.
  • +
+

A mayores del criterio exigido, es posible definir uno o varios grupos de horas que forman parte del elemento de pedido. Dependiendo de se el elemento de pedido contiene otros elementos de pedido como hijos o es un nodo hoja. En el primero de los casos los datos de horas y grupos de horas son solo visualizables y en el caso de nodos hoja son editables. El funcionamiento en este segundo caso es el siguiente:

+
    +
  • Por defecto, el sistema crea un grupo de horas asociado al elemento de pedido. Los datos modificables para un grupo de horas son:

    +
    +
      +
    • Código del grupo de horas, si no es autogenerado.
    • +
    • Tipo de criterio. El usuario puede elegir se desea asignar un criterio de tipo máquina o trabajador.
    • +
    • Número de horas del grupo de horas.
    • +
    • Lista de criterios que se aplican al grupo de horas. Para añadir nuevos criterios el usuario debe presionar en "Añadir criterio" y seleccionar uno en el buscador que aparece tras presionar en el botón.
    • +
    +
    +
  • +
  • El usuario puede añadir nuevos grupos de horas con características diferentes que los grupos de horas anteriores. Ejemplo de esto sería que un elemento de pedido debe ser hecho por un soldador (30h) y por un pintor (40h).

    +
  • +
+
+images/order-element-criterion.png +

Asignación de criterios a elementos de pedidos

+
+
+
+

Gestionar los materiales

+

Los materiales son gestionados en los proyectos como un listado asociado a cada línea de pedido o a un pedido globalmente. El listado de materiales está formado por los siguientes campos:

+
    +
  • Código
  • +
  • Fecha
  • +
  • Unidades: Unidades necesarias.
  • +
  • Tipo de unidad: Tipo de unidad en el que se mide el material.
  • +
  • Precio de la unidad: Precio unitario.
  • +
  • Precio total: Precio resultante de multiplicar el precio unitario por las unidades.
  • +
  • Categoría: Categoría de material a la que pertenece.
  • +
  • Estado: Recibido, Solicitado, Pendiente, Procesando, Cancelado.
  • +
+

El modo de trabajar con los materiales es el siguiente:

+
    +
  • El usuario selecciona la pestaña de "Materiales" de un elemento de pedido.
  • +
  • El sistema muestra dos subpestanas: "Materiales" y "Búsqueda de materiales".
  • +
  • Si el elemento de pedido no tenía materiales asignados, la primera pestaña muestra un listado vacío.
  • +
  • El usuario presiona en "Búsqueda de materiales" en la zona inferior izquierda de la ventana.
  • +
  • El sistema muestra el listado de categorías disponibles y los materiales asociados.
  • +
+
+images/order-element-material-search.png +

Búsqueda de material

+
+
    +
  • El usuario selecciona categorías en las que buscar para afinar la búsqueda de materiales.
  • +
  • El sistema muestra los materiales pertenecientes a las categorías seleccionadas.
  • +
  • El usuario selecciona en el listado de materiales aquellos que desea asignar al elemento de pedido.
  • +
  • El usuario presiona en "Asignar".
  • +
  • El sistema muestra el listado seleccionado de materiales en la pestaña de "Materiales" con nuevos campos por cubrir.
  • +
+
+images/order-element-material-assign.png +

Asignación de material a elemento de pedido

+
+
    +
  • El usuario selecciona las unidades, estado y fecha de los materiales asignados.
  • +
+

Para control posterior de los materiales es posible cambiar el estado de un grupo de unidades del material recibido. Esta operación se realiza del siguiente modo:

+
    +
  • El usuario presiona en el botón "Dividir" que se muestra en el listado de materiales a la derecha de cada fila.
  • +
  • El usuario selecciona el número de unidades para los que desea dividir la fila.
  • +
  • La aplicación muestra dos filas con el material dividido.
  • +
  • El usuario cambia el estado de la fila de material que desea.
  • +
+

La utilidad de esta operación de división es la de poder recibir entregas parciales de material sin necesidad de esperar a recibirlo todo para marcarlo cómo recibido.

+
+
+

Gestionar los formularios de calidad

+

Existen elementos de pedido que deben certificar que ciertas tareas fueron realizados para poder ser marcadas cómo completadas. Es por eso que surgen los formularios de calidad, las cuales están formados por una lista de preguntas que pueden haber asignado un peso según sea contestada positivamente.

+

Es importante destacar que un formulario de calidad debe ser creado previamente para poder ser asignado al elemento de pedido.

+

Para gestionar los formulario de calidad:

+
    +
  • El usuario accede a la pestaña de "Formularios de calidad".
  • +
+
+images/order-element-quality.png +

Asignación de formulario de calidad a elemento de pedido

+
+
    +
  • La aplicación muestra un buscador de formularios de calidad. Existen dos tipos de formularios de calidad: por elementos o porcentaje.

    +
    +
      +
    • Por elementos: Cada elemento es independiente.
    • +
    • Por porcentaje: Cada pregunta incrementa el avance en el elemento de pedido en un porcentaje. Los porcentajes deben ser incrementales hasta el 100%.
    • +
    +
    +
  • +
  • El usuario selecciona uno de los formularios dados de alta desde la interface de administración y presiona en "Asignar".

    +
  • +
  • La aplicación asigna el formulario elegido en el listado de formularios asignados al elemento de pedido.

    +
  • +
  • El usuario presiona en el botón "Editar" del elemento de pedido.

    +
  • +
  • La aplicación despliega las preguntas del formulario de calidad en el listado inferior.

    +
  • +
  • +
    El usuario marca cómo conseguidas las preguntas que son realizadas.
    +
      +
    • Si el tipo de formulario de calidad es por porcentaje, las preguntas son contestadas por orden.
    • +
    • Si el tipo de formulario de calidad es por elementos, las preguntas son contestadas en cualquier orden.
    • +
    +
    +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ca/07-planificacion.html b/libreplan-webapp/src/main/webapp/help/ca/07-planificacion.html new file mode 100644 index 000000000..50efb32cf --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ca/07-planificacion.html @@ -0,0 +1,134 @@ + + + + + + +Planificación de tareas + + + +
+

Planificación de tareas

+ + +
+

Planificación de tareas

+

La planificación en "LibrePlan" es un proceso que se describe a lo largo de todos los capítulos del documento de usuario, entre los cuales destacan los capítulos de pedidos y de asignación de recursos. En este capítulo se tratan las operaciones básicas de planificación, una vez el pedido está correctamente configurado y la interacción con los diagramas de Gantt.

+
+images/planning-view.png +

Vista de planificación de un trabajo

+
+

Tal y como sucede con la vista global de la empresa, la vista de planificación de un proyecto se divide en varias perspectivas que se muestran en base a la información que se está analizando del mismo. Las perspectivas de un proyecto concreto son:

+
    +
  • Vista de planificación
  • +
  • Vista de carga de recursos
  • +
  • Vista de listado de pedidos
  • +
  • Vista de asignación avanzada
  • +
+
+

Vista de planificación

+

La perspectiva de planificación combina tres vistas diferentes:

+
    +
  • Planificación del proyecto. La planificación del proyecto se visualiza en la zona superior derecha de la aplicación. Se representa la planificación en diagramación de Gantt. Es la vista en la que se permite mover temporalmente las tareas, asignar dependencias entre ellas, definir hitos o establecer restricciones.

    +
  • +
  • Vista de carga de recursos. La vista de carga de recursos es el gráfico inferior derecho en el que se muestra la disponibilidad de recursos según las asignacións que se realizaron, contrastada con las asignaciones realizadas a tareas. La información que se muestra en el gráfico es:

    +
    +
      +
    • Zona violeta: Indica la carga de recursos por debajo del 100% de su capacidad.
    • +
    • Zona verde: Indica la carga de recursos por debajo del 100% derivado de que el recurso está planificado en otro proyecto.
    • +
    • Zona naranja: Indica la carga de recursos por encima de su 100% debido al proyecto actual.
    • +
    • Zona amarilla: Indica la carga de recursos por encima de su 100% debido a otros proyectos.
    • +
    +
    +
  • +
  • Vista de gráfico e indicadores do valor ganado. Visible desde la pestaña de "Valor Ganado". Gráfico que se genera en base a la técnica del valor ganado y os indicadores calculados cada uno de los días de trabajo del proyecto. Los indicadores calculados son:

    +
    +
      +
    • BCWS: función acumulativa en el tiempo del número de horas planificadas hasta una fecha. En el inicio planificado de la tarea será 0 y al final será el total de horas planificadas. Como toda gráfica acumulativa, esta siempre será creciente. La función para una tarea tendrá la suma de las asignaciones de día hasta el día de cálculo. Esta función tiene valores para todos los momentos en el tiempo siempre que tengamos asignación de recursos.
    • +
    • ACWP: función acumulativa en el tiempo de las horas imputadas en los partes de trabajo hasta una fecha. Esta función solo tendrá valores iguales a 0 antes de la fecha del promer parte de trabajo de la tarea e irá incrementando su valor a medida que avanza el tiempo y se incorporen horas de partes de trabajo. No tendrá valor después de la fecha del último parte de trabajo.
    • +
    • BCWP: función acumulativa en el tiempo que incorpora el valor resultante de multiplicar el avance de las tareas por la cantidad de trabajo que se estimaba que llevaría la tarea. Esta función tiene valores incrementales a medida que se incrementa el tiempo y tenemos valores de avance que se van incrementando. El avance se multiplica por el total de horas estimadas de cada una de las tareas. Y el valor de BCWP es la sume de estos valores para las tareas que es están calculando. Un avance se suma en el momento de tiempo que se configuró.
    • +
    • CV: Variación en coste CV = BCWP - ACWP
    • +
    • SV: Variación en planificación SV = BCWP - BCWS
    • +
    • BAC: Total coste planificado BAC = max (BCWS)
    • +
    • EAC: Estimación de coste total actual EAC = (ACWP/ BCWP) * BAC
    • +
    • VAC: Desviación al coste final VAC = BAC - EAC
    • +
    • ETC: Estimado del coste pendiente ETC = EAC - ACWP
    • +
    • CPI: Índice de eficiencia de coste CPI = BCWP / ACWP
    • +
    • SPI: Índice de eficiencia da planificación SPI = BCWP / BCWS
    • +
    +
    +
  • +
+

Dentro de la planificación del proyecto el usuario puede realizar las siguientes operaciones:

+
+
    +
  • Asignar dependencias. Para realizar dicha operación es necesario pulsar con el botón derecho y elegir "Añadir dependencia", arrastrar el puntero del ratón para la tarea destinataria de la dependencia.

    +
    +
      +
    • Para cambiar el tipo de dependencia, pulsar con el botón derecho sobre la dependencia y elegir el tipo que se desea asignar.
    • +
    +
    +
  • +
  • Crear nuevo hito. Pulsar sobre la tarea anterior al hitoque se desea añadir y seleccionar la operación "Añadir hito". Los hitos pueden ser movidos selecionando con el puntero sobre la tarea y arrastrando con el ratón el hito a la posición deseada.

    +
  • +
  • Mover tareas sin violar dependencias. Presionar con el ratón sobre el cuerpo de la tarea y sin soltar el ratón, arrastrar la tarea hacia la posición en la que se desea colocar. Si no se violan restricciones o dependencias el sistema actualiza las asignaciones de recursos diarias a la tarea y coloca la tarea en la fecha seleccionada.

    +
  • +
  • Asignar restricciones. Presionar sobre la tarea en cuestión y seleccionar la operación "Propiedades de la tarea". Aparecerá un pop-up con un campo modificable que es "Restricciones". Las restricciones pueden entrar en conflicto con las dependencias, por lo que será en cada pedido donde se indique si las dependencias tienen prioridad o no sobre las restricciones. Las que se pueden establecer son:

    +
    +
      +
    • Tan pronto como sea posible: Indica que la tarea debe comenzar tan pronto como sea posible.
    • +
    • No antes de. Indica que la tarea no debe comenzar antes de una fecha.
    • +
    • Comenzar en fecha fija. Indica que la tarea debe comenzar en fecha fija.
    • +
    +
    +
  • +
+
+

A mayores, dentro da perspectiva de planificación se ofrecen varias operaciones, que finalmente actuarán como opciones de visualización:

+
    +
  • Nivel de zoom: Es posible seleccionar el nivel de zoom que le interese al usuario. Existen varios niveles de zoom: por año, cuatrimestres, mensuales, semanales y diarios.
  • +
  • Filtros de búsqueda: Es posible filtrar tareas en base a etiquetas o criterios.
  • +
  • Camino crítico. Utilizando el algoritmo de Dijkstra para cálculo de caminos en grafos se implementó el camino crítico que se visualiza si se presiona en el botón "Camino crítico" de las opciones de visualización.
  • +
  • Mostrar etiquetas: Permite mostrar las etiquetas asignadas a las tareas del proyecto en visualización e impresión.
  • +
  • Mostrar recursos: Permite mostrar los recursos asignados a las tareas del proyecto en visualización e impresión.
  • +
  • Imprimir: Permite imprimir el diagrama de Gantt que se está visualizando en el momento.
  • +
+
+
+

Vista de carga de recursos

+

La vista de carga de recursos ofrece una lista de recursos que contiene una lista de tareas o criterios que generan carga de trabajo. Cada tarea o criterio es mostrado en modo diagrama de Gantt para dar visibilidad a la fecha de comienzo y final de dicha carga. Según un recurso tiene una carga superior o inferior al 100% se muestra un color:

+
    +
  • Color verde: carga inferior al 100%
  • +
  • Color naranja: carga del 100%
  • +
  • Color roja: carga superior al 100%
  • +
+
+images/resource-load.png +

Vista de carga de recursos para un pedido concreto

+
+

Si se coloca el ratón sobre una zona del diagrama de Gantt de un recurso se mostrará el porcentaje de carga del trabajador en ese momento dado.

+
+
+

Vista de listado de pedidos

+

La vista de listado de pedidos permite acceder a la edición y borrado de pedidos. Ver el capítulo de "Pedidos".

+
+
+

Vista de asignación avanzada

+

La vista de asignación avanzada se explica en profundidad en el capítulo de "Asignación de recursos".

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ca/08-asignacion.html b/libreplan-webapp/src/main/webapp/help/ca/08-asignacion.html new file mode 100644 index 000000000..219ac0c8b --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ca/08-asignacion.html @@ -0,0 +1,215 @@ + + + + + + +Asignación de recursos + + + +
+

Asignación de recursos

+ + + +

La asignación de recursos es una de las partes más importantes de la aplicación. La asignación de recursos puede realizarse de dos maneras diferentes:

+
    +
  • Asignaciones específicas.
  • +
  • Asignaciones genéricas.
  • +
+

Cada una de las asignaciones es explicada en las siguientes secciones.

+

Para realizar cualquiera de las dos asignaciones de recursos es necesario dar los siguientes pasos:

+
    +
  • Acceder a la planificación de un pedido.
  • +
  • Presionar con el botón derecho sobre la tarea que se desea planificar.
  • +
+
+images/resource-assignment-planning.png +

Menú de asignación de recursos

+
+
    +
  • La aplicación muestra una pantalla en la que se puede visualizar la siguiente información.

    +
    +
      +
    • Listado de criterios que deben ser satisfechos. Por cada grupo de horas, se muestra un listado de grupos de horas y cada grupo de horas exige su listado de criterios.

      +
    • +
    • Información de la tarea: fecha de inicio y fecha de fin de la tarea.

      +
    • +
    • Tipo de cálculo: El sistema permite elegir la estrategia que se desea llevar a cabo para calcular las asignaciones:

      +
      +
        +
      • Calcular número de horas: Calcula el número de horas que haría falta que dedicaran los recursos asignados dados una fecha de fin y un número de recursos por día.
      • +
      • Calcular fecha fin: Calcula la fecha de fin de la tarea a partir de los número de recursos de la tarea y de las horas totales dedicar para finalizar la tarea.
      • +
      • Calcular número de recursos: Calcula el número de recursos necesarios para finalizar la tarea en una fecha específica y dedicando una serie de horas conocidas.
      • +
      +
      +
    • +
    • Asignación recomendada: Opción que le permite a la aplicación recoger los criterios que deben ser satisfechos y las horas totales de cada grupo de horas y hace una propuesta de asignación genérica recomendada. Si había una asignación previa, el sistema elimina dicha asignación sustituyéndola por la nueva.

      +
    • +
    • Asignaciones: Listado de asignaciones realizadas. En este listado se podrán ver las asignaciones genéricas (el nombre sería la lista de criterios satisfecha, horas y número de recursos por día). Cada asignación realizada puede ser borrada explícitamente presionando en el botón de borrar.

      +
    • +
    +
    +
  • +
+
+images/resource-assignment.png +

Asignación de recursos

+
+
    +
  • El usuario selecciona "Búsqueda de recursos".
  • +
  • La aplicación muestra una nueva pantalla formada por un árbol de criterios y un listado a la derecha de los trabajadores que cumplen los criterios seleccionados:
  • +
+
+images/resource-assignment-search.png +

Búsqueda de asignación de recursos

+
+
    +
  • El usuario puede seleccionar:

    +
    +
      +
    • Asignación específica. Ver sección "Asignación específica" para conocer que significa elegir esta opción.
    • +
    • Asignación genérica. Ver sección "Asignación genérica" para conocer que significa elegir esta opción.
    • +
    +
    +
  • +
  • El usuario selecciona una lista de criterios (genérica) o una lista de trabajadores (específica). La elección múltiple se realiza presionando en el botón "Crtl" a la hora de pulsar en cada trabajador o criterio.

    +
  • +
  • El usuario presiona en el botón "Seleccionar". Es importante tener en cuenta que, si no se marca asignación genérica, es necesario escoger un trabajador o máquina para poder realizar una asignación, en caso contrario llega con elegir uno o varios criterios.

    +
  • +
  • La aplicación muestra en el listado de asignaciones de la pantalla original de asignación de recursos a lista de criterios o recursos seleccionados.

    +
  • +
  • El usuario debe elegir las horas o los recursos por día dependiendo de la estrategia de asignación que le solicitó llevar a cabo a la aplicación.

    +
  • +
+
+

Asignación específica

+

La asignación específica es aquella asignación de un recurso de modo concreto y específica a una tarea de un proyecto, es decir, el usuario de la aplicación está decidiendo qué "nombre y apellidos" o qué "máquina" concreta debe ser asignada a una tarea.

+

La asignación específica es realizable desde la pantalla que se puede ver en la imagen:

+
+images/asignacion-especifica.png +

Asignación específica de recursos

+
+

La aplicación, cuando un recurso es asignado específicamente, crea asignaciones diarias en relación al porcentaje de recurso diario que se eligió para asignación, contrastando previamente con el calendario disponible del recurso. Ejemplo: una asignación de 0.5 recursos para una tarea de 32 horas implica que se asignen al recurso específico (suponiendo un calendario laboral de 8 horas diarias) 4 horas diarias para realizar la tarea.

+
+

Asignación específica de máquinas

+

La asignación específica de máquinas actúa igual que la de trabajadores, es decir, cuando se asigna una máquina a una tarea, el sistema almacena una asignación de horas específica a la máquina elegida. La diferencia principal es que en el momento de asignar una máquina, el sistema busca el listado de trabajadores o criterios asignados a la máquina:

+
    +
  • Si la máquina tenía un listado de trabajadores asignados, elige entre el número de ellos que requiera la máquina para el calendario asignado. Por ejemplo, si el calendario de la máquina es de 16 horas diarias y de los recursos de 8, asigna dos recursos de la lista de recursos disponibles.
  • +
  • Si la máquina tenía un criterio o varios asignados, realiza asignaciones genéricas entre los recursos que satisfacen los criterios asignados a la máquina.
  • +
+
+
+
+

Asignación genérica

+

La asignación genérica es aquella asignación donde el usuario no elige los recursos concretamente dejando la decisión a la aplicación, eligiendo ésta como reparte las cargas entre los recursos disponibles de la empresa.

+
+images/asignacion-xenerica.png +

Asignación genérica de recursos

+
+

El sistema de asignación utiliza como base los siguientes supuestos:

+
    +
  • Las tareas cuentan con criterios requeridos a los recursos.
  • +
  • Los recursos están configurados para que satisfagan los criterios.
  • +
+

Sin embargo, el sistema no falla en aquellos casos en los que no se asignen criterios sino que todos los recursos satisfacen el no requirimiento de criterios.

+

El algoritmo de asignación genérica actúa del siguiente modo:

+
    +
  • Cada recurso y día es tratado como un contenedor donde caben asignaciones diarias de horas, basándose la capacidad máxima de asignación en el calendario de la tarea.
  • +
  • El sistema busca los recursos que satisfacen el criterio.
  • +
  • El sistema analiza qué asignaciones tienen actualmente los diferentes recursos que cumplen los criterios.
  • +
  • De entre los que satisfacen los criterios se escogen los recursos que tienen disponibilidad suficiente.
  • +
  • Si los recursos más libres van siendo ocupados, se siguen realizando asignaciones en los recursos que tenían menor disponibilidad.
  • +
  • Sólo cuando todos los recursos que satisfacen los criterios correspondientes están asignados al 100% se comienza con la sobreasignación de recursos hasta completar el total necesario para realizar la tarea.
  • +
+
+

Asignación genérica de máquinas

+

La asignación genérica de máquinas actúa de igual modo que la de trabajadores, es decir, cuando se asigna una máquina a una tarea, el sistema almacena una asignación de horas genérica a cada una de las máquinas que satisfacen los criterios, tal y como se describió genericamente para los recursos en general. Sin embargo, tratándose de máquinas el sistema realiza la siguiente operación a mayores:

+
    +
  • Para cada máquina elegida para la asignación genérica:
      +
    • Recoge la información de configuración de la máquina, es decir, alfa, trabajadores y criterios asignados.
    • +
    • Si la máquina tenía un listado de trabajadores asignados, elige entre el número de ellos que requiera la máquina dependiendo del calendario asignado. Por ejemplo, si el calendario de la máquina es de 16 horas diarias y de los recursos de 8, asigna dos recursos de la lista de recursos disponibles.
    • +
    • Si la máquina tenía un criterio o varios asignados, realiza asignaciones genéricas entre los recursos que satisfacen los criterios asignados a la máquina.
    • +
    +
  • +
+
+
+
+

Asignación avanzada

+

La asignación avanzada permite diseñar las asignaciones que se realizan automáticamente por la aplicación de manera más personalizada. Esta operación permite elegir manualmente las horas diarias que dedican los recursos a las tareas que están asignadas o definir una función que se le aplica a dichas asignaciones.

+

Para gestionar la asignación avanzada los pasos a dar son los siguientes:

+
    +
  • Acceder a la ventana de asignación avanzada. Existen dos modos de acceder a la asignación avanzada:

    +
    +
      +
    • Accediendo a un pedido concreto y cambiar de perspectiva para asignación avanzada. En este caso se mostrarán todas las tareas del pedido y los recursos asignados (tanto específicos cómo genéricos).
    • +
    • Accediendo a la asignación de recursos y presionando en el botón "Asignación avanzada". En este caso se mostrarán las asignaciones de la tarea para la que se está asignando recursos (se muestran tanto las genéricas como las específicas).
    • +
    +
    +
  • +
+
+images/advance-assignment.png +

Asignación avanzada de recursos

+
+
    +
  • El usuario puede acceder al zoom que desee:

    +
    +
      +
    • Si el zoom elegido es un zoom superior a día. Si el usuario modifica el valor de horas asignado a la semana, mes, cuatrimestre o semestre, el sistema reparte las horas de manera lineal durante todos los días del período elegido.
    • +
    • Si el zoom elegido es un zoom de día. Si el usuario modifica el valor de horas asignado al día, estas horas sólo aplican al día. De este modo el usuario puede decidir cuantas horas se asignan diariamente a los recursos de la tarea.
    • +
    +
    +
  • +
  • El usuario puede elegir diseñar una función de asignación avanzada. Para realizarlo:

    +
    +
      +
    • Elegir la función en la lista de selección que aparece al lado de cada recurso y presionar en "Configurar".

      +
    • +
    • El sistema muestra una nueva ventana si la función elegida requiere de configuración específica. Las funciones soportadas son:

      +
      +
        +
      • Tramos: Función que permite definir tramos en los que se aplica una función polinómica. La función por tramos se configura del siguiente modo:

        +
        +
          +
        • Fecha. Fecha en la que finaliza el tramo. Si se establece el siguiente valor (longitud) la fecha es calculada, en caso contrario, se calcula la longitud.
        • +
        • Definición de la longitud de cada tramo. Indica que porcentaje de duración de la tarea se desea para el tramo.
        • +
        • Definición de la cantidad de trabajo. Indica que porcentaje de carga de trabajo se espera tener hecho en ese tramo. La cantidad de trabajo debe ser incremental, de modo que si hay un tramo del 10% el siguiente tramo debe ser superior (por ejemplo, 20%).
        • +
        • Gráficas de tramos y carga acumulada.
        • +
        +
        +
      • +
      +
      +
    • +
    • El usuario presiona en "Aceptar".

      +
    • +
    • La aplicación almacena la función y la aplica en las asignaciones diarias del recurso.

      +
    • +
    +
    +
  • +
+
+images/stretches.png +

Configuración de función por tramos

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ca/09-partes.html b/libreplan-webapp/src/main/webapp/help/ca/09-partes.html new file mode 100644 index 000000000..11d804bde --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ca/09-partes.html @@ -0,0 +1,92 @@ + + + + + + +Partes de trabajo + + + +
+

Partes de trabajo

+ + +

Los partes de trabajo permiten el seguimiento de las horas que dedican los recursos existentes a las tareas en las que están planificados.

+

La aplicación permite configurar nuevos formularios de introducción de horas dedicadas, especificando los campos que se desea que figuren en estos modelos, así como incorporar los partes de las tareas que son realizadas por los trabajadores y hacer un seguimiento de los mismos.

+

Antes de poder añadir entradas con dedicación de los recursos, es necesario especificar como mínimo un tipo de parte de trabajo que defina la estructura que tienen todas las filas que se añadan en él. Pueden crearse tantos tipos de partes de trabajo en el sistema como sea necesario.

+
+

Tipos de partes de trabajo

+

Un parte de trabajo consta de una serie de campos comunes para todo el parte, y un conjunto de líneas de parte de trabajo con valores específicos para los campos definidos en cada una de las filas. Por ejemplo, el recurso y la tarea son comunes para todos los partes, sin embargo, puede haber campos nuevos como "incidencias", que no se deseen en todos los tipos.

+

Es posible configurar diferentes tipos de partes de trabajo para que una empresa diseñe sus partes dependiendo de las necesidades para cada caso:

+
+images/work-report-types.png +

Tipos de partes de trabajo

+
+

La administración de los tipos de partes de trabajo permite configurar este tipo de características, así como añadir nuevos campos de texto o de etiquetas opcionales. Dentro de la primera de las pestañas de edición de los tipos de partes de trabajo se puede configurar el tipo para los atributos obligatorios (si son globales para todo el parte, o se especifican a nivel de línea), y añadir nuevos campos opcionales.

+

Los campos obligatorios que deben figurar en todos los partes de trabajo son los siguientes:

+
    +
  • Nombre y código: Campos identificativos del nombre del tipo de parte de trabajo y código del mismo.
  • +
  • Fecha: Campo de fecha a la que corresponde el parte.
  • +
  • Recurso: Trabajador o máquina que figura en el parte o línea de parte de trabajo.
  • +
  • Elemento de pedido: Código del elemento de pedido al que imputar las horas del trabajo realizado.
  • +
  • +
    Gestión de horas: Determina la política de imputación de horas a llevar a cabo, la cual puede ser:
    +
      +
    • Por número de horas asignadas.
    • +
    • Por horas de comienzo y fin.
    • +
    • Por número de horas y rango de comienzo y fin (permite divergencia y tiene prioridad el número de horas).
    • +
    +
    +
    +
  • +
+

Existe la posibilidad de añadir nuevos campos a los partes:

+
    +
  • Tipo de etiqueta: Es posible solicitar que se indique una etiqueta del sistema a la hora de rellenar el parte de trabajo. Por ejemplo, el tipo de etiqueta cliente si deseamos que en cada parte se introduzca el cliente para el cual se trabajó.
  • +
  • Campos libres: Campos de tipo entrada de texto libre que se pueden introducir en el parte de trabajo.
  • +
+
+images/work-report-type.png +

Creación de tipo de parte de trabajo con campos personalizados

+
+

Para los campos de fecha, recurso y elemento de pedido, pueden configurarse se figuran en la cabecera del parte y por lo tanto son globales al mismo, o si son añadidos en cada una de las filas.

+

Finalmente, pueden añadirse nuevos campos de texto adicionales o etiquetas a las existentes en el sistema, tanto para la cabecera de los partes de trabajo como en cada una de las líneas, mediante los campos de "Texto Complementario" y "Tipos de Etiquetas", respectivamente. En la pestaña de "Gestión de campos adicionales y etiquetas", el usuario puede configurar el orden en la que introducir dichos elementos en los partes de trabajo.

+
+
+

Listado de partes de trabajo

+

Una vez configurados los formatos de los partes a incorporar al sistema, se pueden introducir los datos en el formulario creado según la estructura definida en el tipo de parte de trabajo correspondiente. Para hacerlo, es necesario seguir los siguientes pasos:

+
    +
  • Presionar en el botón "Nuevo parte de trabajo" asociado el tipo de parte que se desee del listado de tipos de partes de trabajo.
  • +
  • La aplicación muestra el parte construído a partir de la configuración dada para el tipo. Ver siguiente imagen.
  • +
+
+images/work-report-type.png +

Estructura del parte de trabajo a partir del tipo

+
+
    +
  • Seleccionar cada uno de los campos que se muestra para el parte:

    +
    +
      +
    • Recurso: Si se eligió la cabecera, sólo se indica el recurso una vez. En caso contrario, para cada línea del parte es necesario elegir un recurso.
    • +
    • Código de la tarea: Código de la tarea a la que se está asignando el parte de trabajo. Al igual que el resto de campos, si el campo es de cabecera se introducirá el valor una vez o tantas veces como líneas del parte.
    • +
    • Fecha: Fecha del parte o de cada línea dependiendo de se la configuración es por cabecera o línea.
    • +
    • Número de horas. El número de horas de trabajo del proyecto.
    • +
    • Horas de inicio y fin. Horas de comienzo y fin de trabajo para calcular las horas de trabajo definitivas. Este campo sólo aparece en los casos de políticas de imputación de horas de "Por horas de comienzo y fin" y "Por número de horas y rango de comienzo y fin".
    • +
    • Tipo de horas: Permite elegir entre tipos de horas "Normales", "Extraordinarias", etc.
    • +
    +
    +
  • +
  • Presionar en "Guardar" o "Guardar y Continuar".

    +
  • +
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ca/10-etiquetas.html b/libreplan-webapp/src/main/webapp/help/ca/10-etiquetas.html new file mode 100644 index 000000000..f00079f24 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ca/10-etiquetas.html @@ -0,0 +1,68 @@ + + + + + + +Etiquetas + + + +
+

Etiquetas

+ +
+

Contents

+ +
+

Las etiquetas son entidades que se utilizan en la aplicación para la organización conceptualmente de tareas o elementos de pedido.

+

Las etiquetas se categorizan según los tipos de etiquetas. Una etiqueta sólo pertenece a un tipo de etiqueta, sin embargo, nada impide crear tantas etiquetas similares que pertenezcan a tipos de etiquetas diferentes.

+
+

Tipos de etiquetas

+

Los tipos de etiquetas se utilizan para agrupar tipologías de etiquetas que los usuarios deseen gestionar en la aplicación. Ejemplos de tipos de etiquetas posibles:

+
    +
  1. Cliente: El usuario podría estar interesado en etiquetar las tareas, pedidos o elementos de pedido en base al cliente que los solicitó.
  2. +
  3. Zona: El usuario podría estar interesado en etiquetar las tareas, pedidos o elementos de pedido en base a la zona en la que se realizan.
  4. +
+

La administración de tipos de etiquetas se gestionará desde la opción de menú de "Administración". Es desde esta opción, desde la que el usuario puede editar tipos de etiqueta, crear nuevos tipos de etiqueta o añadir etiquetas a tipos de etiquetas. Desde dicha operación puede accederse al listado de etiquetas.

+
+images/tag-types-list.png +

Lista de tipos de etiquetas

+
+

Desde el listado de tipos de etiquetas es posible:

+
    +
  1. Crear nuevo tipo de etiquetas.
  2. +
  3. Editar un tipo de etiquetas existente.
  4. +
  5. Borrar un tipo de etiquetas con todas sus etiquetas.
  6. +
+

Tanto la edición como la creación de etiquetas comparten formulario. Desde dicho formulario el usuario puede asignar un nombre al tipo de etiquetas, crear o borrar etiquetas y almacenar los cambios. Para realizar esto:

+
    +
  1. El usuario debería seleccionar una etiqueta a editar o presionar en el botón de creación de una nueva.
  2. +
  3. El sistema muestra un formulario con una entrada de texto para el nombre y un listado de entradas de texto con las etiquetas existentes y asignadas.
  4. +
  5. Si el usuario desea añadir una nueva etiqueta debe presionar en el botón "Etiqueta nueva".
  6. +
  7. El sistema muestra una nueva fila al listado con una entrada de texto vacía que el usuario debe editar.
  8. +
  9. El usuario introduce un nombre para la etiqueta.
  10. +
  11. El sistema añade el nombre al listado.
  12. +
  13. El usuario presiona en "Guardar" para guardar y salir o "Guardar y Continuar" para guardar y continuar editando el formulario.
  14. +
+
+images/tag-types-edition.png +

Edición de tipos de etiquetas

+
+
+
+

Etiquetas

+

Las etiquetas son entidades que pertenecen a un tipo de etiqueta. Estas entidades pueden ser asignadas a elementos de pedido. El hecho de asignar una etiqueta a un elemento de pedido hace que todos los elementos descendientes de dicho elemento hereden la etiqueta a la que pertenecen. El hecho de contar con una etiqueta asignada permite que esos elementos salgan filtrados en los puntos en los que se ofrece la posibilidad de búsqueda:

+
    +
  1. Búsqueda de tareas en el diagrama de Gantt.
  2. +
  3. Búsqueda de elementos de pedido en el listado de elementos de pedido.
  4. +
  5. Filtrados para informes.
  6. +
+

La asignación de etiquetas a elementos de pedido es cubierta en el capítulo de pedidos.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ca/11-materiales.html b/libreplan-webapp/src/main/webapp/help/ca/11-materiales.html new file mode 100644 index 000000000..1d4417a02 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ca/11-materiales.html @@ -0,0 +1,59 @@ + + + + + + +Materiales + + + +
+

Materiales

+ + +
+

Administración de materiales

+

Es posible gestionar una base de datos de materiales básica organizados por categorías.

+

Las categorías son contedores a los que se pueden asignar materiales concretos y al mismo tiempo más categorías. Se almacenan en modo arbóreo de suerte que los materiales pueden pertenecer a categorías hoja o categorías intermedias.

+

Para administrar categorías:

+
    +
  • El usuario accede a la operación de "Administración->Materiales".
  • +
  • La aplicación muestra un árbol de categorías.
  • +
  • El usuario introduce un nombre de categoría dentro de la entrada de texto con un botón "Añadir" y presiona en el botón.
  • +
  • La aplicación añade la categoría en el árbol de categorías.
  • +
+

Si el usuario desea posicionar una categoría dentro del árbol de categorías debe seleccionar previamente la categoría padre en dicho árbol para después presionar en "Añadir".

+
+images/material.png +

Pantalla de administración de materiales

+
+

Para administrar materiales:

+
    +
  • El usuario selecciona la categoría para la que desea incluir materiales y presiona en el botón "Añadir" en la zona derecha de "Materiales".

    +
  • +
  • La aplicación añade una nueva fila vacía con campos para introducir los datos del material:

    +
    +
      +
    • Código: Código del tipo de material (puede ser el código externo proveniente de un ERP).
    • +
    • Descripción: Descripción del material.
    • +
    • Precio de la unidad: Precio unitario de cada elemento de material.
    • +
    • Unidad: Unidad en la que se desea medir cada unidad de material.
    • +
    • Categoría: Categoría a la que pertenece.
    • +
    • Deshabilitado: Si el material está borrado o no.
    • +
    +
    +
  • +
  • El usuario llena los campos y presiona en el botón "Guardar".

    +
  • +
+

La asignación de materiales a elementos de pedidos se explica en el capítulo de "Pedidos".

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ca/12-formularios-calidad.html b/libreplan-webapp/src/main/webapp/help/ca/12-formularios-calidad.html new file mode 100644 index 000000000..6b57fbd8a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ca/12-formularios-calidad.html @@ -0,0 +1,65 @@ + + + + + + +Formularios de calidad + + + +
+

Formularios de calidad

+ + +
+

Administración de formularios de calidad

+

Los formularios de calidad son una lista de preguntas o frases que indican tareas o procesos que deben estar completados para que una tarea se pueda dar por completada por parte de la empresa usuaria. Estos formularios están formados por los siguientes campos:

+
    +
  • Nombre

    +
  • +
  • Descripción

    +
  • +
  • Tipo de formulario de calidad. El tipo puede tomar dos valores:

    +
    +
      +
    • Por porcentaje: Indica que las preguntas deben llevar un orden lógico y que la contestación positiva de las preguntas indica un avance respeto de la tarea. Por ejemplo, que un proceso básico para una tarea implica que la tarea está al 15%. Es necesario contestar una pregunta previa para poder pasar a la siguiente.
    • +
    • Por item: Indica que las preguntas no tienen por que llevar un orden lógico y en consecuencia pueden ser contestadas según se desee.
    • +
    +
    +
  • +
+

Para administrar estos formularios de calidad es necesario realizar los siguientes pasos:

+
    +
  • Acceder en el menú de "Administración" a la operación "Formularios de calidad".

    +
  • +
  • Presionar en editar uno existente o en el botón de "Crear".

    +
  • +
  • La aplicación muestra un formulario con nombre, descripción y tipo.

    +
  • +
  • Seleccionar el tipo.

    +
  • +
  • La aplicación muestra los campos permitidos para cada tipo:

    +
    +
      +
    • Por porcentaje: pregunta y porcentaje.
    • +
    • Por item: pregunta.
    • +
    +
    +
  • +
  • Presionar en "Guardar" o "Guardar y Continuar".

    +
  • +
+
+images/quality.png +

Pantalla de administración de materiales

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ca/13-usuarios.html b/libreplan-webapp/src/main/webapp/help/ca/13-usuarios.html new file mode 100644 index 000000000..432231d29 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ca/13-usuarios.html @@ -0,0 +1,91 @@ + + + + + + +Usuarios + + + +
+

Usuarios

+ + +
+

Administración de usuarios

+

El sistema de usuarios de "LibrePlan" permite gestionar perfiles, permisos y usuarios. Un usuario pertenece a un perfil de usuario y por otro lado los perfiles pueden tener una serie de roles predefinidos para el acceso a la aplicación. Los roles son los permisos definidos sobre "LibrePlan". Ejemplos de roles:

+
    +
  • Administración: Rol que los usuarios administradores deben tener asignados para poder realizar operaciones de administración.
  • +
  • Lector de servicios web: Rol que los usuarios necesitan para poder consultar servicios web de la aplicación.
  • +
  • Escritor de servicios web: Rol que los usuarios necesitan para poder escribir utilizando los servicios web de la aplicación.
  • +
+

Los roles están predefinidos en el sistema. Un perfil de usuario está compuesto por uno o varios roles, de modo que se comprueban roles a los que pertenecen los usuarios para realizar ciertas operaciones.

+

Los usuarios pertenecen a un o varios perfiles o directamente a un o varios roles, de modo que se puede asignar permisos específicos o un grupo de permisos genérico.

+

Para administrar usuarios es necesario realizar los siguientes pasos:

+
    +
  • Acceder a la operación de "Gestionar usuarios" del menú de "Administración".

    +
  • +
  • La aplicación muestra un formulario con el listado de usuarios.

    +
  • +
  • Presionar el botón de edición del usuario elegido o presionar en el botón "Crear".

    +
  • +
  • Mostrara un formulario con los siguientes campos:

    +
    +
      +
    • Nombre de usuario.
    • +
    • Contraseña
    • +
    • Habilitado/Deshabilitado.
    • +
    • E-mail
    • +
    • Lista de roles asociados. Para añadir un nuevo rol es necesario buscar uno de los roles mostrados en la lista de selección y presionar en "Asignar".
    • +
    • Lista de perfiles asociados. Para añadir un nuevo perfil es necesario buscar uno de los perfiles mostrados en la lista de selección y presionar en "Asignar".
    • +
    +
    +
  • +
+
+images/manage-user.png +

Administración de usuarios

+
+
    +
  • Presionar en "Guardar" o "Guardar y Continuar".
  • +
+
+

Administración de perfiles

+

Para administrar los perfiles de la aplicación es necesario dar los siguientes pasos:

+
    +
  • Acceder a la operación de "Gestionar perfiles de usuario" del menú de "Administración".

    +
  • +
  • La aplicación muestra un listado de perfiles.

    +
  • +
  • Presionar el botón de edición del perfil elegido o presionar en el botón "Crear".

    +
  • +
  • La aplicación muestra un formulario con los siguientes campos:

    +
    +
      +
    • Nombre
    • +
    • Lista de roles (permisos) asociados al perfil. Para añadir un rol asociado al perfil se deberá seleccionar uno de la lista de roles y presionar en "Añadir".
    • +
    +
    +
  • +
+
+images/manage-user-profile.png +

Gestión de perfiles de usuarios

+
+
    +
  • Presionar en "Guardar" o "Guardar y Continuar" y el sistema almacena el perfil creado o modificado.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ca/14-custos.html b/libreplan-webapp/src/main/webapp/help/ca/14-custos.html new file mode 100644 index 000000000..868014016 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ca/14-custos.html @@ -0,0 +1,129 @@ + + + + + + +Gestión de costes + + + +
+

Gestión de costes

+ + +
+

Costes

+

La gestión de costes está planteada para poder realizar una previsión estimativa de los costes de los recursos de un proyecto. Para la gestión de costes se determinó la existencia de las siguientes entidades:

+
    +
  • Tipos de horas trabajadas: Indican los tipos de horas de trabajo de los recursos. Es posible incluir como tipos tanto los tipos de horas para máquinas como para trabajadores. Ejemplos de tipos de horas serían: Extraordinarias pagadas a 20 euros de manera genérica. Los campos que se pueden incluir en los tipos de horas trabajadas:

    +
    +
      +
    • Código: Código externo del tipo de horas.
    • +
    • Nombre: Nombre del tipo de hora. Por ejemplo, extraordinaria.
    • +
    • Precio por defecto: Precio base por defecto para el tipo de horas.
    • +
    • Activado: Indica si el tipo de hora está activado.
    • +
    +
    +
  • +
  • Categorías de coste. Las categorías de coste indican categorías que se utilizan para definir costes dependiendo de los tipos de horas durante unos períodos (estos períodos pueden ser indefinidos). Por ejemplo, el coste de las horas extraordinarias de los oficiales de 1ª durante el siguiente año es de 24 euros hora. Las categorías de coste están formadas por:

    +
    +
      +
    • Nombre: Nombre de la categoría de coste.
    • +
    • Activado: Indica si la categoría está activada o no.
    • +
    • Listado de tipos de hora asignados a la categoría de coste. Indican diversos períodos y precios para los tipos de hora. Por ejemplo, cada año con cambio de precios se incluye como un período de tipo de hora en este listado. Por otro lado, para cada tipo de horas se mantiene un precio por hora (que puede ser diferente del precio por hora por defecto que se haya incluido para el tipo de hora).
    • +
    +
    +
  • +
+
+

Administración de tipos de horas trabajadas

+

Para dar de alta tipos de horas trabajadas es necesario dar los siguientes pasos:

+
    +
  • Seleccionar la operación "Administrar tipos de hora de trabajo" en el menú de "Administración".
  • +
  • La aplicación muestra el listado de tipos de hora existentes.
  • +
+
+images/hour-type-list.png +

Lista de tipos de horas

+
+
    +
  • El usuario presiona en el icono de "Editar" o presiona en el botón "Crear".
  • +
  • La aplicación muestra un formulario de edición del tipo de hora.
  • +
+
+images/hour-type-edit.png +

Edición de tipos de horas

+
+
    +
  • El usuario introduce o modifica:

    +
    +
      +
    • El nombre del tipo de hora.
    • +
    • El código del tipo de hora.
    • +
    • El precio por defecto.
    • +
    • Activación/Desactivación del tipo de hora.
    • +
    +
    +
  • +
  • El usuario presiona en "Guardar" o "Guardar y Continuar".

    +
  • +
+
+
+

Categorías de coste

+

Para dar de alta categorías de coste es necesario dar los siguientes pasos:

+
    +
  • Seleccionar la operación "Administrar categorías de coste" en el menú de "Administración".
  • +
  • La aplicación muestra el listado de categorías existentes.
  • +
+
+images/category-cost-list.png +

Lista de categorías de coste

+
+
    +
  • El usuario presiona en el icono de "Editar" o presiona en el botón "Crear".
  • +
  • La aplicación muestra un formulario de edición de la categoría de coste.
  • +
+
+images/category-cost-edit.png +

Edición de categorías de coste

+
+
    +
  • El usuario introduce o modifica:

    +
    +
      +
    • El nombre de la categoría de coste.

      +
    • +
    • Activación/Desactivación del tipo de hora.

      +
    • +
    • Listado de tipos de hora que forman parte de la categoría. Para cada tipo de hora:

      +
      +
        +
      • Tipo de hora: Elegir uno de los tipos de hora existentes en el sistema. Si no existen ninguno es necesario crearlo (se explica en la subsección anterior).
      • +
      • Fecha de inicio y fecha fin (opcional esta segunda) del período en el que afecta la categoría de coste.
      • +
      • Precio por hora para esta categoría específicamente.
      • +
      +
      +
    • +
    +
    +
  • +
  • El usuario presiona en "Guardar" o "Guardar y Continuar".

    +
  • +
+

La asignación de categorías de coste a recursos puede verse en el capítulo de recursos. Acceder a la sección de "Recursos".

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ca/15-1-report-hours-worked-by-resource.html b/libreplan-webapp/src/main/webapp/help/ca/15-1-report-hours-worked-by-resource.html new file mode 100644 index 000000000..8d640bfa3 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ca/15-1-report-hours-worked-by-resource.html @@ -0,0 +1,128 @@ + + + + + + +Informe de horas trabajadas por recurso + + + +
+

Informe de horas trabajadas por recurso

+ + +
+

Propósito

+

Este informe permite extraer una lista de tareas y tiempo dedicado por parte de los recursos de la organización en un período de tiempo. Hay varios filtros que permiten configurar la consulta para obtener la información deseada y evitar datos superfluos.

+
+
+

Datos de entrada y filtros

+
+
    +
  • +
    Fechas.
    +
      +
    • Tipo: Opcional.
    • +
    • +
      Dos campos de fecha:
      +
        +
      • Fecha de inicio. Es la fecha mínima de los partes de trabajo que se desean. Los partes de trabajo con fecha inferior a la fecha de inicio se ignoran. Si no se especifica este parámetro, no hay fecha inferior de filtrado.
      • +
      • Fecha de fin. Es la fecha máxima de los los partes de trabajo que se incorporarán en los resultados del informe. Los partes de trabajo con una fecha posterior que la fecha de fin se obvian. Si no se cubre el parámetro, no existe fecha tope para los partes de trabajo a seleccionar.
      • +
      +
      +
      +
    • +
    +
    +
    +
  • +
  • +
    Filtrado por trabajadores
    +
      +
    • Tipo: Opcional.
    • +
    • Cómo funciona: Se puede seleccionar un trabajador para restringir el conjunto de partes de trabajo a aquellos correspondientes al trabajador seleccionado. Si se deja en blanco, se seleccionan los partes de trabajo de forma independiente al trabajador al que pertenecen.
    • +
    +
    +
    +
  • +
  • +
    Filtrado por etiquetas
    +
      +
    • Tipo: Opcional.
    • +
    • Cómo funciona: Se puede seleccionar una o varias etiquetas a través del componente de interfaz para su búsqueda y pulsando en el botón Añadir para incorporarlas al filtro. Se usan para seleccionar las tareas que serán incluidas en los resultados del informe.
    • +
    +
    +
    +
  • +
  • +
    Filtrado por criterio
    +
      +
    • Tipo: Opcional.
    • +
    • Cómo funciona: Se puede seleccionar uno o varios criterios a través del componente de búsqueda y, después, mediante el pulsado del botón de Añadir. Estos criterios se usan para seleccionar los recursos que satisfagan al menos uno de ellos. El informe tendrá en cuenta el tiempo dedicado de los recursos que satisfagan al menos uno de los criterios añadidos en este filtro.
    • +
    +
    +
    +
  • +
+
+
+
+

Salida

+
+

Cabecera

+

En la cabecera del informe se indica qué filtros ha sido configurados y aplicados para la extracción del informe a la que corresponde una cabecera concreta.

+
+
+

Pie de página

+

Include la fecha en la que el reporte se sacó.

+
+
+

Cuerpo

+

El cuerpo del informe contiene los siguientes grupos de información:

+
    +
  • Hay un primer nivel de agregación de información por recurso. Todo el tiempo dedicado por un recurso se muestra junto debajo de la cabecera. Cada recurso se identifica por:

    +
    +
      +
    • Trabajador: Apellidos, Nombre
    • +
    • Máquina: Nombre.
    • +
    +
    +
  • +
+

Se muestra una línea de resumen con el total de las horas trabajadas por un recurso.

+
    +
  • Hay un segundo nivel de agrupamiento consistente en la fecha. Todos los partes de trabajo de un recurso concreto en el mismo día se muestra de forma conjunta.
  • +
+

Hay una línea de resumen con el total de las horas trabajadas por recurso.

+
    +
  • Hay un tercer y último nivel en el cual se listan los partes de trabajo del mismo día de un trabajador. La información que se muestra para cada línea de parte de trabajo de esta agrupación es:

    +
    +
      +
    • Código de tarea al que las horas reportadas imputan tiempo.
    • +
    • Nombre de la tarea al que las horas reportadas imputan.
    • +
    • Hora de inicio. No es obligatorio. Es la hora de inicio a la que el recurso empezó a realizar el trabajo de la tarea.
    • +
    • Hora de fin- Es opcional. Es la hora de fin hasta la cual el recurso trabajó en la tarea en la fecha especificada.
    • +
    • Campos de texto. Es opcional. Si el tipo de parte de trabajo tiene campos de texto rellenados con valores, estos valores se muestrann en esta columna según el formato: <Nombre del campo de texto>:<Valor>
    • +
    • Etiquetas. Contiene valor dependiendo de si el tipo de parte de trabajo contiene al menos un campo de etiquetas en su definición. Si hay varias etiquetas se muestran en la misma columna. El formato es: <Nombre del tipo de etiqueta>.<Valor de la etiqueta asociada>.
    • +
    +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ca/15-2-total-hours-by-resource-month.html b/libreplan-webapp/src/main/webapp/help/ca/15-2-total-hours-by-resource-month.html new file mode 100644 index 000000000..6ea9f0c1d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ca/15-2-total-hours-by-resource-month.html @@ -0,0 +1,67 @@ + + + + + + +Informe de horas totales trabajadas por recurso en un mes + + + +
+

Informe de horas totales trabajadas por recurso en un mes

+ + +
+

Propósito

+

Este informe permite obtener el número total de horas trabajadas por los recursos en un mes. Esto puede ser útil para calcular las horas extras hechas o, dependendiendo de la organización, la cantidad de horas que tiene que ser pagadas por recurso en un mes.

+

La aplicación permite registrar partes de trabajo tanto para los trabajadores como para las máquinas. Y, de acuerdo con esto, el informe en el caso de las máquinas indica las horas totales que las máquinas han estado funcionando en un determinado mes.

+
+
+

Parámetros de entrada y filtro

+

En el informe debe ser especificado el año y el mes para obtener el total de horas por recurso que han trabajado.

+
+
+

Salida

+

El formato de salida del informe es el siguiente:

+
+

Cabecera

+

En la cabecera del informe se muestra;

+
+
    +
  • El año al que pertenece el informe que se está extrayendo.
  • +
  • El mes al cual pertene los datos del informe mostrado.
  • +
+
+
+
+

Pie de página

+

En el pie de página se muestra la fecha en la que cúal el informe se sacó.

+
+
+

Cuerpo

+

El área de datos del informe consiste en una única sección en la que se incluye una tabal con dos columnas:

+
+
    +
  • Una columna denominada Nombre para el nombre del recurso.
  • +
  • Una columna llamada Horas con la suma de todas las horas dedicadas por el recurso al que corresponde una fila.
  • +
+
+

Hay una final total agregadora del total de horas devotadas por cualquier de los recursos en el mes, años al que corresponde el informe.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ca/15-3-work-progress-per-project.html b/libreplan-webapp/src/main/webapp/help/ca/15-3-work-progress-per-project.html new file mode 100644 index 000000000..9391826e9 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ca/15-3-work-progress-per-project.html @@ -0,0 +1,125 @@ + + + + + + +Informe de trabajo y progres por proyecto + + + +
+

Informe de trabajo y progres por proyecto

+ + +
+

Propósito

+

Este informe permite mostrar cúal es el estado global de los proyectos teniendo en cuenta dos variables: el progreso y el coste.

+

Se analiza el estado actual de progreso de un proyecto comparándolo con lo previsto de acuerdo a la planificación y al trabajo dedicado.

+

También se muestran varios ratios relacionados al coste del proyecto comparándolo el rendimiento actual con el teórico.

+
+
+

Parámetro de entrada y filtros

+

Hay varios parámetros obligatorios. Estos son:

+
+
    +
  • Fecha de referencia. Es la fecha de referencia para hacer la comparación del estado previsto de planificación del proyecto en esa fecha con el rendimiento real del proyecto en esa citada fecha.
  • +
  • Tipo de progreso. Es el tipo de progreso que se quiere usar para medir el progreso global. En la aplicación un proyecto puede ser medido simultáneamente con diferentes tipos de progresos, y el seleccionado por el usuario en el combo de selección es el usado para calcular el informe. El valor por defecto para el tipo de progreso a usar es propagado, que es un tipo especial de progreso consistente en el uso en cada elemento del WBS del valor allí configurado como que propaga.
  • +
+
+

Con respecto a los campos opciones, son los siguientes:

+
+
    +
  • Fecha de inicio. En la fecha de inicio mínima de los proyectos que se quieren incluir en el informe. Es opcional. Si no se especifica fecha de inicio, no existe fecha mínima para los proyectos a incluír.
  • +
  • Fecha de fin. Es la fecha máxima de fin de los proyectos para que estos sean incluidos en el informe. Todos los proyectos que terminan tras la fecha de fin son descartados.
  • +
  • Filtro por proyectos. Este filtro permite seleccionar un conjunto de proyectos a los que limitar los resultados del informe. Si no se añade ningún proyecto al filtro, se muestra el informe para todos los proyectos de la base de datos. Hay un selector autcompletable para encontrar los proyectos requeridos. Se añaden al filtro mediante la pulsación en el botón Añadir.
  • +
+
+
+
+

Salida

+

El formato de salida es la siguiente:

+
+

Cabecera

+

In the report header the following fields are showed:

+
+
    +
  • Fecha de inicio. Es el filtro por fecha de inicio. No se muestra si el informe no es filtrado por este campo.
  • +
  • Fecha de fin. Es el filtro por fecha fin. No se muestra si el usuario no lo rellena.
  • +
  • Tipo de progreso. Es el tipo de progreso usado por este informe.
  • +
  • Proyectos. Es un campo que informa acerca de los proyectos filtrados para los que se obtiene el prooyecto. Consiste en la cadena de texto Todos cuando el informe se obtiene para todos los proyectos que satisfacen el resto de los filtros.
  • +
  • Fecha de referencia. Muestra el campo de entrada obligatorio fecha de referencia utilizado en la extracción del informe.
  • +
+
+
+
+

Pie de página

+

Se muestra la fecha en la que el informe ha sido extraído.

+
+
+

Cuerpo

+

El cuerpo del informe consiste en la lista de proyectos que han sido seleccionados como resultado de los filtros de entrada.

+

Otra cosa importante es que el progreso en el informe es calculado en tantos por uno. Son valores entre el 0 y el 1.

+

Los filtros funcionan añadiendo condiciones que se aplican en cadena a excepción del conjunto formado por los filtros de fecha (fecha de inicio, fecha de fin) y el filtro por proyectos. En este caso, si uno de los filtros de fecha contiene algún valor y también el filtro por proyectos tiene algun proyecto configurado al mismo tiempo, entonces este último filtro es el que manda en la selección. Esto significa que los proyectos que se incluyen en el informe son los proporcionados por el filtro por proyectos independientemente de lo que haya en los filtros de fechas

+
+
Para cada proyecto seleccionado a ser incluido en la salida del informe, se muestra la siguiente información:
+
    +
  • El nombre del proyecto.
  • +
  • +
    Las horas totales. Las horas totales del proyecto se muestran mediante la adición de las horas de cada tarea. Se calculan dos tipos de horas totales:
    +
      +
    • Estimadas (TE). Esta cantidad es la suma de todas las horas del WBS del proyecto. Es el número total de horas en las que un proyecto está estimado para ser completado.
    • +
    • Planificadas (TP). En LibrePlan es posible tener dos cantidades diferentes. Las horsa estimadas de una tarea, que son el número de horas que a priori se piensa que son necesaras para terminar una tarea, y las horas planificadas, que son las horas asignadas en el plan para hacer la tarea. Las horas planificadas pueden ser igual, menos o más que las horas estimadas y se deciden en una fase posterior, en la operación de asignación. Por tanto, las horas totales planificadas de un proyecto es la suma de todas las horas asignadas de sus tareas.
    • +
    +
    +
    +
  • +
  • +
    Progreso. Se muestran tres medidas relacionadas con el tipo de progreso especificado en el filtro de entrada en la fecha de referencia:
    +
      +
    • Medidas (PM). Es el progreso global considerando las medidas de progreso con una fecha menor o igual a la fecha de referencia en los campos de entrada para el informe. Además, se tiene en cuenta a todas last areas y la suma se pondera por el número de horas de cada tarea.
    • +
    • Imputado (PI). Este el el progreso considerando que el trabajo realizado va a la misma velocidad que las horas dedicadas en las tareas. Si se hacen X horas de Y totales de una tarea, se considera que el progreso imputado global es X/Y.
    • +
    +
    +
    +
  • +
  • +
    Horas hasta la fecha. Son dos campos que muestran el número de horas hasta la fecha de referencia desde dos puntos de vista:
    +
      +
    • Planeadas (HP). Este número es la adición de las horas asignadas en cualquier tarea con una fecha inferior a la fecha de referencia.
    • +
    • Reales (HR).. Este número es la adición de las horas imputadas en los partes de trabajo a cualquiera de las tareas de un proyecto con una fecha los partes de trabajo igual o inferior a la fecha de referencia.
    • +
    +
    +
    +
  • +
  • +
    Diferencia. Englobadas en esta sección se encuentras varias maneras de medir el coste:
    +
      +
    • En coste. Es la diferencia en horas entre el número de horas gastadas teniendo en cuenta el progreso medido y las horas dedicadas hasta la fecha de referencia. La fórmula es: PM*TP - HR.
    • +
    • En planificación. Es la diferencia entre las horas gastadas de acuerdo al progreso medido global y el número de horas planificadas hasta la fecha de referencia. Mide el adelanto o el retraso. La fórmula es: PM*TP - HR.
    • +
    • Ratio de coste. Se calcula dividiendo PM/PI. Si es mayor que 1, significa que el proyecto va en beneficios y si es mejor que 1, que se está perdiendo dinero
    • +
    • Ratio en planificación. Se cualcula dividiendo PM/PP. Si es mayor que 1, significa que el proyecto va adelantado y si es menor que 1 que va con retraso.
    • +
    +
    +
    +
  • +
+
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ca/15-informes.html b/libreplan-webapp/src/main/webapp/help/ca/15-informes.html new file mode 100644 index 000000000..9c2f63bd6 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ca/15-informes.html @@ -0,0 +1,32 @@ + + + + + + +Informes + + + +
+

Informes

+ +
+

Contents

+ +
+
+

Informes

+

"LibrePlan" está integrado con JasperReports para la gestión de informes lo cual permite implantar diversos informes que analiza datos existentes en la aplicación.

+

Los informes definidos son:

+
    +
  1. Informe sobre las horas trabajadas por recurso
  2. +
  3. Informe sobre el total de horas trabajadas por recurso en un mes
  4. +
  5. Informe sobre el trabajo y progreso por proyecto
  6. +
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ca/16-ldap-authentication.html b/libreplan-webapp/src/main/webapp/help/ca/16-ldap-authentication.html new file mode 100644 index 000000000..a77089653 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ca/16-ldap-authentication.html @@ -0,0 +1,255 @@ + + + + + + +Configuración LDAP + + + +
+

Configuración LDAP

+ + +

Esta pantalla permite establecer una conexión LDAP para delegar autenticación +y/o autorización.

+

Está dividida en catro áreas diferentes relacionadas que se explican debajo:

+
+

Activación

+

Esta área se usa para establecer las propiedades que configuran como LibrePlan +usa LDAP.

+

Si el campo Habilita autenticación LDAP está marcado, LibrePlan utiliza el +LDAP para autenticar cada vez que el usuario intenta entrar en la aplicación.

+

El campo Usar LDAP roles marcado significa que el mapping entre el roles LDAP +y roles LibrePlan está establecido, de manera que los permisos en LibrePlan +dependen de los roles que el usuario tiene en el LDAP.

+
+
+

Configuración

+

Esta sección tiene los parámentros para el acceso al LDAP. Los parámetros +Base, UserDN y Contraseña son los parámetros para conectar al LDAP y buscar +a los usuarios. El usuario configurado debe tener permiso en el LDAP. En la +última parte de esta sección hay un botón para comprobar que la conexión con el +LDAP es posible con los parámetros configurados. Es una buena idea probar la +conexión antes de continuar con la configuración.

+
+

Note

+

Si su LDAP está configurado para trabajar con autenticación anónima puede +dejar vacíos los atributos UserDN y Contraseña.

+
+
+

Tip

+

Sobre la configuración de Active Directory (AD), el campo Base debe ser +la localización exacta donde reside el usuario vinculado en el AD.

+

Ejemplo: ou=organizational_unit,dc=example,dc=org

+
+
+
+

Autenticación

+

En esta sección se configuran la propiedad de los nodos de LDAP donde se +encuentra almacenada el login del usuario. La propiedad UserId debe ser +rellenado con el nombre de la propiedad donde el login está almacenado en el +LDAP.

+

El checkbox Almacenar contraseñas en la base de datos cuando se encuentra +marcado, indica que la contraseña se almacena también en la base de datos +LibrePlan. De esta forma, si el LDAP está offline o no existe conectividad, los +usuarios del LDAP pueden autenticarse contra la base de datos de LibrePlan. Si +no está marcado, los usuario de LDAP sólo pueden ser autenticados contro el +LDAP.

+
+
+

Autorización

+

Esta sección permite definir la estrategia para asociar los roles de LDAP con +los roles de LibrePlan.

+
+

Estrategia de grupo

+

Cuando se usa esta estrategia, implica que el LDAP está usando una estrageia de +grupo de rol. Significa que los usuarios en el LDAP son nodos que cuelgan +directamente de una rama que representa el grupo.

+

El siguiente ejemplo representa una estructura de LDAP válida para usar la +estrategia de grupo.

+
    +
  • Estructura del LDAP:

    +
    +dc=example,dc=org
    +|- ou=groups
    +   |- cn=admins
    +   |- cn=itpeople
    +   |- cn=workers
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

En este caso, cada grupo tendrá un atributo, por ejemplo llamado member, +con la lista de usuarios que pertenencen al grupo:

+
    +
  • cn=admins:
      +
    • member: uid=admin1,ou=people,dc=example,dc=org
    • +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=itpeople:
      +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    • member: uid=it2,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=workers:
      +
    • member: uid=worker1,ou=people,dc=example,dc=org
    • +
    • member: uid=worker2,ou=people,dc=example,dc=org
    • +
    • member: uid=worker3,ou=people,dc=example,dc=org
    • +
    +
  • +
+

La configuración para este caso es la siguiente:

+
    +
  • Estrategia para la búsqueda de roles: Estrategia de grupo
  • +
  • Path del grupo: ou=groups
  • +
  • Propiedad del rol: member
  • +
  • Consulta para la búsqueda de roles: uid=[USER_ID],ou=people,dc=example,dc=org
  • +
+

Y por ejemplo si quiere hacer alguna correspondencia de roles:

+
    +
  • Administration: cn=admins;cn=itpeople
  • +
  • Web service reader: cn=itpeople
  • +
  • Web service writer: cn=itpeople
  • +
  • All projects read allowed: cn=admins
  • +
  • All projects edition allowed: cn=admins
  • +
  • Project creation allowed: cn=workers
  • +
+
+
+

Estrategia de propiedad

+

Cuando el administrador decide usar esta estrategia, implica que cada usuario es +un nodo de LDAP y que en el nodo existe una propiedad que representa el grupo o +grupos al que pertenece el usuairo. En este caso, la configuración no necesita +el parámetro Path del grupo:

+

El siguiente ejemplo representa una estructura de LDAP válida para usar la +estrategia de propiedad.

+
    +
  • Estructura del LDAP:

    +
    +dc=example,dc=org
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

Con atributo

+

En este caso, cada usuario tendrá un atributo, por ejemplo llamado group` +con el nombre del grupo al que pertenece:

+
    +
  • uid=admin1:
      +
    • group: admins
    • +
    +
  • +
  • uid=it1:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=it2:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=worker1:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker2:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker3:
      +
    • group: workers
    • +
    +
  • +
+
+

Warning

+

Esta estrategia tienen una restricción, cada usuario puede pertenecer sólo a un +grupo.

+
+

La configuración para este caso es la siguiente:

+
    +
  • Estrategia para la búsqueda de roles: Estrategia de propiedad
  • +
  • Path del grupo:
  • +
  • Propiedad del rol: group
  • +
  • Consulta para la búsqueda de roles: [USER_ID]
  • +
+

Y por ejemplo si quiere hacer alguna correspondencia de roles:

+
    +
  • Administration: admins;itpeople
  • +
  • Web service reader: itpeople
  • +
  • Web service writer: itpeople
  • +
  • All projects read allowed: admins
  • +
  • All projects edition allowed: admins
  • +
  • Project creation allowed: workers
  • +
+

Por identificador de usuario

+

Incluso puede tener una solución para especificar los roles de LibrePlan +directamente a los usuarios, sin tener un atributo en cada usuario de LDAP.

+

En este caso, especificará que usuarios tienen los diferentes roles por uid.

+

La configuración para este caso es la siguiente:

+
    +
  • Estrategia para la búsqueda de roles: Estrategia de propiedad
  • +
  • Path del grupo:
  • +
  • Propiedad del rol: uid
  • +
  • Consulta para la búsqueda de roles: [USER_ID]
  • +
+

Y por ejemplo si quiere hacer alguna correspondencia de roles:

+
    +
  • Administration: admin1;it1
  • +
  • Web service reader: it1;it2
  • +
  • Web service writer: it1;it2
  • +
  • All projects read allowed: admin1
  • +
  • All projects edition allowed: admin1
  • +
  • Project creation allowed: worker1;worker2;worker3
  • +
+
+
+

Correspondencia de roles

+

En el fondo de la pantalla de esta sección hay una tabla con todos los roles de +LibrePlan y un campo de texto anexo a cada uno de ellos. Esta área es para la +asociación de los roles. Por ejemplo, si un usuario administrador de LibrePlan +decide que rol de LibrePlan Administración se corresponde con los roles +admin y administrators del LDAP en el campo de texto hay que configurar: +"admin;administrators". El carácter de separación de roles es ";".

+
+

Note

+

Si quiere especificar que todos los usuarios o todos los roles tengan un +permiso puede usar un asterisco (*) como comodín para referirse a ellos. +Por ejemplo, si quiere que todo el mundo tenga el rol Project creation +allowed configurará la correspondica de roles como sigue:

+
    +
  • Project creation allowed: *
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ca/17-panel-indicadores.html b/libreplan-webapp/src/main/webapp/help/ca/17-panel-indicadores.html new file mode 100644 index 000000000..0185c5cfd --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ca/17-panel-indicadores.html @@ -0,0 +1,231 @@ + + + + + + +Panel de indicadores + + + +
+

Panel de indicadores

+ + +

El panel de indicadores es una perspectiva de LibrePlan que contiene un +conjunto de indicadores de rendimiento que ayudan a conocer como está +resultando un proyecto de acuerdo a:

+
+
    +
  • cómo está progresando el trabajo que hay que realizar para llevarlo a cabo.
  • +
  • cuánto está costando.
  • +
  • el estado de los recursos asignados.
  • +
  • las restricciones de tiempo.
  • +
+
+
+

Indicadores de rendimiento de proyecto

+

Se han calculado dos indicadores: el porcentaje de progreso de proyecto y el +estado de las tareas.

+
+

Porcentaje de progreso de proyecto

+

Es una gráfica donde el progreso global de un proyecto se calcula y se contrasta +con el valor esperado de progreso que el proyecto debería tener de acuerdo al +Gantt

+

El progreso se representa a través de dos barras:

+
+
    +
  • Progreso actual. Es el progreso existente en el momento presente de +acuerdo a las mediciones realizadas.
  • +
  • Progreso esperado. Es el progreso que el proyecto debería tener en el +momento actual de acuerdo a la planificación creada.
  • +
+
+

El progreso global de proyecto se estima de varias maneras diferentes, ya que no +existe una manera única correcta de hacerlo:

+
+
    +
  • Progreso propagado. Es el tipo de progreso marcado para propagar a +nivel del proyecto. En este caso, además, no existe manera de calcular un +valor de progreso esperado y, en consecuencia, únicamente se muestra la barra de +progreso actual.
  • +
  • Por horas de todas las tareas. El progreso de todas las tareas del +proyecto es promediado para calcular el valor global. Es una media +ponderada que toma en cuenta el número de horas asignado a cada tarea.
  • +
  • Por horas del camino crítico. El progreso de todas las tareas +pertenecientes a alguno de los caminos críticos del proyecto es promediado +para obtener el valor global. Se hace una media ponderada que toma en +cuenta las horas asignadas totales a cada una de las tareas implicadas.
  • +
  • Por duración del camino crítico. El progreso de las tareas +pertenecientes a alguno de los caminos críticos se promedia a través de una +media ponderada pero, en esta ocasión, teniendo en cuenta la duración de +las tareas implicadas en lugar de las horas asignadas.
  • +
+
+
+
+

Estado de las tareas

+

El estado de las tareas se representa a través de un gráfico de tarta que recoge el porcentaje de las tareas +del proyecto en los diferentes estados posibles. Estos estados posibles son los +siguientes:

+
+
    +
  • Finalizadas. Son las tareas completadas, detectadas por un valor de +progreso del 100% medido.
  • +
  • En curso. Son las tareas que se encuentra empezadas. Tienen un valor de +progreso diferente de 0% y de 100% o, también, algún tiempo dedicado.
  • +
  • Preparadas para comenzar. Tienen un valor de progreso del 0%, no tienen +tiempo trabajado imputado, todas las tareas dependientes FIN_A_INICIO +están finalizadas y todas las tareas dependientes INICIO_A_INICIO están +finalizadas o en curso.
  • +
  • Bloqueadas. Son tareas que tienen un 0% de progreso, sin tiempo +imputado y con las tareas de las que se depende previas en un estado +diferente a en curso y a preparadas para comenzar.
  • +
+
+
+
+
+

Indicadores de coste

+

Hay varios indicadores de Valor Ganado calculados en el panel:

+
+
    +
  • CV (Varianza de coste). Es la diferencia entre la curva de Valor +Ganado y la curva de Coste Real en el momento presente. Valores +positivos indican beneficio, mientras que valores negativos pérdida.

    +
  • +
  • ACWP (Coste real del trabajo realizado). Es el número total de horas +imputadas en el proyecto hasta el momento actual.

    +
  • +
  • CPI (Indice de rendimiento en coste). Es el ratio Valor Ganado/ Coste +real.

    +
    +
      +
    • > 100 es bueno, significa que se está bajo presupuesto.
    • +
    • = 100 es bueno igualmente, significa está con un coste exactamente igual +al plan trazado.
    • +
    • < 100 es malo, significa que el coste de completar el trabajo es más +alto que el planificado.
    • +
    +
    +
  • +
  • ETC (Estimación para compleción). Es el tiempo que está pendiente de +realizar para finalizar el proyecto.

    +
  • +
  • BAC (Presupuesto en compleción). Es el tiempo total asignado en el plan +de proyecto.

    +
  • +
  • VAC (Varianza en compleción). Es la diferencia entre el BAC y el +ETC.

    +
    +
      +
    • < 0 es estar sobre presupuesto.
    • +
    • > 0 es estar bajo presupuesto.
    • +
    +
    +
  • +
+
+
+
+

Recursos

+

Para analizar el proyecto desde el punto de vista de los recursos se +proporcionan 2 ratios y 1 histograma.

+
+

Histograma de desvío estimado en tareas completadas

+

Se calcula el desvío entre el número de horas asignadas a las tareas del +proyecto y el número final de horas dedicadas a las mismas.

+

El desvío se calcula en porcentaje para todas para todas las tareas terminadas y +los desvíos calculados se representan en un histograma. En el eje vertical se +muestran el número de tareas que están en un determinado intervalo de desvío. +Seis intervalos de desvío se calculan dinámicamente.

+
+
+

Ratio de sobrecarga

+

Resume la sobrecarga de los recursos que se asignan en las tareas del proyecto. +Se calcula de acuerdo a la fórmula: ratio de sobrecarga = sobrecarga / (carga + sobrecarga).

+
+
    +
  • = 0 es bueno, significa que los recursos no están sobrecargados.
  • +
  • > 0 es malo, significa que los recursos están sobrecargados.
  • +
+
+
+
+

Ratio de disponibilidad

+

Resume la capacidad que está disponible para asignar en los recursos del +proyecto. Por tanto es una medida de la disponibilidad de los recursos para +recibir más asignaciones sin ser sobrecargados. Se calcula como: ratio de +disponibilidad = (1 - carga/capacidad)*100

+
+
    +
  • Los valores posibles están entre 0% (completamente asignados) y 100% (no +asignados)
  • +
+
+
+
+
+

Tiempo

+

Se incluyen dos gráficas de tiempo: un histograma para la desviación de tiempo +a la finalización de las tareas de los proyectos y un gráfico de +tarta para las violaciones de fecha de entrega.

+
+

Adelanto o retraso en la compleción de las tareas

+

Se calcula la diferencia en días entre la fecha de finalización planificada +para las tareas del proyecto y su tiempo de finalización real. La fecha de +terminación prevista se obtiene del Gantt y la fecha de terminación real se +obtiene a partir de la fecha del trabajo imputado a la tarea más reciente.

+

El retraso o adelanto en la compleción de las tareas se representa a través de +un histograma. En el eje vertical se representan el número de tareas con un +número de días de adelanto o retraso incluidas en el intervalo indicado +en la abcisa. Se calcula seis intervalos de desvío en la compleción de tareas +de forma dinámica.

+
+
    +
  • Valores negativos indican terminación antes de tiempo.
  • +
  • Valores positivos indican terminación con retraso.
  • +
+
+
+
+

Violaciones de fecha de entrega

+

Por un lado se calcula el margen con la fecha de entrega de proyecto, si esta se +configura. Por otro lado se pinta un gráfico de sectores con el porcentaje de +tareas que cumplen la fecha de entrega. Se incluyen tres tipos de valores:

+
+
    +
  • Porcentaje de tareas sin fecha de entrega configurada.
  • +
  • Porcentaje de tares finalizadas con una fecha de terminación real posterior +a la fecha de entrega configurada. La fecha de finalización real se obtiene +el último trabajo registrado en la tarea.
  • +
  • Porcentaje de tareas finalizadas con una fecha de terminación real anterior +a su fecha de entrega.
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ca/20-acerca-de.html b/libreplan-webapp/src/main/webapp/help/ca/20-acerca-de.html new file mode 100644 index 000000000..58fd51c83 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ca/20-acerca-de.html @@ -0,0 +1,134 @@ + + + + + + +Acerca de + + + +
+

Acerca de

+ + + +
+

Licencia

+

Este programa es software libre; puede redistribuirlo o modificarlo bajo los +términos de la Licencia Pública Generala Affero GNU tal como se publica por la +Free Software Foundation; ya sea la versión 3 de la Licencia, o (a su elección) +cualquier versión posterior.

+

Este programa se distribuye con la esperanza de que le sea útil, pero SIN +NINGUNA GARANTÍA; sin incluso la garantía implícita de MERCANTILIDAD o IDONEIDAD +PARA UN PROPÓSITO PARTICULAR. Vea la Licencia Pública General Affero GNU para +más detalles.

+

Debería haber recibido una copia de la Licencia Pública General Affero GNU junto +con este programa. Si no es así, visite <http://www.gnu.org/licenses/>.

+
+
+

Escrito por

+
+

Equipo de LibrePlan

+ +
+
+

Anteriores miembros del equipo

+ +
+
+

Traductores

+ +
+
+

Contribuidores

+ +
+
+
+

Financiación pública

+

Dentro del marco global de LibrePlan y la gestión de la planificación, se desarrolló un proyecto que pretende resolver +una serie de problemas comunes de planificación. +Este proyecto fue cofinanciado por la Xunta de Galicia, el Ministerio de Industria, Turismo y Comercio, y la +Unión Europea, Fondo Europeo de Desarrollo Regional.

+
+images/logos.png +
+

El proyecto formo parte del Plan Avanza:

+
+images/avanza.gif +
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/advance-assignment.png b/libreplan-webapp/src/main/webapp/help/ca/images/advance-assignment.png new file mode 100644 index 000000000..aeb55b2b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/advance-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/asignacion-especifica.png b/libreplan-webapp/src/main/webapp/help/ca/images/asignacion-especifica.png new file mode 100644 index 000000000..9ee94d9c6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/asignacion-especifica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/asignacion-xenerica.png b/libreplan-webapp/src/main/webapp/help/ca/images/asignacion-xenerica.png new file mode 100644 index 000000000..d2a16597f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/asignacion-xenerica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/avance.png b/libreplan-webapp/src/main/webapp/help/ca/images/avance.png new file mode 100644 index 000000000..ee289e19c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/avanza.gif b/libreplan-webapp/src/main/webapp/help/ca/images/avanza.gif new file mode 100644 index 000000000..cd959cf3a Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/avanza.gif differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/calendar-administration.png b/libreplan-webapp/src/main/webapp/help/ca/images/calendar-administration.png new file mode 100644 index 000000000..bb4e17032 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/calendar-administration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/calendar-create-derived.png b/libreplan-webapp/src/main/webapp/help/ca/images/calendar-create-derived.png new file mode 100644 index 000000000..9f01f2c33 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/calendar-create-derived.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/calendar-edition.png b/libreplan-webapp/src/main/webapp/help/ca/images/calendar-edition.png new file mode 100644 index 000000000..a98cc4454 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/calendar-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/calendar-exceptions.png b/libreplan-webapp/src/main/webapp/help/ca/images/calendar-exceptions.png new file mode 100644 index 000000000..c2a53a684 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/calendar-exceptions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/category-cost-edit.png b/libreplan-webapp/src/main/webapp/help/ca/images/category-cost-edit.png new file mode 100644 index 000000000..1755ee79e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/category-cost-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/category-cost-list.png b/libreplan-webapp/src/main/webapp/help/ca/images/category-cost-list.png new file mode 100644 index 000000000..1d7ff838c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/category-cost-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/company_view.png b/libreplan-webapp/src/main/webapp/help/ca/images/company_view.png new file mode 100644 index 000000000..c3a7631e6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/company_view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/contraste-avance.png b/libreplan-webapp/src/main/webapp/help/ca/images/contraste-avance.png new file mode 100644 index 000000000..831cceac3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/contraste-avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/default-calendar.png b/libreplan-webapp/src/main/webapp/help/ca/images/default-calendar.png new file mode 100644 index 000000000..6fd379d08 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/default-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/edicion-criterio.png b/libreplan-webapp/src/main/webapp/help/ca/images/edicion-criterio.png new file mode 100644 index 000000000..2b879ced5 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/edicion-criterio.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/hour-type-edit.png b/libreplan-webapp/src/main/webapp/help/ca/images/hour-type-edit.png new file mode 100644 index 000000000..4917b08a8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/hour-type-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/hour-type-list.png b/libreplan-webapp/src/main/webapp/help/ca/images/hour-type-list.png new file mode 100644 index 000000000..1872eb4f7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/hour-type-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/lista-criterios.png b/libreplan-webapp/src/main/webapp/help/ca/images/lista-criterios.png new file mode 100644 index 000000000..a2e7d03cb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/lista-criterios.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/logo.png b/libreplan-webapp/src/main/webapp/help/ca/images/logo.png new file mode 100644 index 000000000..4e7d02651 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/logo.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/logos.png b/libreplan-webapp/src/main/webapp/help/ca/images/logos.png new file mode 100644 index 000000000..7314a0759 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/logos.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/machine-calendar.png b/libreplan-webapp/src/main/webapp/help/ca/images/machine-calendar.png new file mode 100644 index 000000000..a725f67a2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/machine-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/machine-configuration.png b/libreplan-webapp/src/main/webapp/help/ca/images/machine-configuration.png new file mode 100644 index 000000000..0777473fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/machine-configuration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/machine-costcategory.png b/libreplan-webapp/src/main/webapp/help/ca/images/machine-costcategory.png new file mode 100644 index 000000000..b8414eac6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/machine-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/machine-criterions.png b/libreplan-webapp/src/main/webapp/help/ca/images/machine-criterions.png new file mode 100644 index 000000000..7c270bf35 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/machine-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/machine-data.png b/libreplan-webapp/src/main/webapp/help/ca/images/machine-data.png new file mode 100644 index 000000000..5edb47d12 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/machine-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/manage-user-profile.png b/libreplan-webapp/src/main/webapp/help/ca/images/manage-user-profile.png new file mode 100644 index 000000000..6a86064e2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/manage-user-profile.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/manage-user.png b/libreplan-webapp/src/main/webapp/help/ca/images/manage-user.png new file mode 100644 index 000000000..df59f1b7c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/manage-user.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/material.png b/libreplan-webapp/src/main/webapp/help/ca/images/material.png new file mode 100644 index 000000000..a77b5aa41 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/menu.png b/libreplan-webapp/src/main/webapp/help/ca/images/menu.png new file mode 100644 index 000000000..f4eec5250 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/menu.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/new-resource-calendar.png b/libreplan-webapp/src/main/webapp/help/ca/images/new-resource-calendar.png new file mode 100644 index 000000000..9040e0bc0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/new-resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/order-assigned-hours.png b/libreplan-webapp/src/main/webapp/help/ca/images/order-assigned-hours.png new file mode 100644 index 000000000..4fd629386 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/order-assigned-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/order-criterions.png b/libreplan-webapp/src/main/webapp/help/ca/images/order-criterions.png new file mode 100644 index 000000000..e59bd833f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/order-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/order-edition.png b/libreplan-webapp/src/main/webapp/help/ca/images/order-edition.png new file mode 100644 index 000000000..ff67134db Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/order-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/order-element-criterion.png b/libreplan-webapp/src/main/webapp/help/ca/images/order-element-criterion.png new file mode 100644 index 000000000..f167979b0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/order-element-criterion.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/order-element-edition.png b/libreplan-webapp/src/main/webapp/help/ca/images/order-element-edition.png new file mode 100644 index 000000000..66e5e8602 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/order-element-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/order-element-hours.png b/libreplan-webapp/src/main/webapp/help/ca/images/order-element-hours.png new file mode 100644 index 000000000..06cc1dc37 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/order-element-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/order-element-material-assign.png b/libreplan-webapp/src/main/webapp/help/ca/images/order-element-material-assign.png new file mode 100644 index 000000000..90f973766 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/order-element-material-assign.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/order-element-material-search.png b/libreplan-webapp/src/main/webapp/help/ca/images/order-element-material-search.png new file mode 100644 index 000000000..550f1d7fa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/order-element-material-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/order-element-quality.png b/libreplan-webapp/src/main/webapp/help/ca/images/order-element-quality.png new file mode 100644 index 000000000..3272ce70e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/order-element-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/order-element-tags.png b/libreplan-webapp/src/main/webapp/help/ca/images/order-element-tags.png new file mode 100644 index 000000000..e43a7d795 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/order-element-tags.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/order-elements-list.png b/libreplan-webapp/src/main/webapp/help/ca/images/order-elements-list.png new file mode 100644 index 000000000..271ac9bf6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/order-elements-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/order-labels.png b/libreplan-webapp/src/main/webapp/help/ca/images/order-labels.png new file mode 100644 index 000000000..076e0a745 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/order-labels.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/order-material.png b/libreplan-webapp/src/main/webapp/help/ca/images/order-material.png new file mode 100644 index 000000000..9197679e7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/order-material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/order-quality.png b/libreplan-webapp/src/main/webapp/help/ca/images/order-quality.png new file mode 100644 index 000000000..ee9e9027e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/order-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/order_list.png b/libreplan-webapp/src/main/webapp/help/ca/images/order_list.png new file mode 100644 index 000000000..72e70f3b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/order_list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/planning-view.png b/libreplan-webapp/src/main/webapp/help/ca/images/planning-view.png new file mode 100644 index 000000000..de74811eb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/planning-view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/quality.png b/libreplan-webapp/src/main/webapp/help/ca/images/quality.png new file mode 100644 index 000000000..1850f51b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/resource-assignment-generic.png b/libreplan-webapp/src/main/webapp/help/ca/images/resource-assignment-generic.png new file mode 100644 index 000000000..3519a5087 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/resource-assignment-generic.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/resource-assignment-planning.png b/libreplan-webapp/src/main/webapp/help/ca/images/resource-assignment-planning.png new file mode 100644 index 000000000..c4233780d Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/resource-assignment-planning.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/resource-assignment-search.png b/libreplan-webapp/src/main/webapp/help/ca/images/resource-assignment-search.png new file mode 100644 index 000000000..cae142d81 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/resource-assignment-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/resource-assignment-specific.png b/libreplan-webapp/src/main/webapp/help/ca/images/resource-assignment-specific.png new file mode 100644 index 000000000..8f7b1cba2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/resource-assignment-specific.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/resource-assignment.png b/libreplan-webapp/src/main/webapp/help/ca/images/resource-assignment.png new file mode 100644 index 000000000..427d25b79 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/resource-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/resource-calendar.png b/libreplan-webapp/src/main/webapp/help/ca/images/resource-calendar.png new file mode 100644 index 000000000..749c7b829 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/resource-load.png b/libreplan-webapp/src/main/webapp/help/ca/images/resource-load.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/resource-load.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/resources_global.png b/libreplan-webapp/src/main/webapp/help/ca/images/resources_global.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/resources_global.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/stretches.png b/libreplan-webapp/src/main/webapp/help/ca/images/stretches.png new file mode 100644 index 000000000..d661a63f6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/stretches.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/tag-types-edition.png b/libreplan-webapp/src/main/webapp/help/ca/images/tag-types-edition.png new file mode 100644 index 000000000..d366c09c2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/tag-types-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/tag-types-list.png b/libreplan-webapp/src/main/webapp/help/ca/images/tag-types-list.png new file mode 100644 index 000000000..e7de5048c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/tag-types-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/tipos-avances.png b/libreplan-webapp/src/main/webapp/help/ca/images/tipos-avances.png new file mode 100644 index 000000000..bb417f52c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/tipos-avances.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/virtual-resources.png b/libreplan-webapp/src/main/webapp/help/ca/images/virtual-resources.png new file mode 100644 index 000000000..3a54f95d3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/virtual-resources.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/work-report-hours.png b/libreplan-webapp/src/main/webapp/help/ca/images/work-report-hours.png new file mode 100644 index 000000000..568e9fed6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/work-report-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/work-report-type.png b/libreplan-webapp/src/main/webapp/help/ca/images/work-report-type.png new file mode 100644 index 000000000..2549d8b5e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/work-report-type.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/work-report-types.png b/libreplan-webapp/src/main/webapp/help/ca/images/work-report-types.png new file mode 100644 index 000000000..986f705aa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/work-report-types.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/worker-calendar.png b/libreplan-webapp/src/main/webapp/help/ca/images/worker-calendar.png new file mode 100644 index 000000000..1227969b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/worker-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/worker-costcategory.png b/libreplan-webapp/src/main/webapp/help/ca/images/worker-costcategory.png new file mode 100644 index 000000000..f330db68c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/worker-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/worker-criterions.png b/libreplan-webapp/src/main/webapp/help/ca/images/worker-criterions.png new file mode 100644 index 000000000..a131a29fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/worker-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/images/worker-personal-data.png b/libreplan-webapp/src/main/webapp/help/ca/images/worker-personal-data.png new file mode 100644 index 000000000..6a5033ba8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ca/images/worker-personal-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ca/index.html b/libreplan-webapp/src/main/webapp/help/ca/index.html new file mode 100644 index 000000000..ace1c5a43 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ca/index.html @@ -0,0 +1,42 @@ + + + + + + +Documentación de usuario da aplicación + + + +
+

Documentación de usuario da aplicación

+ +images/logo.png +

En el siguiente documento se proporciona la documentación de ayuda necesaria para utilizar LibrePlan, la aplicación web de código abierto para la planificación de proyectos.

+

Esta documentación está organizada del siguiente modo:

+

En primer lugar se describen los objetivos principales de la aplicación, comportamiento global y contextualización general del uso y necesidades de la misma.

+

A continuación se introducen las entidades básicas que será necesario conocer para utilizar las funcionalidades de LibrePlan.

+

Finalmente, se detallan los procesos completos de creación de pedidos, proyectos, planificación de proyectos, asignación de recursos, imputación de avances y extracción de resultados.

+
    +
  1. Introducción
  2. +
  3. Criterios
  4. +
  5. Calendarios
  6. +
  7. Avances
  8. +
  9. Gestión de recursos
  10. +
  11. Pedidos y elementos de pedidos
  12. +
  13. Planificación de tareas
  14. +
  15. Asignación de recursos
  16. +
  17. Partes de trabajo
  18. +
  19. Etiquetas
  20. +
  21. Materiales
  22. +
  23. Formularios de calidad
  24. +
  25. Usuarios
  26. +
  27. Gestión de costes
  28. +
  29. Informes
  30. +
  31. Configuración LDAP
  32. +
  33. Panel de indicadores
  34. +
  35. Acerca de
  36. +
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ca/lsr.css b/libreplan-webapp/src/main/webapp/help/ca/lsr.css new file mode 100644 index 000000000..81e4c1669 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ca/lsr.css @@ -0,0 +1,251 @@ +/* +Author: Peter Parente +Date: 2008/01/22 +Version: 1.0 +Copyright: This stylesheet has been placed in the public domain - free to edit and use for all uses. +*/ + +body { + font: 0.8em Verdana, Tahoma, sans-serif; + background: #ffffff; + color: black; + margin: 2em; +/* padding: 0em 2em; */ +} + +p.topic-title { + font-weight: bold; +} + +table.docinfo { + text-align: left; + margin: 2em 0em; +} + +a[href] { + color: #436976; + background-color: transparent; +} + +a.toc-backref { + text-decoration: none; +} + +h1 a[href] { + color: #003a6b; + text-decoration: none; + background-color: transparent; +} + +a.strong { + font-weight: bold; +} + +img { + margin: 0; + border: 0; +} + +p { + margin: 0.5em 0 1em 0; + line-height: 1.5em; +} + +p a:visited { + color: purple; + background-color: transparent; +} + +p a:active { + color: red; + background-color: transparent; +} + +a:hover { + text-decoration: none; +} + +p img { + border: 0; + margin: 0; +} + +p.rubric { + font-weight: bold; + font-style: italic; +} + +h1.title { + color: #003a6b; + font-size: 250%; + margin-bottom: 0em; +} + +h2.subtitle { + color: #003a6b; + border-bottom: 0px; +} + +h1, h2, h3, h4, h5, h6 { + color: #555; + background-color: transparent; + margin: 0em; + padding-top: 0.5em; +} + +h1 { + font-size: 160%; + margin-bottom: 0.5em; + border-bottom: 2px solid #aaa; +} + +h2 { + font-size: 140%; + margin-bottom: 0.5em; + border-bottom: 1px solid #aaa; +} + +h3 { + font-size: 130%; + margin-bottom: 0.5em; +} + +h4 { + font-size: 110%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h5 { + font-size: 105%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h6 { + font-size: 100%; + font-weight: bold; + margin-bottom: 0.5em; +} + +dt { + font-style: italic; +} + +dd { + margin-bottom: 1.5em; +} + +div.admonition, div.note, div.tip, div.caution, div.important, div.warning { + margin: 2em 2em; + padding: 0em 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +div.important { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +div.caution { + background: transparent url('../images/caution.png') 10px 2px no-repeat; +} + +div.note { + background: transparent url('../images/note.png') 10px 2px no-repeat; +} + +div.tip { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-example { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-critical-example { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +p.admonition-title { + font-weight: bold; + border-bottom: 1px solid #aaa; + padding-left: 30px; +} + +table.docutils { + text-align: left; + border: 1px solid gray; + border-collapse: collapse; + width: 100%; + margin: 1.5em 0em; +} + +table.docutils caption { + font-style: italic; +} + +table.docutils td, table.docutils th { + padding: 0.25em 0.5em; +} + +table.docutils th { + background-color: #dddddd; +} + +div.sidebar { + width: 33%; + float: right; + margin: 0em 2em; + padding: 0em 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +p.sidebar-title { + margin-bottom: 0em; + color: #003a6b; + border-bottom: 1px solid #aaa; + font-weight: bold; +} + +p.sidebar-subtitle { + margin-top: 0em; + font-style: italic; + color: #003a6b; +} + +div.figure { + text-align: center; +} + +div.figure img { + background: #f8f8f8; + padding: 0.25em; + border: 1px solid #888; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +div.figure img:hover { + background: #e0e0e0; +} + +div.figure p.caption { + text-align: center; + margin-top: 0.1em; + font-style: italic; + color: #444; +} + +pre.literal-block { + padding: 0.15em; + background: #f8f8f8; + border: 1px solid #dfdfdf; + border-left: 0.25em solid #dfdfdf +} diff --git a/libreplan-webapp/src/main/webapp/help/cs/01-introducion.html b/libreplan-webapp/src/main/webapp/help/cs/01-introducion.html new file mode 100644 index 000000000..51e520ad7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/01-introducion.html @@ -0,0 +1,132 @@ + + + + + + +Introduction + + + +
+

Introduction

+ + +

This document describes the features of TASKPM and provides user information on how to configure and use the application.

+

TASKPM is an open-source web application for project planning. Its primary goal is to provide a comprehensive solution for company project management. For any specific information you may need about this software, please contact the development team at http://www.libreplan.com/contact/

+
+images/company_view.png +

Company Overview

+
+
+

Company Overview and View Management

+

As shown in the program's main screen (see the previous screenshot) and the company overview, users can view a list of planned projects. This allows them to understand the company's overall status regarding orders and resource utilization. The company overview offers three distinct views:

+
    +
  • Planning View: This view combines two perspectives:

    +
    +
      +
    • Order and Time Tracking: Each project is represented by a Gantt chart, indicating the project's start and end dates. This information is displayed alongside the agreed-upon deadline. A comparison is then made between the percentage of progress achieved and the actual time dedicated to each project. This provides a clear picture of the company's performance at any given time. This view is the program's default landing page.
    • +
    • Company Resource Utilization Graph: This graph displays information on resource allocation across projects, providing a summary of the entire company's resource usage. Green indicates that resource allocation is below 100% of capacity. The black line represents the total available resource capacity. Yellow indicates that resource allocation exceeds 100%. It's possible to have under-allocation overall while simultaneously experiencing over-allocation for specific resources.
    • +
    +
    +
  • +
  • Resource Load View: This screen displays a list of the company's workers and their specific task allocations, or generic allocations based on defined criteria. To access this view, click on Overall load of resources. See the following image for an example.

    +
  • +
  • Orders Administration View: This screen displays a list of company orders, allowing users to perform the following actions: filter, edit, delete, visualize planning, or create a new order. To access this view, click on Order list.

    +
  • +
+
+images/resources_global.png +

Resource Overview

+
+
+images/order_list.png +

Work Breakdown Structure

+
+

The view management described above for the company overview is very similar to the management available for a single project. A project can be accessed in several ways:

+
    +
  • Right-click on the Gantt chart for the order and select Plan.
  • +
  • Access the order list and click on the Gantt diagram icon.
  • +
  • Create a new order and change the current order view.
  • +
+

The program offers the following views for an order:

+
    +
  • Planning View: This view allows users to visualize task planning, dependencies, milestones, and more. See the Planning section for further details.
  • +
  • Resource Load View: This view allows users to check the designated resource load for a project. The color code is consistent with the company overview: green for a load less than 100%, yellow for a load equal to 100%, and red for a load over 100%. The load may originate from a specific task or a set of criteria (generic allocation).
  • +
  • Editing Order View: This view allows users to modify the details of the order. See the Orders section for more information.
  • +
  • Advanced Resource Allocation View: This view allows users to allocate resources with advanced options, such as specifying hours per day or the allocated functions to be performed. See the Resource allocation section for more information.
  • +
+
+
+

What Makes TASKPM Useful?

+

TASKPM is a general-purpose planning tool developed to address challenges in industrial project planning that were not adequately covered by existing tools. The development of TASKPM was also motivated by the desire to provide a free, open-source, and entirely web-based alternative to proprietary planning tools.

+

The core concepts underpinning the program are as follows:

+
    +
  • Company and Multi-Project Overview: TASKPM is specifically designed to provide users with information about multiple projects being carried out within a company. Therefore, it is inherently a multi-project program. The program's focus is not limited to individual projects, although specific views for individual projects are also available.
  • +
  • View Management: The company overview, or multi-project view, is accompanied by various views of the stored information. For example, the company overview allows users to view orders and compare their status, view the company's overall resource load, and manage orders. Users can also access the planning view, resource load view, advanced resource allocation view, and editing order view for individual projects.
  • +
  • Criteria: Criteria are a system entity that enables the classification of both resources (human and machine) and tasks. Resources must meet certain criteria, and tasks require specific criteria to be fulfilled. This is one of the program's most important features, as criteria form the basis of generic allocation and address a significant challenge in the industry: the time-consuming nature of human resource management and the difficulty of long-term company load estimations.
  • +
  • Resources: There are two types of resources: human and machine. Human resources are the company's workers, used for planning, monitoring, and controlling the company's workload. Machine resources, dependent on the people who operate them, function similarly to human resources.
  • +
  • Resource Allocation: A key feature of the program is the ability to designate resources in two ways: specifically and generically. Generic allocation is based on the criteria required to complete a task and must be fulfilled by resources capable of meeting those criteria. To understand generic allocation, consider this example: John Smith is a welder. Typically, John Smith would be specifically assigned to a planned task. However, TASKPM offers the option of selecting any welder within the company, without needing to specify that John Smith is the assigned person.
  • +
  • Company Load Control: The program allows for easy control of the company's resource load. This control extends to both the mid-term and long-term, as current and future projects can be managed within the program. TASKPM provides graphs that visually represent resource utilization.
  • +
  • Labels: Labels are used to categorize project tasks. With these labels, users can group tasks by concept, allowing for later review as a group or after filtering.
  • +
  • Filters: Because the system naturally includes elements that label or characterize tasks and resources, criteria filters or labels can be used. This is very useful for reviewing categorized information or generating specific reports based on criteria or labels.
  • +
  • Calendars: Calendars define the available productive hours for different resources. Users can create general company calendars or define more specific calendars, allowing for the creation of calendars for individual resources and tasks.
  • +
  • Orders and Order Elements: Work requested by clients is treated as an order within the application, structured into order elements. The order and its elements follow a hierarchical structure with x levels. This element tree forms the basis for work planning.
  • +
  • Progress: The program can manage various types of progress. A project's progress can be measured as a percentage, in units, against the agreed budget, and more. The responsibility for determining which type of progress to use for comparison at higher project levels lies with the planning manager.
  • +
  • Tasks: Tasks are the fundamental planning elements within the program. They are used to schedule work to be carried out. Key characteristics of tasks include: dependencies between tasks, and the potential requirement for specific criteria to be met before resources can be allocated.
  • +
  • Work Reports: These reports, submitted by the company's workers, detail the hours worked and the tasks associated with those hours. This information allows the system to calculate the actual time taken to complete a task compared to the budgeted time. Progress can then be compared against the actual hours used.
  • +
+

In addition to the core functions, TASKPM offers other features that distinguish it from similar programs:

+
    +
  • Integration with ERP: The program can directly import information from company ERP systems, including orders, human resources, work reports, and specific criteria.
  • +
  • Version Management: The program can manage multiple planning versions, while still allowing users to review the information from each version.
  • +
  • History Management: The program does not delete information; it only marks it as invalid. This allows users to review historical information using date filters.
  • +
+
+
+

Usability Conventions

+
+

Information About Forms

+

Before describing the various functions associated with the most important modules, we need to explain the general navigation and form behavior.

+

There are essentially three types of editing forms:

+
    +
  • Forms with a *Return* button: These forms are part of a larger context, and the changes made are stored in memory. The changes are only applied when the user explicitly saves all the details on the screen from which the form originated.
  • +
  • Forms with *Save* and *Close* buttons: These forms allow for two actions. The first saves the changes and closes the current window. The second closes the window without saving any changes.
  • +
  • Forms with *Save and continue*, *Save*, and *Close* buttons: These forms allow for three actions. The first saves the changes and keeps the current form open. The second saves the changes and closes the form. The third closes the window without saving any changes.
  • +
+
+
+

Standard Icons and Buttons

+
    +
  • Editing: In general, records in the program can be edited by clicking on an icon that looks like a pencil on a white notebook.
  • +
  • Left Indent: These operations are generally used for elements within a tree structure that need to be moved to a deeper level. This is done by clicking on the icon that looks like a green arrow pointing to the right.
  • +
  • Right Indent: These operations are generally used for elements within a tree structure that need to be moved to a higher level. This is done by clicking on the icon that looks like a green arrow pointing to the left.
  • +
  • Deleting: Users can delete information by clicking on the trash can icon.
  • +
  • Search: The magnifying glass icon indicates that the text field to its left is used for searching for elements.
  • +
+
+
+

Tabs

+

The program uses tabs to organize content editing and administration forms. This method is used to divide a comprehensive form into different sections, accessible by clicking on the tab names. The other tabs retain their current status. In all cases, the save and cancel options apply to all sub-forms within the different tabs.

+
+
+

Explicit Actions and Context Help

+

The program includes components that provide additional descriptions of elements when the mouse hovers over them for one second. The actions that the user can perform are indicated on the button labels, in the help texts associated with them, in the browsing menu options, and in the context menus that appear when right-clicking in the planner area. Furthermore, shortcuts are provided for the main operations, such as double-clicking on listed elements or using key events with the cursor and the Enter key to add elements when navigating through forms.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/cs/02-criterios.html b/libreplan-webapp/src/main/webapp/help/cs/02-criterios.html new file mode 100644 index 000000000..42fad10d3 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/02-criterios.html @@ -0,0 +1,69 @@ + + + + + + +Criteria + + + +
+

Criteria

+ +
+

Contents

+ +
+

Criteria are elements used within the program to categorize both resources and tasks. Tasks require specific criteria, and resources must meet those criteria.

+

Here's an example of how criteria are used: A resource is assigned the criterion "welder" (meaning the resource fulfills the "welder" category), and a task requires the "welder" criterion to be completed. Consequently, when resources are allocated to tasks using generic allocation (as opposed to specific allocation), workers with the "welder" criterion will be considered. For more information on the different types of allocation, refer to the chapter on resource allocation.

+

The program allows for several operations involving criteria:

+
    +
  • Criteria administration
  • +
  • Assigning criteria to resources
  • +
  • Assigning criteria to tasks
  • +
  • Filtering entities based on criteria. Tasks and order items can be filtered by criteria to perform various operations within the program.
  • +
+

This section will only explain the first function, criteria administration. The two types of allocation will be covered later: resource allocation in the "Resource Management" chapter, and filtering in the "Task Planning" chapter.

+
+

Criteria Administration

+

Criteria administration can be accessed through the administration menu:

+
+images/menu.png +

First-Level Menu Tabs

+
+

The specific operation for managing criteria is Manage criteria. This operation allows you to list the criteria available in the system.

+
+images/lista-criterios.png +

List of Criteria

+
+

You can access the create/edit criterion form by clicking the Create button. To edit an existing criterion, click the edit icon.

+
+images/edicion-criterio.png +

Editing Criteria

+
+

The criteria editing form, as shown in the previous image, allows you to perform the following operations:

+
    +
  • Edit the criterion's name.
  • +
  • Specify whether multiple values can be assigned simultaneously or only one value for the selected criterion type. For example, a resource could fulfill two criteria, "welder" and "lathe operator."
  • +
  • Specify the criterion type:
      +
    • Generic: A criterion that can be used for both machines and workers.
    • +
    • Worker: A criterion that can only be used for workers.
    • +
    • Machine: A criterion that can only be used for machines.
    • +
    +
  • +
  • Indicate whether the criterion is hierarchical. Sometimes, criteria need to be treated hierarchically. For example, assigning a criterion to an element does not automatically assign it to elements derived from it. A clear example of a hierarchical criterion is "location." For instance, a person designated with the location "Galicia" will also belong to "Spain."
  • +
  • Indicate whether the criterion is authorized. This is how users deactivate criteria. Once a criterion has been created and used in historical data, it cannot be changed. Instead, it can be deactivated to prevent it from appearing in selection lists.
  • +
  • Describe the criterion.
  • +
  • Add new values. A text entry field with the New criterion button is located in the second part of the form.
  • +
  • Edit the names of existing criteria values.
  • +
  • Move criteria values up or down in the list of current criteria values.
  • +
  • Remove a criterion value from the list.
  • +
+

The criteria administration form follows the form behavior described in the introduction, offering three actions: Save, Save and Close, and Close.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/cs/03-calendarios.html b/libreplan-webapp/src/main/webapp/help/cs/03-calendarios.html new file mode 100644 index 000000000..0d0bbf0d5 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/03-calendarios.html @@ -0,0 +1,187 @@ + + + + + + +Calendars + + + +
+

Calendars

+ + +

Calendars are entities within the program that define the working capacity of resources. A calendar consists of a series of days throughout the year, with each day divided into available working hours.

+

For example, a public holiday might have 0 available working hours. Conversely, a typical workday might have 8 hours designated as available working time.

+

There are two primary ways to define the number of working hours in a day:

+
    +
  • By Weekday: This method sets a standard number of working hours for each day of the week. For example, Mondays might typically have 8 working hours.
  • +
  • By Exception: This method allows for specific deviations from the standard weekday schedule. For example, Monday, January 30th, might have 10 working hours, overriding the standard Monday schedule.
  • +
+
+

Calendar Administration

+

The calendar system is hierarchical, allowing you to create base calendars and then derive new calendars from them, forming a tree structure. A calendar derived from a higher-level calendar will inherit its daily schedules and exceptions unless explicitly modified. To effectively manage calendars, it's important to understand the following concepts:

+
    +
  • Day Independence: Each day is treated independently, and each year has its own set of days. For example, if December 8th, 2009, is a public holiday, this does not automatically mean that December 8th, 2010, is also a public holiday.
  • +
  • Weekday-Based Working Days: Standard working days are based on weekdays. For example, if Mondays typically have 8 working hours, then all Mondays in all weeks of all years will have 8 available hours unless an exception is defined.
  • +
  • Exceptions and Exception Periods: You can define exceptions or exception periods to deviate from the standard weekday schedule. For example, you can specify a single day or a range of days with a different number of available working hours than the general rule for those weekdays.
  • +
+
+images/calendar-administration.png +

Calendar Administration

+
+

Calendar administration is accessible through the "Administration" menu. From there, users can perform the following actions:

+
    +
  1. Create a new calendar from scratch.
  2. +
  3. Create a calendar derived from an existing one.
  4. +
  5. Create a calendar as a copy of an existing one.
  6. +
  7. Edit an existing calendar.
  8. +
+
+

Creating a New Calendar

+

To create a new calendar, click the "Create" button. The system will display a form where you can configure the following:

+
    +
  • Select the Tab: Choose the tab you want to work on:
      +
    • Marking Exceptions: Define exceptions to the standard schedule.
    • +
    • Working Hours per Day: Define the standard working hours for each weekday.
    • +
    +
  • +
  • Marking Exceptions: If you select the "Marking Exceptions" option, you can:
      +
    • Select a specific day on the calendar.
    • +
    • Select the type of exception. The available types are: holiday, illness, strike, public holiday, and working holiday.
    • +
    • Select the end date of the exception period. (This field does not need to be changed for single-day exceptions.)
    • +
    • Define the number of working hours during the days of the exception period.
    • +
    • Delete previously defined exceptions.
    • +
    +
  • +
  • Working Hours per Day: If you select the "Working Hours per Day" option, you can:
      +
    • Define the available working hours for each weekday (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, and Sunday).
    • +
    • Define different weekly hour distributions for future periods.
    • +
    • Delete previously defined hour distributions.
    • +
    +
  • +
+

These options allow users to fully customize calendars according to their specific needs. Click the "Save" button to store any changes made to the form.

+
+images/calendar-edition.png +

Editing Calendars

+
+
+images/calendar-exceptions.png +

Adding an Exception to a Calendar

+
+
+
+

Creating Derived Calendars

+

A derived calendar is created based on an existing calendar. It inherits all the features of the original calendar, but you can modify it to include different options.

+

A common use case for derived calendars is when you have a general calendar for a country, such as Spain, and you need to create a derived calendar to include additional public holidays specific to a region, such as Galicia.

+

It's important to note that any changes made to the original calendar will automatically propagate to the derived calendar, unless a specific exception has been defined in the derived calendar. For example, the calendar for Spain might have an 8-hour working day on May 17th. However, the calendar for Galicia (a derived calendar) might have no working hours on that same day because it's a regional public holiday. If the Spanish calendar is later changed to have 4 available working hours per day for the week of May 17th, the Galician calendar will also change to have 4 available working hours for every day in that week, except for May 17th, which will remain a non-working day due to the defined exception.

+
+images/calendar-create-derived.png +

Creating a Derived Calendar

+
+

To create a derived calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Calendar administration option.
  • +
  • Select the calendar you want to use as the basis for the derived calendar and click the "Create" button.
  • +
  • The system will display an editing form with the same characteristics as the form used to create a calendar from scratch, except that the proposed exceptions and the working hours per weekday will be based on the original calendar.
  • +
+
+
+

Creating a Calendar by Copying

+

A copied calendar is an exact duplicate of an existing calendar. It inherits all the features of the original calendar, but you can modify it independently.

+

The key difference between a copied calendar and a derived calendar is how they are affected by changes to the original. If the original calendar is modified, the copied calendar remains unchanged. However, derived calendars are affected by changes made to the original, unless an exception is defined.

+

A common use case for copied calendars is when you have a calendar for one location, such as "Pontevedra," and you need a similar calendar for another location, such as "A Coruña," where most of the features are the same. However, changes to one calendar should not affect the other.

+

To create a copied calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Calendar administration option.
  • +
  • Select the calendar you want to copy and click the "Create" button.
  • +
  • The system will display an editing form with the same characteristics as the form used to create a calendar from scratch, except that the proposed exceptions and the working hours per weekday will be based on the original calendar.
  • +
+
+
+

Default Calendar

+

One of the existing calendars can be designated as the default calendar. This calendar will be automatically assigned to any entity in the system that is managed with calendars unless a different calendar is specified.

+

To set up a default calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Configuration option.
  • +
  • In the Default calendar field, select the calendar you want to use as the program's default calendar.
  • +
  • Click Save.
  • +
+
+images/default-calendar.png +

Setting a Default Calendar

+
+
+
+

Assigning a Calendar to Resources

+

Resources can only be activated (i.e., have available working hours) if they have an assigned calendar with a valid activation period. If no calendar is assigned to a resource, the default calendar is assigned automatically, with an activation period that begins on the start date and has no expiry date.

+
+images/resource-calendar.png +

Resource Calendar

+
+

However, you can delete the calendar that has been previously assigned to a resource and create a new calendar based on an existing one. This allows for complete customization of calendars for individual resources.

+

To assign a calendar to a resource:

+
    +
  • Go to the Edit resources option.
  • +
  • Select a resource and click Edit.
  • +
  • Select the "Calendar" tab.
  • +
  • The calendar, along with its exceptions, working hours per day, and activation periods, will be displayed.
  • +
  • Each tab will have the following options:
      +
    • Exceptions: Define exceptions and the period to which they apply, such as holidays, public holidays, or different workdays.
    • +
    • Working Week: Modify the working hours for each weekday (Monday, Tuesday, etc.).
    • +
    • Activation Periods: Create new activation periods to reflect the start and end dates of contracts associated with the resource. See the following image.
    • +
    +
  • +
  • Click Save to store the information.
  • +
  • Click Delete if you want to change the calendar assigned to a resource.
  • +
+
+images/new-resource-calendar.png +

Assigning a New Calendar to a Resource

+
+
+
+

Assigning Calendars to Orders

+

Projects can have a different calendar than the default calendar. To change the calendar for an order:

+
    +
  • Access the order list in the company overview.
  • +
  • Edit the order in question.
  • +
  • Access the "General information" tab.
  • +
  • Select the calendar to be assigned from the drop-down menu.
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+

Assigning Calendars to Tasks

+

Similar to resources and orders, you can assign specific calendars to individual tasks. This allows you to define different calendars for specific stages of a project. To assign a calendar to a task:

+
    +
  • Access the planning view of a project.
  • +
  • Right-click the task to which you want to assign a calendar.
  • +
  • Select the "Assign calendar" option.
  • +
  • Select the calendar to be assigned to the task.
  • +
  • Click Accept.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/cs/04-avances.html b/libreplan-webapp/src/main/webapp/help/cs/04-avances.html new file mode 100644 index 000000000..615d6109f --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/04-avances.html @@ -0,0 +1,97 @@ + + + + + + +Progress + + + +
+

Progress

+ + +

Project progress indicates the degree to which the estimated completion time of the project is being met. Task progress indicates the degree to which the task is being completed according to its estimated completion.

+

Generally, progress cannot be measured automatically. A staff member with experience or a checklist must determine the degree of completion for a task or project.

+

It's important to note the distinction between the hours assigned to a task or project and the progress of that task or project. While the number of hours used may be more or less than expected, the project may be ahead of or behind its estimated completion on the monitored day. Several situations can arise from these two measurements:

+
    +
  • Fewer hours consumed than expected, but the project is behind schedule: Progress is lower than estimated for the monitored day.
  • +
  • Fewer hours consumed than expected, and the project is ahead of schedule: Progress is higher than estimated for the monitored day.
  • +
  • More hours consumed than expected, and the project is behind schedule: Progress is lower than estimated for the monitored day.
  • +
  • More hours consumed than expected, but the project is ahead of schedule: Progress is higher than estimated for the monitored day.
  • +
+

The planning view allows you to compare these situations by using information about the progress made and the hours used. This chapter will explain how to enter information to monitor progress.

+

The philosophy behind progress monitoring is based on users defining the level at which they want to monitor their projects. For example, if users want to monitor orders, they only need to enter information for level-1 elements. If they want more precise monitoring at the task level, they must enter progress information at lower levels. The system will then aggregate the data upward through the hierarchy.

+
+

Managing Progress Types

+

Companies have varying needs when monitoring project progress, particularly the tasks involved. Therefore, the system includes "progress types." Users can define different progress types to measure a task's progress. For example, a task can be measured as a percentage, but this percentage can also be translated into progress in Tonnes based on the agreement with the client.

+

A progress type has a name, a maximum value, and a precision value:

+
    +
  • Name: A descriptive name that users will recognize when selecting the progress type. This name should clearly indicate what kind of progress is being measured.
  • +
  • Maximum Value: The maximum value that can be established for a task or project as the total progress measurement. For example, if you're working with Tonnes and the normal maximum is 4000 tonnes, and no task will ever require more than 4000 tonnes of any material, then 4000 would be the maximum value.
  • +
  • Precision Value: The increment value allowed for the progress type. For example, if progress in Tonnes is to be measured in whole numbers, the precision value would be 1. From that point on, only whole numbers can be entered as progress measurements (e.g., 1, 2, 300).
  • +
+

The system has two default progress types:

+
    +
  • Percentage: A general progress type that measures the progress of a project or task based on an estimated completion percentage. For example, a task is 30% complete out of the 100% estimated for a specific day.
  • +
  • Units: A general progress type that measures progress in units without specifying the type of unit. For example, a task involves creating 3000 units, and the progress is 500 units out of the total of 3000.
  • +
+
+images/tipos-avances.png +

Administration of Progress Types

+
+

Users can create new progress types as follows:

+
    +
  • Go to the "Administration" section.
  • +
  • Click the "Manage types of progress" option in the second-level menu.
  • +
  • The system will display a list of existing progress types.
  • +
  • For each progress type, users can:
      +
    • Edit
    • +
    • Delete
    • +
    +
  • +
  • Users can then create a new progress type.
  • +
  • When editing or creating a progress type, the system displays a form with the following information:
      +
    • Name of the progress type.
    • +
    • Maximum value allowed for the progress type.
    • +
    • Precision value for the progress type.
    • +
    +
  • +
+
+
+

Entering Progress Based on Type

+

Progress is entered for order elements, but it can also be entered using a shortcut from the planning tasks. Users are responsible for deciding which progress type to associate with each order element.

+

Users can enter a single, default progress type for the entire order.

+

Before measuring progress, users must associate the chosen progress type with the order. For example, they might choose percentage progress to measure progress on the entire task or an agreed progress rate if progress measurements agreed upon with the client will be entered in the future.

+
+images/avance.png +

Progress Entry Screen with Graphic Visualization

+
+

To enter progress measurements:

+
    +
  • Select the progress type to which the progress will be added. +* If no progress type exists, a new one must be created.
  • +
  • In the form that appears under the "Value" and "Date" fields, enter the absolute value of the measurement and the date of the measurement.
  • +
  • The system automatically stores the entered data.
  • +
+
+
+

Comparing Progress for an Order Element

+

Users can graphically compare the progress made on orders with the measurements taken. All progress types have a column with a check button ("Show"). When this button is selected, the progress chart of measurements taken is displayed for the order element.

+
+images/contraste-avance.png +

Comparison of Several Progress Types

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/cs/05-recursos.html b/libreplan-webapp/src/main/webapp/help/cs/05-recursos.html new file mode 100644 index 000000000..07190538a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/05-recursos.html @@ -0,0 +1,186 @@ + + + + + + +Resource Management + + + +
+

Resource Management

+ + +

The program manages two distinct types of resources: staff and machines.

+
+

Staff Resources

+

Staff resources represent the company's workers. Their key characteristics are:

+
    +
  • They fulfill one or more generic or worker-specific criteria.
  • +
  • They can be specifically assigned to a task.
  • +
  • They can be assigned generically to a task that requires a resource criterion.
  • +
  • They can have a default or a specific calendar, as needed.
  • +
+
+
+

Machine Resources

+

Machine resources represent the company's machinery. Their key characteristics are:

+
    +
  • They fulfill one or more generic or machine-specific criteria.
  • +
  • They can be specifically assigned to a task.
  • +
  • They can be assigned generically to a task that requires a machine criterion.
  • +
  • They can have a default or a specific calendar, as needed.
  • +
  • The program includes a configuration screen where an alpha value can be defined to represent the machine/worker ratio.
      +
    • The alpha value indicates the amount of worker time required to operate the machine. For example, an alpha value of 0.5 means that every 8 hours of machine operation requires 4 hours of a worker's time.
    • +
    • Users can assign an alpha value specifically to a worker, designating that worker to operate the machine for that percentage of time.
    • +
    • Users can also make a generic assignment based on a criterion, so that a percentage of use is assigned to all resources that meet that criterion and have available time. Generic assignment works similarly to generic assignment for tasks, as described previously.
    • +
    +
  • +
+
+
+

Managing Resources

+

Users can create, edit, and deactivate (but not permanently delete) workers and machines within the company by navigating to the "Resources" section. This section provides the following features:

+
    +
  • List of Workers: Displays a numbered list of workers, allowing users to manage their details.
  • +
  • List of Machines: Displays a numbered list of machines, allowing users to manage their details.
  • +
+
+

Managing Workers

+

Worker management is accessed by going to the "Resources" section and then selecting "List of workers." Users can edit any worker in the list by clicking the standard edit icon.

+

When editing a worker, users can access the following tabs:

+
    +
  1. Worker Details: This tab allows users to edit the worker's basic identification details:

    +
      +
    • Name
    • +
    • Surname(s)
    • +
    • National ID document (DNI)
    • +
    • Queue-based resource (see section on Queue-based Resources)
    • +
    +
    +images/worker-personal-data.png +

    Editing Workers' Personal Details

    +
    +
  2. +
  3. Criteria: This tab is used to configure the criteria that a worker fulfills. Users can assign any worker or generic criteria they deem appropriate. It's crucial for workers to fulfill criteria to maximize the program's functionality. To assign criteria:

    +
      +
    1. Click the "Add criteria" button.
    2. +
    3. Search for the criterion to be added and select the most appropriate one.
    4. +
    5. Click the "Add" button.
    6. +
    7. Select the start date when the criterion becomes applicable.
    8. +
    9. Select the end date for applying the criterion to the resource. This date is optional if the criterion is considered indefinite.
    10. +
    +
    +images/worker-criterions.png +

    Associating Criteria with Workers

    +
    +
  4. +
  5. Calendar: This tab allows users to configure a specific calendar for the worker. All workers have a default calendar assigned; however, it's possible to assign a specific calendar to each worker based on an existing calendar.

    +
    +images/worker-calendar.png +

    Calendar Tab for a Resource

    +
    +
  6. +
  7. Cost Category: This tab allows users to configure the cost category that a worker fulfills during a given period. This information is used to calculate the costs associated with a worker on a project.

    +
    +images/worker-costcategory.png +

    Cost Category Tab for a Resource

    +
    +
  8. +
+

Resource assignment is explained in the "Resource Assignment" section.

+
+
+

Managing Machines

+

Machines are treated as resources for all purposes. Therefore, similar to workers, machines can be managed and assigned to tasks. Resource assignment is covered in the "Resource Assignment" section, which will explain the specific features of machines.

+

Machines are managed from the "Resources" menu entry. This section has an operation called "Machine list," which displays the company's machines. Users can edit or delete a machine from this list.

+

When editing machines, the system displays a series of tabs for managing different details:

+
    +
  1. Machine Details: This tab allows users to edit the machine's identification details:

    +
      +
    1. Name
    2. +
    3. Machine code
    4. +
    5. Description of the machine
    6. +
    +
    +images/machine-data.png +

    Editing Machine Details

    +
    +
  2. +
  3. Criteria: As with worker resources, this tab is used to add criteria that the machine fulfills. Two types of criteria can be assigned to machines: machine-specific or generic. Worker criteria cannot be assigned to machines. To assign criteria:

    +
      +
    1. Click the "Add criteria" button.
    2. +
    3. Search for the criterion to be added and select the most appropriate one.
    4. +
    5. Select the start date when the criterion becomes applicable.
    6. +
    7. Select the end date for applying the criterion to the resource. This date is optional if the criterion is considered indefinite.
    8. +
    9. Click the "Save and continue" button.
    10. +
    +
    +images/machine-criterions.png +

    Assigning Criteria to Machines

    +
    +
  4. +
  5. Calendar: This tab allows users to configure a specific calendar for the machine. All machines have a default calendar assigned; however, it's possible to assign a specific calendar to each machine based on an existing calendar.

    +
    +images/machine-calendar.png +

    Assigning Calendars to Machines

    +
    +
  6. +
  7. Machine Configuration: This tab allows users to configure the ratio of machines to worker resources. A machine has an alpha value that indicates the machine/worker ratio. As mentioned previously, an alpha value of 0.5 indicates that 0.5 people are required for each full day of machine operation. Based on the alpha value, the system automatically assigns workers who are associated with the machine once the machine is assigned to a task. Associating a worker with a machine can be done in two ways:

    +
      +
    1. Specific Assignment: Assign a range of dates during which the worker is assigned to the machine. This is a specific assignment, as the system automatically assigns hours to the worker when the machine is scheduled.
    2. +
    3. Generic Assignment: Assign criteria that must be fulfilled by workers assigned to the machine. This creates a generic assignment of workers who meet the criteria.
    4. +
    +
    +images/machine-configuration.png +

    Configuration of Machines

    +
    +
  8. +
  9. Cost Category: This tab allows users to configure the cost category that a machine fulfills during a given period. This information is used to calculate the costs associated with a machine on a project.

    +
    +images/machine-costcategory.png +

    Assigning Cost Categories to Machines

    +
    +
  10. +
+
+
+

Virtual Worker Groups

+

The program allows users to create virtual worker groups, which are not real workers but simulated staff. These groups enable users to model increased production capacity at specific times, based on the calendar settings.

+

Virtual worker groups allow users to assess how project planning would be affected by hiring and assigning staff who meet specific criteria, thus aiding in the decision-making process.

+

The tabs for creating virtual worker groups are the same as those for configuring workers:

+
    +
  • General Details
  • +
  • Assigned Criteria
  • +
  • Calendars
  • +
  • Associated Hours
  • +
+

The difference between virtual worker groups and actual workers is that virtual worker groups have a name for the group and a quantity, which represents the number of real people in the group. There is also a field for comments, where additional information can be provided, such as which project would require hiring equivalent to the virtual worker group.

+
+images/virtual-resources.png +

Virtual Resources

+
+
+
+

Queue-based Resources

+

Queue-based resources are a specific type of productive element that can either be unassigned or have 100% dedication. In other words, they cannot have more than one task scheduled at the same time, nor can they be over-allocated.

+

For each queue-based resource, a queue is automatically created. The tasks scheduled for these resources can be managed specifically using the provided assignment methods, creating automatic assignments between tasks and queues that match the required criteria, or by moving tasks between queues.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/cs/06-pedidos.html b/libreplan-webapp/src/main/webapp/help/cs/06-pedidos.html new file mode 100644 index 000000000..87fd79071 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/06-pedidos.html @@ -0,0 +1,315 @@ + + + + + + +Orders and Order Elements + + + +
+

Orders and Order Elements

+ + +

Orders represent the work to be performed by users of the program. Each order corresponds to a project that the company will offer to its clients.

+

An order consists of one or more order elements. Each order element represents a specific part of the work to be done and defines how the work on the order should be planned and executed. Order elements are organized hierarchically, with no limitations on the depth of the hierarchy. This hierarchical structure allows for the inheritance of certain features, such as labels.

+

The following sections describe the operations that users can perform with orders and order elements.

+
+

Orders

+

An order represents a project or work requested by a client from the company. The order identifies the project within the company's planning. Unlike comprehensive management programs, TASKPM only requires certain key details for an order. These details are:

+
    +
  • Order Name: The name of the order.
  • +
  • Order Code: A unique code for the order.
  • +
  • Total Order Amount: The total financial value of the order.
  • +
  • Estimated Start Date: The planned start date for the order.
  • +
  • End Date: The planned completion date for the order.
  • +
  • Person in Charge: The individual responsible for the order.
  • +
  • Description: A description of the order.
  • +
  • Assigned Calendar: The calendar associated with the order.
  • +
  • Automatic Generation of Codes: A setting to instruct the system to automatically generate codes for order elements and hour groups.
  • +
  • Preference between Dependencies and Restrictions: Users can choose whether dependencies or restrictions take priority in case of conflicts.
  • +
+

However, a complete order also includes other associated entities:

+
    +
  • Hours Assigned to the Order: The total hours allocated to the order.
  • +
  • Progress Attributed to the Order: The progress made on the order.
  • +
  • Labels: Labels assigned to the order.
  • +
  • Criteria Assigned to the Order: Criteria associated with the order.
  • +
  • Materials: Materials required for the order.
  • +
  • Quality Forms: Quality forms associated with the order.
  • +
+

Creating or editing an order can be done from several locations within the program:

+
    +
  • From the "Order List" in the Company Overview:
      +
    • Editing: Click the edit button on the desired order.
    • +
    • Creating: Click "New order."
    • +
    +
  • +
  • From an Order in the Gantt Chart: Change to the order details view.
  • +
+

Users can access the following tabs when editing an order:

+
    +
  • Editing Order Details: This screen allows users to edit basic order details:

    +
      +
    • Name
    • +
    • Code
    • +
    • Estimated Start Date
    • +
    • End Date
    • +
    • Person in Charge
    • +
    • Client
    • +
    • Description
    • +
    +
    +images/order-edition.png +

    Editing Orders

    +
    +
  • +
  • Order Element List: This screen allows users to perform several operations on order elements:

    +
      +
    • Creating new order elements.
    • +
    • Promoting an order element one level up in the hierarchy.
    • +
    • Demoting an order element one level down in the hierarchy.
    • +
    • Indenting an order element (moving it down the hierarchy).
    • +
    • Unindenting an order element (moving it up the hierarchy).
    • +
    • Filtering order elements.
    • +
    • Deleting order elements.
    • +
    • Moving an element within the hierarchy by dragging and dropping.
    • +
    +
    +images/order-elements-list.png +

    Order Element List

    +
    +
  • +
  • Assigned Hours: This screen displays the total hours attributed to the project, grouping the hours entered in the order elements.

    +
    +images/order-assigned-hours.png +

    Assigning Hours Attributed to the Order by Workers

    +
    +
  • +
  • Progress: This screen allows users to assign progress types and enter progress measurements for the order. See the "Progress" section for more details.

    +
  • +
  • Labels: This screen allows users to assign labels to an order and view previously assigned direct and indirect labels. See the following section on editing order elements for a detailed description of label management.

    +
    +images/order-labels.png +

    Order Labels

    +
    +
  • +
  • Criteria: This screen allows users to assign criteria that will apply to all tasks within the order. These criteria will be automatically applied to all order elements, except those that have been explicitly invalidated. The hour groups of order elements, which are grouped by criteria, can also be viewed, allowing users to identify the criteria required for an order.

    +
    +images/order-criterions.png +

    Order Criteria

    +
    +
  • +
  • Materials: This screen allows users to assign materials to orders. Materials can be selected from the available material categories in the program. Materials are managed as follows:

    +
      +
    • Select the "Search materials" tab at the bottom of the screen.
    • +
    • Enter text to search for materials or select the categories for which you want to find materials.
    • +
    • The system filters the results.
    • +
    • Select the desired materials (multiple materials can be selected by pressing the "Ctrl" key).
    • +
    • Click "Assign."
    • +
    • The system displays the list of materials already assigned to the order.
    • +
    • Select the units and the status to assign to the order.
    • +
    • Click "Save" or "Save and continue."
    • +
    • To manage the receipt of materials, click "Divide" to change the status of a partial quantity of material.
    • +
    +
    +images/order-material.png +

    Materials Associated with an Order

    +
    +
  • +
  • Quality: Users can assign a quality form to the order. This form is then completed to ensure that certain activities associated with the order are carried out. See the following section on editing order elements for details on managing quality forms.

    +
    +images/order-quality.png +

    Quality Form Associated with the Order

    +
    +
  • +
+
+
+

Editing Order Elements

+

Order elements are edited from the "Order element list" tab by clicking the edit icon. This opens a new screen where users can:

+
    +
  • Edit information about the order element.
  • +
  • View hours attributed to order elements.
  • +
  • Manage progress of order elements.
  • +
  • Manage order labels.
  • +
  • Manage criteria required by the order element.
  • +
  • Manage materials.
  • +
  • Manage quality forms.
  • +
+

The following subsections describe each of these operations in detail.

+
+

Editing Information about the Order Element

+

Editing information about the order element includes modifying the following details:

+
    +
  • Order Element Name: The name of the order element.
  • +
  • Order Element Code: A unique code for the order element.
  • +
  • Start Date: The planned start date of the order element.
  • +
  • Estimated End Date: The planned completion date of the order element.
  • +
  • Total Hours: The total hours allocated to the order element. These hours can be calculated from the added hour groups or entered directly. If entered directly, the hours must be distributed among the hour groups, and a new hour group created if the percentages do not match the initial percentages.
  • +
  • Hour Groups: One or more hour groups can be added to the order element. The purpose of these hour groups is to define the requirements for the resources that will be assigned to perform the work.
  • +
  • Criteria: Criteria can be added that must be met to enable generic assignment for the order element.
  • +
+
+images/order-element-edition.png +

Editing Order Elements

+
+
+
+

Viewing Hours Attributed to Order Elements

+

The "Assigned hours" tab allows users to view the work reports associated with an order element and see how many of the estimated hours have already been completed.

+
+images/order-element-hours.png +

Hours Assigned to Order Elements

+
+

The screen is divided into two parts:

+
    +
  • Work Report List: Users can view the list of work reports associated with the order element, including the date and time, resource, and number of hours devoted to the task.
  • +
  • Use of Estimated Hours: The system calculates the total number of hours devoted to the task and compares them with the estimated hours.
  • +
+
+
+

Managing Progress of Order Elements

+

Entering progress types and managing order element progress is described in the "Progress" chapter.

+
+
+

Managing Order Labels

+

Labels, as described in the chapter on labels, allow users to categorize order elements. This enables users to group planning or order information based on these labels.

+

Users can assign labels directly to an order element or to a higher-level order element in the hierarchy. Once a label is assigned using either method, the order element and the related planning task are associated with the label and can be used for subsequent filtering.

+
+images/order-element-tags.png +

Assigning Labels for Order Elements

+
+

As shown in the image, users can perform the following actions from the Labels tab:

+
    +
  • View Inherited Labels: View labels associated with the order element that were inherited from a higher-level order element. The planning task associated with each order element has the same associated labels.
  • +
  • View Directly Assigned Labels: View labels directly associated with the order element using the assignment form for lower-level labels.
  • +
  • Assign Existing Labels: Assign labels by searching for them among the available labels in the form below the direct label list. To search for a label, click the magnifying glass icon or enter the first letters of the label in the text box to display the available options.
  • +
  • Create and Assign New Labels: Create new labels associated with an existing label type from this form. To do this, select a label type and enter the label value for the selected type. The system automatically creates the label and assigns it to the order element when "Create and assign" is clicked.
  • +
+
+
+

Managing Criteria Required by the Order Element and Hour Groups

+

Both an order and an order element can have criteria assigned that must be met for the work to be performed. Criteria can be direct or indirect:

+
    +
  • Direct Criteria: These are assigned directly to the order element. They are criteria required by the hour groups on the order element.
  • +
  • Indirect Criteria: These are assigned to higher-level order elements in the hierarchy and are inherited by the element being edited.
  • +
+

In addition to the required criteria, one or more hour groups that are part of the order element can be defined. This depends on whether the order element contains other order elements as child nodes or if it is a leaf node. In the first case, information about hours and hour groups can only be viewed. However, leaf nodes can be edited. Leaf nodes work as follows:

+
    +
  • The system creates a default hour group associated with the order element. The details that can be modified for an hour group are:
      +
    • Code: The code for the hour group (if not automatically generated).
    • +
    • Criterion Type: Users can choose to assign a machine or worker criterion.
    • +
    • Number of Hours: The number of hours in the hour group.
    • +
    • List of Criteria: The criteria to be applied to the hour group. To add new criteria, click "Add criterion" and select one from the search engine that appears after clicking the button.
    • +
    +
  • +
  • Users can add new hour groups with different features than previous hour groups. For example, an order element might require a welder (30 hours) and a painter (40 hours).
  • +
+
+images/order-element-criterion.png +

Assigning Criteria to Order Elements

+
+
+
+

Managing Materials

+

Materials are managed in projects as a list associated with each order element or an order in general. The list of materials includes the following fields:

+
    +
  • Code: The material code.
  • +
  • Date: The date associated with the material.
  • +
  • Units: The required number of units.
  • +
  • Unit Type: The type of unit used to measure the material.
  • +
  • Unit Price: The price per unit.
  • +
  • Total Price: The total price (calculated by multiplying the unit price by the number of units).
  • +
  • Category: The category to which the material belongs.
  • +
  • Status: The status of the material (e.g., Received, Requested, Pending, Processing, Cancelled).
  • +
+

Working with materials is done as follows:

+
    +
  • Select the "Materials" tab on an order element.
  • +
  • The system displays two sub-tabs: "Materials" and "Search materials."
  • +
  • If the order element has no assigned materials, the first tab will be empty.
  • +
  • Click "Search materials" in the lower-left part of the window.
  • +
  • The system displays the list of available categories and associated materials.
  • +
+
+images/order-element-material-search.png +

Searching for Materials

+
+
    +
  • Select categories to refine the material search.
  • +
  • The system displays the materials that belong to the selected categories.
  • +
  • From the materials list, select the materials to assign to the order element.
  • +
  • Click "Assign."
  • +
  • The system displays the selected list of materials on the "Materials" tab with new fields to complete.
  • +
+
+images/order-element-material-assign.png +

Assigning Materials to Order Elements

+
+
    +
  • Select the units, status, and date for the assigned materials.
  • +
+

For subsequent monitoring of materials, it's possible to change the status of a group of units of the received material. This is done as follows:

+
    +
  • Click the "Divide" button on the list of materials to the right of each row.
  • +
  • Select the number of units to divide the row into.
  • +
  • The program displays two rows with the material divided.
  • +
  • Change the status of the row containing the material.
  • +
+

The advantage of using this dividing tool is the ability to receive partial deliveries of material without having to wait for the entire delivery to mark it as received.

+
+
+

Managing Quality Forms

+

Some order elements require certification that certain tasks have been completed before they can be marked as complete. This is why the program has quality forms, which consist of a list of questions that are considered important if answered positively.

+

It's important to note that a quality form must be created beforehand to be assigned to an order element.

+

To manage quality forms:

+
    +
  • Go to the "Quality forms" tab.

    +
    +images/order-element-quality.png +

    Assigning Quality Forms to Order Elements

    +
    +
  • +
  • The program has a search engine for quality forms. There are two types of quality forms: by element or by percentage.

    +
      +
    • Element: Each element is independent.
    • +
    • Percentage: Each question increases the progress of the order element by a percentage. The percentages must be able to add up to 100%.
    • +
    +
  • +
  • Select one of the forms created in the administration interface and click "Assign."

    +
  • +
  • The program assigns the chosen form from the list of forms assigned to the order element.

    +
  • +
  • Click the "Edit" button on the order element.

    +
  • +
  • The program displays the questions from the quality form in the lower list.

    +
  • +
  • Mark the questions that have been completed as achieved.

    +
      +
    • If the quality form is based on percentages, the questions are answered in order.
    • +
    • If the quality form is based on elements, the questions can be answered in any order.
    • +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/cs/07-planificacion.html b/libreplan-webapp/src/main/webapp/help/cs/07-planificacion.html new file mode 100644 index 000000000..7b8954f83 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/07-planificacion.html @@ -0,0 +1,117 @@ + + + + + + +Task Planning + + + +
+

Task Planning

+ + +
+

Task Planning

+

Planning in TASKPM is a process that has been described throughout the user guide, with the chapters on orders and resource assignment being particularly important. This chapter describes the basic planning procedures after the order and Gantt charts have been properly configured.

+
+images/planning-view.png +

Work Planning View

+
+

As with the company overview, the project planning view is divided into several views based on the information being analyzed. The views available for a specific project are:

+
    +
  • Planning View
  • +
  • Resource Load View
  • +
  • Order List View
  • +
  • Advanced Assignment View
  • +
+
+

Planning View

+

The Planning View combines three different perspectives:

+
    +
  • Project Planning: Project planning is displayed in the upper right-hand part of the program as a Gantt chart. This view allows users to temporarily move tasks, assign dependencies between them, define milestones, and establish restrictions.
  • +
  • Resource Load: The Resource Load view, located in the lower right-hand part of the screen, shows resource availability based on assignments, as opposed to the assignments made to tasks. The information displayed in this view is as follows:
      +
    • Purple Area: Indicates a resource load below 100% of its capacity.
    • +
    • Green Area: Indicates a resource load below 100%, resulting from the resource being planned for another project.
    • +
    • Orange Area: Indicates a resource load over 100% as a result of the current project.
    • +
    • Yellow Area: Indicates a resource load over 100% as a result of other projects.
    • +
    +
  • +
  • Graph View and Earned Value Indicators: These can be viewed from the "Earned Value" tab. The generated graph is based on the earned value technique, and the indicators are calculated for each workday of the project. The calculated indicators are:
      +
    • BCWS (Budgeted Cost of Work Scheduled): The cumulative time function for the number of hours planned up to a certain date. It will be 0 at the planned start of the task and equal to the total number of planned hours at the end. As with all cumulative graphs, it will always increase. The function for a task will be the sum of the daily assignments until the calculation date. This function has values for all times, provided that resources have been assigned.
    • +
    • ACWP (Actual Cost of Work Performed): The cumulative time function for the hours reported in work reports up to a certain date. This function will only have a value of 0 before the date of the task's first work report, and its value will continue to increase as time passes and work report hours are added. It will have no value after the date of the last work report.
    • +
    • BCWP (Budgeted Cost of Work Performed): The cumulative time function that includes the resultant value of multiplying task progress by the amount of work that the task was estimated to require for completion. This function's values increase as time passes, as do progress values. Progress is multiplied by the total number of estimated hours for all tasks. The BCWP value is the sum of the values for the tasks being calculated. Progress is totaled when it is configured.
    • +
    • CV (Cost Variance): CV = BCWP - ACWP
    • +
    • SV (Schedule Variance): SV = BCWP - BCWS
    • +
    • BAC (Budget at Completion): BAC = max (BCWS)
    • +
    • EAC (Estimate at Completion): EAC = (ACWP / BCWP) * BAC
    • +
    • VAC (Variance at Completion): VAC = BAC - EAC
    • +
    • ETC (Estimate to Complete): ETC = EAC - ACWP
    • +
    • CPI (Cost Performance Index): CPI = BCWP / ACWP
    • +
    • SPI (Schedule Performance Index): SPI = BCWP / BCWS
    • +
    +
  • +
+

In the project planning view, users can perform the following actions:

+
    +
  • Assigning Dependencies: Right-click a task, choose "Add dependency," and drag the mouse pointer to the task to which the dependency should be assigned.
      +
    • To change the type of dependency, right-click the dependency and choose the desired type.
    • +
    +
  • +
  • Creating a New Milestone: Click the task before which the milestone is to be added and select the "Add milestone" option. Milestones can be moved by selecting the milestone with the mouse pointer and dragging it to the desired position.
  • +
  • Moving Tasks without Disturbing Dependencies: Right-click the body of the task and drag it to the desired position. If no restrictions or dependencies are violated, the system will update the daily assignment of resources to the task and place the task on the selected date.
  • +
  • Assigning Restrictions: Click the task in question and select the "Task properties" option. A pop-up window will appear with a "Restrictions" field that can be modified. Restrictions can conflict with dependencies, which is why each order specifies whether dependencies take priority over restrictions. The restrictions that can be established are:
      +
    • As Soon as Possible: Indicates that the task must start as soon as possible.
    • +
    • Not Before: Indicates that the task must not start before a certain date.
    • +
    • Start on a Specific Date: Indicates that the task must start on a specific date.
    • +
    +
  • +
+

The planning view also offers several procedures that function as viewing options:

+
    +
  • Zoom Level: Users can choose the desired zoom level. There are several zoom levels: annual, four-monthly, monthly, weekly, and daily.
  • +
  • Search Filters: Users can filter tasks based on labels or criteria.
  • +
  • Critical Path: As a result of using the Dijkstra algorithm to calculate paths on graphs, the critical path was implemented. It can be viewed by clicking the "Critical path" button in the viewing options.
  • +
  • Show Labels: Enables users to view the labels assigned to tasks in a project, which can be viewed on screen or printed.
  • +
  • Show Resources: Enables users to view the resources assigned to tasks in a project, which can be viewed on screen or printed.
  • +
  • Print: Enables users to print the Gantt chart being viewed.
  • +
+
+
+

Resource Load View

+

The Resource Load View provides a list of resources that contains a list of tasks or criteria that generate workloads. Each task or criterion is shown as a Gantt chart so that the start and end dates of the load can be seen. A different color is shown depending on whether the resource has a load that is higher or lower than 100%:

+
    +
  • Green: Load lower than 100%
  • +
  • Orange: 100% load
  • +
  • Red: Load over 100%
  • +
+
+images/resource-load.png +

Resource Load View for a Specific Order

+
+

If the mouse pointer is placed on the resource's Gantt chart, the load percentage for the worker will be shown.

+
+
+

Order List View

+

The Order List View allows users to access the order editing and deleting options. See the "Orders" chapter for more information.

+
+
+

Advanced Assignment View

+

The Advanced Assignment View is explained in depth in the "Resource Assignment" chapter.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/cs/08-asignacion.html b/libreplan-webapp/src/main/webapp/help/cs/08-asignacion.html new file mode 100644 index 000000000..46da7239c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/08-asignacion.html @@ -0,0 +1,179 @@ + + + + + + +Resource Assignment + + + +
+

Resource Assignment

+ + +

Resource assignment is one of the program's most important features and can be carried out in two different ways:

+
    +
  • Specific assignment
  • +
  • Generic assignment
  • +
+

Both types of assignment are explained in the following sections.

+

To perform either type of resource assignment, the following steps are necessary:

+
    +
  • Go to the planning view of an order.
  • +
  • Right-click on the task to be planned.
  • +
+
+images/resource-assignment-planning.png +

Resource Assignment Menu

+
+
    +
  • The program displays a screen with the following information:
      +
    • List of Criteria to be Fulfilled: For each hour group, a list of required criteria is shown.
    • +
    • Task Information: The start and end dates of the task.
    • +
    • Type of Calculation: The system allows users to choose the strategy for calculating assignments:
        +
      • Calculate Number of Hours: This calculates the number of hours required from the assigned resources, given an end date and a number of resources per day.
      • +
      • Calculate End Date: This calculates the end date of the task based on the number of resources assigned to the task and the total number of hours required to complete the task.
      • +
      • Calculate Number of Resources: This calculates the number of resources required to finish the task by a specific date, given a known number of hours per resource.
      • +
      +
    • +
    • Recommended Assignment: This option allows the program to gather the criteria to be fulfilled and the total number of hours from all hour groups, and then recommend a generic assignment. If a prior assignment exists, the system deletes it and replaces it with the new one.
    • +
    • Assignments: A list of assignments that have been made. This list shows the generic assignments (the number will be the list of fulfilled criteria, and the number of hours and resources per day). Each assignment can be explicitly removed by clicking the delete button.
    • +
    +
  • +
+
+images/resource-assignment.png +

Resource Assignment

+
+
    +
  • Users select "Search resources."
  • +
  • The program displays a new screen consisting of a criteria tree and a list of workers who fulfill the selected criteria on the right:
  • +
+
+images/resource-assignment-search.png +

Resource Assignment Search

+
+
    +
  • Users can select:
      +
    • Specific Assignment: See the "Specific Assignment" section for details on this option.
    • +
    • Generic Assignment: See the "Generic Assignment" section for details on this option.
    • +
    +
  • +
  • Users select a list of criteria (generic) or a list of workers (specific). Multiple selections can be made by pressing the "Ctrl" key while clicking each worker/criterion.
  • +
  • Users then click the "Select" button. It's important to remember that if a generic assignment is not selected, users must choose a worker or machine to perform the assignment. If a generic assignment is selected, it is sufficient for users to choose one or more criteria.
  • +
  • The program then displays the selected criteria or resource list in the list of assignments on the original resource assignment screen.
  • +
  • Users must choose the hours or resources per day, depending on the assignment method used in the program.
  • +
+
+

Specific Assignment

+

This is the specific assignment of a resource to a project task. In other words, the user decides which specific worker (by name and surname) or machine must be assigned to a task.

+

Specific assignment can be carried out on the screen shown in this image:

+
+images/asignacion-especifica.png +

Specific Resource Assignment

+
+

When a resource is specifically assigned, the program creates daily assignments based on the percentage of daily assigned resources selected, after comparing it with the available resource calendar. For example, an assignment of 0.5 resources for a 32-hour task means that 4 hours per day are assigned to the specific resource to complete the task (assuming a working calendar of 8 hours per day).

+
+

Specific Machine Assignment

+

Specific machine assignment functions in the same way as worker assignment. When a machine is assigned to a task, the system stores a specific assignment of hours for the chosen machine. The main difference is that the system searches the list of assigned workers or criteria at the moment the machine is assigned:

+
    +
  • If the machine has a list of assigned workers, the program chooses from those that are required by the machine, based on the assigned calendar. For example, if the machine calendar is 16 hours per day and the resource calendar is 8 hours, two resources are assigned from the list of available resources.
  • +
  • If the machine has one or more assigned criteria, generic assignments are made from among the resources that fulfill the criteria assigned to the machine.
  • +
+
+
+
+

Generic Assignment

+

Generic assignment occurs when users do not choose resources specifically but leave the decision to the program, which distributes the loads among the company's available resources.

+
+images/asignacion-xenerica.png +

Generic Resource Assignment

+
+

The assignment system uses the following assumptions as a basis:

+
    +
  • Tasks have criteria that are required from resources.
  • +
  • Resources are configured to fulfill criteria.
  • +
+

However, the system does not fail when criteria have not been assigned, but when all resources fulfill the non-requirement of criteria.

+

The generic assignment algorithm functions as follows:

+
    +
  • All resources and days are treated as containers where daily assignments of hours fit, based on the maximum assignment capacity in the task calendar.
  • +
  • The system searches for the resources that fulfill the criterion.
  • +
  • The system analyzes which assignments currently have different resources that fulfill criteria.
  • +
  • The resources that fulfill the criteria are chosen from those that have sufficient availability.
  • +
  • If freer resources are not available, assignments are made to the resources that have less availability.
  • +
  • Over-assignment of resources only begins when all the resources that fulfill the respective criteria are 100% assigned, until the total amount required to carry out the task is attained.
  • +
+
+

Generic Machine Assignment

+

Generic machine assignment functions in the same way as worker assignment. For example, when a machine is assigned to a task, the system stores a generic assignment of hours for all machines that fulfill the criteria, as described for resources in general. However, in addition, the system performs the following procedure for machines:

+
    +
  • For all machines chosen for generic assignment:
      +
    • It collects the machine's configuration information: alpha value, assigned workers, and criteria.
    • +
    • If the machine has an assigned list of workers, the program chooses the number required by the machine, depending on the assigned calendar. For example, if the machine calendar is 16 hours per day and the resource calendar is 8 hours, the program assigns two resources from the list of available resources.
    • +
    • If the machine has one or more assigned criteria, the program makes generic assignments from among the resources that fulfill the criteria assigned to the machine.
    • +
    +
  • +
+
+
+
+

Advanced Assignment

+

Advanced assignments allow users to design assignments that are automatically carried out by the application to personalize them. This procedure allows users to manually choose the daily hours that are dedicated by resources to assigned tasks or define a function that is applied to the assignment.

+

The steps to follow to manage advanced assignments are:

+
    +
  • Go to the advanced assignment window. There are two ways to access advanced assignments:
      +
    • Go to a specific order and change the view to advanced assignment. In this case, all the tasks on the order and assigned resources (specific and generic) will be shown.
    • +
    • Go to the resource assignment window by clicking the "Advanced assignment" button. In this case, the assignments that show the resources (generic and specific) assigned to a task will be shown.
    • +
    +
  • +
+
+images/advance-assignment.png +

Advanced Resource Assignment

+
+
    +
  • Users can choose the desired zoom level:
      +
    • Zoom Levels Greater Than One Day: If users change the assigned hour value to a week, month, four-month, or six-month period, the system distributes the hours linearly across all days throughout the chosen period.
    • +
    • Daily Zoom: If users change the assigned hour value to a day, these hours only apply to that day. Consequently, users can decide how many hours they want to assign per day to task resources.
    • +
    +
  • +
  • Users can choose to design an advanced assignment function. To do so, users must:
      +
    • Choose the function from the selection list that appears next to each resource and click "Configure."
    • +
    • The system displays a new window if the chosen function needs to be specifically configured. Supported functions:
        +
      • Segments: A function that allows users to define segments to which a polynomial function is applied. The function per segment is configured as follows:
          +
        • Date: The date on which the segment ends. If the following value (length) is established, the date is calculated; alternatively, length is calculated.
        • +
        • Defining the Length of Each Segment: This indicates what percentage of the task's duration is required for the segment.
        • +
        • Defining the Amount of Work: This indicates what workload percentage is expected to be completed in this segment. The quantity of work must be incremental. For example, if there is a 10% segment, the next one must be larger (for example, 20%).
        • +
        • Segment Graphs and Accumulated Loads.
        • +
        +
      • +
      +
    • +
    • Users then click "Accept."
    • +
    • The program stores the function and applies it to the daily resource assignments.
    • +
    +
  • +
+
+images/stretches.png +

Configuration of the Segment Function

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/cs/09-partes.html b/libreplan-webapp/src/main/webapp/help/cs/09-partes.html new file mode 100644 index 000000000..90242b6c7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/09-partes.html @@ -0,0 +1,84 @@ + + + + + + +Work Reports + + + +
+

Work Reports

+ + +

Work reports enable the monitoring of the hours that resources dedicate to the tasks to which they are assigned.

+

The program allows users to configure new forms for entering dedicated hours, specifying the fields that they want to appear in these forms. This allows for the incorporation of reports from tasks carried out by workers and the monitoring of worker activity.

+

Before users can add entries for resources, they must define at least one work report type. This type defines the structure of the report, including all the rows that are added to it. Users can create as many work report types as necessary within the system.

+
+

Work Report Types

+

A work report consists of a series of fields that are common to the entire report and a set of work report lines with specific values for the fields defined in each row. For example, resources and tasks are common to all reports. However, there can be other new fields, such as "incidents," which are not required in all report types.

+

Users can configure different work report types so that a company can design its reports to meet its specific needs:

+
+images/work-report-types.png +

Work Report Types

+
+

The administration of work report types allows users to configure these types and add new text fields or optional tags. In the first tab for editing work report types, it is possible to configure the type for the mandatory attributes (whether they apply to the whole report or are specified at the line level) and add new optional fields.

+

The mandatory fields that must appear in all work reports are as follows:

+
    +
  • Name and Code: Identification fields for the name of the work report type and its code.
  • +
  • Date: Field for the date of the report.
  • +
  • Resource: Worker or machine appearing on the report or work report line.
  • +
  • Order Element: Code for the order element to which the performed work is attributed.
  • +
  • Hour Management: Determines the hour attribution policy to be used, which can be:
      +
    • According to Assigned Hours: Hours are attributed based on the assigned hours.
    • +
    • According to Start and Finish Times: Hours are calculated based on the start and finish times.
    • +
    • According to the Number of Hours and Start and Finish Range: Discrepancies are allowed, and the number of hours takes priority.
    • +
    +
  • +
+

Users can add new fields to the reports:

+
    +
  • Tag Type: Users can request the system to display a tag when completing the work report. For example, the client tag type, if the user wishes to enter the client for whom the work was carried out in each report.
  • +
  • Free Fields: Fields where text can be entered freely in the work report.
  • +
+
+images/work-report-type.png +

Creating a Work Report Type with Personalized Fields

+
+

Users can configure date, resource, and order element fields to appear in the header of the report, which means they apply to the entire report, or they can be added to each of the rows.

+

Finally, new additional text fields or tags can be added to the existing ones, in the work report header or in each line, by using the "Additional text" and "Tag type" fields, respectively. Users can configure the order in which these elements are to be entered in the "Management of additional fields and tags" tab.

+
+
+

Work Report List

+

Once the format of the reports to be incorporated into the system has been configured, users can enter the details in the created form according to the structure defined in the corresponding work report type. To do this, users need to follow these steps:

+
    +
  • Click the "New work report" button associated with the desired report from the list of work report types.
  • +
  • The program then displays the report based on the configurations given for the type. See the following image.
  • +
+
+images/work-report-type.png +

Structure of the Work Report Based on Type

+
+
    +
  • Select all the fields shown for the report:
      +
    • Resource: If the header has been chosen, the resource is only shown once. Alternatively, for each line of the report, it is necessary to choose a resource.
    • +
    • Task Code: Code of the task to which the work report is being assigned. Similar to the rest of the fields, if the field is in the header, the value is entered once or as many times as necessary on the lines of the report.
    • +
    • Date: Date of the report or each line, depending on whether the header or line is configured.
    • +
    • Number of Hours: The number of work hours in the project.
    • +
    • Start and Finish Times: Start and finish times for the work in order to calculate definitive work hours. This field only appears in the case of the hour assignment policies, "According to Start and Finish Times" and "According to the Number of Hours and Start and Finish Range."
    • +
    • Type of Hours: Enables users to choose the type of hour, e.g., "Normal," "Extraordinary," etc.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/cs/10-etiquetas.html b/libreplan-webapp/src/main/webapp/help/cs/10-etiquetas.html new file mode 100644 index 000000000..eb6451798 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/10-etiquetas.html @@ -0,0 +1,68 @@ + + + + + + +Labels + + + +
+

Labels

+ +
+

Contents

+ +
+

Labels are entities used in the program to conceptually organize tasks or order elements.

+

Labels are categorized according to label type. A label can only belong to one label type; however, users can create many similar labels belonging to different label types.

+
+

Label Types

+

Label types are used to group the types of labels that users want to manage in the program. Here are some examples of possible label types:

+
    +
  • Client: Users may be interested in labeling tasks, orders, or order elements in relation to the client who requests them.
  • +
  • Area: Users may be interested in labeling tasks, orders, or order elements in relation to the areas in which they are carried out.
  • +
+

The administration of label types is managed from the "Administration" menu option. This is where users can edit label types, create new label types, and add labels to label types. Users can access the list of labels from this option.

+
+images/tag-types-list.png +

List of Label Types

+
+

From the list of label types, users can:

+
    +
  • Create a new label type.
  • +
  • Edit an existing label type.
  • +
  • Delete a label type with all of its labels.
  • +
+

Editing and creating labels share the same form. From this form, the user can assign a name to the label type, create or delete labels, and store the changes. The procedure is as follows:

+
    +
  • Select a label to edit or click the create button for a new one.
  • +
  • The system displays a form with a text entry for the name and a list of text entries with existing and assigned labels.
  • +
  • If users wish to add a new label, they must click the "New label" button.
  • +
  • The system displays a new row on the list with an empty text box that users must edit.
  • +
  • Users enter a name for the label.
  • +
  • The system adds the name to the list.
  • +
  • Users click "Save" or "Save and continue" to continue editing the form.
  • +
+
+images/tag-types-edition.png +

Editing Label Types

+
+
+
+

Labels

+

Labels are entities that belong to a label type. These entities can be assigned to order elements. Assigning a label to an order element means that all the elements descending from this element will inherit the label to which they belong. Having an assigned label means that these entities can be filtered where searches can be carried out:

+
    +
  • Search for tasks in the Gantt chart.
  • +
  • Search for order elements in the list of order elements.
  • +
  • Filters for reports.
  • +
+

The assignment of labels to order elements is covered in the chapter on orders.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/cs/11-materiales.html b/libreplan-webapp/src/main/webapp/help/cs/11-materiales.html new file mode 100644 index 000000000..a06770897 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/11-materiales.html @@ -0,0 +1,54 @@ + + + + + + +Materials Management + + + +
+

Materials Management

+ +
+

Contents

+ +
+
+

Administration of Materials

+

Users can manage a basic database of materials, organized by categories.

+

Categories are containers to which specific materials and other categories can be assigned. They are stored in a hierarchical tree structure, as materials can belong to leaf categories or intermediary categories.

+

To manage categories, users must follow these steps:

+
    +
  • Go to the "Administration -> Materials" option.
  • +
  • The program displays a tree of categories.
  • +
  • Enter a category name in the text box and then click "Add."
  • +
  • The program adds the category to the tree.
  • +
+

To insert a category into the category tree, users must first select the parent category in the tree and then click "Add."

+
+images/material.png +

Material Administration Screen

+
+

To manage materials, users must follow these steps:

+
    +
  • Select the category to which materials are to be added and click "Add" to the right of "Materials."
  • +
  • The program adds a new empty row with fields to enter details about the material:
      +
    • Code: Material type code (this can be the external code from an ERP).
    • +
    • Description: Description of the material.
    • +
    • Unit Price: Unit price of each piece of material.
    • +
    • Unit: Unit used to measure each unit of material.
    • +
    • Category: Category to which the material belongs.
    • +
    • Availability: Indicates whether or not the material is active.
    • +
    +
  • +
  • Users complete the fields and click "Save."
  • +
+

The assignment of materials to order elements is explained in the chapter on "Orders."

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/cs/12-formularios-calidad.html b/libreplan-webapp/src/main/webapp/help/cs/12-formularios-calidad.html new file mode 100644 index 000000000..97a584178 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/12-formularios-calidad.html @@ -0,0 +1,52 @@ + + + + + + +Quality Forms + + + +
+

Quality Forms

+ + +
+

Administration of Quality Forms

+

Quality forms consist of a list of questions or statements that indicate the tasks or processes that should have been completed before a task can be marked as complete by the company. These forms include the following fields:

+
    +
  • Name: The name of the quality form.
  • +
  • Description: A description of the quality form.
  • +
  • Type of Quality Form: The type can have two values:
      +
    • Percentage: Indicates that the questions must be answered in a logical order, and affirmative answers indicate that the task is progressing. For example, a basic process for a task might suggest that the task is 15% complete. Users must answer a question before proceeding to the next one.
    • +
    • Item: Indicates that the questions do not need to be answered in a logical order and can be answered in any sequence.
    • +
    +
  • +
+

Users must follow these steps to manage quality forms:

+
    +
  • From the "Administration" menu, access the "Quality forms" option.
  • +
  • Click "Edit" on an existing form or click "Create" to create a new one.
  • +
  • The program displays a form with fields for the name, description, and type.
  • +
  • Select the type.
  • +
  • The program displays the fields that are allowed for each type:
      +
    • Percentage: Question and percentage.
    • +
    • Item: Question.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+images/quality.png +

Quality Form Administration Screen

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/cs/13-usuarios.html b/libreplan-webapp/src/main/webapp/help/cs/13-usuarios.html new file mode 100644 index 000000000..f46a23ded --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/13-usuarios.html @@ -0,0 +1,79 @@ + + + + + + +User Management + + + +
+

User Management

+ +
+

Contents

+ +
+
+

Managing Users

+

TASKPM's system allows administrators to manage user profiles, authorizations, and users. Users are assigned to user profiles, which can have a series of predefined roles that grant access to the program's features. Roles are defined authorizations within TASKPM. Examples of roles include:

+
    +
  • Administration: A role that must be assigned to administrators to enable them to perform administrative operations.
  • +
  • Web Service Reader: A role required for users to consult the program's web services.
  • +
  • Web Service Writer: A role required for users to write data via the program's web services.
  • +
+

Roles are predefined within the system. A user profile consists of one or more roles. Users must have specific roles to perform certain operations.

+

Users can be assigned one or more profiles, or one or more roles directly, allowing for specific or generic authorization to be granted.

+

To manage users, follow these steps:

+
    +
  • Go to "Manage users" in the "Administration" menu.
  • +
  • The program displays a form with a list of users.
  • +
  • Click the edit button for the desired user or click the "Create" button.
  • +
  • A form will appear with the following fields:
      +
    • User Name: The user's login name.
    • +
    • Password: The user's password.
    • +
    • Authorized/Unauthorized: A setting to enable or disable the user's account.
    • +
    • Email: The user's email address.
    • +
    • List of Associated Roles: To add a new role, users must search for a role in the selection list and click "Assign."
    • +
    • List of Associated Profiles: To add a new profile, users must search for a profile in the selection list and click "Assign."
    • +
    +
  • +
+
+images/manage-user.png +

Managing Users

+
+
    +
  • Click "Save" or "Save and continue."
  • +
+
+

Managing Profiles

+

To manage the program's profiles, users must follow these steps:

+
    +
  • Go to "Manage user profiles" in the "Administration" menu.
  • +
  • The program displays a list of profiles.
  • +
  • Click the edit button for the desired profile or click "Create."
  • +
  • A form appears in the program with the following fields:
      +
    • Name: The name of the user profile.
    • +
    • List of Roles (Authorizations): To add a role to the profile, users must select a role from the role list and click "Add."
    • +
    +
  • +
+
+images/manage-user-profile.png +

Managing User Profiles

+
+
    +
  • Click "Save" or "Save and continue," and the system will store the created or modified profile.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/cs/14-custos.html b/libreplan-webapp/src/main/webapp/help/cs/14-custos.html new file mode 100644 index 000000000..5c35ce71d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/14-custos.html @@ -0,0 +1,110 @@ + + + + + + +Cost management + + + +
+

Cost management

+ +
+

Contents

+ +
+
+

Costs

+

Cost management allows users to estimate the costs of resources used in a project. To manage costs, the following entities must be defined:

+
    +
  • Hour Types: These indicate the types of hours worked by a resource. Users can define hour types for both machines and workers. Examples of hour types include: "Additional hours paid at €20 per hour." The following fields can be defined for hour types:
      +
    • Code: External code for the hour type.
    • +
    • Name: Name of the hour type. For example, "Additional."
    • +
    • Default Rate: Basic default rate for the hour type.
    • +
    • Activation: Indicates whether the hour type is active or not.
    • +
    +
  • +
  • Cost Categories: Cost categories define the costs associated with different hour types during specific periods (which may be indefinite). For example, the cost of additional hours for first-grade skilled workers in the following year is €24 per hour. Cost categories include:
      +
    • Name: Cost category name.
    • +
    • Activation: Indicates whether the category is active or not.
    • +
    • List of Hour Types: This list defines the hour types included in the cost category. It specifies the periods and rates for each hour type. For example, as rates change, each year can be included on this list as an hour type period, with a specific hourly rate for each hour type (which may differ from the default hourly rate for that hour type).
    • +
    +
  • +
+
+

Managing Hour Types

+

Users must follow these steps to register hour types:

+
    +
  • Select "Manage hour types worked" on the "Administration" menu.
  • +
  • The program displays a list of existing hour types.
  • +
+
+images/hour-type-list.png +

Hour Type List

+
+
    +
  • Click "Edit" or "Create."
  • +
  • The program displays an hour type editing form.
  • +
+
+images/hour-type-edit.png +

Editing Hour Types

+
+
    +
  • Users can enter or change:
      +
    • The hour type name.
    • +
    • The hour type code.
    • +
    • The default rate.
    • +
    • Hour type activation/deactivation.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+

Cost Categories

+

Users must follow these steps to register cost categories:

+
    +
  • Select "Manage cost categories" on the "Administration" menu.
  • +
  • The program displays a list of existing categories.
  • +
+
+images/category-cost-list.png +

Cost Category List

+
+
    +
  • Click the "Edit" or "Create" button.
  • +
  • The program displays a cost category editing form.
  • +
+
+images/category-cost-edit.png +

Editing Cost Categories

+
+
    +
  • Users enter or change:
      +
    • The name of the cost category.
    • +
    • The activation/deactivation of the cost category.
    • +
    • The list of hour types included in the category. All hour types have the following fields:
        +
      • Hour Type: Choose one of the existing hour types in the system. If none exist, an hour type must be created (this process is explained in the previous subsection).
      • +
      • Start and Finish Date: The start and finish dates (the latter is optional) for the period that applies to the cost category.
      • +
      • Hourly Rate: The hourly rate for this specific category.
      • +
      +
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+

The assignment of cost categories to resources is described in the chapter on resources. Go to the "Resources" section.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/cs/15-1-report-hours-worked-by-resource.html b/libreplan-webapp/src/main/webapp/help/cs/15-1-report-hours-worked-by-resource.html new file mode 100644 index 000000000..f97f118aa --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/15-1-report-hours-worked-by-resource.html @@ -0,0 +1,101 @@ + + + + + + +Hours Worked by Resource Report + + + +
+

Hours Worked by Resource Report

+ + +
+

Purpose

+

This report extracts a list of tasks and the time resources have dedicated to them within a specified period. Several filters allow users to refine the query to obtain only the desired information and exclude extraneous data.

+
+
+

Input Parameters and Filters

+
    +
  • +
    Dates.
    +
      +
    • Type: Optional.
    • +
    • +
      Two date fields:
      +
        +
      • Start Date: This is the earliest date for work reports to be included. Work reports with dates earlier than the Start Date are excluded. If this parameter is left blank, work reports are not filtered by Start Date.
      • +
      • End Date: This is the latest date for work reports to be included. Work reports with dates later than the End Date are excluded. If this parameter is left blank, work reports are not filtered by End Date.
      • +
      +
      +
      +
    • +
    +
    +
    +
  • +
  • Filter by Workers: +* Type: Optional. +* How it works: You can select one or more workers to restrict the work reports to the time tracked by those specific workers. To add a worker as a filter, search for them in the selector and click the Add button. If this filter is left empty, work reports are retrieved regardless of the worker.
  • +
  • Filter by Labels: +* Type: Optional. +* How it works: You can add one or more labels to use as filters by searching for them in the selector and clicking the Add button. These labels are used to select the tasks to be included in the results when calculating the hours dedicated to them. This filter can be applied to timesheets, tasks, both, or neither.
  • +
  • Filter by Criteria: +* Type: Optional. +* How it works: You can select one or more criteria by searching for them in the selector and then clicking the Add button. These criteria are used to select the resources that satisfy at least one of them. The report will show all the time dedicated by the resources that meet one of the selected criteria.
  • +
+
+
+

Output

+
+

Heading

+

The report heading displays the filters that were configured and applied to the current report.

+
+ +
+

Body

+

The report body consists of several groups of information.

+
    +
  • The first level of aggregation is by resource. All the time dedicated by a resource is shown together below the header. Each resource is identified by:

    +
      +
    • Worker: Surname, First Name.
    • +
    • Machine: Name.
    • +
    +

    A summary line shows the total number of hours worked by the resource.

    +
  • +
  • The second level of grouping is by date. All the reports from a specific resource on the same date are shown together.

    +

    A summary line shows the total number of hours worked by the resource on that date.

    +
  • +
  • The final level lists the work reports for the worker on that day. The information displayed for each work report line is:

    +
      +
    • Task Code: The code of the task to which the tracked hours are attributed.
    • +
    • Task Name: The name of the task to which the tracked hours are attributed.
    • +
    • Starting Time: This is optional. It is the time at which the resource began working on the task.
    • +
    • Ending Time: This is optional. It is the time at which the resource finished working on the task on the specified date.
    • +
    • Text Fields: This is optional. If the work report line has text fields, the filled values are shown here. The format is: <Name of the text field>:<Value>
    • +
    • Labels: This depends on whether the work report model has a label field in its definition. If there are multiple labels, they are shown in the same column. The format is: <Name of the label type>:<Value of the label>
    • +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/cs/15-2-total-hours-by-resource-month.html b/libreplan-webapp/src/main/webapp/help/cs/15-2-total-hours-by-resource-month.html new file mode 100644 index 000000000..246cfc9c1 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/15-2-total-hours-by-resource-month.html @@ -0,0 +1,67 @@ + + + + + + +Total Hours Worked by Resource in a Month Report + + + +
+

Total Hours Worked by Resource in a Month Report

+ + +
+

Purpose

+

This report provides the total number of hours worked by each resource in a given month. This information can be useful for determining worker overtime or, depending on the organization, the number of hours for which each resource should be compensated.

+

The application tracks work reports for both workers and machines. For machines, the report sums up the number of hours they were in operation during the month.

+
+
+

Input Parameters and Filters

+

To generate this report, users must specify the year and month for which they want to retrieve the total number of hours worked by each resource.

+
+
+

Output

+

The output format is as follows:

+ + +
+

Body

+

The data section of the report consists of a single table with two columns:

+
+
    +
  • One column labeled Name for the name of the resource.
  • +
  • One column labeled Hours with the total number of hours worked by the resource in that row.
  • +
+
+

There is a final row that aggregates the total number of hours worked by all resources during the specified month and year.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/cs/15-3-work-progress-per-project.html b/libreplan-webapp/src/main/webapp/help/cs/15-3-work-progress-per-project.html new file mode 100644 index 000000000..e2f5053a9 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/15-3-work-progress-per-project.html @@ -0,0 +1,125 @@ + + + + + + +Work and Progress per Project Report + + + +
+

Work and Progress per Project Report

+ + +
+

Purpose

+

This report provides an overview of the status of projects, considering both progress and cost.

+

It analyzes the current progress of each project, comparing it with the planned progress and the work completed.

+

The report also displays several ratios related to project cost, comparing current performance with the planned performance.

+
+
+

Input Parameters and Filters

+

There are several mandatory parameters:

+
+
    +
  • Reference Date: This is the date used as a reference point for comparing the planned status of the project with its actual performance. The default value for this field is the current date.
  • +
  • Progress Type: This is the progress type used to measure project progress. The application allows a project to be measured simultaneously with different progress types. The type selected by the user in the dropdown menu is used for calculating the report data. The default value for the progress type is spread, which is a special progress type that uses the preferred method of measuring progress configured for each WBS element.
  • +
+
+

The optional parameters are:

+
+
    +
  • Starting Date: This is the earliest start date for projects to be included in the report. If this field is left blank, there is no minimum start date for the projects.
  • +
  • Ending Date: This is the latest end date for projects to be included in the report. All projects that finish after the Ending Date will be excluded.
  • +
  • Filter by Projects: This filter allows users to select the specific projects to be included in the report. If no projects are added to the filter, the report will include all projects in the database. A searchable dropdown menu is provided to find the desired project. Projects are added to the filter by clicking the Add button.
  • +
+
+
+
+

Output

+

The output format is as follows:

+
+

Heading

+

The report header displays the following fields:

+
+
    +
  • Starting Date: The filtering start date. This is not displayed if the report is not filtered by this field.
  • +
  • Ending Date: The filtering end date. This is not displayed if the report is not filtered by this field.
  • +
  • Progress Type: The progress type used for the report.
  • +
  • Projects: This indicates the filtered projects for which the report is generated. It will show the string All when the report includes all projects that satisfy the other filters.
  • +
  • Reference Date: The mandatory input reference date selected for the report.
  • +
+
+
+ +
+

Body

+

The body of the report consists of a list of projects selected based on the input filters.

+

Filters work by adding conditions, except for the set formed by the date filters (Starting Date, Ending Date) and the Filter by Projects. In this case, if one or both date filters are filled and the Filter by Projects has a list of selected projects, the latter filter takes precedence. This means that the projects included in the report are those provided by the Filter by Projects, regardless of the date filters.

+

It's important to note that progress in the report is calculated as a fraction of unity, ranging between 0 and 1.

+

For each project selected for inclusion in the report output, the following information is displayed:

+
+
    +
  • Project Name.
  • +
  • +
    Total Hours. The total hours for the project are shown by adding the hours for each task. Two types of total hours are shown:
    +
      +
    • Estimated (TE). This is the sum of all the estimated hours in the project's WBS. It represents the total number of hours estimated to complete the project.
    • +
    • Planned (TP). In TASKPM, it's possible to have two different quantities: the estimated number of hours for a task (the number of hours initially estimated to complete the task) and the planned hours (the hours allocated in the plan to complete the task). The planned hours can be equal to, less than, or greater than the estimated hours and are determined in a later phase, the assignment operation. Therefore, the total planned hours for a project are the sum of all the allocated hours for its tasks.
    • +
    +
    +
    +
  • +
  • +
    Progress. Three measurements related to the overall progress of the type specified in the progress input filter for each project at the reference date are shown:
    +
      +
    • Measured (PM). This is the overall progress considering the progress measurements with a date earlier than the Reference Date in the input parameters of the report. All tasks are taken into account, and the sum is weighted by the number of hours for each task.
    • +
    • Imputed (PI). This is the progress assuming that work continues at the same pace as the hours completed for a task. If X hours out of Y hours for a task are completed, the overall imputed progress is considered to be X/Y.
    • +
    • Planned (PP). This is the overall progress of the project according to the planned schedule at the reference date. If everything happened exactly as planned, the measured progress should be the same as the planned progress.
    • +
    +
    +
    +
  • +
  • +
    Hours up to Date. There are two fields that show the number of hours up to the reference date from two perspectives:
    +
      +
    • Planned (HP). This number is the sum of the hours allocated to any task in the project with a date less than or equal to the Reference Date.
    • +
    • Actual (HR). This number is the sum of the hours reported in the work reports for any of the tasks in the project with a date less than or equal to the Reference Date.
    • +
    +
    +
    +
  • +
  • +
    Difference. Under this heading, there are several metrics related to cost:
    +
      +
    • Cost. This is the difference in hours between the number of hours spent, considering the measured progress, and the hours completed up to the reference date. The formula is: PM*TP - HR.
    • +
    • Planned. This is the difference between the hours spent according to the overall measured project progress and the number planned up to the Reference Date. It measures the advantage or delay in time. The formula is: PM*TP - HP.
    • +
    • Cost Ratio. This is calculated by dividing PM / PI. If it is greater than 1, it means that the project is profitable at this point. If it is less than 1, it means that the project is losing money.
    • +
    • Planned Ratio. This is calculated by dividing PM / PP. If it is greater than 1, it means that the project is ahead of schedule. If it is less than 1, it means that the project is behind schedule.
    • +
    +
    +
    +
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/cs/15-informes.html b/libreplan-webapp/src/main/webapp/help/cs/15-informes.html new file mode 100644 index 000000000..c2c7cafab --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/15-informes.html @@ -0,0 +1,26 @@ + + + + + + +Reports + + + +
+

Reports

+ +

TASKPM integrates with JasperReports to provide report management, enabling users to generate various reports for analyzing the data available in the program.

+

The available reports are:

+ +
+ + diff --git a/libreplan-webapp/src/main/webapp/help/cs/16-ldap-authentication.html b/libreplan-webapp/src/main/webapp/help/cs/16-ldap-authentication.html new file mode 100644 index 000000000..ad5d4976d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/16-ldap-authentication.html @@ -0,0 +1,251 @@ + + + + + + +LDAP Configuration + + + +
+

LDAP Configuration

+ + +

This screen allows you to establish a connection with LDAP to delegate +authentication and/or authorization.

+

It is divided into four different areas, which are explained below:

+
+

Activation

+

This area is used to set the properties that determine how TASKPM uses +LDAP.

+

If the field Enable LDAP authentication is checked, TASKPM will query +LDAP each time a user attempts to log in to the application.

+

The field Use LDAP roles checked means that a mapping between LDAP roles and +TASKPM roles is established. Consequently, the permissions for a user in +TASKPM will depend on the roles the user has in LDAP.

+
+
+

Configuration

+

This section contains the parameter values for accessing LDAP. Base, UserDN, and +Password are parameters used to connect to LDAP and search for users. Therefore, +the specified user must have permission to perform this operation in LDAP. At the +bottom of this section, there is a button to check if an LDAP connection is +possible with the given parameters. It is advisable to test the connection before +continuing the configuration.

+
+

Note

+

If your LDAP is configured to work with anonymous authentication, you can +leave the UserDN and Password attributes empty.

+
+
+

Tip

+

Regarding Active Directory (AD) configuration, the Base field must be the +exact location where the bound user resides in AD.

+

Example: ou=organizational_unit,dc=example,dc=org

+
+
+
+

Authentication

+

Here, you can configure the property in LDAP nodes where the given username +should be found. The property UserId must be filled with the name of the +property where the username is stored in LDAP.

+

The checkbox Save passwords in database, when checked, means that the +password is also stored in the TASKPM database. In this way, if LDAP is +offline or unreachable, LDAP users can authenticate against the TASKPM +database. If it is not checked, LDAP users can only be authenticated against +LDAP.

+
+
+

Authorization

+

This section allows you to define a strategy for matching LDAP roles with +TASKPM roles. The first choice is the strategy to use, depending on the +LDAP implementation.

+
+

Group Strategy

+

When this strategy is used, it indicates that LDAP has a role-group strategy. +This means that users in LDAP are nodes that are directly under a branch that +represents the group.

+

The next example represents a valid LDAP structure for using the group strategy.

+
    +
  • LDAP structure:

    +
    +dc=example,dc=org
    +|- ou=groups
    +   |- cn=admins
    +   |- cn=itpeople
    +   |- cn=workers
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

In this case, each group will have an attribute, for example, called member, +with the list of users belonging to the group:

+
    +
  • cn=admins:
      +
    • member: uid=admin1,ou=people,dc=example,dc=org
    • +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=itpeople:
      +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    • member: uid=it2,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=workers:
      +
    • member: uid=worker1,ou=people,dc=example,dc=org
    • +
    • member: uid=worker2,ou=people,dc=example,dc=org
    • +
    • member: uid=worker3,ou=people,dc=example,dc=org
    • +
    +
  • +
+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Group strategy
  • +
  • Group path: ou=groups
  • +
  • Role property: member
  • +
  • Role search query: uid=[USER_ID],ou=people,dc=example,dc=org
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: cn=admins;cn=itpeople
  • +
  • Web service reader: cn=itpeople
  • +
  • Web service writer: cn=itpeople
  • +
  • All projects read allowed: cn=admins
  • +
  • All projects edition allowed: cn=admins
  • +
  • Project creation allowed: cn=workers
  • +
+
+
+

Property Strategy

+

When an administrator decides to use this strategy, it indicates that each user +is an LDAP node, and within the node, there exists a property that represents +the group(s) for the user. In this case, the configuration does not require the +Group path parameter.

+

The next example represents a valid LDAP structure for using the property strategy.

+
    +
  • LDAP structure:

    +
    +dc=example,dc=org
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

With Attribute

+

In this case, each user will have an attribute, for example, called group, +with the name of the group to which they belong:

+
    +
  • uid=admin1:
      +
    • group: admins
    • +
    +
  • +
  • uid=it1:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=it2:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=worker1:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker2:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker3:
      +
    • group: workers
    • +
    +
  • +
+
+

Warning

+

This strategy has a restriction: each user can belong to only one group.

+
+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Property strategy
  • +
  • Group path:
  • +
  • Role property: group
  • +
  • Role search query: [USER_ID]
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: admins;itpeople
  • +
  • Web service reader: itpeople
  • +
  • Web service writer: itpeople
  • +
  • All projects read allowed: admins
  • +
  • All projects edition allowed: admins
  • +
  • Project creation allowed: workers
  • +
+

By User Identifier

+

You can even use a workaround to specify TASKPM roles directly to users +without having an attribute in each LDAP user.

+

In this case, you will specify which users have the different TASKPM roles +by uid.

+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Property strategy
  • +
  • Group path:
  • +
  • Role property: uid
  • +
  • Role search query: [USER_ID]
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: admin1;it1
  • +
  • Web service reader: it1;it2
  • +
  • Web service writer: it1;it2
  • +
  • All projects read allowed: admin1
  • +
  • All projects edition allowed: admin1
  • +
  • Project creation allowed: worker1;worker2;worker3
  • +
+
+
+

Role Matching

+

At the bottom of this section, there is a table with all the TASKPM roles +and a text field next to each one. This is for matching roles. For instance, +if an administrator decides that the Administration TASKPM role matches +the admin and administrators roles of LDAP, the text field should contain: +"admin;administrators". The character for splitting roles is ";".

+
+

Note

+

If you want to specify that all users or all groups have one permission, you +can use an asterisk (*) as a wildcard to refer to them. For example, if +you want everyone to have the Project creation allowed role, you will +configure the role matching as follows:

+
    +
  • Project creation allowed: *
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/cs/17-1-project-dashboard.html b/libreplan-webapp/src/main/webapp/help/cs/17-1-project-dashboard.html new file mode 100644 index 000000000..5dc0899b7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/17-1-project-dashboard.html @@ -0,0 +1,173 @@ + + + + + + +Project Dashboard + + + +
+

Project Dashboard

+ + +

The project dashboard is a TASKPM perspective that contains a set of KPIs (Key Performance Indicators) to help assess a project's performance in terms of:

+
+
    +
  • Work progress
  • +
  • Cost
  • +
  • Status of allocated resources
  • +
  • Time constraints
  • +
+
+
+

Progress Performance Indicators

+

Two indicators are calculated: project progress percentage and task status.

+
+

Project Progress Percentage

+

This chart displays the overall progress of a project, comparing it to the expected progress based on the Gantt chart.

+

Progress is represented by two bars:

+
+
    +
  • Current Progress: The current progress based on the measurements taken.
  • +
  • Expected Progress: The progress the project should have achieved at this point, according to the project plan.
  • +
+
+

To view the actual measured value for each bar, hover the mouse cursor over the bar.

+

The overall project progress is estimated using several different methods, as there is no single, universally correct approach:

+
+
    +
  • Spreading Progress: This is the progress type set as the spreading progress at the project level. In this case, there is no way to calculate an expected value, and only the current bar is displayed.
  • +
  • By All Task Hours: The progress of all project tasks is averaged to calculate the overall value. This is a weighted average that considers the number of hours allocated to each task.
  • +
  • By Critical Path Hours: The progress of tasks belonging to any of the project's critical paths is averaged to obtain the overall value. This is a weighted average that considers the total allocated hours for each involved task.
  • +
  • By Critical Path Duration: The progress of tasks belonging to any of the critical paths is averaged using a weighted average, but this time considering the duration of each involved task instead of the assigned hours.
  • +
+
+
+
+

Task Status

+

A pie chart shows the percentage of project tasks in different states. The defined states are:

+
+
    +
  • Finished: Completed tasks, identified by a 100% progress value.
  • +
  • In Progress: Tasks that are currently underway. These tasks have a progress value other than 0% or 100%, or some work time has been tracked.
  • +
  • Ready to Start: Tasks with 0% progress, no tracked time, all their FINISH_TO_START dependent tasks are finished, and all their START_TO_START dependent tasks are finished or in progress.
  • +
  • Blocked: Tasks with 0% progress, no tracked time, and with previous dependent tasks that are neither in progress nor in the ready to start state.
  • +
+
+
+
+
+

Cost Indicators

+

Several Earned Value Management cost indicators are calculated:

+
+
    +
  • CV (Cost Variance): The difference between the Earned Value curve and the Actual Cost curve at the current moment. Positive values indicate a benefit, and negative values indicate a loss.

    +
  • +
  • ACWP (Actual Cost of Work Performed): The total number of hours tracked in the project at the current moment.

    +
  • +
  • CPI (Cost Performance Index): The Earned Value / Actual Cost ratio.

    +
    +
      +
    • > 100 is favorable, indicating that the project is under budget.
    • +
    • = 100 is also favorable, indicating that the cost is right on plan.
    • +
    • < 100 is unfavorable, indicating that the cost of completing the work is higher than planned.
    • +
    +
    +
  • +
  • ETC (Estimate To Complete): The time remaining to complete the project.

    +
  • +
  • BAC (Budget At Completion): The total amount of work allocated in the project plan.

    +
  • +
  • EAC (Estimate At Completion): The manager's projection of the total cost at project completion, based on the CPI.

    +
  • +
  • VAC (Variance At Completion): The difference between the BAC and the EAC.

    +
    +
      +
    • < 0 indicates that the project is over budget.
    • +
    • > 0 indicates that the project is under budget.
    • +
    +
    +
  • +
+
+
+
+

Resources

+

To analyze the project from the resources' point of view, two ratios and a histogram are provided.

+
+

Estimation Deviation on Completed Task Histogram

+

This histogram calculates the deviation between the number of hours allocated to the project tasks and the actual number of hours dedicated to them.

+

The deviation is calculated as a percentage for all finished tasks, and the calculated deviations are represented in a histogram. The vertical axis shows the number of tasks within each deviation interval. Six deviation intervals are dynamically calculated.

+
+
+

Overtime Ratio

+

This ratio summarizes the overload of resources allocated to the project tasks. It is calculated using the formula: overtime ratio = overload / (load + overload).

+
+
    +
  • = 0 is favorable, indicating that the resources are not overloaded.
  • +
  • > 0 is unfavorable, indicating that the resources are overloaded.
  • +
+
+
+
+

Availability Ratio

+

This ratio summarizes the free capacity of the resources currently allocated to the project. Therefore, it measures the resources' availability to receive more allocations without being overloaded. It is calculated as: availability ratio = (1 - load/capacity) * 100

+
+
    +
  • Possible values are between 0% (fully assigned) and 100% (not assigned).
  • +
+
+
+
+
+

Time

+

Two charts are included: a histogram for the time deviation in the finish time of project tasks and a pie chart for deadline violations.

+
+

Task Completion Lead or Lag

+

This calculation determines the difference in days between the planned end time for project tasks and their actual end time. The planned completion date is taken from the Gantt chart, and the actual finish date is taken from the last time tracked for the task.

+

The lag or lead in task completion is represented in a histogram. The vertical axis shows the number of tasks with a lead/lag day difference value corresponding to the abscissa days interval. Six dynamic task completion deviation intervals are calculated.

+
+
    +
  • Negative values mean finishing ahead of schedule.
  • +
  • Positive values mean finishing behind schedule.
  • +
+
+
+
+

Deadline Violations

+

This section calculates the margin with the project deadline, if set. Additionally, a pie chart shows the percentage of tasks meeting their deadline. Three types of values are included in the chart:

+
+
    +
  • Percentage of tasks without a deadline configured.
  • +
  • Percentage of ended tasks with an actual end date later than their deadline. The actual end date is taken from the last time tracked for the task.
  • +
  • Percentage of ended tasks with an actual end date earlier than their deadline.
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/cs/17-2-pipeline-dashboard.html b/libreplan-webapp/src/main/webapp/help/cs/17-2-pipeline-dashboard.html new file mode 100644 index 000000000..bb54ed657 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/17-2-pipeline-dashboard.html @@ -0,0 +1,33 @@ + + + + + + +Pipeline Dashboard + + + +
+

Pipeline Dashboard

+ +

The pipeline dashboard is a TASKPM perspective that lists all company projects in a table. This "pipeline" table has nine columns, each corresponding to a project status:

+
+
    +
  • PRE-SALES
  • +
  • OFFERED
  • +
  • OUTSOURCED
  • +
  • ACCEPTED
  • +
  • STARTED
  • +
  • ON HOLD
  • +
  • FINISHED
  • +
  • CANCELLED
  • +
  • ARCHIVED
  • +
+
+

Projects are listed by name in each column based on their current status.

+

A project's start date, end date, and current progress can be viewed in a tooltip popup by hovering the mouse cursor over a project's name.

+

Projects with an ARCHIVED status can be hidden by unchecking the "Show archived column data" checkbox.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/cs/17-dashboards.html b/libreplan-webapp/src/main/webapp/help/cs/17-dashboards.html new file mode 100644 index 000000000..3dc8f1af4 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/17-dashboards.html @@ -0,0 +1,24 @@ + + + + + + +Dashboards + + + +
+

Dashboards

+ +

TASKPM offers dashboard views for projects, providing an overview of their current status.

+

The two available dashboard views are:

+ +
+ + diff --git a/libreplan-webapp/src/main/webapp/help/cs/18-connectors.html b/libreplan-webapp/src/main/webapp/help/cs/18-connectors.html new file mode 100644 index 000000000..0f879b53d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/18-connectors.html @@ -0,0 +1,238 @@ + + + + + + +Connectors + + + +
+

Connectors

+ + +

Connectors are TASKPM client applications that can be used to communicate with (web) servers to retrieve data, process it, and store it. Currently, there are three connectors: the JIRA connector, the Tim Enterprise connector, and the E-mail connector.

+
+

Configuration

+

Connectors must be configured properly before they can be used. They can be configured from the "Main Settings" screen under the "Connectors" tab.

+

The connector screen includes:

+
    +
  • Pull-down list: A list of available connectors.
  • +
  • Properties edit screen: A property edit form for the selected connector.
  • +
  • Test connection button: A button to test the connection with the connector.
  • +
+

Select the connector you want to configure from the pull-down list of connectors. A property editor form for the selected connector will be displayed. In the property editor form, you can change the property values as needed and test your configurations using the "Test connection" button.

+
+

Note

+

The properties are configured with default values. The most important property is "Activated." By default, it is set to "N." This indicates that the connector will not be used unless you change the value to "Y" and save the changes.

+
+
+
+

JIRA Connector

+

JIRA is an issue and project tracking system.

+

The JIRA connector is an application that can be used to request JIRA web server data for JIRA issues and process the response. The request is based on JIRA labels. In JIRA, labels can be used to categorize issues. The request is structured as follows: retrieve all issues that are categorized by this label name.

+

The connector receives the response, which in this case is the issues, and converts them to TASKPM "Order elements" and "Time sheets."

+

The JIRA connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the JIRA connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the JIRA connector. The default is "N."
  • +
  • Server URL: The absolute path to the JIRA web server.
  • +
  • User name and password: The user credentials for authorization.
  • +
  • JIRA labels: comma-separated list of labels or URL: You can either enter the label URL or a comma-separated list of labels.
  • +
  • Hours type: The type of work hours. The default is "Default."
  • +
+
+

Note

+

JIRA labels: Currently, the JIRA web server does not support providing a list of all available labels. As a workaround, we have developed a simple PHP script that performs a simple SQL query in the JIRA database to fetch all distinct labels. You can either use this PHP script as the "JIRA labels URL" or enter the labels you want as comma-separated text in the "JIRA labels" field.

+
+

Finally, click the "Test connection" button to test if you can connect to the JIRA web server and that your configurations are correct.

+
+
+

Synchronization

+

From the project window, under "General data," you can start synchronizing order elements with JIRA issues.

+

Click the "Sync with JIRA" button to start the synchronization.

+
    +
  • If this is the first time, a pop-up window (with an auto-completed list of labels) will be displayed. In this window, you can select a label to synchronize with and click the "Start sync" button to begin the synchronization process, or click the "Cancel" button to cancel it.
  • +
  • If a label is already synchronized, the last synchronized date and the label will be displayed in the JIRA screen. In this case, no pop-up window to select a label will be displayed. Instead, the synchronization process will start directly for that displayed (already synchronized) label.
  • +
+
+

Note

+

The relationship between "Order" and "label" is one-to-one. Only one label can be synchronized with one "Order."

+
+
+

Note

+

Upon successful (re)synchronization, the information will be written to the database, and the JIRA screen will be updated with the last synchronized date and label.

+
+

(Re)synchronization is performed in two phases:

+
    +
  • Phase 1: Synchronizing order elements, including progress assignment and measurements.
  • +
  • Phase 2: Synchronizing time sheets.
  • +
+
+

Note

+

If Phase 1 fails, Phase 2 will not be performed, and no information will be written to the database.

+
+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+

Upon successful completion of synchronization, the result will be displayed in the "Work Breakdown Structure (WBS tasks)" tab of the "Project details" screen. In this UI, there are two changes from the standard WBS:

+
    +
  • The "Total task hours" column is unmodifiable (read-only) because the synchronization is one-way. Task hours can only be updated in the JIRA web server.
  • +
  • The "Code" column displays the JIRA issue keys, and they are also hyperlinks to the JIRA issues. Click the desired key if you want to go to the document for that key (JIRA issue).
  • +
+
+
+

Scheduling

+

Re-synchronization of JIRA issues can also be performed through the scheduler. Go to the "Job scheduling" screen. In that screen, you can configure a JIRA job to perform synchronization. The job searches for the last synchronized labels in the database and re-synchronizes them accordingly. See also the Scheduler Manual.

+
+
+
+

Tim Enterprise Connector

+

Tim Enterprise is a Dutch product from Aenova. It is a web-based application for the administration of time spent on projects and tasks.

+

The Tim connector is an application that can be used to communicate with the Tim Enterprise server to:

+
    +
  • Export all hours spent by a worker (user) on a project that could be registered in Tim Enterprise.
  • +
  • Import all rosters of the worker (user) to plan the resource effectively.
  • +
+

The Tim connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the Tim connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the Tim connector. The default is "N."
  • +
  • Server URL: The absolute path to the Tim Enterprise server.
  • +
  • User name and password: The user credentials for authorization.
  • +
  • Number of days timesheet to Tim: The number of days back you want to export the time sheets.
  • +
  • Number of days roster from Tim: The number of days forward you want to import the rosters.
  • +
  • Productivity factor: Effective working hours in percentage. The default is "100%."
  • +
  • Department IDs to import roster: Comma-separated department IDs.
  • +
+

Finally, click the "Test connection" button to test if you can connect to the Tim Enterprise server and that your configurations are correct.

+
+
+

Export

+

From the project window, under "General data," you can start exporting time sheets to the Tim Enterprise server.

+

Enter the "Tim product code" and click the "Export to Tim" button to start the export.

+

The Tim connector adds the following fields along with the product code:

+
    +
  • The worker/user's full name.
  • +
  • The date the worker worked on a task.
  • +
  • The effort, or hours worked on the task.
  • +
  • An option indicating whether Tim Enterprise should update the registration or insert a new one.
  • +
+

The Tim Enterprise response contains only a list of record IDs (integers). This makes it difficult to determine what went wrong, as the response list contains only numbers not related to the request fields. The export request (registration in Tim) is assumed to have succeeded if all the list entries do not contain "0" values. Otherwise, the export request has failed for those entries that contain "0" values. Therefore, you cannot see which request failed, as the list entries only contain the value "0." The only way to determine this is to examine the log file on the Tim Enterprise server.

+
+

Note

+

Upon successful exporting, the information will be written to the database, and the Tim screen will be updated with the last exported date and product code.

+
+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+
+
+

Scheduling Export

+

The export process can also be performed through the scheduler. Go to the "Job Scheduling" screen. In that screen, you can configure a Tim Export job. The job searches for the last exported time sheets in the database and re-exports them accordingly. See also the Scheduler manual.

+
+
+

Import

+

Importing rosters only works with the help of the scheduler. There is no user interface designed for this, as no input is needed from the user. Go to the "Job scheduling" screen and configure a Tim Import job. The job loops through all departments configured in the connector properties and imports all rosters for each department. See also the Scheduler Manual.

+

For import, the Tim connector adds the following fields in the request:

+
    +
  • Period: The period (date from - date to) for which you want to import the roster. This can be provided as a filter criterion.
  • +
  • Department: The department for which you want to import the roster. Departments are configurable.
  • +
  • The fields you are interested in (like Person info, RosterCategory, etc.) that the Tim server should include in its response.
  • +
+

The import response contains the following fields, which are sufficient to manage the exception days in TASKPM:

+
    +
  • Person info: Name and network name.
  • +
  • Department: The department the worker is working in.
  • +
  • Roster category: Information on the presence/absence (Aanwzig/afwezig) of the worker and the reason (TASKPM exception type) in case the worker is absent.
  • +
  • Date: The date the worker is present/absent.
  • +
  • Time: The start time of presence/absence, for example, 08:00.
  • +
  • Duration: The number of hours that the worker is present/absent.
  • +
+

By converting the import response to TASKPM's "Exception day," the following translations are taken into account:

+
    +
  • If the roster category contains the name "Vakantie," it will be translated to "RESOURCE HOLIDAY."
  • +
  • The roster category "Feestdag" will be translated to "BANK HOLIDAY."
  • +
  • All the rest, like "Jus uren," "PLB uren," etc., should be added to the "Calendar Exception Days" manually.
  • +
+

Moreover, in the import response, the roster is divided into two or three parts per day: for example, roster-morning, roster-afternoon, and roster-evening. However, TASKPM allows only one "Exception type" per day. The Tim connector is then responsible for merging these parts as one exception type. That is, the roster category with the highest duration is assumed to be a valid exception type, but the total duration is the sum of all durations of these category parts.

+

Contrary to TASKPM, in Tim Enterprise, the total duration in case the worker is on holiday means the worker is not available for that total duration. However, in TASKPM, if the worker is on holiday, the total duration should be zero. The Tim connector also handles this translation.

+
+
+
+

E-mail Connector

+

E-mail is a method of exchanging digital messages from an author to one or more recipients.

+

The E-mail connector can be used to set Simple Mail Transfer Protocol (SMTP) server connection properties.

+

The E-mail connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the E-mail connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the E-mail connector. The default is "N."
  • +
  • Protocol: The type of SMTP protocol.
  • +
  • Host: The absolute path to the SMTP server.
  • +
  • Port: The port of the SMTP server.
  • +
  • From address: The e-mail address of the message sender.
  • +
  • Username: The username for the SMTP server.
  • +
  • Password: The password for the SMTP server.
  • +
+

Finally, click the "Test connection" button to test if you can connect to the SMTP server and that your configurations are correct.

+
+
+

Edit E-mail Template

+

From the project window, under "Configuration" and then "Edit E-mail Templates," you can modify the e-mail templates for messages.

+

You can choose:

+
    +
  • Template language:
  • +
  • Template type:
  • +
  • E-mail subject:
  • +
  • Template contents:
  • +
+

You need to specify the language because the web application will send e-mails to users in the language they have chosen in their preferences. You need to choose the template type. The type is the user role, meaning that this e-mail will be sent only to users who are in the selected role (type). You need to set the e-mail subject. The subject is a brief summary of the topic of the message. You need to set the e-mail contents. This is any information that you want to send to the user. There are also some keywords that you may use in the message; the web application will parse them and set a new value instead of the keyword.

+
+
+

Scheduling E-mails

+

Sending e-mails can only be performed through the scheduler. Go to "Configuration," then the "Job Scheduling" screen. In that screen, you can configure an e-mail sending job. The job takes a list of e-mail notifications, gathers data, and sends it to the user's e-mail. See also the Scheduler manual.

+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/cs/19-scheduler.html b/libreplan-webapp/src/main/webapp/help/cs/19-scheduler.html new file mode 100644 index 000000000..8379b5b4c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/19-scheduler.html @@ -0,0 +1,107 @@ + + + + + + +Scheduler + + + +
+

Scheduler

+ + +

The scheduler is designed to schedule jobs dynamically. It is developed using the Spring Framework Quartz scheduler.

+

To use this scheduler effectively, the jobs (Quartz jobs) that should be scheduled must be created first. Then, these jobs can be added to the database, as all jobs to be scheduled are stored in the database.

+

When the scheduler starts, it reads the jobs to be scheduled or unscheduled from the database and schedules or removes them accordingly. Afterward, jobs can be added, updated, or removed dynamically using the Job scheduling user interface.

+
+

Note

+

The scheduler starts when the TASKPM web application starts and stops when the application stops.

+
+
+

Note

+

This scheduler supports only cron expressions to schedule jobs.

+
+

The criteria that the scheduler uses to schedule or remove jobs when it starts are as follows:

+

For all jobs:

+
    +
  • Schedule
      +
    • Job has a Connector, and the Connector is activated, and the job is allowed to be scheduled.
    • +
    • Job has no Connector and is allowed to be scheduled.
    • +
    +
  • +
  • Remove
      +
    • Job has a Connector, and the Connector is not activated.
    • +
    • Job has a Connector, and the Connector is activated, but the job is not allowed to be scheduled.
    • +
    • Job has no Connector and is not allowed to be scheduled.
    • +
    +
  • +
+
+

Note

+

Jobs cannot be rescheduled or unscheduled if they are currently running.

+
+
+

Job Scheduling List View

+

The Job scheduling list view allows users to:

+
    +
  • Add a new job.
  • +
  • Edit an existing job.
  • +
  • Remove a job.
  • +
  • Start a process manually.
  • +
+
+
+

Add or Edit Job

+

From the Job scheduling list view, click:

+
    +
  • Create to add a new job, or
  • +
  • Edit to modify the selected job.
  • +
+

Both actions will open a create/edit job form. The form displays the following properties:

+
    +
  • Fields:
      +
    • Job group: The name of the job group.
    • +
    • Job name: The name of the job.
    • +
    • Cron expression: A read-only field with an Edit button to open the cron expression input window.
    • +
    • Job class name: A pull-down list to select the job (an existing job).
    • +
    • Connector: A pull-down list to select a connector. This is not mandatory.
    • +
    • Schedule: A checkbox to indicate whether to schedule this job.
    • +
    +
  • +
  • Buttons:
      +
    • Save: To save or update a job in both the database and the scheduler. The user is then returned to the Job scheduling list view.
    • +
    • Save and continue: The same as "Save," but the user is not returned to the Job scheduling list view.
    • +
    • Cancel: Nothing is saved, and the user is returned to the Job scheduling list view.
    • +
    +
  • +
  • And a hint section about cron expression syntax.
  • +
+
+

Cron Expression Pop-up

+

To enter the cron expression correctly, a cron expression pop-up form is used. In this form, you can enter the desired cron expression. See also the hint about the cron expression. If you enter an invalid cron expression, you will be notified immediately.

+
+
+
+

Remove Job

+

Click the Remove button to delete the job from both the database and the scheduler. The success or failure of this action will be displayed.

+
+
+

Start Job Manually

+

As an alternative to waiting for the job to run as scheduled, you can click this button to start the process directly. Afterward, the success or failure information will be displayed in a pop-up window.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/cs/20-acerca-de.html b/libreplan-webapp/src/main/webapp/help/cs/20-acerca-de.html new file mode 100644 index 000000000..569e69e4d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/20-acerca-de.html @@ -0,0 +1,155 @@ + + + + + + +About + + + +
+

About

+ + + +
+

License

+

This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version.

+

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/>.

+
+
+

Written by

+
+

TASKPM Team

+ +
+
+

Previous Team Members

+ +
+
+

Translators

+ +
+
+

Contributors

+ +
+
+
+

Public Funding

+

This project currently accepts donations through the Open Collective organization <https://opencollective.com/TASKPM>.

+

Within the global scope that TASKPM is designed for regarding planning management, a project was developed to solve some common planning problems.

+

This project was partially financed by Xunta de Galicia, Ministerio de Industria, Turismo e Comercio, and by the European Union, Fondo Europeo de Desenvolvemento Rexional.

+
+images/logos.png +
+ +++ + + + +
scale:100
+

This project was part of Plan Avanza:

+
+images/avanza.png +
+ +++ + + + +
scale:100
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/cs/21-communications.html b/libreplan-webapp/src/main/webapp/help/cs/21-communications.html new file mode 100644 index 000000000..e4f5ea081 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/21-communications.html @@ -0,0 +1,18 @@ + + + + + + +Subcontractor Work Description + + + +
+

Subcontractor Work Description

+ +

While it is possible to leave this field empty, doing so can lead to errors in communication functionality when multiple empty fields exist.

+

Therefore, we strongly recommend always using a unique work description.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/cs/22-pert.html b/libreplan-webapp/src/main/webapp/help/cs/22-pert.html new file mode 100644 index 000000000..c27af3c56 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/22-pert.html @@ -0,0 +1,17 @@ + + + + + + +PERT Chart + + + +
+

PERT Chart

+ +

Unlike Libreplan, which was focused on the GANNT chart and did not have a PERT chart, TASKPM does have a PERT chart and is more focused on it.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/cs/23-subnets.html b/libreplan-webapp/src/main/webapp/help/cs/23-subnets.html new file mode 100644 index 000000000..42cd9e634 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/23-subnets.html @@ -0,0 +1,17 @@ + + + + + + +Task Subnets + + + +
+

Task Subnets

+ +

Unlike Libreplan, which only had a single level of planning, the whole project, TASKPM has subnetworks of activities which can be embedded in a master project.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/advance-assignment.png b/libreplan-webapp/src/main/webapp/help/cs/images/advance-assignment.png new file mode 100644 index 000000000..aeb55b2b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/advance-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/asignacion-especifica.png b/libreplan-webapp/src/main/webapp/help/cs/images/asignacion-especifica.png new file mode 100644 index 000000000..9ee94d9c6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/asignacion-especifica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/asignacion-xenerica.png b/libreplan-webapp/src/main/webapp/help/cs/images/asignacion-xenerica.png new file mode 100644 index 000000000..d2a16597f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/asignacion-xenerica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/avance.png b/libreplan-webapp/src/main/webapp/help/cs/images/avance.png new file mode 100644 index 000000000..ee289e19c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/avanza.png b/libreplan-webapp/src/main/webapp/help/cs/images/avanza.png new file mode 100644 index 000000000..a51893f80 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/avanza.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/calendar-administration.png b/libreplan-webapp/src/main/webapp/help/cs/images/calendar-administration.png new file mode 100644 index 000000000..bb4e17032 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/calendar-administration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/calendar-create-derived.png b/libreplan-webapp/src/main/webapp/help/cs/images/calendar-create-derived.png new file mode 100644 index 000000000..9f01f2c33 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/calendar-create-derived.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/calendar-edition.png b/libreplan-webapp/src/main/webapp/help/cs/images/calendar-edition.png new file mode 100644 index 000000000..a98cc4454 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/calendar-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/calendar-exceptions.png b/libreplan-webapp/src/main/webapp/help/cs/images/calendar-exceptions.png new file mode 100644 index 000000000..c2a53a684 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/calendar-exceptions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/category-cost-edit.png b/libreplan-webapp/src/main/webapp/help/cs/images/category-cost-edit.png new file mode 100644 index 000000000..1755ee79e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/category-cost-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/category-cost-list.png b/libreplan-webapp/src/main/webapp/help/cs/images/category-cost-list.png new file mode 100644 index 000000000..1d7ff838c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/category-cost-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/company_view.png b/libreplan-webapp/src/main/webapp/help/cs/images/company_view.png new file mode 100644 index 000000000..c3a7631e6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/company_view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/contraste-avance.png b/libreplan-webapp/src/main/webapp/help/cs/images/contraste-avance.png new file mode 100644 index 000000000..831cceac3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/contraste-avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/default-calendar.png b/libreplan-webapp/src/main/webapp/help/cs/images/default-calendar.png new file mode 100644 index 000000000..6fd379d08 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/default-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/edicion-criterio.png b/libreplan-webapp/src/main/webapp/help/cs/images/edicion-criterio.png new file mode 100644 index 000000000..2b879ced5 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/edicion-criterio.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/hour-type-edit.png b/libreplan-webapp/src/main/webapp/help/cs/images/hour-type-edit.png new file mode 100644 index 000000000..4917b08a8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/hour-type-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/hour-type-list.png b/libreplan-webapp/src/main/webapp/help/cs/images/hour-type-list.png new file mode 100644 index 000000000..1872eb4f7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/hour-type-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/lista-criterios.png b/libreplan-webapp/src/main/webapp/help/cs/images/lista-criterios.png new file mode 100644 index 000000000..a2e7d03cb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/lista-criterios.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/logo.png b/libreplan-webapp/src/main/webapp/help/cs/images/logo.png new file mode 100644 index 000000000..4e7d02651 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/logo.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/logos.png b/libreplan-webapp/src/main/webapp/help/cs/images/logos.png new file mode 100644 index 000000000..7314a0759 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/logos.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/machine-calendar.png b/libreplan-webapp/src/main/webapp/help/cs/images/machine-calendar.png new file mode 100644 index 000000000..a725f67a2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/machine-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/machine-configuration.png b/libreplan-webapp/src/main/webapp/help/cs/images/machine-configuration.png new file mode 100644 index 000000000..0777473fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/machine-configuration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/machine-costcategory.png b/libreplan-webapp/src/main/webapp/help/cs/images/machine-costcategory.png new file mode 100644 index 000000000..b8414eac6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/machine-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/machine-criterions.png b/libreplan-webapp/src/main/webapp/help/cs/images/machine-criterions.png new file mode 100644 index 000000000..7c270bf35 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/machine-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/machine-data.png b/libreplan-webapp/src/main/webapp/help/cs/images/machine-data.png new file mode 100644 index 000000000..5edb47d12 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/machine-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/manage-user-profile.png b/libreplan-webapp/src/main/webapp/help/cs/images/manage-user-profile.png new file mode 100644 index 000000000..6a86064e2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/manage-user-profile.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/manage-user.png b/libreplan-webapp/src/main/webapp/help/cs/images/manage-user.png new file mode 100644 index 000000000..df59f1b7c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/manage-user.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/material.png b/libreplan-webapp/src/main/webapp/help/cs/images/material.png new file mode 100644 index 000000000..a77b5aa41 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/menu.png b/libreplan-webapp/src/main/webapp/help/cs/images/menu.png new file mode 100644 index 000000000..f4eec5250 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/menu.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/new-resource-calendar.png b/libreplan-webapp/src/main/webapp/help/cs/images/new-resource-calendar.png new file mode 100644 index 000000000..9040e0bc0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/new-resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/order-assigned-hours.png b/libreplan-webapp/src/main/webapp/help/cs/images/order-assigned-hours.png new file mode 100644 index 000000000..4fd629386 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/order-assigned-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/order-criterions.png b/libreplan-webapp/src/main/webapp/help/cs/images/order-criterions.png new file mode 100644 index 000000000..e59bd833f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/order-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/order-edition.png b/libreplan-webapp/src/main/webapp/help/cs/images/order-edition.png new file mode 100644 index 000000000..ff67134db Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/order-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/order-element-criterion.png b/libreplan-webapp/src/main/webapp/help/cs/images/order-element-criterion.png new file mode 100644 index 000000000..f167979b0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/order-element-criterion.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/order-element-edition.png b/libreplan-webapp/src/main/webapp/help/cs/images/order-element-edition.png new file mode 100644 index 000000000..66e5e8602 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/order-element-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/order-element-hours.png b/libreplan-webapp/src/main/webapp/help/cs/images/order-element-hours.png new file mode 100644 index 000000000..06cc1dc37 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/order-element-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/order-element-material-assign.png b/libreplan-webapp/src/main/webapp/help/cs/images/order-element-material-assign.png new file mode 100644 index 000000000..90f973766 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/order-element-material-assign.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/order-element-material-search.png b/libreplan-webapp/src/main/webapp/help/cs/images/order-element-material-search.png new file mode 100644 index 000000000..550f1d7fa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/order-element-material-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/order-element-quality.png b/libreplan-webapp/src/main/webapp/help/cs/images/order-element-quality.png new file mode 100644 index 000000000..3272ce70e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/order-element-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/order-element-tags.png b/libreplan-webapp/src/main/webapp/help/cs/images/order-element-tags.png new file mode 100644 index 000000000..e43a7d795 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/order-element-tags.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/order-elements-list.png b/libreplan-webapp/src/main/webapp/help/cs/images/order-elements-list.png new file mode 100644 index 000000000..271ac9bf6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/order-elements-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/order-labels.png b/libreplan-webapp/src/main/webapp/help/cs/images/order-labels.png new file mode 100644 index 000000000..076e0a745 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/order-labels.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/order-material.png b/libreplan-webapp/src/main/webapp/help/cs/images/order-material.png new file mode 100644 index 000000000..9197679e7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/order-material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/order-quality.png b/libreplan-webapp/src/main/webapp/help/cs/images/order-quality.png new file mode 100644 index 000000000..ee9e9027e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/order-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/order_list.png b/libreplan-webapp/src/main/webapp/help/cs/images/order_list.png new file mode 100644 index 000000000..72e70f3b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/order_list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/planning-view.png b/libreplan-webapp/src/main/webapp/help/cs/images/planning-view.png new file mode 100644 index 000000000..de74811eb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/planning-view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/quality.png b/libreplan-webapp/src/main/webapp/help/cs/images/quality.png new file mode 100644 index 000000000..1850f51b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/resource-assignment-generic.png b/libreplan-webapp/src/main/webapp/help/cs/images/resource-assignment-generic.png new file mode 100644 index 000000000..3519a5087 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/resource-assignment-generic.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/resource-assignment-planning.png b/libreplan-webapp/src/main/webapp/help/cs/images/resource-assignment-planning.png new file mode 100644 index 000000000..c4233780d Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/resource-assignment-planning.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/resource-assignment-search.png b/libreplan-webapp/src/main/webapp/help/cs/images/resource-assignment-search.png new file mode 100644 index 000000000..cae142d81 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/resource-assignment-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/resource-assignment-specific.png b/libreplan-webapp/src/main/webapp/help/cs/images/resource-assignment-specific.png new file mode 100644 index 000000000..8f7b1cba2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/resource-assignment-specific.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/resource-assignment.png b/libreplan-webapp/src/main/webapp/help/cs/images/resource-assignment.png new file mode 100644 index 000000000..427d25b79 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/resource-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/resource-calendar.png b/libreplan-webapp/src/main/webapp/help/cs/images/resource-calendar.png new file mode 100644 index 000000000..749c7b829 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/resource-load.png b/libreplan-webapp/src/main/webapp/help/cs/images/resource-load.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/resource-load.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/resources_global.png b/libreplan-webapp/src/main/webapp/help/cs/images/resources_global.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/resources_global.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/stretches.png b/libreplan-webapp/src/main/webapp/help/cs/images/stretches.png new file mode 100644 index 000000000..d661a63f6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/stretches.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/tag-types-edition.png b/libreplan-webapp/src/main/webapp/help/cs/images/tag-types-edition.png new file mode 100644 index 000000000..d366c09c2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/tag-types-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/tag-types-list.png b/libreplan-webapp/src/main/webapp/help/cs/images/tag-types-list.png new file mode 100644 index 000000000..e7de5048c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/tag-types-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/tipos-avances.png b/libreplan-webapp/src/main/webapp/help/cs/images/tipos-avances.png new file mode 100644 index 000000000..bb417f52c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/tipos-avances.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/virtual-resources.png b/libreplan-webapp/src/main/webapp/help/cs/images/virtual-resources.png new file mode 100644 index 000000000..3a54f95d3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/virtual-resources.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/work-report-hours.png b/libreplan-webapp/src/main/webapp/help/cs/images/work-report-hours.png new file mode 100644 index 000000000..568e9fed6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/work-report-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/work-report-type.png b/libreplan-webapp/src/main/webapp/help/cs/images/work-report-type.png new file mode 100644 index 000000000..2549d8b5e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/work-report-type.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/work-report-types.png b/libreplan-webapp/src/main/webapp/help/cs/images/work-report-types.png new file mode 100644 index 000000000..986f705aa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/work-report-types.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/worker-calendar.png b/libreplan-webapp/src/main/webapp/help/cs/images/worker-calendar.png new file mode 100644 index 000000000..1227969b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/worker-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/worker-costcategory.png b/libreplan-webapp/src/main/webapp/help/cs/images/worker-costcategory.png new file mode 100644 index 000000000..f330db68c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/worker-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/worker-criterions.png b/libreplan-webapp/src/main/webapp/help/cs/images/worker-criterions.png new file mode 100644 index 000000000..a131a29fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/worker-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/images/worker-personal-data.png b/libreplan-webapp/src/main/webapp/help/cs/images/worker-personal-data.png new file mode 100644 index 000000000..6a5033ba8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/cs/images/worker-personal-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/cs/index.html b/libreplan-webapp/src/main/webapp/help/cs/index.html new file mode 100644 index 000000000..7a9b74000 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/index.html @@ -0,0 +1,47 @@ + + + + + + +LibrePlan: User documentation + + + +
+

LibrePlan: User documentation

+ +images/logo.png +

Following document contains necessary help for using LibrePlan, the opensource web application for project planning.

+

This document is divided in three main sections:

+

First, global goals and behaviour.

+

Second, basic entities to understand the minimum concepts to use LibrePlan.

+

Finally, complete processes description to create orders, projects, project planning, resources assignment, advance assignment and result extraction.

+
    +
  1. Introduction
  2. +
  3. Criteria
  4. +
  5. Calendars
  6. +
  7. Progress
  8. +
  9. Resource Management
  10. +
  11. Orders and Order Elements
  12. +
  13. Task Planning
  14. +
  15. Resource Assignment
  16. +
  17. Work Reports
  18. +
  19. Labels
  20. +
  21. Materials Management
  22. +
  23. Quality Forms
  24. +
  25. User Management
  26. +
  27. Cost management
  28. +
  29. Reports
  30. +
  31. LDAP Configuration
  32. +
  33. Dashboards
  34. +
  35. Connectors
  36. +
  37. Scheduler
  38. +
  39. About
  40. +
  41. Subcontractor Work Description
  42. +
  43. PERT Chart
  44. +
  45. Task Subnets
  46. +
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/cs/lsr.css b/libreplan-webapp/src/main/webapp/help/cs/lsr.css new file mode 100644 index 000000000..ced6c967a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/cs/lsr.css @@ -0,0 +1,250 @@ +/* +Author: Peter Parente +Date: 2008/01/22 +Version: 1.0 +Copyright: This stylesheet has been placed in the public domain - free to edit and use for all uses. +*/ + +body { + font: 0.8em Verdana, Tahoma, sans-serif; + background: #ffffff; + color: black; + margin: 2em; +} + +p.topic-title { + font-weight: bold; +} + +table.docinfo { + text-align: left; + margin: 2em 0; +} + +a[href] { + color: #436976; + background-color: transparent; +} + +a.toc-backref { + text-decoration: none; +} + +h1 a[href] { + color: #003a6b; + text-decoration: none; + background-color: transparent; +} + +a.strong { + font-weight: bold; +} + +img { + margin: 0; + border: 0; +} + +p { + margin: 0.5em 0 1em 0; + line-height: 1.5em; +} + +p a:visited { + color: purple; + background-color: transparent; +} + +p a:active { + color: red; + background-color: transparent; +} + +a:hover { + text-decoration: none; +} + +p img { + border: 0; + margin: 0; +} + +p.rubric { + font-weight: bold; + font-style: italic; +} + +h1.title { + color: #003a6b; + font-size: 250%; + margin-bottom: 0; +} + +h2.subtitle { + color: #003a6b; + border-bottom: 0; +} + +h1, h2, h3, h4, h5, h6 { + color: #555; + background-color: transparent; + margin: 0; + padding-top: 0.5em; +} + +h1 { + font-size: 160%; + margin-bottom: 0.5em; + border-bottom: 2px solid #aaa; +} + +h2 { + font-size: 140%; + margin-bottom: 0.5em; + border-bottom: 1px solid #aaa; +} + +h3 { + font-size: 130%; + margin-bottom: 0.5em; +} + +h4 { + font-size: 110%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h5 { + font-size: 105%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h6 { + font-size: 100%; + font-weight: bold; + margin-bottom: 0.5em; +} + +dt { + font-style: italic; +} + +dd { + margin-bottom: 1.5em; +} + +div.admonition, div.note, div.tip, div.caution, div.important, div.warning { + margin: 2em 2em; + padding: 0 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +div.important { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +div.caution { + background: transparent url('../images/caution.png') 10px 2px no-repeat; +} + +div.note { + background: transparent url('../images/note.png') 10px 2px no-repeat; +} + +div.tip { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-example { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-critical-example { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +p.admonition-title { + font-weight: bold; + border-bottom: 1px solid #aaa; + padding-left: 30px; +} + +table.docutils { + text-align: left; + border: 1px solid gray; + border-collapse: collapse; + width: 100%; + margin: 1.5em 0; +} + +table.docutils caption { + font-style: italic; +} + +table.docutils td, table.docutils th { + padding: 0.25em 0.5em; +} + +table.docutils th { + background-color: #dddddd; +} + +div.sidebar { + width: 33%; + float: right; + margin: 0 2em; + padding: 0 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +p.sidebar-title { + margin-bottom: 0; + color: #003a6b; + border-bottom: 1px solid #aaa; + font-weight: bold; +} + +p.sidebar-subtitle { + margin-top: 0; + font-style: italic; + color: #003a6b; +} + +div.figure { + text-align: center; +} + +div.figure img { + background: #f8f8f8; + padding: 0.25em; + border: 1px solid #888; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +div.figure img:hover { + background: #e0e0e0; +} + +div.figure p.caption { + text-align: center; + margin-top: 0.1em; + font-style: italic; + color: #444; +} + +pre.literal-block { + padding: 0.15em; + background: #f8f8f8; + border: 1px solid #dfdfdf; + border-left: 0.25em solid #dfdfdf +} diff --git a/libreplan-webapp/src/main/webapp/help/de/01-introducion.html b/libreplan-webapp/src/main/webapp/help/de/01-introducion.html new file mode 100644 index 000000000..51e520ad7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/01-introducion.html @@ -0,0 +1,132 @@ + + + + + + +Introduction + + + +
+

Introduction

+ + +

This document describes the features of TASKPM and provides user information on how to configure and use the application.

+

TASKPM is an open-source web application for project planning. Its primary goal is to provide a comprehensive solution for company project management. For any specific information you may need about this software, please contact the development team at http://www.libreplan.com/contact/

+
+images/company_view.png +

Company Overview

+
+
+

Company Overview and View Management

+

As shown in the program's main screen (see the previous screenshot) and the company overview, users can view a list of planned projects. This allows them to understand the company's overall status regarding orders and resource utilization. The company overview offers three distinct views:

+
    +
  • Planning View: This view combines two perspectives:

    +
    +
      +
    • Order and Time Tracking: Each project is represented by a Gantt chart, indicating the project's start and end dates. This information is displayed alongside the agreed-upon deadline. A comparison is then made between the percentage of progress achieved and the actual time dedicated to each project. This provides a clear picture of the company's performance at any given time. This view is the program's default landing page.
    • +
    • Company Resource Utilization Graph: This graph displays information on resource allocation across projects, providing a summary of the entire company's resource usage. Green indicates that resource allocation is below 100% of capacity. The black line represents the total available resource capacity. Yellow indicates that resource allocation exceeds 100%. It's possible to have under-allocation overall while simultaneously experiencing over-allocation for specific resources.
    • +
    +
    +
  • +
  • Resource Load View: This screen displays a list of the company's workers and their specific task allocations, or generic allocations based on defined criteria. To access this view, click on Overall load of resources. See the following image for an example.

    +
  • +
  • Orders Administration View: This screen displays a list of company orders, allowing users to perform the following actions: filter, edit, delete, visualize planning, or create a new order. To access this view, click on Order list.

    +
  • +
+
+images/resources_global.png +

Resource Overview

+
+
+images/order_list.png +

Work Breakdown Structure

+
+

The view management described above for the company overview is very similar to the management available for a single project. A project can be accessed in several ways:

+
    +
  • Right-click on the Gantt chart for the order and select Plan.
  • +
  • Access the order list and click on the Gantt diagram icon.
  • +
  • Create a new order and change the current order view.
  • +
+

The program offers the following views for an order:

+
    +
  • Planning View: This view allows users to visualize task planning, dependencies, milestones, and more. See the Planning section for further details.
  • +
  • Resource Load View: This view allows users to check the designated resource load for a project. The color code is consistent with the company overview: green for a load less than 100%, yellow for a load equal to 100%, and red for a load over 100%. The load may originate from a specific task or a set of criteria (generic allocation).
  • +
  • Editing Order View: This view allows users to modify the details of the order. See the Orders section for more information.
  • +
  • Advanced Resource Allocation View: This view allows users to allocate resources with advanced options, such as specifying hours per day or the allocated functions to be performed. See the Resource allocation section for more information.
  • +
+
+
+

What Makes TASKPM Useful?

+

TASKPM is a general-purpose planning tool developed to address challenges in industrial project planning that were not adequately covered by existing tools. The development of TASKPM was also motivated by the desire to provide a free, open-source, and entirely web-based alternative to proprietary planning tools.

+

The core concepts underpinning the program are as follows:

+
    +
  • Company and Multi-Project Overview: TASKPM is specifically designed to provide users with information about multiple projects being carried out within a company. Therefore, it is inherently a multi-project program. The program's focus is not limited to individual projects, although specific views for individual projects are also available.
  • +
  • View Management: The company overview, or multi-project view, is accompanied by various views of the stored information. For example, the company overview allows users to view orders and compare their status, view the company's overall resource load, and manage orders. Users can also access the planning view, resource load view, advanced resource allocation view, and editing order view for individual projects.
  • +
  • Criteria: Criteria are a system entity that enables the classification of both resources (human and machine) and tasks. Resources must meet certain criteria, and tasks require specific criteria to be fulfilled. This is one of the program's most important features, as criteria form the basis of generic allocation and address a significant challenge in the industry: the time-consuming nature of human resource management and the difficulty of long-term company load estimations.
  • +
  • Resources: There are two types of resources: human and machine. Human resources are the company's workers, used for planning, monitoring, and controlling the company's workload. Machine resources, dependent on the people who operate them, function similarly to human resources.
  • +
  • Resource Allocation: A key feature of the program is the ability to designate resources in two ways: specifically and generically. Generic allocation is based on the criteria required to complete a task and must be fulfilled by resources capable of meeting those criteria. To understand generic allocation, consider this example: John Smith is a welder. Typically, John Smith would be specifically assigned to a planned task. However, TASKPM offers the option of selecting any welder within the company, without needing to specify that John Smith is the assigned person.
  • +
  • Company Load Control: The program allows for easy control of the company's resource load. This control extends to both the mid-term and long-term, as current and future projects can be managed within the program. TASKPM provides graphs that visually represent resource utilization.
  • +
  • Labels: Labels are used to categorize project tasks. With these labels, users can group tasks by concept, allowing for later review as a group or after filtering.
  • +
  • Filters: Because the system naturally includes elements that label or characterize tasks and resources, criteria filters or labels can be used. This is very useful for reviewing categorized information or generating specific reports based on criteria or labels.
  • +
  • Calendars: Calendars define the available productive hours for different resources. Users can create general company calendars or define more specific calendars, allowing for the creation of calendars for individual resources and tasks.
  • +
  • Orders and Order Elements: Work requested by clients is treated as an order within the application, structured into order elements. The order and its elements follow a hierarchical structure with x levels. This element tree forms the basis for work planning.
  • +
  • Progress: The program can manage various types of progress. A project's progress can be measured as a percentage, in units, against the agreed budget, and more. The responsibility for determining which type of progress to use for comparison at higher project levels lies with the planning manager.
  • +
  • Tasks: Tasks are the fundamental planning elements within the program. They are used to schedule work to be carried out. Key characteristics of tasks include: dependencies between tasks, and the potential requirement for specific criteria to be met before resources can be allocated.
  • +
  • Work Reports: These reports, submitted by the company's workers, detail the hours worked and the tasks associated with those hours. This information allows the system to calculate the actual time taken to complete a task compared to the budgeted time. Progress can then be compared against the actual hours used.
  • +
+

In addition to the core functions, TASKPM offers other features that distinguish it from similar programs:

+
    +
  • Integration with ERP: The program can directly import information from company ERP systems, including orders, human resources, work reports, and specific criteria.
  • +
  • Version Management: The program can manage multiple planning versions, while still allowing users to review the information from each version.
  • +
  • History Management: The program does not delete information; it only marks it as invalid. This allows users to review historical information using date filters.
  • +
+
+
+

Usability Conventions

+
+

Information About Forms

+

Before describing the various functions associated with the most important modules, we need to explain the general navigation and form behavior.

+

There are essentially three types of editing forms:

+
    +
  • Forms with a *Return* button: These forms are part of a larger context, and the changes made are stored in memory. The changes are only applied when the user explicitly saves all the details on the screen from which the form originated.
  • +
  • Forms with *Save* and *Close* buttons: These forms allow for two actions. The first saves the changes and closes the current window. The second closes the window without saving any changes.
  • +
  • Forms with *Save and continue*, *Save*, and *Close* buttons: These forms allow for three actions. The first saves the changes and keeps the current form open. The second saves the changes and closes the form. The third closes the window without saving any changes.
  • +
+
+
+

Standard Icons and Buttons

+
    +
  • Editing: In general, records in the program can be edited by clicking on an icon that looks like a pencil on a white notebook.
  • +
  • Left Indent: These operations are generally used for elements within a tree structure that need to be moved to a deeper level. This is done by clicking on the icon that looks like a green arrow pointing to the right.
  • +
  • Right Indent: These operations are generally used for elements within a tree structure that need to be moved to a higher level. This is done by clicking on the icon that looks like a green arrow pointing to the left.
  • +
  • Deleting: Users can delete information by clicking on the trash can icon.
  • +
  • Search: The magnifying glass icon indicates that the text field to its left is used for searching for elements.
  • +
+
+
+

Tabs

+

The program uses tabs to organize content editing and administration forms. This method is used to divide a comprehensive form into different sections, accessible by clicking on the tab names. The other tabs retain their current status. In all cases, the save and cancel options apply to all sub-forms within the different tabs.

+
+
+

Explicit Actions and Context Help

+

The program includes components that provide additional descriptions of elements when the mouse hovers over them for one second. The actions that the user can perform are indicated on the button labels, in the help texts associated with them, in the browsing menu options, and in the context menus that appear when right-clicking in the planner area. Furthermore, shortcuts are provided for the main operations, such as double-clicking on listed elements or using key events with the cursor and the Enter key to add elements when navigating through forms.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/de/02-criterios.html b/libreplan-webapp/src/main/webapp/help/de/02-criterios.html new file mode 100644 index 000000000..42fad10d3 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/02-criterios.html @@ -0,0 +1,69 @@ + + + + + + +Criteria + + + +
+

Criteria

+ +
+

Contents

+ +
+

Criteria are elements used within the program to categorize both resources and tasks. Tasks require specific criteria, and resources must meet those criteria.

+

Here's an example of how criteria are used: A resource is assigned the criterion "welder" (meaning the resource fulfills the "welder" category), and a task requires the "welder" criterion to be completed. Consequently, when resources are allocated to tasks using generic allocation (as opposed to specific allocation), workers with the "welder" criterion will be considered. For more information on the different types of allocation, refer to the chapter on resource allocation.

+

The program allows for several operations involving criteria:

+
    +
  • Criteria administration
  • +
  • Assigning criteria to resources
  • +
  • Assigning criteria to tasks
  • +
  • Filtering entities based on criteria. Tasks and order items can be filtered by criteria to perform various operations within the program.
  • +
+

This section will only explain the first function, criteria administration. The two types of allocation will be covered later: resource allocation in the "Resource Management" chapter, and filtering in the "Task Planning" chapter.

+
+

Criteria Administration

+

Criteria administration can be accessed through the administration menu:

+
+images/menu.png +

First-Level Menu Tabs

+
+

The specific operation for managing criteria is Manage criteria. This operation allows you to list the criteria available in the system.

+
+images/lista-criterios.png +

List of Criteria

+
+

You can access the create/edit criterion form by clicking the Create button. To edit an existing criterion, click the edit icon.

+
+images/edicion-criterio.png +

Editing Criteria

+
+

The criteria editing form, as shown in the previous image, allows you to perform the following operations:

+
    +
  • Edit the criterion's name.
  • +
  • Specify whether multiple values can be assigned simultaneously or only one value for the selected criterion type. For example, a resource could fulfill two criteria, "welder" and "lathe operator."
  • +
  • Specify the criterion type:
      +
    • Generic: A criterion that can be used for both machines and workers.
    • +
    • Worker: A criterion that can only be used for workers.
    • +
    • Machine: A criterion that can only be used for machines.
    • +
    +
  • +
  • Indicate whether the criterion is hierarchical. Sometimes, criteria need to be treated hierarchically. For example, assigning a criterion to an element does not automatically assign it to elements derived from it. A clear example of a hierarchical criterion is "location." For instance, a person designated with the location "Galicia" will also belong to "Spain."
  • +
  • Indicate whether the criterion is authorized. This is how users deactivate criteria. Once a criterion has been created and used in historical data, it cannot be changed. Instead, it can be deactivated to prevent it from appearing in selection lists.
  • +
  • Describe the criterion.
  • +
  • Add new values. A text entry field with the New criterion button is located in the second part of the form.
  • +
  • Edit the names of existing criteria values.
  • +
  • Move criteria values up or down in the list of current criteria values.
  • +
  • Remove a criterion value from the list.
  • +
+

The criteria administration form follows the form behavior described in the introduction, offering three actions: Save, Save and Close, and Close.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/de/03-calendarios.html b/libreplan-webapp/src/main/webapp/help/de/03-calendarios.html new file mode 100644 index 000000000..0d0bbf0d5 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/03-calendarios.html @@ -0,0 +1,187 @@ + + + + + + +Calendars + + + +
+

Calendars

+ + +

Calendars are entities within the program that define the working capacity of resources. A calendar consists of a series of days throughout the year, with each day divided into available working hours.

+

For example, a public holiday might have 0 available working hours. Conversely, a typical workday might have 8 hours designated as available working time.

+

There are two primary ways to define the number of working hours in a day:

+
    +
  • By Weekday: This method sets a standard number of working hours for each day of the week. For example, Mondays might typically have 8 working hours.
  • +
  • By Exception: This method allows for specific deviations from the standard weekday schedule. For example, Monday, January 30th, might have 10 working hours, overriding the standard Monday schedule.
  • +
+
+

Calendar Administration

+

The calendar system is hierarchical, allowing you to create base calendars and then derive new calendars from them, forming a tree structure. A calendar derived from a higher-level calendar will inherit its daily schedules and exceptions unless explicitly modified. To effectively manage calendars, it's important to understand the following concepts:

+
    +
  • Day Independence: Each day is treated independently, and each year has its own set of days. For example, if December 8th, 2009, is a public holiday, this does not automatically mean that December 8th, 2010, is also a public holiday.
  • +
  • Weekday-Based Working Days: Standard working days are based on weekdays. For example, if Mondays typically have 8 working hours, then all Mondays in all weeks of all years will have 8 available hours unless an exception is defined.
  • +
  • Exceptions and Exception Periods: You can define exceptions or exception periods to deviate from the standard weekday schedule. For example, you can specify a single day or a range of days with a different number of available working hours than the general rule for those weekdays.
  • +
+
+images/calendar-administration.png +

Calendar Administration

+
+

Calendar administration is accessible through the "Administration" menu. From there, users can perform the following actions:

+
    +
  1. Create a new calendar from scratch.
  2. +
  3. Create a calendar derived from an existing one.
  4. +
  5. Create a calendar as a copy of an existing one.
  6. +
  7. Edit an existing calendar.
  8. +
+
+

Creating a New Calendar

+

To create a new calendar, click the "Create" button. The system will display a form where you can configure the following:

+
    +
  • Select the Tab: Choose the tab you want to work on:
      +
    • Marking Exceptions: Define exceptions to the standard schedule.
    • +
    • Working Hours per Day: Define the standard working hours for each weekday.
    • +
    +
  • +
  • Marking Exceptions: If you select the "Marking Exceptions" option, you can:
      +
    • Select a specific day on the calendar.
    • +
    • Select the type of exception. The available types are: holiday, illness, strike, public holiday, and working holiday.
    • +
    • Select the end date of the exception period. (This field does not need to be changed for single-day exceptions.)
    • +
    • Define the number of working hours during the days of the exception period.
    • +
    • Delete previously defined exceptions.
    • +
    +
  • +
  • Working Hours per Day: If you select the "Working Hours per Day" option, you can:
      +
    • Define the available working hours for each weekday (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, and Sunday).
    • +
    • Define different weekly hour distributions for future periods.
    • +
    • Delete previously defined hour distributions.
    • +
    +
  • +
+

These options allow users to fully customize calendars according to their specific needs. Click the "Save" button to store any changes made to the form.

+
+images/calendar-edition.png +

Editing Calendars

+
+
+images/calendar-exceptions.png +

Adding an Exception to a Calendar

+
+
+
+

Creating Derived Calendars

+

A derived calendar is created based on an existing calendar. It inherits all the features of the original calendar, but you can modify it to include different options.

+

A common use case for derived calendars is when you have a general calendar for a country, such as Spain, and you need to create a derived calendar to include additional public holidays specific to a region, such as Galicia.

+

It's important to note that any changes made to the original calendar will automatically propagate to the derived calendar, unless a specific exception has been defined in the derived calendar. For example, the calendar for Spain might have an 8-hour working day on May 17th. However, the calendar for Galicia (a derived calendar) might have no working hours on that same day because it's a regional public holiday. If the Spanish calendar is later changed to have 4 available working hours per day for the week of May 17th, the Galician calendar will also change to have 4 available working hours for every day in that week, except for May 17th, which will remain a non-working day due to the defined exception.

+
+images/calendar-create-derived.png +

Creating a Derived Calendar

+
+

To create a derived calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Calendar administration option.
  • +
  • Select the calendar you want to use as the basis for the derived calendar and click the "Create" button.
  • +
  • The system will display an editing form with the same characteristics as the form used to create a calendar from scratch, except that the proposed exceptions and the working hours per weekday will be based on the original calendar.
  • +
+
+
+

Creating a Calendar by Copying

+

A copied calendar is an exact duplicate of an existing calendar. It inherits all the features of the original calendar, but you can modify it independently.

+

The key difference between a copied calendar and a derived calendar is how they are affected by changes to the original. If the original calendar is modified, the copied calendar remains unchanged. However, derived calendars are affected by changes made to the original, unless an exception is defined.

+

A common use case for copied calendars is when you have a calendar for one location, such as "Pontevedra," and you need a similar calendar for another location, such as "A Coruña," where most of the features are the same. However, changes to one calendar should not affect the other.

+

To create a copied calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Calendar administration option.
  • +
  • Select the calendar you want to copy and click the "Create" button.
  • +
  • The system will display an editing form with the same characteristics as the form used to create a calendar from scratch, except that the proposed exceptions and the working hours per weekday will be based on the original calendar.
  • +
+
+
+

Default Calendar

+

One of the existing calendars can be designated as the default calendar. This calendar will be automatically assigned to any entity in the system that is managed with calendars unless a different calendar is specified.

+

To set up a default calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Configuration option.
  • +
  • In the Default calendar field, select the calendar you want to use as the program's default calendar.
  • +
  • Click Save.
  • +
+
+images/default-calendar.png +

Setting a Default Calendar

+
+
+
+

Assigning a Calendar to Resources

+

Resources can only be activated (i.e., have available working hours) if they have an assigned calendar with a valid activation period. If no calendar is assigned to a resource, the default calendar is assigned automatically, with an activation period that begins on the start date and has no expiry date.

+
+images/resource-calendar.png +

Resource Calendar

+
+

However, you can delete the calendar that has been previously assigned to a resource and create a new calendar based on an existing one. This allows for complete customization of calendars for individual resources.

+

To assign a calendar to a resource:

+
    +
  • Go to the Edit resources option.
  • +
  • Select a resource and click Edit.
  • +
  • Select the "Calendar" tab.
  • +
  • The calendar, along with its exceptions, working hours per day, and activation periods, will be displayed.
  • +
  • Each tab will have the following options:
      +
    • Exceptions: Define exceptions and the period to which they apply, such as holidays, public holidays, or different workdays.
    • +
    • Working Week: Modify the working hours for each weekday (Monday, Tuesday, etc.).
    • +
    • Activation Periods: Create new activation periods to reflect the start and end dates of contracts associated with the resource. See the following image.
    • +
    +
  • +
  • Click Save to store the information.
  • +
  • Click Delete if you want to change the calendar assigned to a resource.
  • +
+
+images/new-resource-calendar.png +

Assigning a New Calendar to a Resource

+
+
+
+

Assigning Calendars to Orders

+

Projects can have a different calendar than the default calendar. To change the calendar for an order:

+
    +
  • Access the order list in the company overview.
  • +
  • Edit the order in question.
  • +
  • Access the "General information" tab.
  • +
  • Select the calendar to be assigned from the drop-down menu.
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+

Assigning Calendars to Tasks

+

Similar to resources and orders, you can assign specific calendars to individual tasks. This allows you to define different calendars for specific stages of a project. To assign a calendar to a task:

+
    +
  • Access the planning view of a project.
  • +
  • Right-click the task to which you want to assign a calendar.
  • +
  • Select the "Assign calendar" option.
  • +
  • Select the calendar to be assigned to the task.
  • +
  • Click Accept.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/de/04-avances.html b/libreplan-webapp/src/main/webapp/help/de/04-avances.html new file mode 100644 index 000000000..615d6109f --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/04-avances.html @@ -0,0 +1,97 @@ + + + + + + +Progress + + + +
+

Progress

+ + +

Project progress indicates the degree to which the estimated completion time of the project is being met. Task progress indicates the degree to which the task is being completed according to its estimated completion.

+

Generally, progress cannot be measured automatically. A staff member with experience or a checklist must determine the degree of completion for a task or project.

+

It's important to note the distinction between the hours assigned to a task or project and the progress of that task or project. While the number of hours used may be more or less than expected, the project may be ahead of or behind its estimated completion on the monitored day. Several situations can arise from these two measurements:

+
    +
  • Fewer hours consumed than expected, but the project is behind schedule: Progress is lower than estimated for the monitored day.
  • +
  • Fewer hours consumed than expected, and the project is ahead of schedule: Progress is higher than estimated for the monitored day.
  • +
  • More hours consumed than expected, and the project is behind schedule: Progress is lower than estimated for the monitored day.
  • +
  • More hours consumed than expected, but the project is ahead of schedule: Progress is higher than estimated for the monitored day.
  • +
+

The planning view allows you to compare these situations by using information about the progress made and the hours used. This chapter will explain how to enter information to monitor progress.

+

The philosophy behind progress monitoring is based on users defining the level at which they want to monitor their projects. For example, if users want to monitor orders, they only need to enter information for level-1 elements. If they want more precise monitoring at the task level, they must enter progress information at lower levels. The system will then aggregate the data upward through the hierarchy.

+
+

Managing Progress Types

+

Companies have varying needs when monitoring project progress, particularly the tasks involved. Therefore, the system includes "progress types." Users can define different progress types to measure a task's progress. For example, a task can be measured as a percentage, but this percentage can also be translated into progress in Tonnes based on the agreement with the client.

+

A progress type has a name, a maximum value, and a precision value:

+
    +
  • Name: A descriptive name that users will recognize when selecting the progress type. This name should clearly indicate what kind of progress is being measured.
  • +
  • Maximum Value: The maximum value that can be established for a task or project as the total progress measurement. For example, if you're working with Tonnes and the normal maximum is 4000 tonnes, and no task will ever require more than 4000 tonnes of any material, then 4000 would be the maximum value.
  • +
  • Precision Value: The increment value allowed for the progress type. For example, if progress in Tonnes is to be measured in whole numbers, the precision value would be 1. From that point on, only whole numbers can be entered as progress measurements (e.g., 1, 2, 300).
  • +
+

The system has two default progress types:

+
    +
  • Percentage: A general progress type that measures the progress of a project or task based on an estimated completion percentage. For example, a task is 30% complete out of the 100% estimated for a specific day.
  • +
  • Units: A general progress type that measures progress in units without specifying the type of unit. For example, a task involves creating 3000 units, and the progress is 500 units out of the total of 3000.
  • +
+
+images/tipos-avances.png +

Administration of Progress Types

+
+

Users can create new progress types as follows:

+
    +
  • Go to the "Administration" section.
  • +
  • Click the "Manage types of progress" option in the second-level menu.
  • +
  • The system will display a list of existing progress types.
  • +
  • For each progress type, users can:
      +
    • Edit
    • +
    • Delete
    • +
    +
  • +
  • Users can then create a new progress type.
  • +
  • When editing or creating a progress type, the system displays a form with the following information:
      +
    • Name of the progress type.
    • +
    • Maximum value allowed for the progress type.
    • +
    • Precision value for the progress type.
    • +
    +
  • +
+
+
+

Entering Progress Based on Type

+

Progress is entered for order elements, but it can also be entered using a shortcut from the planning tasks. Users are responsible for deciding which progress type to associate with each order element.

+

Users can enter a single, default progress type for the entire order.

+

Before measuring progress, users must associate the chosen progress type with the order. For example, they might choose percentage progress to measure progress on the entire task or an agreed progress rate if progress measurements agreed upon with the client will be entered in the future.

+
+images/avance.png +

Progress Entry Screen with Graphic Visualization

+
+

To enter progress measurements:

+
    +
  • Select the progress type to which the progress will be added. +* If no progress type exists, a new one must be created.
  • +
  • In the form that appears under the "Value" and "Date" fields, enter the absolute value of the measurement and the date of the measurement.
  • +
  • The system automatically stores the entered data.
  • +
+
+
+

Comparing Progress for an Order Element

+

Users can graphically compare the progress made on orders with the measurements taken. All progress types have a column with a check button ("Show"). When this button is selected, the progress chart of measurements taken is displayed for the order element.

+
+images/contraste-avance.png +

Comparison of Several Progress Types

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/de/05-recursos.html b/libreplan-webapp/src/main/webapp/help/de/05-recursos.html new file mode 100644 index 000000000..07190538a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/05-recursos.html @@ -0,0 +1,186 @@ + + + + + + +Resource Management + + + +
+

Resource Management

+ + +

The program manages two distinct types of resources: staff and machines.

+
+

Staff Resources

+

Staff resources represent the company's workers. Their key characteristics are:

+
    +
  • They fulfill one or more generic or worker-specific criteria.
  • +
  • They can be specifically assigned to a task.
  • +
  • They can be assigned generically to a task that requires a resource criterion.
  • +
  • They can have a default or a specific calendar, as needed.
  • +
+
+
+

Machine Resources

+

Machine resources represent the company's machinery. Their key characteristics are:

+
    +
  • They fulfill one or more generic or machine-specific criteria.
  • +
  • They can be specifically assigned to a task.
  • +
  • They can be assigned generically to a task that requires a machine criterion.
  • +
  • They can have a default or a specific calendar, as needed.
  • +
  • The program includes a configuration screen where an alpha value can be defined to represent the machine/worker ratio.
      +
    • The alpha value indicates the amount of worker time required to operate the machine. For example, an alpha value of 0.5 means that every 8 hours of machine operation requires 4 hours of a worker's time.
    • +
    • Users can assign an alpha value specifically to a worker, designating that worker to operate the machine for that percentage of time.
    • +
    • Users can also make a generic assignment based on a criterion, so that a percentage of use is assigned to all resources that meet that criterion and have available time. Generic assignment works similarly to generic assignment for tasks, as described previously.
    • +
    +
  • +
+
+
+

Managing Resources

+

Users can create, edit, and deactivate (but not permanently delete) workers and machines within the company by navigating to the "Resources" section. This section provides the following features:

+
    +
  • List of Workers: Displays a numbered list of workers, allowing users to manage their details.
  • +
  • List of Machines: Displays a numbered list of machines, allowing users to manage their details.
  • +
+
+

Managing Workers

+

Worker management is accessed by going to the "Resources" section and then selecting "List of workers." Users can edit any worker in the list by clicking the standard edit icon.

+

When editing a worker, users can access the following tabs:

+
    +
  1. Worker Details: This tab allows users to edit the worker's basic identification details:

    +
      +
    • Name
    • +
    • Surname(s)
    • +
    • National ID document (DNI)
    • +
    • Queue-based resource (see section on Queue-based Resources)
    • +
    +
    +images/worker-personal-data.png +

    Editing Workers' Personal Details

    +
    +
  2. +
  3. Criteria: This tab is used to configure the criteria that a worker fulfills. Users can assign any worker or generic criteria they deem appropriate. It's crucial for workers to fulfill criteria to maximize the program's functionality. To assign criteria:

    +
      +
    1. Click the "Add criteria" button.
    2. +
    3. Search for the criterion to be added and select the most appropriate one.
    4. +
    5. Click the "Add" button.
    6. +
    7. Select the start date when the criterion becomes applicable.
    8. +
    9. Select the end date for applying the criterion to the resource. This date is optional if the criterion is considered indefinite.
    10. +
    +
    +images/worker-criterions.png +

    Associating Criteria with Workers

    +
    +
  4. +
  5. Calendar: This tab allows users to configure a specific calendar for the worker. All workers have a default calendar assigned; however, it's possible to assign a specific calendar to each worker based on an existing calendar.

    +
    +images/worker-calendar.png +

    Calendar Tab for a Resource

    +
    +
  6. +
  7. Cost Category: This tab allows users to configure the cost category that a worker fulfills during a given period. This information is used to calculate the costs associated with a worker on a project.

    +
    +images/worker-costcategory.png +

    Cost Category Tab for a Resource

    +
    +
  8. +
+

Resource assignment is explained in the "Resource Assignment" section.

+
+
+

Managing Machines

+

Machines are treated as resources for all purposes. Therefore, similar to workers, machines can be managed and assigned to tasks. Resource assignment is covered in the "Resource Assignment" section, which will explain the specific features of machines.

+

Machines are managed from the "Resources" menu entry. This section has an operation called "Machine list," which displays the company's machines. Users can edit or delete a machine from this list.

+

When editing machines, the system displays a series of tabs for managing different details:

+
    +
  1. Machine Details: This tab allows users to edit the machine's identification details:

    +
      +
    1. Name
    2. +
    3. Machine code
    4. +
    5. Description of the machine
    6. +
    +
    +images/machine-data.png +

    Editing Machine Details

    +
    +
  2. +
  3. Criteria: As with worker resources, this tab is used to add criteria that the machine fulfills. Two types of criteria can be assigned to machines: machine-specific or generic. Worker criteria cannot be assigned to machines. To assign criteria:

    +
      +
    1. Click the "Add criteria" button.
    2. +
    3. Search for the criterion to be added and select the most appropriate one.
    4. +
    5. Select the start date when the criterion becomes applicable.
    6. +
    7. Select the end date for applying the criterion to the resource. This date is optional if the criterion is considered indefinite.
    8. +
    9. Click the "Save and continue" button.
    10. +
    +
    +images/machine-criterions.png +

    Assigning Criteria to Machines

    +
    +
  4. +
  5. Calendar: This tab allows users to configure a specific calendar for the machine. All machines have a default calendar assigned; however, it's possible to assign a specific calendar to each machine based on an existing calendar.

    +
    +images/machine-calendar.png +

    Assigning Calendars to Machines

    +
    +
  6. +
  7. Machine Configuration: This tab allows users to configure the ratio of machines to worker resources. A machine has an alpha value that indicates the machine/worker ratio. As mentioned previously, an alpha value of 0.5 indicates that 0.5 people are required for each full day of machine operation. Based on the alpha value, the system automatically assigns workers who are associated with the machine once the machine is assigned to a task. Associating a worker with a machine can be done in two ways:

    +
      +
    1. Specific Assignment: Assign a range of dates during which the worker is assigned to the machine. This is a specific assignment, as the system automatically assigns hours to the worker when the machine is scheduled.
    2. +
    3. Generic Assignment: Assign criteria that must be fulfilled by workers assigned to the machine. This creates a generic assignment of workers who meet the criteria.
    4. +
    +
    +images/machine-configuration.png +

    Configuration of Machines

    +
    +
  8. +
  9. Cost Category: This tab allows users to configure the cost category that a machine fulfills during a given period. This information is used to calculate the costs associated with a machine on a project.

    +
    +images/machine-costcategory.png +

    Assigning Cost Categories to Machines

    +
    +
  10. +
+
+
+

Virtual Worker Groups

+

The program allows users to create virtual worker groups, which are not real workers but simulated staff. These groups enable users to model increased production capacity at specific times, based on the calendar settings.

+

Virtual worker groups allow users to assess how project planning would be affected by hiring and assigning staff who meet specific criteria, thus aiding in the decision-making process.

+

The tabs for creating virtual worker groups are the same as those for configuring workers:

+
    +
  • General Details
  • +
  • Assigned Criteria
  • +
  • Calendars
  • +
  • Associated Hours
  • +
+

The difference between virtual worker groups and actual workers is that virtual worker groups have a name for the group and a quantity, which represents the number of real people in the group. There is also a field for comments, where additional information can be provided, such as which project would require hiring equivalent to the virtual worker group.

+
+images/virtual-resources.png +

Virtual Resources

+
+
+
+

Queue-based Resources

+

Queue-based resources are a specific type of productive element that can either be unassigned or have 100% dedication. In other words, they cannot have more than one task scheduled at the same time, nor can they be over-allocated.

+

For each queue-based resource, a queue is automatically created. The tasks scheduled for these resources can be managed specifically using the provided assignment methods, creating automatic assignments between tasks and queues that match the required criteria, or by moving tasks between queues.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/de/06-pedidos.html b/libreplan-webapp/src/main/webapp/help/de/06-pedidos.html new file mode 100644 index 000000000..87fd79071 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/06-pedidos.html @@ -0,0 +1,315 @@ + + + + + + +Orders and Order Elements + + + +
+

Orders and Order Elements

+ + +

Orders represent the work to be performed by users of the program. Each order corresponds to a project that the company will offer to its clients.

+

An order consists of one or more order elements. Each order element represents a specific part of the work to be done and defines how the work on the order should be planned and executed. Order elements are organized hierarchically, with no limitations on the depth of the hierarchy. This hierarchical structure allows for the inheritance of certain features, such as labels.

+

The following sections describe the operations that users can perform with orders and order elements.

+
+

Orders

+

An order represents a project or work requested by a client from the company. The order identifies the project within the company's planning. Unlike comprehensive management programs, TASKPM only requires certain key details for an order. These details are:

+
    +
  • Order Name: The name of the order.
  • +
  • Order Code: A unique code for the order.
  • +
  • Total Order Amount: The total financial value of the order.
  • +
  • Estimated Start Date: The planned start date for the order.
  • +
  • End Date: The planned completion date for the order.
  • +
  • Person in Charge: The individual responsible for the order.
  • +
  • Description: A description of the order.
  • +
  • Assigned Calendar: The calendar associated with the order.
  • +
  • Automatic Generation of Codes: A setting to instruct the system to automatically generate codes for order elements and hour groups.
  • +
  • Preference between Dependencies and Restrictions: Users can choose whether dependencies or restrictions take priority in case of conflicts.
  • +
+

However, a complete order also includes other associated entities:

+
    +
  • Hours Assigned to the Order: The total hours allocated to the order.
  • +
  • Progress Attributed to the Order: The progress made on the order.
  • +
  • Labels: Labels assigned to the order.
  • +
  • Criteria Assigned to the Order: Criteria associated with the order.
  • +
  • Materials: Materials required for the order.
  • +
  • Quality Forms: Quality forms associated with the order.
  • +
+

Creating or editing an order can be done from several locations within the program:

+
    +
  • From the "Order List" in the Company Overview:
      +
    • Editing: Click the edit button on the desired order.
    • +
    • Creating: Click "New order."
    • +
    +
  • +
  • From an Order in the Gantt Chart: Change to the order details view.
  • +
+

Users can access the following tabs when editing an order:

+
    +
  • Editing Order Details: This screen allows users to edit basic order details:

    +
      +
    • Name
    • +
    • Code
    • +
    • Estimated Start Date
    • +
    • End Date
    • +
    • Person in Charge
    • +
    • Client
    • +
    • Description
    • +
    +
    +images/order-edition.png +

    Editing Orders

    +
    +
  • +
  • Order Element List: This screen allows users to perform several operations on order elements:

    +
      +
    • Creating new order elements.
    • +
    • Promoting an order element one level up in the hierarchy.
    • +
    • Demoting an order element one level down in the hierarchy.
    • +
    • Indenting an order element (moving it down the hierarchy).
    • +
    • Unindenting an order element (moving it up the hierarchy).
    • +
    • Filtering order elements.
    • +
    • Deleting order elements.
    • +
    • Moving an element within the hierarchy by dragging and dropping.
    • +
    +
    +images/order-elements-list.png +

    Order Element List

    +
    +
  • +
  • Assigned Hours: This screen displays the total hours attributed to the project, grouping the hours entered in the order elements.

    +
    +images/order-assigned-hours.png +

    Assigning Hours Attributed to the Order by Workers

    +
    +
  • +
  • Progress: This screen allows users to assign progress types and enter progress measurements for the order. See the "Progress" section for more details.

    +
  • +
  • Labels: This screen allows users to assign labels to an order and view previously assigned direct and indirect labels. See the following section on editing order elements for a detailed description of label management.

    +
    +images/order-labels.png +

    Order Labels

    +
    +
  • +
  • Criteria: This screen allows users to assign criteria that will apply to all tasks within the order. These criteria will be automatically applied to all order elements, except those that have been explicitly invalidated. The hour groups of order elements, which are grouped by criteria, can also be viewed, allowing users to identify the criteria required for an order.

    +
    +images/order-criterions.png +

    Order Criteria

    +
    +
  • +
  • Materials: This screen allows users to assign materials to orders. Materials can be selected from the available material categories in the program. Materials are managed as follows:

    +
      +
    • Select the "Search materials" tab at the bottom of the screen.
    • +
    • Enter text to search for materials or select the categories for which you want to find materials.
    • +
    • The system filters the results.
    • +
    • Select the desired materials (multiple materials can be selected by pressing the "Ctrl" key).
    • +
    • Click "Assign."
    • +
    • The system displays the list of materials already assigned to the order.
    • +
    • Select the units and the status to assign to the order.
    • +
    • Click "Save" or "Save and continue."
    • +
    • To manage the receipt of materials, click "Divide" to change the status of a partial quantity of material.
    • +
    +
    +images/order-material.png +

    Materials Associated with an Order

    +
    +
  • +
  • Quality: Users can assign a quality form to the order. This form is then completed to ensure that certain activities associated with the order are carried out. See the following section on editing order elements for details on managing quality forms.

    +
    +images/order-quality.png +

    Quality Form Associated with the Order

    +
    +
  • +
+
+
+

Editing Order Elements

+

Order elements are edited from the "Order element list" tab by clicking the edit icon. This opens a new screen where users can:

+
    +
  • Edit information about the order element.
  • +
  • View hours attributed to order elements.
  • +
  • Manage progress of order elements.
  • +
  • Manage order labels.
  • +
  • Manage criteria required by the order element.
  • +
  • Manage materials.
  • +
  • Manage quality forms.
  • +
+

The following subsections describe each of these operations in detail.

+
+

Editing Information about the Order Element

+

Editing information about the order element includes modifying the following details:

+
    +
  • Order Element Name: The name of the order element.
  • +
  • Order Element Code: A unique code for the order element.
  • +
  • Start Date: The planned start date of the order element.
  • +
  • Estimated End Date: The planned completion date of the order element.
  • +
  • Total Hours: The total hours allocated to the order element. These hours can be calculated from the added hour groups or entered directly. If entered directly, the hours must be distributed among the hour groups, and a new hour group created if the percentages do not match the initial percentages.
  • +
  • Hour Groups: One or more hour groups can be added to the order element. The purpose of these hour groups is to define the requirements for the resources that will be assigned to perform the work.
  • +
  • Criteria: Criteria can be added that must be met to enable generic assignment for the order element.
  • +
+
+images/order-element-edition.png +

Editing Order Elements

+
+
+
+

Viewing Hours Attributed to Order Elements

+

The "Assigned hours" tab allows users to view the work reports associated with an order element and see how many of the estimated hours have already been completed.

+
+images/order-element-hours.png +

Hours Assigned to Order Elements

+
+

The screen is divided into two parts:

+
    +
  • Work Report List: Users can view the list of work reports associated with the order element, including the date and time, resource, and number of hours devoted to the task.
  • +
  • Use of Estimated Hours: The system calculates the total number of hours devoted to the task and compares them with the estimated hours.
  • +
+
+
+

Managing Progress of Order Elements

+

Entering progress types and managing order element progress is described in the "Progress" chapter.

+
+
+

Managing Order Labels

+

Labels, as described in the chapter on labels, allow users to categorize order elements. This enables users to group planning or order information based on these labels.

+

Users can assign labels directly to an order element or to a higher-level order element in the hierarchy. Once a label is assigned using either method, the order element and the related planning task are associated with the label and can be used for subsequent filtering.

+
+images/order-element-tags.png +

Assigning Labels for Order Elements

+
+

As shown in the image, users can perform the following actions from the Labels tab:

+
    +
  • View Inherited Labels: View labels associated with the order element that were inherited from a higher-level order element. The planning task associated with each order element has the same associated labels.
  • +
  • View Directly Assigned Labels: View labels directly associated with the order element using the assignment form for lower-level labels.
  • +
  • Assign Existing Labels: Assign labels by searching for them among the available labels in the form below the direct label list. To search for a label, click the magnifying glass icon or enter the first letters of the label in the text box to display the available options.
  • +
  • Create and Assign New Labels: Create new labels associated with an existing label type from this form. To do this, select a label type and enter the label value for the selected type. The system automatically creates the label and assigns it to the order element when "Create and assign" is clicked.
  • +
+
+
+

Managing Criteria Required by the Order Element and Hour Groups

+

Both an order and an order element can have criteria assigned that must be met for the work to be performed. Criteria can be direct or indirect:

+
    +
  • Direct Criteria: These are assigned directly to the order element. They are criteria required by the hour groups on the order element.
  • +
  • Indirect Criteria: These are assigned to higher-level order elements in the hierarchy and are inherited by the element being edited.
  • +
+

In addition to the required criteria, one or more hour groups that are part of the order element can be defined. This depends on whether the order element contains other order elements as child nodes or if it is a leaf node. In the first case, information about hours and hour groups can only be viewed. However, leaf nodes can be edited. Leaf nodes work as follows:

+
    +
  • The system creates a default hour group associated with the order element. The details that can be modified for an hour group are:
      +
    • Code: The code for the hour group (if not automatically generated).
    • +
    • Criterion Type: Users can choose to assign a machine or worker criterion.
    • +
    • Number of Hours: The number of hours in the hour group.
    • +
    • List of Criteria: The criteria to be applied to the hour group. To add new criteria, click "Add criterion" and select one from the search engine that appears after clicking the button.
    • +
    +
  • +
  • Users can add new hour groups with different features than previous hour groups. For example, an order element might require a welder (30 hours) and a painter (40 hours).
  • +
+
+images/order-element-criterion.png +

Assigning Criteria to Order Elements

+
+
+
+

Managing Materials

+

Materials are managed in projects as a list associated with each order element or an order in general. The list of materials includes the following fields:

+
    +
  • Code: The material code.
  • +
  • Date: The date associated with the material.
  • +
  • Units: The required number of units.
  • +
  • Unit Type: The type of unit used to measure the material.
  • +
  • Unit Price: The price per unit.
  • +
  • Total Price: The total price (calculated by multiplying the unit price by the number of units).
  • +
  • Category: The category to which the material belongs.
  • +
  • Status: The status of the material (e.g., Received, Requested, Pending, Processing, Cancelled).
  • +
+

Working with materials is done as follows:

+
    +
  • Select the "Materials" tab on an order element.
  • +
  • The system displays two sub-tabs: "Materials" and "Search materials."
  • +
  • If the order element has no assigned materials, the first tab will be empty.
  • +
  • Click "Search materials" in the lower-left part of the window.
  • +
  • The system displays the list of available categories and associated materials.
  • +
+
+images/order-element-material-search.png +

Searching for Materials

+
+
    +
  • Select categories to refine the material search.
  • +
  • The system displays the materials that belong to the selected categories.
  • +
  • From the materials list, select the materials to assign to the order element.
  • +
  • Click "Assign."
  • +
  • The system displays the selected list of materials on the "Materials" tab with new fields to complete.
  • +
+
+images/order-element-material-assign.png +

Assigning Materials to Order Elements

+
+
    +
  • Select the units, status, and date for the assigned materials.
  • +
+

For subsequent monitoring of materials, it's possible to change the status of a group of units of the received material. This is done as follows:

+
    +
  • Click the "Divide" button on the list of materials to the right of each row.
  • +
  • Select the number of units to divide the row into.
  • +
  • The program displays two rows with the material divided.
  • +
  • Change the status of the row containing the material.
  • +
+

The advantage of using this dividing tool is the ability to receive partial deliveries of material without having to wait for the entire delivery to mark it as received.

+
+
+

Managing Quality Forms

+

Some order elements require certification that certain tasks have been completed before they can be marked as complete. This is why the program has quality forms, which consist of a list of questions that are considered important if answered positively.

+

It's important to note that a quality form must be created beforehand to be assigned to an order element.

+

To manage quality forms:

+
    +
  • Go to the "Quality forms" tab.

    +
    +images/order-element-quality.png +

    Assigning Quality Forms to Order Elements

    +
    +
  • +
  • The program has a search engine for quality forms. There are two types of quality forms: by element or by percentage.

    +
      +
    • Element: Each element is independent.
    • +
    • Percentage: Each question increases the progress of the order element by a percentage. The percentages must be able to add up to 100%.
    • +
    +
  • +
  • Select one of the forms created in the administration interface and click "Assign."

    +
  • +
  • The program assigns the chosen form from the list of forms assigned to the order element.

    +
  • +
  • Click the "Edit" button on the order element.

    +
  • +
  • The program displays the questions from the quality form in the lower list.

    +
  • +
  • Mark the questions that have been completed as achieved.

    +
      +
    • If the quality form is based on percentages, the questions are answered in order.
    • +
    • If the quality form is based on elements, the questions can be answered in any order.
    • +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/de/07-planificacion.html b/libreplan-webapp/src/main/webapp/help/de/07-planificacion.html new file mode 100644 index 000000000..7b8954f83 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/07-planificacion.html @@ -0,0 +1,117 @@ + + + + + + +Task Planning + + + +
+

Task Planning

+ + +
+

Task Planning

+

Planning in TASKPM is a process that has been described throughout the user guide, with the chapters on orders and resource assignment being particularly important. This chapter describes the basic planning procedures after the order and Gantt charts have been properly configured.

+
+images/planning-view.png +

Work Planning View

+
+

As with the company overview, the project planning view is divided into several views based on the information being analyzed. The views available for a specific project are:

+
    +
  • Planning View
  • +
  • Resource Load View
  • +
  • Order List View
  • +
  • Advanced Assignment View
  • +
+
+

Planning View

+

The Planning View combines three different perspectives:

+
    +
  • Project Planning: Project planning is displayed in the upper right-hand part of the program as a Gantt chart. This view allows users to temporarily move tasks, assign dependencies between them, define milestones, and establish restrictions.
  • +
  • Resource Load: The Resource Load view, located in the lower right-hand part of the screen, shows resource availability based on assignments, as opposed to the assignments made to tasks. The information displayed in this view is as follows:
      +
    • Purple Area: Indicates a resource load below 100% of its capacity.
    • +
    • Green Area: Indicates a resource load below 100%, resulting from the resource being planned for another project.
    • +
    • Orange Area: Indicates a resource load over 100% as a result of the current project.
    • +
    • Yellow Area: Indicates a resource load over 100% as a result of other projects.
    • +
    +
  • +
  • Graph View and Earned Value Indicators: These can be viewed from the "Earned Value" tab. The generated graph is based on the earned value technique, and the indicators are calculated for each workday of the project. The calculated indicators are:
      +
    • BCWS (Budgeted Cost of Work Scheduled): The cumulative time function for the number of hours planned up to a certain date. It will be 0 at the planned start of the task and equal to the total number of planned hours at the end. As with all cumulative graphs, it will always increase. The function for a task will be the sum of the daily assignments until the calculation date. This function has values for all times, provided that resources have been assigned.
    • +
    • ACWP (Actual Cost of Work Performed): The cumulative time function for the hours reported in work reports up to a certain date. This function will only have a value of 0 before the date of the task's first work report, and its value will continue to increase as time passes and work report hours are added. It will have no value after the date of the last work report.
    • +
    • BCWP (Budgeted Cost of Work Performed): The cumulative time function that includes the resultant value of multiplying task progress by the amount of work that the task was estimated to require for completion. This function's values increase as time passes, as do progress values. Progress is multiplied by the total number of estimated hours for all tasks. The BCWP value is the sum of the values for the tasks being calculated. Progress is totaled when it is configured.
    • +
    • CV (Cost Variance): CV = BCWP - ACWP
    • +
    • SV (Schedule Variance): SV = BCWP - BCWS
    • +
    • BAC (Budget at Completion): BAC = max (BCWS)
    • +
    • EAC (Estimate at Completion): EAC = (ACWP / BCWP) * BAC
    • +
    • VAC (Variance at Completion): VAC = BAC - EAC
    • +
    • ETC (Estimate to Complete): ETC = EAC - ACWP
    • +
    • CPI (Cost Performance Index): CPI = BCWP / ACWP
    • +
    • SPI (Schedule Performance Index): SPI = BCWP / BCWS
    • +
    +
  • +
+

In the project planning view, users can perform the following actions:

+
    +
  • Assigning Dependencies: Right-click a task, choose "Add dependency," and drag the mouse pointer to the task to which the dependency should be assigned.
      +
    • To change the type of dependency, right-click the dependency and choose the desired type.
    • +
    +
  • +
  • Creating a New Milestone: Click the task before which the milestone is to be added and select the "Add milestone" option. Milestones can be moved by selecting the milestone with the mouse pointer and dragging it to the desired position.
  • +
  • Moving Tasks without Disturbing Dependencies: Right-click the body of the task and drag it to the desired position. If no restrictions or dependencies are violated, the system will update the daily assignment of resources to the task and place the task on the selected date.
  • +
  • Assigning Restrictions: Click the task in question and select the "Task properties" option. A pop-up window will appear with a "Restrictions" field that can be modified. Restrictions can conflict with dependencies, which is why each order specifies whether dependencies take priority over restrictions. The restrictions that can be established are:
      +
    • As Soon as Possible: Indicates that the task must start as soon as possible.
    • +
    • Not Before: Indicates that the task must not start before a certain date.
    • +
    • Start on a Specific Date: Indicates that the task must start on a specific date.
    • +
    +
  • +
+

The planning view also offers several procedures that function as viewing options:

+
    +
  • Zoom Level: Users can choose the desired zoom level. There are several zoom levels: annual, four-monthly, monthly, weekly, and daily.
  • +
  • Search Filters: Users can filter tasks based on labels or criteria.
  • +
  • Critical Path: As a result of using the Dijkstra algorithm to calculate paths on graphs, the critical path was implemented. It can be viewed by clicking the "Critical path" button in the viewing options.
  • +
  • Show Labels: Enables users to view the labels assigned to tasks in a project, which can be viewed on screen or printed.
  • +
  • Show Resources: Enables users to view the resources assigned to tasks in a project, which can be viewed on screen or printed.
  • +
  • Print: Enables users to print the Gantt chart being viewed.
  • +
+
+
+

Resource Load View

+

The Resource Load View provides a list of resources that contains a list of tasks or criteria that generate workloads. Each task or criterion is shown as a Gantt chart so that the start and end dates of the load can be seen. A different color is shown depending on whether the resource has a load that is higher or lower than 100%:

+
    +
  • Green: Load lower than 100%
  • +
  • Orange: 100% load
  • +
  • Red: Load over 100%
  • +
+
+images/resource-load.png +

Resource Load View for a Specific Order

+
+

If the mouse pointer is placed on the resource's Gantt chart, the load percentage for the worker will be shown.

+
+
+

Order List View

+

The Order List View allows users to access the order editing and deleting options. See the "Orders" chapter for more information.

+
+
+

Advanced Assignment View

+

The Advanced Assignment View is explained in depth in the "Resource Assignment" chapter.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/de/08-asignacion.html b/libreplan-webapp/src/main/webapp/help/de/08-asignacion.html new file mode 100644 index 000000000..46da7239c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/08-asignacion.html @@ -0,0 +1,179 @@ + + + + + + +Resource Assignment + + + +
+

Resource Assignment

+ + +

Resource assignment is one of the program's most important features and can be carried out in two different ways:

+
    +
  • Specific assignment
  • +
  • Generic assignment
  • +
+

Both types of assignment are explained in the following sections.

+

To perform either type of resource assignment, the following steps are necessary:

+
    +
  • Go to the planning view of an order.
  • +
  • Right-click on the task to be planned.
  • +
+
+images/resource-assignment-planning.png +

Resource Assignment Menu

+
+
    +
  • The program displays a screen with the following information:
      +
    • List of Criteria to be Fulfilled: For each hour group, a list of required criteria is shown.
    • +
    • Task Information: The start and end dates of the task.
    • +
    • Type of Calculation: The system allows users to choose the strategy for calculating assignments:
        +
      • Calculate Number of Hours: This calculates the number of hours required from the assigned resources, given an end date and a number of resources per day.
      • +
      • Calculate End Date: This calculates the end date of the task based on the number of resources assigned to the task and the total number of hours required to complete the task.
      • +
      • Calculate Number of Resources: This calculates the number of resources required to finish the task by a specific date, given a known number of hours per resource.
      • +
      +
    • +
    • Recommended Assignment: This option allows the program to gather the criteria to be fulfilled and the total number of hours from all hour groups, and then recommend a generic assignment. If a prior assignment exists, the system deletes it and replaces it with the new one.
    • +
    • Assignments: A list of assignments that have been made. This list shows the generic assignments (the number will be the list of fulfilled criteria, and the number of hours and resources per day). Each assignment can be explicitly removed by clicking the delete button.
    • +
    +
  • +
+
+images/resource-assignment.png +

Resource Assignment

+
+
    +
  • Users select "Search resources."
  • +
  • The program displays a new screen consisting of a criteria tree and a list of workers who fulfill the selected criteria on the right:
  • +
+
+images/resource-assignment-search.png +

Resource Assignment Search

+
+
    +
  • Users can select:
      +
    • Specific Assignment: See the "Specific Assignment" section for details on this option.
    • +
    • Generic Assignment: See the "Generic Assignment" section for details on this option.
    • +
    +
  • +
  • Users select a list of criteria (generic) or a list of workers (specific). Multiple selections can be made by pressing the "Ctrl" key while clicking each worker/criterion.
  • +
  • Users then click the "Select" button. It's important to remember that if a generic assignment is not selected, users must choose a worker or machine to perform the assignment. If a generic assignment is selected, it is sufficient for users to choose one or more criteria.
  • +
  • The program then displays the selected criteria or resource list in the list of assignments on the original resource assignment screen.
  • +
  • Users must choose the hours or resources per day, depending on the assignment method used in the program.
  • +
+
+

Specific Assignment

+

This is the specific assignment of a resource to a project task. In other words, the user decides which specific worker (by name and surname) or machine must be assigned to a task.

+

Specific assignment can be carried out on the screen shown in this image:

+
+images/asignacion-especifica.png +

Specific Resource Assignment

+
+

When a resource is specifically assigned, the program creates daily assignments based on the percentage of daily assigned resources selected, after comparing it with the available resource calendar. For example, an assignment of 0.5 resources for a 32-hour task means that 4 hours per day are assigned to the specific resource to complete the task (assuming a working calendar of 8 hours per day).

+
+

Specific Machine Assignment

+

Specific machine assignment functions in the same way as worker assignment. When a machine is assigned to a task, the system stores a specific assignment of hours for the chosen machine. The main difference is that the system searches the list of assigned workers or criteria at the moment the machine is assigned:

+
    +
  • If the machine has a list of assigned workers, the program chooses from those that are required by the machine, based on the assigned calendar. For example, if the machine calendar is 16 hours per day and the resource calendar is 8 hours, two resources are assigned from the list of available resources.
  • +
  • If the machine has one or more assigned criteria, generic assignments are made from among the resources that fulfill the criteria assigned to the machine.
  • +
+
+
+
+

Generic Assignment

+

Generic assignment occurs when users do not choose resources specifically but leave the decision to the program, which distributes the loads among the company's available resources.

+
+images/asignacion-xenerica.png +

Generic Resource Assignment

+
+

The assignment system uses the following assumptions as a basis:

+
    +
  • Tasks have criteria that are required from resources.
  • +
  • Resources are configured to fulfill criteria.
  • +
+

However, the system does not fail when criteria have not been assigned, but when all resources fulfill the non-requirement of criteria.

+

The generic assignment algorithm functions as follows:

+
    +
  • All resources and days are treated as containers where daily assignments of hours fit, based on the maximum assignment capacity in the task calendar.
  • +
  • The system searches for the resources that fulfill the criterion.
  • +
  • The system analyzes which assignments currently have different resources that fulfill criteria.
  • +
  • The resources that fulfill the criteria are chosen from those that have sufficient availability.
  • +
  • If freer resources are not available, assignments are made to the resources that have less availability.
  • +
  • Over-assignment of resources only begins when all the resources that fulfill the respective criteria are 100% assigned, until the total amount required to carry out the task is attained.
  • +
+
+

Generic Machine Assignment

+

Generic machine assignment functions in the same way as worker assignment. For example, when a machine is assigned to a task, the system stores a generic assignment of hours for all machines that fulfill the criteria, as described for resources in general. However, in addition, the system performs the following procedure for machines:

+
    +
  • For all machines chosen for generic assignment:
      +
    • It collects the machine's configuration information: alpha value, assigned workers, and criteria.
    • +
    • If the machine has an assigned list of workers, the program chooses the number required by the machine, depending on the assigned calendar. For example, if the machine calendar is 16 hours per day and the resource calendar is 8 hours, the program assigns two resources from the list of available resources.
    • +
    • If the machine has one or more assigned criteria, the program makes generic assignments from among the resources that fulfill the criteria assigned to the machine.
    • +
    +
  • +
+
+
+
+

Advanced Assignment

+

Advanced assignments allow users to design assignments that are automatically carried out by the application to personalize them. This procedure allows users to manually choose the daily hours that are dedicated by resources to assigned tasks or define a function that is applied to the assignment.

+

The steps to follow to manage advanced assignments are:

+
    +
  • Go to the advanced assignment window. There are two ways to access advanced assignments:
      +
    • Go to a specific order and change the view to advanced assignment. In this case, all the tasks on the order and assigned resources (specific and generic) will be shown.
    • +
    • Go to the resource assignment window by clicking the "Advanced assignment" button. In this case, the assignments that show the resources (generic and specific) assigned to a task will be shown.
    • +
    +
  • +
+
+images/advance-assignment.png +

Advanced Resource Assignment

+
+
    +
  • Users can choose the desired zoom level:
      +
    • Zoom Levels Greater Than One Day: If users change the assigned hour value to a week, month, four-month, or six-month period, the system distributes the hours linearly across all days throughout the chosen period.
    • +
    • Daily Zoom: If users change the assigned hour value to a day, these hours only apply to that day. Consequently, users can decide how many hours they want to assign per day to task resources.
    • +
    +
  • +
  • Users can choose to design an advanced assignment function. To do so, users must:
      +
    • Choose the function from the selection list that appears next to each resource and click "Configure."
    • +
    • The system displays a new window if the chosen function needs to be specifically configured. Supported functions:
        +
      • Segments: A function that allows users to define segments to which a polynomial function is applied. The function per segment is configured as follows:
          +
        • Date: The date on which the segment ends. If the following value (length) is established, the date is calculated; alternatively, length is calculated.
        • +
        • Defining the Length of Each Segment: This indicates what percentage of the task's duration is required for the segment.
        • +
        • Defining the Amount of Work: This indicates what workload percentage is expected to be completed in this segment. The quantity of work must be incremental. For example, if there is a 10% segment, the next one must be larger (for example, 20%).
        • +
        • Segment Graphs and Accumulated Loads.
        • +
        +
      • +
      +
    • +
    • Users then click "Accept."
    • +
    • The program stores the function and applies it to the daily resource assignments.
    • +
    +
  • +
+
+images/stretches.png +

Configuration of the Segment Function

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/de/09-partes.html b/libreplan-webapp/src/main/webapp/help/de/09-partes.html new file mode 100644 index 000000000..90242b6c7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/09-partes.html @@ -0,0 +1,84 @@ + + + + + + +Work Reports + + + +
+

Work Reports

+ + +

Work reports enable the monitoring of the hours that resources dedicate to the tasks to which they are assigned.

+

The program allows users to configure new forms for entering dedicated hours, specifying the fields that they want to appear in these forms. This allows for the incorporation of reports from tasks carried out by workers and the monitoring of worker activity.

+

Before users can add entries for resources, they must define at least one work report type. This type defines the structure of the report, including all the rows that are added to it. Users can create as many work report types as necessary within the system.

+
+

Work Report Types

+

A work report consists of a series of fields that are common to the entire report and a set of work report lines with specific values for the fields defined in each row. For example, resources and tasks are common to all reports. However, there can be other new fields, such as "incidents," which are not required in all report types.

+

Users can configure different work report types so that a company can design its reports to meet its specific needs:

+
+images/work-report-types.png +

Work Report Types

+
+

The administration of work report types allows users to configure these types and add new text fields or optional tags. In the first tab for editing work report types, it is possible to configure the type for the mandatory attributes (whether they apply to the whole report or are specified at the line level) and add new optional fields.

+

The mandatory fields that must appear in all work reports are as follows:

+
    +
  • Name and Code: Identification fields for the name of the work report type and its code.
  • +
  • Date: Field for the date of the report.
  • +
  • Resource: Worker or machine appearing on the report or work report line.
  • +
  • Order Element: Code for the order element to which the performed work is attributed.
  • +
  • Hour Management: Determines the hour attribution policy to be used, which can be:
      +
    • According to Assigned Hours: Hours are attributed based on the assigned hours.
    • +
    • According to Start and Finish Times: Hours are calculated based on the start and finish times.
    • +
    • According to the Number of Hours and Start and Finish Range: Discrepancies are allowed, and the number of hours takes priority.
    • +
    +
  • +
+

Users can add new fields to the reports:

+
    +
  • Tag Type: Users can request the system to display a tag when completing the work report. For example, the client tag type, if the user wishes to enter the client for whom the work was carried out in each report.
  • +
  • Free Fields: Fields where text can be entered freely in the work report.
  • +
+
+images/work-report-type.png +

Creating a Work Report Type with Personalized Fields

+
+

Users can configure date, resource, and order element fields to appear in the header of the report, which means they apply to the entire report, or they can be added to each of the rows.

+

Finally, new additional text fields or tags can be added to the existing ones, in the work report header or in each line, by using the "Additional text" and "Tag type" fields, respectively. Users can configure the order in which these elements are to be entered in the "Management of additional fields and tags" tab.

+
+
+

Work Report List

+

Once the format of the reports to be incorporated into the system has been configured, users can enter the details in the created form according to the structure defined in the corresponding work report type. To do this, users need to follow these steps:

+
    +
  • Click the "New work report" button associated with the desired report from the list of work report types.
  • +
  • The program then displays the report based on the configurations given for the type. See the following image.
  • +
+
+images/work-report-type.png +

Structure of the Work Report Based on Type

+
+
    +
  • Select all the fields shown for the report:
      +
    • Resource: If the header has been chosen, the resource is only shown once. Alternatively, for each line of the report, it is necessary to choose a resource.
    • +
    • Task Code: Code of the task to which the work report is being assigned. Similar to the rest of the fields, if the field is in the header, the value is entered once or as many times as necessary on the lines of the report.
    • +
    • Date: Date of the report or each line, depending on whether the header or line is configured.
    • +
    • Number of Hours: The number of work hours in the project.
    • +
    • Start and Finish Times: Start and finish times for the work in order to calculate definitive work hours. This field only appears in the case of the hour assignment policies, "According to Start and Finish Times" and "According to the Number of Hours and Start and Finish Range."
    • +
    • Type of Hours: Enables users to choose the type of hour, e.g., "Normal," "Extraordinary," etc.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/de/10-etiquetas.html b/libreplan-webapp/src/main/webapp/help/de/10-etiquetas.html new file mode 100644 index 000000000..eb6451798 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/10-etiquetas.html @@ -0,0 +1,68 @@ + + + + + + +Labels + + + +
+

Labels

+ +
+

Contents

+ +
+

Labels are entities used in the program to conceptually organize tasks or order elements.

+

Labels are categorized according to label type. A label can only belong to one label type; however, users can create many similar labels belonging to different label types.

+
+

Label Types

+

Label types are used to group the types of labels that users want to manage in the program. Here are some examples of possible label types:

+
    +
  • Client: Users may be interested in labeling tasks, orders, or order elements in relation to the client who requests them.
  • +
  • Area: Users may be interested in labeling tasks, orders, or order elements in relation to the areas in which they are carried out.
  • +
+

The administration of label types is managed from the "Administration" menu option. This is where users can edit label types, create new label types, and add labels to label types. Users can access the list of labels from this option.

+
+images/tag-types-list.png +

List of Label Types

+
+

From the list of label types, users can:

+
    +
  • Create a new label type.
  • +
  • Edit an existing label type.
  • +
  • Delete a label type with all of its labels.
  • +
+

Editing and creating labels share the same form. From this form, the user can assign a name to the label type, create or delete labels, and store the changes. The procedure is as follows:

+
    +
  • Select a label to edit or click the create button for a new one.
  • +
  • The system displays a form with a text entry for the name and a list of text entries with existing and assigned labels.
  • +
  • If users wish to add a new label, they must click the "New label" button.
  • +
  • The system displays a new row on the list with an empty text box that users must edit.
  • +
  • Users enter a name for the label.
  • +
  • The system adds the name to the list.
  • +
  • Users click "Save" or "Save and continue" to continue editing the form.
  • +
+
+images/tag-types-edition.png +

Editing Label Types

+
+
+
+

Labels

+

Labels are entities that belong to a label type. These entities can be assigned to order elements. Assigning a label to an order element means that all the elements descending from this element will inherit the label to which they belong. Having an assigned label means that these entities can be filtered where searches can be carried out:

+
    +
  • Search for tasks in the Gantt chart.
  • +
  • Search for order elements in the list of order elements.
  • +
  • Filters for reports.
  • +
+

The assignment of labels to order elements is covered in the chapter on orders.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/de/11-materiales.html b/libreplan-webapp/src/main/webapp/help/de/11-materiales.html new file mode 100644 index 000000000..a06770897 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/11-materiales.html @@ -0,0 +1,54 @@ + + + + + + +Materials Management + + + +
+

Materials Management

+ +
+

Contents

+ +
+
+

Administration of Materials

+

Users can manage a basic database of materials, organized by categories.

+

Categories are containers to which specific materials and other categories can be assigned. They are stored in a hierarchical tree structure, as materials can belong to leaf categories or intermediary categories.

+

To manage categories, users must follow these steps:

+
    +
  • Go to the "Administration -> Materials" option.
  • +
  • The program displays a tree of categories.
  • +
  • Enter a category name in the text box and then click "Add."
  • +
  • The program adds the category to the tree.
  • +
+

To insert a category into the category tree, users must first select the parent category in the tree and then click "Add."

+
+images/material.png +

Material Administration Screen

+
+

To manage materials, users must follow these steps:

+
    +
  • Select the category to which materials are to be added and click "Add" to the right of "Materials."
  • +
  • The program adds a new empty row with fields to enter details about the material:
      +
    • Code: Material type code (this can be the external code from an ERP).
    • +
    • Description: Description of the material.
    • +
    • Unit Price: Unit price of each piece of material.
    • +
    • Unit: Unit used to measure each unit of material.
    • +
    • Category: Category to which the material belongs.
    • +
    • Availability: Indicates whether or not the material is active.
    • +
    +
  • +
  • Users complete the fields and click "Save."
  • +
+

The assignment of materials to order elements is explained in the chapter on "Orders."

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/de/12-formularios-calidad.html b/libreplan-webapp/src/main/webapp/help/de/12-formularios-calidad.html new file mode 100644 index 000000000..97a584178 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/12-formularios-calidad.html @@ -0,0 +1,52 @@ + + + + + + +Quality Forms + + + +
+

Quality Forms

+ + +
+

Administration of Quality Forms

+

Quality forms consist of a list of questions or statements that indicate the tasks or processes that should have been completed before a task can be marked as complete by the company. These forms include the following fields:

+
    +
  • Name: The name of the quality form.
  • +
  • Description: A description of the quality form.
  • +
  • Type of Quality Form: The type can have two values:
      +
    • Percentage: Indicates that the questions must be answered in a logical order, and affirmative answers indicate that the task is progressing. For example, a basic process for a task might suggest that the task is 15% complete. Users must answer a question before proceeding to the next one.
    • +
    • Item: Indicates that the questions do not need to be answered in a logical order and can be answered in any sequence.
    • +
    +
  • +
+

Users must follow these steps to manage quality forms:

+
    +
  • From the "Administration" menu, access the "Quality forms" option.
  • +
  • Click "Edit" on an existing form or click "Create" to create a new one.
  • +
  • The program displays a form with fields for the name, description, and type.
  • +
  • Select the type.
  • +
  • The program displays the fields that are allowed for each type:
      +
    • Percentage: Question and percentage.
    • +
    • Item: Question.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+images/quality.png +

Quality Form Administration Screen

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/de/13-usuarios.html b/libreplan-webapp/src/main/webapp/help/de/13-usuarios.html new file mode 100644 index 000000000..f46a23ded --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/13-usuarios.html @@ -0,0 +1,79 @@ + + + + + + +User Management + + + +
+

User Management

+ +
+

Contents

+ +
+
+

Managing Users

+

TASKPM's system allows administrators to manage user profiles, authorizations, and users. Users are assigned to user profiles, which can have a series of predefined roles that grant access to the program's features. Roles are defined authorizations within TASKPM. Examples of roles include:

+
    +
  • Administration: A role that must be assigned to administrators to enable them to perform administrative operations.
  • +
  • Web Service Reader: A role required for users to consult the program's web services.
  • +
  • Web Service Writer: A role required for users to write data via the program's web services.
  • +
+

Roles are predefined within the system. A user profile consists of one or more roles. Users must have specific roles to perform certain operations.

+

Users can be assigned one or more profiles, or one or more roles directly, allowing for specific or generic authorization to be granted.

+

To manage users, follow these steps:

+
    +
  • Go to "Manage users" in the "Administration" menu.
  • +
  • The program displays a form with a list of users.
  • +
  • Click the edit button for the desired user or click the "Create" button.
  • +
  • A form will appear with the following fields:
      +
    • User Name: The user's login name.
    • +
    • Password: The user's password.
    • +
    • Authorized/Unauthorized: A setting to enable or disable the user's account.
    • +
    • Email: The user's email address.
    • +
    • List of Associated Roles: To add a new role, users must search for a role in the selection list and click "Assign."
    • +
    • List of Associated Profiles: To add a new profile, users must search for a profile in the selection list and click "Assign."
    • +
    +
  • +
+
+images/manage-user.png +

Managing Users

+
+
    +
  • Click "Save" or "Save and continue."
  • +
+
+

Managing Profiles

+

To manage the program's profiles, users must follow these steps:

+
    +
  • Go to "Manage user profiles" in the "Administration" menu.
  • +
  • The program displays a list of profiles.
  • +
  • Click the edit button for the desired profile or click "Create."
  • +
  • A form appears in the program with the following fields:
      +
    • Name: The name of the user profile.
    • +
    • List of Roles (Authorizations): To add a role to the profile, users must select a role from the role list and click "Add."
    • +
    +
  • +
+
+images/manage-user-profile.png +

Managing User Profiles

+
+
    +
  • Click "Save" or "Save and continue," and the system will store the created or modified profile.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/de/14-custos.html b/libreplan-webapp/src/main/webapp/help/de/14-custos.html new file mode 100644 index 000000000..5c35ce71d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/14-custos.html @@ -0,0 +1,110 @@ + + + + + + +Cost management + + + +
+

Cost management

+ +
+

Contents

+ +
+
+

Costs

+

Cost management allows users to estimate the costs of resources used in a project. To manage costs, the following entities must be defined:

+
    +
  • Hour Types: These indicate the types of hours worked by a resource. Users can define hour types for both machines and workers. Examples of hour types include: "Additional hours paid at €20 per hour." The following fields can be defined for hour types:
      +
    • Code: External code for the hour type.
    • +
    • Name: Name of the hour type. For example, "Additional."
    • +
    • Default Rate: Basic default rate for the hour type.
    • +
    • Activation: Indicates whether the hour type is active or not.
    • +
    +
  • +
  • Cost Categories: Cost categories define the costs associated with different hour types during specific periods (which may be indefinite). For example, the cost of additional hours for first-grade skilled workers in the following year is €24 per hour. Cost categories include:
      +
    • Name: Cost category name.
    • +
    • Activation: Indicates whether the category is active or not.
    • +
    • List of Hour Types: This list defines the hour types included in the cost category. It specifies the periods and rates for each hour type. For example, as rates change, each year can be included on this list as an hour type period, with a specific hourly rate for each hour type (which may differ from the default hourly rate for that hour type).
    • +
    +
  • +
+
+

Managing Hour Types

+

Users must follow these steps to register hour types:

+
    +
  • Select "Manage hour types worked" on the "Administration" menu.
  • +
  • The program displays a list of existing hour types.
  • +
+
+images/hour-type-list.png +

Hour Type List

+
+
    +
  • Click "Edit" or "Create."
  • +
  • The program displays an hour type editing form.
  • +
+
+images/hour-type-edit.png +

Editing Hour Types

+
+
    +
  • Users can enter or change:
      +
    • The hour type name.
    • +
    • The hour type code.
    • +
    • The default rate.
    • +
    • Hour type activation/deactivation.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+

Cost Categories

+

Users must follow these steps to register cost categories:

+
    +
  • Select "Manage cost categories" on the "Administration" menu.
  • +
  • The program displays a list of existing categories.
  • +
+
+images/category-cost-list.png +

Cost Category List

+
+
    +
  • Click the "Edit" or "Create" button.
  • +
  • The program displays a cost category editing form.
  • +
+
+images/category-cost-edit.png +

Editing Cost Categories

+
+
    +
  • Users enter or change:
      +
    • The name of the cost category.
    • +
    • The activation/deactivation of the cost category.
    • +
    • The list of hour types included in the category. All hour types have the following fields:
        +
      • Hour Type: Choose one of the existing hour types in the system. If none exist, an hour type must be created (this process is explained in the previous subsection).
      • +
      • Start and Finish Date: The start and finish dates (the latter is optional) for the period that applies to the cost category.
      • +
      • Hourly Rate: The hourly rate for this specific category.
      • +
      +
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+

The assignment of cost categories to resources is described in the chapter on resources. Go to the "Resources" section.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/de/15-1-report-hours-worked-by-resource.html b/libreplan-webapp/src/main/webapp/help/de/15-1-report-hours-worked-by-resource.html new file mode 100644 index 000000000..f97f118aa --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/15-1-report-hours-worked-by-resource.html @@ -0,0 +1,101 @@ + + + + + + +Hours Worked by Resource Report + + + +
+

Hours Worked by Resource Report

+ + +
+

Purpose

+

This report extracts a list of tasks and the time resources have dedicated to them within a specified period. Several filters allow users to refine the query to obtain only the desired information and exclude extraneous data.

+
+
+

Input Parameters and Filters

+
    +
  • +
    Dates.
    +
      +
    • Type: Optional.
    • +
    • +
      Two date fields:
      +
        +
      • Start Date: This is the earliest date for work reports to be included. Work reports with dates earlier than the Start Date are excluded. If this parameter is left blank, work reports are not filtered by Start Date.
      • +
      • End Date: This is the latest date for work reports to be included. Work reports with dates later than the End Date are excluded. If this parameter is left blank, work reports are not filtered by End Date.
      • +
      +
      +
      +
    • +
    +
    +
    +
  • +
  • Filter by Workers: +* Type: Optional. +* How it works: You can select one or more workers to restrict the work reports to the time tracked by those specific workers. To add a worker as a filter, search for them in the selector and click the Add button. If this filter is left empty, work reports are retrieved regardless of the worker.
  • +
  • Filter by Labels: +* Type: Optional. +* How it works: You can add one or more labels to use as filters by searching for them in the selector and clicking the Add button. These labels are used to select the tasks to be included in the results when calculating the hours dedicated to them. This filter can be applied to timesheets, tasks, both, or neither.
  • +
  • Filter by Criteria: +* Type: Optional. +* How it works: You can select one or more criteria by searching for them in the selector and then clicking the Add button. These criteria are used to select the resources that satisfy at least one of them. The report will show all the time dedicated by the resources that meet one of the selected criteria.
  • +
+
+
+

Output

+
+

Heading

+

The report heading displays the filters that were configured and applied to the current report.

+
+ +
+

Body

+

The report body consists of several groups of information.

+
    +
  • The first level of aggregation is by resource. All the time dedicated by a resource is shown together below the header. Each resource is identified by:

    +
      +
    • Worker: Surname, First Name.
    • +
    • Machine: Name.
    • +
    +

    A summary line shows the total number of hours worked by the resource.

    +
  • +
  • The second level of grouping is by date. All the reports from a specific resource on the same date are shown together.

    +

    A summary line shows the total number of hours worked by the resource on that date.

    +
  • +
  • The final level lists the work reports for the worker on that day. The information displayed for each work report line is:

    +
      +
    • Task Code: The code of the task to which the tracked hours are attributed.
    • +
    • Task Name: The name of the task to which the tracked hours are attributed.
    • +
    • Starting Time: This is optional. It is the time at which the resource began working on the task.
    • +
    • Ending Time: This is optional. It is the time at which the resource finished working on the task on the specified date.
    • +
    • Text Fields: This is optional. If the work report line has text fields, the filled values are shown here. The format is: <Name of the text field>:<Value>
    • +
    • Labels: This depends on whether the work report model has a label field in its definition. If there are multiple labels, they are shown in the same column. The format is: <Name of the label type>:<Value of the label>
    • +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/de/15-2-total-hours-by-resource-month.html b/libreplan-webapp/src/main/webapp/help/de/15-2-total-hours-by-resource-month.html new file mode 100644 index 000000000..246cfc9c1 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/15-2-total-hours-by-resource-month.html @@ -0,0 +1,67 @@ + + + + + + +Total Hours Worked by Resource in a Month Report + + + +
+

Total Hours Worked by Resource in a Month Report

+ + +
+

Purpose

+

This report provides the total number of hours worked by each resource in a given month. This information can be useful for determining worker overtime or, depending on the organization, the number of hours for which each resource should be compensated.

+

The application tracks work reports for both workers and machines. For machines, the report sums up the number of hours they were in operation during the month.

+
+
+

Input Parameters and Filters

+

To generate this report, users must specify the year and month for which they want to retrieve the total number of hours worked by each resource.

+
+
+

Output

+

The output format is as follows:

+ + +
+

Body

+

The data section of the report consists of a single table with two columns:

+
+
    +
  • One column labeled Name for the name of the resource.
  • +
  • One column labeled Hours with the total number of hours worked by the resource in that row.
  • +
+
+

There is a final row that aggregates the total number of hours worked by all resources during the specified month and year.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/de/15-3-work-progress-per-project.html b/libreplan-webapp/src/main/webapp/help/de/15-3-work-progress-per-project.html new file mode 100644 index 000000000..e2f5053a9 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/15-3-work-progress-per-project.html @@ -0,0 +1,125 @@ + + + + + + +Work and Progress per Project Report + + + +
+

Work and Progress per Project Report

+ + +
+

Purpose

+

This report provides an overview of the status of projects, considering both progress and cost.

+

It analyzes the current progress of each project, comparing it with the planned progress and the work completed.

+

The report also displays several ratios related to project cost, comparing current performance with the planned performance.

+
+
+

Input Parameters and Filters

+

There are several mandatory parameters:

+
+
    +
  • Reference Date: This is the date used as a reference point for comparing the planned status of the project with its actual performance. The default value for this field is the current date.
  • +
  • Progress Type: This is the progress type used to measure project progress. The application allows a project to be measured simultaneously with different progress types. The type selected by the user in the dropdown menu is used for calculating the report data. The default value for the progress type is spread, which is a special progress type that uses the preferred method of measuring progress configured for each WBS element.
  • +
+
+

The optional parameters are:

+
+
    +
  • Starting Date: This is the earliest start date for projects to be included in the report. If this field is left blank, there is no minimum start date for the projects.
  • +
  • Ending Date: This is the latest end date for projects to be included in the report. All projects that finish after the Ending Date will be excluded.
  • +
  • Filter by Projects: This filter allows users to select the specific projects to be included in the report. If no projects are added to the filter, the report will include all projects in the database. A searchable dropdown menu is provided to find the desired project. Projects are added to the filter by clicking the Add button.
  • +
+
+
+
+

Output

+

The output format is as follows:

+
+

Heading

+

The report header displays the following fields:

+
+
    +
  • Starting Date: The filtering start date. This is not displayed if the report is not filtered by this field.
  • +
  • Ending Date: The filtering end date. This is not displayed if the report is not filtered by this field.
  • +
  • Progress Type: The progress type used for the report.
  • +
  • Projects: This indicates the filtered projects for which the report is generated. It will show the string All when the report includes all projects that satisfy the other filters.
  • +
  • Reference Date: The mandatory input reference date selected for the report.
  • +
+
+
+ +
+

Body

+

The body of the report consists of a list of projects selected based on the input filters.

+

Filters work by adding conditions, except for the set formed by the date filters (Starting Date, Ending Date) and the Filter by Projects. In this case, if one or both date filters are filled and the Filter by Projects has a list of selected projects, the latter filter takes precedence. This means that the projects included in the report are those provided by the Filter by Projects, regardless of the date filters.

+

It's important to note that progress in the report is calculated as a fraction of unity, ranging between 0 and 1.

+

For each project selected for inclusion in the report output, the following information is displayed:

+
+
    +
  • Project Name.
  • +
  • +
    Total Hours. The total hours for the project are shown by adding the hours for each task. Two types of total hours are shown:
    +
      +
    • Estimated (TE). This is the sum of all the estimated hours in the project's WBS. It represents the total number of hours estimated to complete the project.
    • +
    • Planned (TP). In TASKPM, it's possible to have two different quantities: the estimated number of hours for a task (the number of hours initially estimated to complete the task) and the planned hours (the hours allocated in the plan to complete the task). The planned hours can be equal to, less than, or greater than the estimated hours and are determined in a later phase, the assignment operation. Therefore, the total planned hours for a project are the sum of all the allocated hours for its tasks.
    • +
    +
    +
    +
  • +
  • +
    Progress. Three measurements related to the overall progress of the type specified in the progress input filter for each project at the reference date are shown:
    +
      +
    • Measured (PM). This is the overall progress considering the progress measurements with a date earlier than the Reference Date in the input parameters of the report. All tasks are taken into account, and the sum is weighted by the number of hours for each task.
    • +
    • Imputed (PI). This is the progress assuming that work continues at the same pace as the hours completed for a task. If X hours out of Y hours for a task are completed, the overall imputed progress is considered to be X/Y.
    • +
    • Planned (PP). This is the overall progress of the project according to the planned schedule at the reference date. If everything happened exactly as planned, the measured progress should be the same as the planned progress.
    • +
    +
    +
    +
  • +
  • +
    Hours up to Date. There are two fields that show the number of hours up to the reference date from two perspectives:
    +
      +
    • Planned (HP). This number is the sum of the hours allocated to any task in the project with a date less than or equal to the Reference Date.
    • +
    • Actual (HR). This number is the sum of the hours reported in the work reports for any of the tasks in the project with a date less than or equal to the Reference Date.
    • +
    +
    +
    +
  • +
  • +
    Difference. Under this heading, there are several metrics related to cost:
    +
      +
    • Cost. This is the difference in hours between the number of hours spent, considering the measured progress, and the hours completed up to the reference date. The formula is: PM*TP - HR.
    • +
    • Planned. This is the difference between the hours spent according to the overall measured project progress and the number planned up to the Reference Date. It measures the advantage or delay in time. The formula is: PM*TP - HP.
    • +
    • Cost Ratio. This is calculated by dividing PM / PI. If it is greater than 1, it means that the project is profitable at this point. If it is less than 1, it means that the project is losing money.
    • +
    • Planned Ratio. This is calculated by dividing PM / PP. If it is greater than 1, it means that the project is ahead of schedule. If it is less than 1, it means that the project is behind schedule.
    • +
    +
    +
    +
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/de/15-informes.html b/libreplan-webapp/src/main/webapp/help/de/15-informes.html new file mode 100644 index 000000000..c2c7cafab --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/15-informes.html @@ -0,0 +1,26 @@ + + + + + + +Reports + + + +
+

Reports

+ +

TASKPM integrates with JasperReports to provide report management, enabling users to generate various reports for analyzing the data available in the program.

+

The available reports are:

+ +
+ + diff --git a/libreplan-webapp/src/main/webapp/help/de/16-ldap-authentication.html b/libreplan-webapp/src/main/webapp/help/de/16-ldap-authentication.html new file mode 100644 index 000000000..ad5d4976d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/16-ldap-authentication.html @@ -0,0 +1,251 @@ + + + + + + +LDAP Configuration + + + +
+

LDAP Configuration

+ + +

This screen allows you to establish a connection with LDAP to delegate +authentication and/or authorization.

+

It is divided into four different areas, which are explained below:

+
+

Activation

+

This area is used to set the properties that determine how TASKPM uses +LDAP.

+

If the field Enable LDAP authentication is checked, TASKPM will query +LDAP each time a user attempts to log in to the application.

+

The field Use LDAP roles checked means that a mapping between LDAP roles and +TASKPM roles is established. Consequently, the permissions for a user in +TASKPM will depend on the roles the user has in LDAP.

+
+
+

Configuration

+

This section contains the parameter values for accessing LDAP. Base, UserDN, and +Password are parameters used to connect to LDAP and search for users. Therefore, +the specified user must have permission to perform this operation in LDAP. At the +bottom of this section, there is a button to check if an LDAP connection is +possible with the given parameters. It is advisable to test the connection before +continuing the configuration.

+
+

Note

+

If your LDAP is configured to work with anonymous authentication, you can +leave the UserDN and Password attributes empty.

+
+
+

Tip

+

Regarding Active Directory (AD) configuration, the Base field must be the +exact location where the bound user resides in AD.

+

Example: ou=organizational_unit,dc=example,dc=org

+
+
+
+

Authentication

+

Here, you can configure the property in LDAP nodes where the given username +should be found. The property UserId must be filled with the name of the +property where the username is stored in LDAP.

+

The checkbox Save passwords in database, when checked, means that the +password is also stored in the TASKPM database. In this way, if LDAP is +offline or unreachable, LDAP users can authenticate against the TASKPM +database. If it is not checked, LDAP users can only be authenticated against +LDAP.

+
+
+

Authorization

+

This section allows you to define a strategy for matching LDAP roles with +TASKPM roles. The first choice is the strategy to use, depending on the +LDAP implementation.

+
+

Group Strategy

+

When this strategy is used, it indicates that LDAP has a role-group strategy. +This means that users in LDAP are nodes that are directly under a branch that +represents the group.

+

The next example represents a valid LDAP structure for using the group strategy.

+
    +
  • LDAP structure:

    +
    +dc=example,dc=org
    +|- ou=groups
    +   |- cn=admins
    +   |- cn=itpeople
    +   |- cn=workers
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

In this case, each group will have an attribute, for example, called member, +with the list of users belonging to the group:

+
    +
  • cn=admins:
      +
    • member: uid=admin1,ou=people,dc=example,dc=org
    • +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=itpeople:
      +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    • member: uid=it2,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=workers:
      +
    • member: uid=worker1,ou=people,dc=example,dc=org
    • +
    • member: uid=worker2,ou=people,dc=example,dc=org
    • +
    • member: uid=worker3,ou=people,dc=example,dc=org
    • +
    +
  • +
+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Group strategy
  • +
  • Group path: ou=groups
  • +
  • Role property: member
  • +
  • Role search query: uid=[USER_ID],ou=people,dc=example,dc=org
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: cn=admins;cn=itpeople
  • +
  • Web service reader: cn=itpeople
  • +
  • Web service writer: cn=itpeople
  • +
  • All projects read allowed: cn=admins
  • +
  • All projects edition allowed: cn=admins
  • +
  • Project creation allowed: cn=workers
  • +
+
+
+

Property Strategy

+

When an administrator decides to use this strategy, it indicates that each user +is an LDAP node, and within the node, there exists a property that represents +the group(s) for the user. In this case, the configuration does not require the +Group path parameter.

+

The next example represents a valid LDAP structure for using the property strategy.

+
    +
  • LDAP structure:

    +
    +dc=example,dc=org
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

With Attribute

+

In this case, each user will have an attribute, for example, called group, +with the name of the group to which they belong:

+
    +
  • uid=admin1:
      +
    • group: admins
    • +
    +
  • +
  • uid=it1:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=it2:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=worker1:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker2:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker3:
      +
    • group: workers
    • +
    +
  • +
+
+

Warning

+

This strategy has a restriction: each user can belong to only one group.

+
+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Property strategy
  • +
  • Group path:
  • +
  • Role property: group
  • +
  • Role search query: [USER_ID]
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: admins;itpeople
  • +
  • Web service reader: itpeople
  • +
  • Web service writer: itpeople
  • +
  • All projects read allowed: admins
  • +
  • All projects edition allowed: admins
  • +
  • Project creation allowed: workers
  • +
+

By User Identifier

+

You can even use a workaround to specify TASKPM roles directly to users +without having an attribute in each LDAP user.

+

In this case, you will specify which users have the different TASKPM roles +by uid.

+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Property strategy
  • +
  • Group path:
  • +
  • Role property: uid
  • +
  • Role search query: [USER_ID]
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: admin1;it1
  • +
  • Web service reader: it1;it2
  • +
  • Web service writer: it1;it2
  • +
  • All projects read allowed: admin1
  • +
  • All projects edition allowed: admin1
  • +
  • Project creation allowed: worker1;worker2;worker3
  • +
+
+
+

Role Matching

+

At the bottom of this section, there is a table with all the TASKPM roles +and a text field next to each one. This is for matching roles. For instance, +if an administrator decides that the Administration TASKPM role matches +the admin and administrators roles of LDAP, the text field should contain: +"admin;administrators". The character for splitting roles is ";".

+
+

Note

+

If you want to specify that all users or all groups have one permission, you +can use an asterisk (*) as a wildcard to refer to them. For example, if +you want everyone to have the Project creation allowed role, you will +configure the role matching as follows:

+
    +
  • Project creation allowed: *
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/de/17-1-project-dashboard.html b/libreplan-webapp/src/main/webapp/help/de/17-1-project-dashboard.html new file mode 100644 index 000000000..5dc0899b7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/17-1-project-dashboard.html @@ -0,0 +1,173 @@ + + + + + + +Project Dashboard + + + +
+

Project Dashboard

+ + +

The project dashboard is a TASKPM perspective that contains a set of KPIs (Key Performance Indicators) to help assess a project's performance in terms of:

+
+
    +
  • Work progress
  • +
  • Cost
  • +
  • Status of allocated resources
  • +
  • Time constraints
  • +
+
+
+

Progress Performance Indicators

+

Two indicators are calculated: project progress percentage and task status.

+
+

Project Progress Percentage

+

This chart displays the overall progress of a project, comparing it to the expected progress based on the Gantt chart.

+

Progress is represented by two bars:

+
+
    +
  • Current Progress: The current progress based on the measurements taken.
  • +
  • Expected Progress: The progress the project should have achieved at this point, according to the project plan.
  • +
+
+

To view the actual measured value for each bar, hover the mouse cursor over the bar.

+

The overall project progress is estimated using several different methods, as there is no single, universally correct approach:

+
+
    +
  • Spreading Progress: This is the progress type set as the spreading progress at the project level. In this case, there is no way to calculate an expected value, and only the current bar is displayed.
  • +
  • By All Task Hours: The progress of all project tasks is averaged to calculate the overall value. This is a weighted average that considers the number of hours allocated to each task.
  • +
  • By Critical Path Hours: The progress of tasks belonging to any of the project's critical paths is averaged to obtain the overall value. This is a weighted average that considers the total allocated hours for each involved task.
  • +
  • By Critical Path Duration: The progress of tasks belonging to any of the critical paths is averaged using a weighted average, but this time considering the duration of each involved task instead of the assigned hours.
  • +
+
+
+
+

Task Status

+

A pie chart shows the percentage of project tasks in different states. The defined states are:

+
+
    +
  • Finished: Completed tasks, identified by a 100% progress value.
  • +
  • In Progress: Tasks that are currently underway. These tasks have a progress value other than 0% or 100%, or some work time has been tracked.
  • +
  • Ready to Start: Tasks with 0% progress, no tracked time, all their FINISH_TO_START dependent tasks are finished, and all their START_TO_START dependent tasks are finished or in progress.
  • +
  • Blocked: Tasks with 0% progress, no tracked time, and with previous dependent tasks that are neither in progress nor in the ready to start state.
  • +
+
+
+
+
+

Cost Indicators

+

Several Earned Value Management cost indicators are calculated:

+
+
    +
  • CV (Cost Variance): The difference between the Earned Value curve and the Actual Cost curve at the current moment. Positive values indicate a benefit, and negative values indicate a loss.

    +
  • +
  • ACWP (Actual Cost of Work Performed): The total number of hours tracked in the project at the current moment.

    +
  • +
  • CPI (Cost Performance Index): The Earned Value / Actual Cost ratio.

    +
    +
      +
    • > 100 is favorable, indicating that the project is under budget.
    • +
    • = 100 is also favorable, indicating that the cost is right on plan.
    • +
    • < 100 is unfavorable, indicating that the cost of completing the work is higher than planned.
    • +
    +
    +
  • +
  • ETC (Estimate To Complete): The time remaining to complete the project.

    +
  • +
  • BAC (Budget At Completion): The total amount of work allocated in the project plan.

    +
  • +
  • EAC (Estimate At Completion): The manager's projection of the total cost at project completion, based on the CPI.

    +
  • +
  • VAC (Variance At Completion): The difference between the BAC and the EAC.

    +
    +
      +
    • < 0 indicates that the project is over budget.
    • +
    • > 0 indicates that the project is under budget.
    • +
    +
    +
  • +
+
+
+
+

Resources

+

To analyze the project from the resources' point of view, two ratios and a histogram are provided.

+
+

Estimation Deviation on Completed Task Histogram

+

This histogram calculates the deviation between the number of hours allocated to the project tasks and the actual number of hours dedicated to them.

+

The deviation is calculated as a percentage for all finished tasks, and the calculated deviations are represented in a histogram. The vertical axis shows the number of tasks within each deviation interval. Six deviation intervals are dynamically calculated.

+
+
+

Overtime Ratio

+

This ratio summarizes the overload of resources allocated to the project tasks. It is calculated using the formula: overtime ratio = overload / (load + overload).

+
+
    +
  • = 0 is favorable, indicating that the resources are not overloaded.
  • +
  • > 0 is unfavorable, indicating that the resources are overloaded.
  • +
+
+
+
+

Availability Ratio

+

This ratio summarizes the free capacity of the resources currently allocated to the project. Therefore, it measures the resources' availability to receive more allocations without being overloaded. It is calculated as: availability ratio = (1 - load/capacity) * 100

+
+
    +
  • Possible values are between 0% (fully assigned) and 100% (not assigned).
  • +
+
+
+
+
+

Time

+

Two charts are included: a histogram for the time deviation in the finish time of project tasks and a pie chart for deadline violations.

+
+

Task Completion Lead or Lag

+

This calculation determines the difference in days between the planned end time for project tasks and their actual end time. The planned completion date is taken from the Gantt chart, and the actual finish date is taken from the last time tracked for the task.

+

The lag or lead in task completion is represented in a histogram. The vertical axis shows the number of tasks with a lead/lag day difference value corresponding to the abscissa days interval. Six dynamic task completion deviation intervals are calculated.

+
+
    +
  • Negative values mean finishing ahead of schedule.
  • +
  • Positive values mean finishing behind schedule.
  • +
+
+
+
+

Deadline Violations

+

This section calculates the margin with the project deadline, if set. Additionally, a pie chart shows the percentage of tasks meeting their deadline. Three types of values are included in the chart:

+
+
    +
  • Percentage of tasks without a deadline configured.
  • +
  • Percentage of ended tasks with an actual end date later than their deadline. The actual end date is taken from the last time tracked for the task.
  • +
  • Percentage of ended tasks with an actual end date earlier than their deadline.
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/de/17-2-pipeline-dashboard.html b/libreplan-webapp/src/main/webapp/help/de/17-2-pipeline-dashboard.html new file mode 100644 index 000000000..bb54ed657 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/17-2-pipeline-dashboard.html @@ -0,0 +1,33 @@ + + + + + + +Pipeline Dashboard + + + +
+

Pipeline Dashboard

+ +

The pipeline dashboard is a TASKPM perspective that lists all company projects in a table. This "pipeline" table has nine columns, each corresponding to a project status:

+
+
    +
  • PRE-SALES
  • +
  • OFFERED
  • +
  • OUTSOURCED
  • +
  • ACCEPTED
  • +
  • STARTED
  • +
  • ON HOLD
  • +
  • FINISHED
  • +
  • CANCELLED
  • +
  • ARCHIVED
  • +
+
+

Projects are listed by name in each column based on their current status.

+

A project's start date, end date, and current progress can be viewed in a tooltip popup by hovering the mouse cursor over a project's name.

+

Projects with an ARCHIVED status can be hidden by unchecking the "Show archived column data" checkbox.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/de/17-dashboards.html b/libreplan-webapp/src/main/webapp/help/de/17-dashboards.html new file mode 100644 index 000000000..3dc8f1af4 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/17-dashboards.html @@ -0,0 +1,24 @@ + + + + + + +Dashboards + + + +
+

Dashboards

+ +

TASKPM offers dashboard views for projects, providing an overview of their current status.

+

The two available dashboard views are:

+ +
+ + diff --git a/libreplan-webapp/src/main/webapp/help/de/18-connectors.html b/libreplan-webapp/src/main/webapp/help/de/18-connectors.html new file mode 100644 index 000000000..0f879b53d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/18-connectors.html @@ -0,0 +1,238 @@ + + + + + + +Connectors + + + +
+

Connectors

+ + +

Connectors are TASKPM client applications that can be used to communicate with (web) servers to retrieve data, process it, and store it. Currently, there are three connectors: the JIRA connector, the Tim Enterprise connector, and the E-mail connector.

+
+

Configuration

+

Connectors must be configured properly before they can be used. They can be configured from the "Main Settings" screen under the "Connectors" tab.

+

The connector screen includes:

+
    +
  • Pull-down list: A list of available connectors.
  • +
  • Properties edit screen: A property edit form for the selected connector.
  • +
  • Test connection button: A button to test the connection with the connector.
  • +
+

Select the connector you want to configure from the pull-down list of connectors. A property editor form for the selected connector will be displayed. In the property editor form, you can change the property values as needed and test your configurations using the "Test connection" button.

+
+

Note

+

The properties are configured with default values. The most important property is "Activated." By default, it is set to "N." This indicates that the connector will not be used unless you change the value to "Y" and save the changes.

+
+
+
+

JIRA Connector

+

JIRA is an issue and project tracking system.

+

The JIRA connector is an application that can be used to request JIRA web server data for JIRA issues and process the response. The request is based on JIRA labels. In JIRA, labels can be used to categorize issues. The request is structured as follows: retrieve all issues that are categorized by this label name.

+

The connector receives the response, which in this case is the issues, and converts them to TASKPM "Order elements" and "Time sheets."

+

The JIRA connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the JIRA connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the JIRA connector. The default is "N."
  • +
  • Server URL: The absolute path to the JIRA web server.
  • +
  • User name and password: The user credentials for authorization.
  • +
  • JIRA labels: comma-separated list of labels or URL: You can either enter the label URL or a comma-separated list of labels.
  • +
  • Hours type: The type of work hours. The default is "Default."
  • +
+
+

Note

+

JIRA labels: Currently, the JIRA web server does not support providing a list of all available labels. As a workaround, we have developed a simple PHP script that performs a simple SQL query in the JIRA database to fetch all distinct labels. You can either use this PHP script as the "JIRA labels URL" or enter the labels you want as comma-separated text in the "JIRA labels" field.

+
+

Finally, click the "Test connection" button to test if you can connect to the JIRA web server and that your configurations are correct.

+
+
+

Synchronization

+

From the project window, under "General data," you can start synchronizing order elements with JIRA issues.

+

Click the "Sync with JIRA" button to start the synchronization.

+
    +
  • If this is the first time, a pop-up window (with an auto-completed list of labels) will be displayed. In this window, you can select a label to synchronize with and click the "Start sync" button to begin the synchronization process, or click the "Cancel" button to cancel it.
  • +
  • If a label is already synchronized, the last synchronized date and the label will be displayed in the JIRA screen. In this case, no pop-up window to select a label will be displayed. Instead, the synchronization process will start directly for that displayed (already synchronized) label.
  • +
+
+

Note

+

The relationship between "Order" and "label" is one-to-one. Only one label can be synchronized with one "Order."

+
+
+

Note

+

Upon successful (re)synchronization, the information will be written to the database, and the JIRA screen will be updated with the last synchronized date and label.

+
+

(Re)synchronization is performed in two phases:

+
    +
  • Phase 1: Synchronizing order elements, including progress assignment and measurements.
  • +
  • Phase 2: Synchronizing time sheets.
  • +
+
+

Note

+

If Phase 1 fails, Phase 2 will not be performed, and no information will be written to the database.

+
+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+

Upon successful completion of synchronization, the result will be displayed in the "Work Breakdown Structure (WBS tasks)" tab of the "Project details" screen. In this UI, there are two changes from the standard WBS:

+
    +
  • The "Total task hours" column is unmodifiable (read-only) because the synchronization is one-way. Task hours can only be updated in the JIRA web server.
  • +
  • The "Code" column displays the JIRA issue keys, and they are also hyperlinks to the JIRA issues. Click the desired key if you want to go to the document for that key (JIRA issue).
  • +
+
+
+

Scheduling

+

Re-synchronization of JIRA issues can also be performed through the scheduler. Go to the "Job scheduling" screen. In that screen, you can configure a JIRA job to perform synchronization. The job searches for the last synchronized labels in the database and re-synchronizes them accordingly. See also the Scheduler Manual.

+
+
+
+

Tim Enterprise Connector

+

Tim Enterprise is a Dutch product from Aenova. It is a web-based application for the administration of time spent on projects and tasks.

+

The Tim connector is an application that can be used to communicate with the Tim Enterprise server to:

+
    +
  • Export all hours spent by a worker (user) on a project that could be registered in Tim Enterprise.
  • +
  • Import all rosters of the worker (user) to plan the resource effectively.
  • +
+

The Tim connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the Tim connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the Tim connector. The default is "N."
  • +
  • Server URL: The absolute path to the Tim Enterprise server.
  • +
  • User name and password: The user credentials for authorization.
  • +
  • Number of days timesheet to Tim: The number of days back you want to export the time sheets.
  • +
  • Number of days roster from Tim: The number of days forward you want to import the rosters.
  • +
  • Productivity factor: Effective working hours in percentage. The default is "100%."
  • +
  • Department IDs to import roster: Comma-separated department IDs.
  • +
+

Finally, click the "Test connection" button to test if you can connect to the Tim Enterprise server and that your configurations are correct.

+
+
+

Export

+

From the project window, under "General data," you can start exporting time sheets to the Tim Enterprise server.

+

Enter the "Tim product code" and click the "Export to Tim" button to start the export.

+

The Tim connector adds the following fields along with the product code:

+
    +
  • The worker/user's full name.
  • +
  • The date the worker worked on a task.
  • +
  • The effort, or hours worked on the task.
  • +
  • An option indicating whether Tim Enterprise should update the registration or insert a new one.
  • +
+

The Tim Enterprise response contains only a list of record IDs (integers). This makes it difficult to determine what went wrong, as the response list contains only numbers not related to the request fields. The export request (registration in Tim) is assumed to have succeeded if all the list entries do not contain "0" values. Otherwise, the export request has failed for those entries that contain "0" values. Therefore, you cannot see which request failed, as the list entries only contain the value "0." The only way to determine this is to examine the log file on the Tim Enterprise server.

+
+

Note

+

Upon successful exporting, the information will be written to the database, and the Tim screen will be updated with the last exported date and product code.

+
+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+
+
+

Scheduling Export

+

The export process can also be performed through the scheduler. Go to the "Job Scheduling" screen. In that screen, you can configure a Tim Export job. The job searches for the last exported time sheets in the database and re-exports them accordingly. See also the Scheduler manual.

+
+
+

Import

+

Importing rosters only works with the help of the scheduler. There is no user interface designed for this, as no input is needed from the user. Go to the "Job scheduling" screen and configure a Tim Import job. The job loops through all departments configured in the connector properties and imports all rosters for each department. See also the Scheduler Manual.

+

For import, the Tim connector adds the following fields in the request:

+
    +
  • Period: The period (date from - date to) for which you want to import the roster. This can be provided as a filter criterion.
  • +
  • Department: The department for which you want to import the roster. Departments are configurable.
  • +
  • The fields you are interested in (like Person info, RosterCategory, etc.) that the Tim server should include in its response.
  • +
+

The import response contains the following fields, which are sufficient to manage the exception days in TASKPM:

+
    +
  • Person info: Name and network name.
  • +
  • Department: The department the worker is working in.
  • +
  • Roster category: Information on the presence/absence (Aanwzig/afwezig) of the worker and the reason (TASKPM exception type) in case the worker is absent.
  • +
  • Date: The date the worker is present/absent.
  • +
  • Time: The start time of presence/absence, for example, 08:00.
  • +
  • Duration: The number of hours that the worker is present/absent.
  • +
+

By converting the import response to TASKPM's "Exception day," the following translations are taken into account:

+
    +
  • If the roster category contains the name "Vakantie," it will be translated to "RESOURCE HOLIDAY."
  • +
  • The roster category "Feestdag" will be translated to "BANK HOLIDAY."
  • +
  • All the rest, like "Jus uren," "PLB uren," etc., should be added to the "Calendar Exception Days" manually.
  • +
+

Moreover, in the import response, the roster is divided into two or three parts per day: for example, roster-morning, roster-afternoon, and roster-evening. However, TASKPM allows only one "Exception type" per day. The Tim connector is then responsible for merging these parts as one exception type. That is, the roster category with the highest duration is assumed to be a valid exception type, but the total duration is the sum of all durations of these category parts.

+

Contrary to TASKPM, in Tim Enterprise, the total duration in case the worker is on holiday means the worker is not available for that total duration. However, in TASKPM, if the worker is on holiday, the total duration should be zero. The Tim connector also handles this translation.

+
+
+
+

E-mail Connector

+

E-mail is a method of exchanging digital messages from an author to one or more recipients.

+

The E-mail connector can be used to set Simple Mail Transfer Protocol (SMTP) server connection properties.

+

The E-mail connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the E-mail connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the E-mail connector. The default is "N."
  • +
  • Protocol: The type of SMTP protocol.
  • +
  • Host: The absolute path to the SMTP server.
  • +
  • Port: The port of the SMTP server.
  • +
  • From address: The e-mail address of the message sender.
  • +
  • Username: The username for the SMTP server.
  • +
  • Password: The password for the SMTP server.
  • +
+

Finally, click the "Test connection" button to test if you can connect to the SMTP server and that your configurations are correct.

+
+
+

Edit E-mail Template

+

From the project window, under "Configuration" and then "Edit E-mail Templates," you can modify the e-mail templates for messages.

+

You can choose:

+
    +
  • Template language:
  • +
  • Template type:
  • +
  • E-mail subject:
  • +
  • Template contents:
  • +
+

You need to specify the language because the web application will send e-mails to users in the language they have chosen in their preferences. You need to choose the template type. The type is the user role, meaning that this e-mail will be sent only to users who are in the selected role (type). You need to set the e-mail subject. The subject is a brief summary of the topic of the message. You need to set the e-mail contents. This is any information that you want to send to the user. There are also some keywords that you may use in the message; the web application will parse them and set a new value instead of the keyword.

+
+
+

Scheduling E-mails

+

Sending e-mails can only be performed through the scheduler. Go to "Configuration," then the "Job Scheduling" screen. In that screen, you can configure an e-mail sending job. The job takes a list of e-mail notifications, gathers data, and sends it to the user's e-mail. See also the Scheduler manual.

+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/de/19-scheduler.html b/libreplan-webapp/src/main/webapp/help/de/19-scheduler.html new file mode 100644 index 000000000..8379b5b4c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/19-scheduler.html @@ -0,0 +1,107 @@ + + + + + + +Scheduler + + + +
+

Scheduler

+ + +

The scheduler is designed to schedule jobs dynamically. It is developed using the Spring Framework Quartz scheduler.

+

To use this scheduler effectively, the jobs (Quartz jobs) that should be scheduled must be created first. Then, these jobs can be added to the database, as all jobs to be scheduled are stored in the database.

+

When the scheduler starts, it reads the jobs to be scheduled or unscheduled from the database and schedules or removes them accordingly. Afterward, jobs can be added, updated, or removed dynamically using the Job scheduling user interface.

+
+

Note

+

The scheduler starts when the TASKPM web application starts and stops when the application stops.

+
+
+

Note

+

This scheduler supports only cron expressions to schedule jobs.

+
+

The criteria that the scheduler uses to schedule or remove jobs when it starts are as follows:

+

For all jobs:

+
    +
  • Schedule
      +
    • Job has a Connector, and the Connector is activated, and the job is allowed to be scheduled.
    • +
    • Job has no Connector and is allowed to be scheduled.
    • +
    +
  • +
  • Remove
      +
    • Job has a Connector, and the Connector is not activated.
    • +
    • Job has a Connector, and the Connector is activated, but the job is not allowed to be scheduled.
    • +
    • Job has no Connector and is not allowed to be scheduled.
    • +
    +
  • +
+
+

Note

+

Jobs cannot be rescheduled or unscheduled if they are currently running.

+
+
+

Job Scheduling List View

+

The Job scheduling list view allows users to:

+
    +
  • Add a new job.
  • +
  • Edit an existing job.
  • +
  • Remove a job.
  • +
  • Start a process manually.
  • +
+
+
+

Add or Edit Job

+

From the Job scheduling list view, click:

+
    +
  • Create to add a new job, or
  • +
  • Edit to modify the selected job.
  • +
+

Both actions will open a create/edit job form. The form displays the following properties:

+
    +
  • Fields:
      +
    • Job group: The name of the job group.
    • +
    • Job name: The name of the job.
    • +
    • Cron expression: A read-only field with an Edit button to open the cron expression input window.
    • +
    • Job class name: A pull-down list to select the job (an existing job).
    • +
    • Connector: A pull-down list to select a connector. This is not mandatory.
    • +
    • Schedule: A checkbox to indicate whether to schedule this job.
    • +
    +
  • +
  • Buttons:
      +
    • Save: To save or update a job in both the database and the scheduler. The user is then returned to the Job scheduling list view.
    • +
    • Save and continue: The same as "Save," but the user is not returned to the Job scheduling list view.
    • +
    • Cancel: Nothing is saved, and the user is returned to the Job scheduling list view.
    • +
    +
  • +
  • And a hint section about cron expression syntax.
  • +
+
+

Cron Expression Pop-up

+

To enter the cron expression correctly, a cron expression pop-up form is used. In this form, you can enter the desired cron expression. See also the hint about the cron expression. If you enter an invalid cron expression, you will be notified immediately.

+
+
+
+

Remove Job

+

Click the Remove button to delete the job from both the database and the scheduler. The success or failure of this action will be displayed.

+
+
+

Start Job Manually

+

As an alternative to waiting for the job to run as scheduled, you can click this button to start the process directly. Afterward, the success or failure information will be displayed in a pop-up window.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/de/20-acerca-de.html b/libreplan-webapp/src/main/webapp/help/de/20-acerca-de.html new file mode 100644 index 000000000..569e69e4d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/20-acerca-de.html @@ -0,0 +1,155 @@ + + + + + + +About + + + +
+

About

+ + + +
+

License

+

This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version.

+

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/>.

+
+
+

Written by

+
+

TASKPM Team

+ +
+
+

Previous Team Members

+ +
+
+

Translators

+ +
+
+

Contributors

+ +
+
+
+

Public Funding

+

This project currently accepts donations through the Open Collective organization <https://opencollective.com/TASKPM>.

+

Within the global scope that TASKPM is designed for regarding planning management, a project was developed to solve some common planning problems.

+

This project was partially financed by Xunta de Galicia, Ministerio de Industria, Turismo e Comercio, and by the European Union, Fondo Europeo de Desenvolvemento Rexional.

+
+images/logos.png +
+ +++ + + + +
scale:100
+

This project was part of Plan Avanza:

+
+images/avanza.png +
+ +++ + + + +
scale:100
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/de/21-communications.html b/libreplan-webapp/src/main/webapp/help/de/21-communications.html new file mode 100644 index 000000000..e4f5ea081 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/21-communications.html @@ -0,0 +1,18 @@ + + + + + + +Subcontractor Work Description + + + +
+

Subcontractor Work Description

+ +

While it is possible to leave this field empty, doing so can lead to errors in communication functionality when multiple empty fields exist.

+

Therefore, we strongly recommend always using a unique work description.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/de/22-pert.html b/libreplan-webapp/src/main/webapp/help/de/22-pert.html new file mode 100644 index 000000000..c27af3c56 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/22-pert.html @@ -0,0 +1,17 @@ + + + + + + +PERT Chart + + + +
+

PERT Chart

+ +

Unlike Libreplan, which was focused on the GANNT chart and did not have a PERT chart, TASKPM does have a PERT chart and is more focused on it.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/de/23-subnets.html b/libreplan-webapp/src/main/webapp/help/de/23-subnets.html new file mode 100644 index 000000000..42cd9e634 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/23-subnets.html @@ -0,0 +1,17 @@ + + + + + + +Task Subnets + + + +
+

Task Subnets

+ +

Unlike Libreplan, which only had a single level of planning, the whole project, TASKPM has subnetworks of activities which can be embedded in a master project.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/de/images/advance-assignment.png b/libreplan-webapp/src/main/webapp/help/de/images/advance-assignment.png new file mode 100644 index 000000000..aeb55b2b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/advance-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/asignacion-especifica.png b/libreplan-webapp/src/main/webapp/help/de/images/asignacion-especifica.png new file mode 100644 index 000000000..9ee94d9c6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/asignacion-especifica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/asignacion-xenerica.png b/libreplan-webapp/src/main/webapp/help/de/images/asignacion-xenerica.png new file mode 100644 index 000000000..d2a16597f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/asignacion-xenerica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/avance.png b/libreplan-webapp/src/main/webapp/help/de/images/avance.png new file mode 100644 index 000000000..ee289e19c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/avanza.png b/libreplan-webapp/src/main/webapp/help/de/images/avanza.png new file mode 100644 index 000000000..a51893f80 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/avanza.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/calendar-administration.png b/libreplan-webapp/src/main/webapp/help/de/images/calendar-administration.png new file mode 100644 index 000000000..bb4e17032 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/calendar-administration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/calendar-create-derived.png b/libreplan-webapp/src/main/webapp/help/de/images/calendar-create-derived.png new file mode 100644 index 000000000..9f01f2c33 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/calendar-create-derived.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/calendar-edition.png b/libreplan-webapp/src/main/webapp/help/de/images/calendar-edition.png new file mode 100644 index 000000000..a98cc4454 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/calendar-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/calendar-exceptions.png b/libreplan-webapp/src/main/webapp/help/de/images/calendar-exceptions.png new file mode 100644 index 000000000..c2a53a684 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/calendar-exceptions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/category-cost-edit.png b/libreplan-webapp/src/main/webapp/help/de/images/category-cost-edit.png new file mode 100644 index 000000000..1755ee79e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/category-cost-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/category-cost-list.png b/libreplan-webapp/src/main/webapp/help/de/images/category-cost-list.png new file mode 100644 index 000000000..1d7ff838c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/category-cost-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/company_view.png b/libreplan-webapp/src/main/webapp/help/de/images/company_view.png new file mode 100644 index 000000000..c3a7631e6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/company_view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/contraste-avance.png b/libreplan-webapp/src/main/webapp/help/de/images/contraste-avance.png new file mode 100644 index 000000000..831cceac3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/contraste-avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/default-calendar.png b/libreplan-webapp/src/main/webapp/help/de/images/default-calendar.png new file mode 100644 index 000000000..6fd379d08 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/default-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/edicion-criterio.png b/libreplan-webapp/src/main/webapp/help/de/images/edicion-criterio.png new file mode 100644 index 000000000..2b879ced5 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/edicion-criterio.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/hour-type-edit.png b/libreplan-webapp/src/main/webapp/help/de/images/hour-type-edit.png new file mode 100644 index 000000000..4917b08a8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/hour-type-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/hour-type-list.png b/libreplan-webapp/src/main/webapp/help/de/images/hour-type-list.png new file mode 100644 index 000000000..1872eb4f7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/hour-type-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/lista-criterios.png b/libreplan-webapp/src/main/webapp/help/de/images/lista-criterios.png new file mode 100644 index 000000000..a2e7d03cb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/lista-criterios.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/logo.png b/libreplan-webapp/src/main/webapp/help/de/images/logo.png new file mode 100644 index 000000000..4e7d02651 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/logo.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/logos.png b/libreplan-webapp/src/main/webapp/help/de/images/logos.png new file mode 100644 index 000000000..7314a0759 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/logos.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/machine-calendar.png b/libreplan-webapp/src/main/webapp/help/de/images/machine-calendar.png new file mode 100644 index 000000000..a725f67a2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/machine-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/machine-configuration.png b/libreplan-webapp/src/main/webapp/help/de/images/machine-configuration.png new file mode 100644 index 000000000..0777473fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/machine-configuration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/machine-costcategory.png b/libreplan-webapp/src/main/webapp/help/de/images/machine-costcategory.png new file mode 100644 index 000000000..b8414eac6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/machine-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/machine-criterions.png b/libreplan-webapp/src/main/webapp/help/de/images/machine-criterions.png new file mode 100644 index 000000000..7c270bf35 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/machine-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/machine-data.png b/libreplan-webapp/src/main/webapp/help/de/images/machine-data.png new file mode 100644 index 000000000..5edb47d12 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/machine-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/manage-user-profile.png b/libreplan-webapp/src/main/webapp/help/de/images/manage-user-profile.png new file mode 100644 index 000000000..6a86064e2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/manage-user-profile.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/manage-user.png b/libreplan-webapp/src/main/webapp/help/de/images/manage-user.png new file mode 100644 index 000000000..df59f1b7c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/manage-user.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/material.png b/libreplan-webapp/src/main/webapp/help/de/images/material.png new file mode 100644 index 000000000..a77b5aa41 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/menu.png b/libreplan-webapp/src/main/webapp/help/de/images/menu.png new file mode 100644 index 000000000..f4eec5250 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/menu.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/new-resource-calendar.png b/libreplan-webapp/src/main/webapp/help/de/images/new-resource-calendar.png new file mode 100644 index 000000000..9040e0bc0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/new-resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/order-assigned-hours.png b/libreplan-webapp/src/main/webapp/help/de/images/order-assigned-hours.png new file mode 100644 index 000000000..4fd629386 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/order-assigned-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/order-criterions.png b/libreplan-webapp/src/main/webapp/help/de/images/order-criterions.png new file mode 100644 index 000000000..e59bd833f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/order-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/order-edition.png b/libreplan-webapp/src/main/webapp/help/de/images/order-edition.png new file mode 100644 index 000000000..ff67134db Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/order-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/order-element-criterion.png b/libreplan-webapp/src/main/webapp/help/de/images/order-element-criterion.png new file mode 100644 index 000000000..f167979b0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/order-element-criterion.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/order-element-edition.png b/libreplan-webapp/src/main/webapp/help/de/images/order-element-edition.png new file mode 100644 index 000000000..66e5e8602 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/order-element-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/order-element-hours.png b/libreplan-webapp/src/main/webapp/help/de/images/order-element-hours.png new file mode 100644 index 000000000..06cc1dc37 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/order-element-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/order-element-material-assign.png b/libreplan-webapp/src/main/webapp/help/de/images/order-element-material-assign.png new file mode 100644 index 000000000..90f973766 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/order-element-material-assign.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/order-element-material-search.png b/libreplan-webapp/src/main/webapp/help/de/images/order-element-material-search.png new file mode 100644 index 000000000..550f1d7fa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/order-element-material-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/order-element-quality.png b/libreplan-webapp/src/main/webapp/help/de/images/order-element-quality.png new file mode 100644 index 000000000..3272ce70e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/order-element-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/order-element-tags.png b/libreplan-webapp/src/main/webapp/help/de/images/order-element-tags.png new file mode 100644 index 000000000..e43a7d795 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/order-element-tags.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/order-elements-list.png b/libreplan-webapp/src/main/webapp/help/de/images/order-elements-list.png new file mode 100644 index 000000000..271ac9bf6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/order-elements-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/order-labels.png b/libreplan-webapp/src/main/webapp/help/de/images/order-labels.png new file mode 100644 index 000000000..076e0a745 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/order-labels.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/order-material.png b/libreplan-webapp/src/main/webapp/help/de/images/order-material.png new file mode 100644 index 000000000..9197679e7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/order-material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/order-quality.png b/libreplan-webapp/src/main/webapp/help/de/images/order-quality.png new file mode 100644 index 000000000..ee9e9027e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/order-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/order_list.png b/libreplan-webapp/src/main/webapp/help/de/images/order_list.png new file mode 100644 index 000000000..72e70f3b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/order_list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/planning-view.png b/libreplan-webapp/src/main/webapp/help/de/images/planning-view.png new file mode 100644 index 000000000..de74811eb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/planning-view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/quality.png b/libreplan-webapp/src/main/webapp/help/de/images/quality.png new file mode 100644 index 000000000..1850f51b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/resource-assignment-generic.png b/libreplan-webapp/src/main/webapp/help/de/images/resource-assignment-generic.png new file mode 100644 index 000000000..3519a5087 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/resource-assignment-generic.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/resource-assignment-planning.png b/libreplan-webapp/src/main/webapp/help/de/images/resource-assignment-planning.png new file mode 100644 index 000000000..c4233780d Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/resource-assignment-planning.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/resource-assignment-search.png b/libreplan-webapp/src/main/webapp/help/de/images/resource-assignment-search.png new file mode 100644 index 000000000..cae142d81 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/resource-assignment-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/resource-assignment-specific.png b/libreplan-webapp/src/main/webapp/help/de/images/resource-assignment-specific.png new file mode 100644 index 000000000..8f7b1cba2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/resource-assignment-specific.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/resource-assignment.png b/libreplan-webapp/src/main/webapp/help/de/images/resource-assignment.png new file mode 100644 index 000000000..427d25b79 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/resource-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/resource-calendar.png b/libreplan-webapp/src/main/webapp/help/de/images/resource-calendar.png new file mode 100644 index 000000000..749c7b829 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/resource-load.png b/libreplan-webapp/src/main/webapp/help/de/images/resource-load.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/resource-load.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/resources_global.png b/libreplan-webapp/src/main/webapp/help/de/images/resources_global.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/resources_global.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/stretches.png b/libreplan-webapp/src/main/webapp/help/de/images/stretches.png new file mode 100644 index 000000000..d661a63f6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/stretches.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/tag-types-edition.png b/libreplan-webapp/src/main/webapp/help/de/images/tag-types-edition.png new file mode 100644 index 000000000..d366c09c2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/tag-types-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/tag-types-list.png b/libreplan-webapp/src/main/webapp/help/de/images/tag-types-list.png new file mode 100644 index 000000000..e7de5048c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/tag-types-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/tipos-avances.png b/libreplan-webapp/src/main/webapp/help/de/images/tipos-avances.png new file mode 100644 index 000000000..bb417f52c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/tipos-avances.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/virtual-resources.png b/libreplan-webapp/src/main/webapp/help/de/images/virtual-resources.png new file mode 100644 index 000000000..3a54f95d3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/virtual-resources.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/work-report-hours.png b/libreplan-webapp/src/main/webapp/help/de/images/work-report-hours.png new file mode 100644 index 000000000..568e9fed6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/work-report-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/work-report-type.png b/libreplan-webapp/src/main/webapp/help/de/images/work-report-type.png new file mode 100644 index 000000000..2549d8b5e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/work-report-type.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/work-report-types.png b/libreplan-webapp/src/main/webapp/help/de/images/work-report-types.png new file mode 100644 index 000000000..986f705aa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/work-report-types.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/worker-calendar.png b/libreplan-webapp/src/main/webapp/help/de/images/worker-calendar.png new file mode 100644 index 000000000..1227969b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/worker-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/worker-costcategory.png b/libreplan-webapp/src/main/webapp/help/de/images/worker-costcategory.png new file mode 100644 index 000000000..f330db68c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/worker-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/worker-criterions.png b/libreplan-webapp/src/main/webapp/help/de/images/worker-criterions.png new file mode 100644 index 000000000..a131a29fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/worker-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/images/worker-personal-data.png b/libreplan-webapp/src/main/webapp/help/de/images/worker-personal-data.png new file mode 100644 index 000000000..6a5033ba8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/de/images/worker-personal-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/de/index.html b/libreplan-webapp/src/main/webapp/help/de/index.html new file mode 100644 index 000000000..7a9b74000 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/index.html @@ -0,0 +1,47 @@ + + + + + + +LibrePlan: User documentation + + + +
+

LibrePlan: User documentation

+ +images/logo.png +

Following document contains necessary help for using LibrePlan, the opensource web application for project planning.

+

This document is divided in three main sections:

+

First, global goals and behaviour.

+

Second, basic entities to understand the minimum concepts to use LibrePlan.

+

Finally, complete processes description to create orders, projects, project planning, resources assignment, advance assignment and result extraction.

+
    +
  1. Introduction
  2. +
  3. Criteria
  4. +
  5. Calendars
  6. +
  7. Progress
  8. +
  9. Resource Management
  10. +
  11. Orders and Order Elements
  12. +
  13. Task Planning
  14. +
  15. Resource Assignment
  16. +
  17. Work Reports
  18. +
  19. Labels
  20. +
  21. Materials Management
  22. +
  23. Quality Forms
  24. +
  25. User Management
  26. +
  27. Cost management
  28. +
  29. Reports
  30. +
  31. LDAP Configuration
  32. +
  33. Dashboards
  34. +
  35. Connectors
  36. +
  37. Scheduler
  38. +
  39. About
  40. +
  41. Subcontractor Work Description
  42. +
  43. PERT Chart
  44. +
  45. Task Subnets
  46. +
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/de/lsr.css b/libreplan-webapp/src/main/webapp/help/de/lsr.css new file mode 100644 index 000000000..ced6c967a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/de/lsr.css @@ -0,0 +1,250 @@ +/* +Author: Peter Parente +Date: 2008/01/22 +Version: 1.0 +Copyright: This stylesheet has been placed in the public domain - free to edit and use for all uses. +*/ + +body { + font: 0.8em Verdana, Tahoma, sans-serif; + background: #ffffff; + color: black; + margin: 2em; +} + +p.topic-title { + font-weight: bold; +} + +table.docinfo { + text-align: left; + margin: 2em 0; +} + +a[href] { + color: #436976; + background-color: transparent; +} + +a.toc-backref { + text-decoration: none; +} + +h1 a[href] { + color: #003a6b; + text-decoration: none; + background-color: transparent; +} + +a.strong { + font-weight: bold; +} + +img { + margin: 0; + border: 0; +} + +p { + margin: 0.5em 0 1em 0; + line-height: 1.5em; +} + +p a:visited { + color: purple; + background-color: transparent; +} + +p a:active { + color: red; + background-color: transparent; +} + +a:hover { + text-decoration: none; +} + +p img { + border: 0; + margin: 0; +} + +p.rubric { + font-weight: bold; + font-style: italic; +} + +h1.title { + color: #003a6b; + font-size: 250%; + margin-bottom: 0; +} + +h2.subtitle { + color: #003a6b; + border-bottom: 0; +} + +h1, h2, h3, h4, h5, h6 { + color: #555; + background-color: transparent; + margin: 0; + padding-top: 0.5em; +} + +h1 { + font-size: 160%; + margin-bottom: 0.5em; + border-bottom: 2px solid #aaa; +} + +h2 { + font-size: 140%; + margin-bottom: 0.5em; + border-bottom: 1px solid #aaa; +} + +h3 { + font-size: 130%; + margin-bottom: 0.5em; +} + +h4 { + font-size: 110%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h5 { + font-size: 105%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h6 { + font-size: 100%; + font-weight: bold; + margin-bottom: 0.5em; +} + +dt { + font-style: italic; +} + +dd { + margin-bottom: 1.5em; +} + +div.admonition, div.note, div.tip, div.caution, div.important, div.warning { + margin: 2em 2em; + padding: 0 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +div.important { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +div.caution { + background: transparent url('../images/caution.png') 10px 2px no-repeat; +} + +div.note { + background: transparent url('../images/note.png') 10px 2px no-repeat; +} + +div.tip { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-example { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-critical-example { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +p.admonition-title { + font-weight: bold; + border-bottom: 1px solid #aaa; + padding-left: 30px; +} + +table.docutils { + text-align: left; + border: 1px solid gray; + border-collapse: collapse; + width: 100%; + margin: 1.5em 0; +} + +table.docutils caption { + font-style: italic; +} + +table.docutils td, table.docutils th { + padding: 0.25em 0.5em; +} + +table.docutils th { + background-color: #dddddd; +} + +div.sidebar { + width: 33%; + float: right; + margin: 0 2em; + padding: 0 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +p.sidebar-title { + margin-bottom: 0; + color: #003a6b; + border-bottom: 1px solid #aaa; + font-weight: bold; +} + +p.sidebar-subtitle { + margin-top: 0; + font-style: italic; + color: #003a6b; +} + +div.figure { + text-align: center; +} + +div.figure img { + background: #f8f8f8; + padding: 0.25em; + border: 1px solid #888; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +div.figure img:hover { + background: #e0e0e0; +} + +div.figure p.caption { + text-align: center; + margin-top: 0.1em; + font-style: italic; + color: #444; +} + +pre.literal-block { + padding: 0.15em; + background: #f8f8f8; + border: 1px solid #dfdfdf; + border-left: 0.25em solid #dfdfdf +} diff --git a/libreplan-webapp/src/main/webapp/help/en/01-introducion.html b/libreplan-webapp/src/main/webapp/help/en/01-introducion.html new file mode 100644 index 000000000..37efb3eff --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/01-introducion.html @@ -0,0 +1,133 @@ + + + + + + +Introduction + + + +
+

Introduction

+ + +

This document describes the features of TASKPM and provides user information on how to configure and use the application.

+

TASKPM is an open-source web application for personal project planning. The primary goal of Libreplan was to provide a comprehensive solution for company project management. TASKPM retains this functionality but with its integration with timewarrior and taskwarrior adds a personal planning orientation.

+
+images/company_view.png +

Company Overview

+
+
+

TASKPM Situation and View Management

+

The TASKPM use case situation is a single staff resource who is also the sole proprietoru and any number of agent workers. This combine is to be read in the Libreplan documentation where "company" is used. To the extent possible we have tried to leave Libreplan functionality as is simply reinterpret with or without renaming for the reframing to the new personal oriention. So there are internal andexternal views in TASKPM, the external ones look inward from newly added document and carry the reinterpretation while most of the prexisting chapters, in their entirety, look outward from the standard model of the firm perspective of Libreplan.

+

As shown in the program's main screen (see the previous screenshot) and the company overview, users can view a list of planned projects. This allows them to understand the company's overall status regarding orders and resource utilization. The company overview offers three distinct views:

+
    +
  • Planning View: This view combines two perspectives:

    +
    +
      +
    • Order and Time Tracking: Each project is represented by a Gantt chart, indicating the project's start and end dates. This information is displayed alongside the agreed-upon deadline. A comparison is then made between the percentage of progress achieved and the actual time dedicated to each project. This provides a clear picture of the company's performance at any given time. This view is the program's default landing page.
    • +
    • Company Resource Utilization Graph: This graph displays information on resource allocation across projects, providing a summary of the entire company's resource usage. Green indicates that resource allocation is below 100% of capacity. The black line represents the total available resource capacity. Yellow indicates that resource allocation exceeds 100%. It's possible to have under-allocation overall while simultaneously experiencing over-allocation for specific resources.
    • +
    +
    +
  • +
  • Resource Load View: This screen displays a list of the company's workers and their specific task allocations, or generic allocations based on defined criteria. To access this view, click on Overall load of resources. See the following image for an example.

    +
  • +
  • Orders Administration View: This screen displays a list of company orders, allowing users to perform the following actions: filter, edit, delete, visualize planning, or create a new order. To access this view, click on Order list.

    +
  • +
+
+images/resources_global.png +

Resource Overview

+
+
+images/order_list.png +

Work Breakdown Structure

+
+

The view management described above for the company overview is very similar to the management available for a single project. A project can be accessed in several ways:

+
    +
  • Right-click on the Gantt chart for the order and select Plan.
  • +
  • Access the order list and click on the Gantt diagram icon.
  • +
  • Create a new order and change the current order view.
  • +
+

The program offers the following views for an order:

+
    +
  • Planning View: This view allows users to visualize task planning, dependencies, milestones, and more. See the Planning section for further details.
  • +
  • Resource Load View: This view allows users to check the designated resource load for a project. The color code is consistent with the company overview: green for a load less than 100%, yellow for a load equal to 100%, and red for a load over 100%. The load may originate from a specific task or a set of criteria (generic allocation).
  • +
  • Editing Order View: This view allows users to modify the details of the order. See the Orders section for more information.
  • +
  • Advanced Resource Allocation View: This view allows users to allocate resources with advanced options, such as specifying hours per day or the allocated functions to be performed. See the Resource allocation section for more information.
  • +
+
+
+

What Makes TASKPM Useful?

+

TASKPM is a general-purpose planning tool developed to address challenges in industrial project planning that were not adequately covered by existing tools. The development of TASKPM was also motivated by the desire to provide a free, open-source, and entirely web-based alternative to proprietary planning tools.

+

The core concepts underpinning the program are as follows:

+
    +
  • Company and Multi-Project Overview: TASKPM is specifically designed to provide users with information about multiple projects being carried out within a company. Therefore, it is inherently a multi-project program. The program's focus is not limited to individual projects, although specific views for individual projects are also available.
  • +
  • View Management: The company overview, or multi-project view, is accompanied by various views of the stored information. For example, the company overview allows users to view orders and compare their status, view the company's overall resource load, and manage orders. Users can also access the planning view, resource load view, advanced resource allocation view, and editing order view for individual projects.
  • +
  • Criteria: Criteria are a system entity that enables the classification of both resources (human and machine) and tasks. Resources must meet certain criteria, and tasks require specific criteria to be fulfilled. This is one of the program's most important features, as criteria form the basis of generic allocation and address a significant challenge in the industry: the time-consuming nature of human resource management and the difficulty of long-term company load estimations.
  • +
  • Resources: There are two types of resources: human and machine. Human resources are the company's workers, used for planning, monitoring, and controlling the company's workload. Machine resources, dependent on the people who operate them, function similarly to human resources.
  • +
  • Resource Allocation: A key feature of the program is the ability to designate resources in two ways: specifically and generically. Generic allocation is based on the criteria required to complete a task and must be fulfilled by resources capable of meeting those criteria. To understand generic allocation, consider this example: John Smith is a welder. Typically, John Smith would be specifically assigned to a planned task. However, TASKPM offers the option of selecting any welder within the company, without needing to specify that John Smith is the assigned person.
  • +
  • Company Load Control: The program allows for easy control of the company's resource load. This control extends to both the mid-term and long-term, as current and future projects can be managed within the program. TASKPM provides graphs that visually represent resource utilization.
  • +
  • Labels: Labels are used to categorize project tasks. With these labels, users can group tasks by concept, allowing for later review as a group or after filtering.
  • +
  • Filters: Because the system naturally includes elements that label or characterize tasks and resources, criteria filters or labels can be used. This is very useful for reviewing categorized information or generating specific reports based on criteria or labels.
  • +
  • Calendars: Calendars define the available productive hours for different resources. Users can create general company calendars or define more specific calendars, allowing for the creation of calendars for individual resources and tasks.
  • +
  • Orders and Order Elements: Work requested by clients is treated as an order within the application, structured into order elements. The order and its elements follow a hierarchical structure with x levels. This element tree forms the basis for work planning.
  • +
  • Progress: The program can manage various types of progress. A project's progress can be measured as a percentage, in units, against the agreed budget, and more. The responsibility for determining which type of progress to use for comparison at higher project levels lies with the planning manager.
  • +
  • Tasks: Tasks are the fundamental planning elements within the program. They are used to schedule work to be carried out. Key characteristics of tasks include: dependencies between tasks, and the potential requirement for specific criteria to be met before resources can be allocated.
  • +
  • Work Reports: These reports, submitted by the company's workers, detail the hours worked and the tasks associated with those hours. This information allows the system to calculate the actual time taken to complete a task compared to the budgeted time. Progress can then be compared against the actual hours used.
  • +
+

In addition to the core functions, TASKPM offers other features that distinguish it from similar programs:

+
    +
  • Integration with ERP: The program can directly import information from company ERP systems, including orders, human resources, work reports, and specific criteria.
  • +
  • Version Management: The program can manage multiple planning versions, while still allowing users to review the information from each version.
  • +
  • History Management: The program does not delete information; it only marks it as invalid. This allows users to review historical information using date filters.
  • +
+
+
+

Usability Conventions

+
+

Information About Forms

+

Before describing the various functions associated with the most important modules, we need to explain the general navigation and form behavior.

+

There are essentially three types of editing forms:

+
    +
  • Forms with a *Return* button: These forms are part of a larger context, and the changes made are stored in memory. The changes are only applied when the user explicitly saves all the details on the screen from which the form originated.
  • +
  • Forms with *Save* and *Close* buttons: These forms allow for two actions. The first saves the changes and closes the current window. The second closes the window without saving any changes.
  • +
  • Forms with *Save and continue*, *Save*, and *Close* buttons: These forms allow for three actions. The first saves the changes and keeps the current form open. The second saves the changes and closes the form. The third closes the window without saving any changes.
  • +
+
+
+

Standard Icons and Buttons

+
    +
  • Editing: In general, records in the program can be edited by clicking on an icon that looks like a pencil on a white notebook.
  • +
  • Left Indent: These operations are generally used for elements within a tree structure that need to be moved to a deeper level. This is done by clicking on the icon that looks like a green arrow pointing to the right.
  • +
  • Right Indent: These operations are generally used for elements within a tree structure that need to be moved to a higher level. This is done by clicking on the icon that looks like a green arrow pointing to the left.
  • +
  • Deleting: Users can delete information by clicking on the trash can icon.
  • +
  • Search: The magnifying glass icon indicates that the text field to its left is used for searching for elements.
  • +
+
+
+

Tabs

+

The program uses tabs to organize content editing and administration forms. This method is used to divide a comprehensive form into different sections, accessible by clicking on the tab names. The other tabs retain their current status. In all cases, the save and cancel options apply to all sub-forms within the different tabs.

+
+
+

Explicit Actions and Context Help

+

The program includes components that provide additional descriptions of elements when the mouse hovers over them for one second. The actions that the user can perform are indicated on the button labels, in the help texts associated with them, in the browsing menu options, and in the context menus that appear when right-clicking in the planner area. Furthermore, shortcuts are provided for the main operations, such as double-clicking on listed elements or using key events with the cursor and the Enter key to add elements when navigating through forms.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/02-criterios.html b/libreplan-webapp/src/main/webapp/help/en/02-criterios.html new file mode 100644 index 000000000..42fad10d3 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/02-criterios.html @@ -0,0 +1,69 @@ + + + + + + +Criteria + + + +
+

Criteria

+ +
+

Contents

+ +
+

Criteria are elements used within the program to categorize both resources and tasks. Tasks require specific criteria, and resources must meet those criteria.

+

Here's an example of how criteria are used: A resource is assigned the criterion "welder" (meaning the resource fulfills the "welder" category), and a task requires the "welder" criterion to be completed. Consequently, when resources are allocated to tasks using generic allocation (as opposed to specific allocation), workers with the "welder" criterion will be considered. For more information on the different types of allocation, refer to the chapter on resource allocation.

+

The program allows for several operations involving criteria:

+
    +
  • Criteria administration
  • +
  • Assigning criteria to resources
  • +
  • Assigning criteria to tasks
  • +
  • Filtering entities based on criteria. Tasks and order items can be filtered by criteria to perform various operations within the program.
  • +
+

This section will only explain the first function, criteria administration. The two types of allocation will be covered later: resource allocation in the "Resource Management" chapter, and filtering in the "Task Planning" chapter.

+
+

Criteria Administration

+

Criteria administration can be accessed through the administration menu:

+
+images/menu.png +

First-Level Menu Tabs

+
+

The specific operation for managing criteria is Manage criteria. This operation allows you to list the criteria available in the system.

+
+images/lista-criterios.png +

List of Criteria

+
+

You can access the create/edit criterion form by clicking the Create button. To edit an existing criterion, click the edit icon.

+
+images/edicion-criterio.png +

Editing Criteria

+
+

The criteria editing form, as shown in the previous image, allows you to perform the following operations:

+
    +
  • Edit the criterion's name.
  • +
  • Specify whether multiple values can be assigned simultaneously or only one value for the selected criterion type. For example, a resource could fulfill two criteria, "welder" and "lathe operator."
  • +
  • Specify the criterion type:
      +
    • Generic: A criterion that can be used for both machines and workers.
    • +
    • Worker: A criterion that can only be used for workers.
    • +
    • Machine: A criterion that can only be used for machines.
    • +
    +
  • +
  • Indicate whether the criterion is hierarchical. Sometimes, criteria need to be treated hierarchically. For example, assigning a criterion to an element does not automatically assign it to elements derived from it. A clear example of a hierarchical criterion is "location." For instance, a person designated with the location "Galicia" will also belong to "Spain."
  • +
  • Indicate whether the criterion is authorized. This is how users deactivate criteria. Once a criterion has been created and used in historical data, it cannot be changed. Instead, it can be deactivated to prevent it from appearing in selection lists.
  • +
  • Describe the criterion.
  • +
  • Add new values. A text entry field with the New criterion button is located in the second part of the form.
  • +
  • Edit the names of existing criteria values.
  • +
  • Move criteria values up or down in the list of current criteria values.
  • +
  • Remove a criterion value from the list.
  • +
+

The criteria administration form follows the form behavior described in the introduction, offering three actions: Save, Save and Close, and Close.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/03-calendarios.html b/libreplan-webapp/src/main/webapp/help/en/03-calendarios.html new file mode 100644 index 000000000..0d0bbf0d5 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/03-calendarios.html @@ -0,0 +1,187 @@ + + + + + + +Calendars + + + +
+

Calendars

+ + +

Calendars are entities within the program that define the working capacity of resources. A calendar consists of a series of days throughout the year, with each day divided into available working hours.

+

For example, a public holiday might have 0 available working hours. Conversely, a typical workday might have 8 hours designated as available working time.

+

There are two primary ways to define the number of working hours in a day:

+
    +
  • By Weekday: This method sets a standard number of working hours for each day of the week. For example, Mondays might typically have 8 working hours.
  • +
  • By Exception: This method allows for specific deviations from the standard weekday schedule. For example, Monday, January 30th, might have 10 working hours, overriding the standard Monday schedule.
  • +
+
+

Calendar Administration

+

The calendar system is hierarchical, allowing you to create base calendars and then derive new calendars from them, forming a tree structure. A calendar derived from a higher-level calendar will inherit its daily schedules and exceptions unless explicitly modified. To effectively manage calendars, it's important to understand the following concepts:

+
    +
  • Day Independence: Each day is treated independently, and each year has its own set of days. For example, if December 8th, 2009, is a public holiday, this does not automatically mean that December 8th, 2010, is also a public holiday.
  • +
  • Weekday-Based Working Days: Standard working days are based on weekdays. For example, if Mondays typically have 8 working hours, then all Mondays in all weeks of all years will have 8 available hours unless an exception is defined.
  • +
  • Exceptions and Exception Periods: You can define exceptions or exception periods to deviate from the standard weekday schedule. For example, you can specify a single day or a range of days with a different number of available working hours than the general rule for those weekdays.
  • +
+
+images/calendar-administration.png +

Calendar Administration

+
+

Calendar administration is accessible through the "Administration" menu. From there, users can perform the following actions:

+
    +
  1. Create a new calendar from scratch.
  2. +
  3. Create a calendar derived from an existing one.
  4. +
  5. Create a calendar as a copy of an existing one.
  6. +
  7. Edit an existing calendar.
  8. +
+
+

Creating a New Calendar

+

To create a new calendar, click the "Create" button. The system will display a form where you can configure the following:

+
    +
  • Select the Tab: Choose the tab you want to work on:
      +
    • Marking Exceptions: Define exceptions to the standard schedule.
    • +
    • Working Hours per Day: Define the standard working hours for each weekday.
    • +
    +
  • +
  • Marking Exceptions: If you select the "Marking Exceptions" option, you can:
      +
    • Select a specific day on the calendar.
    • +
    • Select the type of exception. The available types are: holiday, illness, strike, public holiday, and working holiday.
    • +
    • Select the end date of the exception period. (This field does not need to be changed for single-day exceptions.)
    • +
    • Define the number of working hours during the days of the exception period.
    • +
    • Delete previously defined exceptions.
    • +
    +
  • +
  • Working Hours per Day: If you select the "Working Hours per Day" option, you can:
      +
    • Define the available working hours for each weekday (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, and Sunday).
    • +
    • Define different weekly hour distributions for future periods.
    • +
    • Delete previously defined hour distributions.
    • +
    +
  • +
+

These options allow users to fully customize calendars according to their specific needs. Click the "Save" button to store any changes made to the form.

+
+images/calendar-edition.png +

Editing Calendars

+
+
+images/calendar-exceptions.png +

Adding an Exception to a Calendar

+
+
+
+

Creating Derived Calendars

+

A derived calendar is created based on an existing calendar. It inherits all the features of the original calendar, but you can modify it to include different options.

+

A common use case for derived calendars is when you have a general calendar for a country, such as Spain, and you need to create a derived calendar to include additional public holidays specific to a region, such as Galicia.

+

It's important to note that any changes made to the original calendar will automatically propagate to the derived calendar, unless a specific exception has been defined in the derived calendar. For example, the calendar for Spain might have an 8-hour working day on May 17th. However, the calendar for Galicia (a derived calendar) might have no working hours on that same day because it's a regional public holiday. If the Spanish calendar is later changed to have 4 available working hours per day for the week of May 17th, the Galician calendar will also change to have 4 available working hours for every day in that week, except for May 17th, which will remain a non-working day due to the defined exception.

+
+images/calendar-create-derived.png +

Creating a Derived Calendar

+
+

To create a derived calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Calendar administration option.
  • +
  • Select the calendar you want to use as the basis for the derived calendar and click the "Create" button.
  • +
  • The system will display an editing form with the same characteristics as the form used to create a calendar from scratch, except that the proposed exceptions and the working hours per weekday will be based on the original calendar.
  • +
+
+
+

Creating a Calendar by Copying

+

A copied calendar is an exact duplicate of an existing calendar. It inherits all the features of the original calendar, but you can modify it independently.

+

The key difference between a copied calendar and a derived calendar is how they are affected by changes to the original. If the original calendar is modified, the copied calendar remains unchanged. However, derived calendars are affected by changes made to the original, unless an exception is defined.

+

A common use case for copied calendars is when you have a calendar for one location, such as "Pontevedra," and you need a similar calendar for another location, such as "A Coruña," where most of the features are the same. However, changes to one calendar should not affect the other.

+

To create a copied calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Calendar administration option.
  • +
  • Select the calendar you want to copy and click the "Create" button.
  • +
  • The system will display an editing form with the same characteristics as the form used to create a calendar from scratch, except that the proposed exceptions and the working hours per weekday will be based on the original calendar.
  • +
+
+
+

Default Calendar

+

One of the existing calendars can be designated as the default calendar. This calendar will be automatically assigned to any entity in the system that is managed with calendars unless a different calendar is specified.

+

To set up a default calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Configuration option.
  • +
  • In the Default calendar field, select the calendar you want to use as the program's default calendar.
  • +
  • Click Save.
  • +
+
+images/default-calendar.png +

Setting a Default Calendar

+
+
+
+

Assigning a Calendar to Resources

+

Resources can only be activated (i.e., have available working hours) if they have an assigned calendar with a valid activation period. If no calendar is assigned to a resource, the default calendar is assigned automatically, with an activation period that begins on the start date and has no expiry date.

+
+images/resource-calendar.png +

Resource Calendar

+
+

However, you can delete the calendar that has been previously assigned to a resource and create a new calendar based on an existing one. This allows for complete customization of calendars for individual resources.

+

To assign a calendar to a resource:

+
    +
  • Go to the Edit resources option.
  • +
  • Select a resource and click Edit.
  • +
  • Select the "Calendar" tab.
  • +
  • The calendar, along with its exceptions, working hours per day, and activation periods, will be displayed.
  • +
  • Each tab will have the following options:
      +
    • Exceptions: Define exceptions and the period to which they apply, such as holidays, public holidays, or different workdays.
    • +
    • Working Week: Modify the working hours for each weekday (Monday, Tuesday, etc.).
    • +
    • Activation Periods: Create new activation periods to reflect the start and end dates of contracts associated with the resource. See the following image.
    • +
    +
  • +
  • Click Save to store the information.
  • +
  • Click Delete if you want to change the calendar assigned to a resource.
  • +
+
+images/new-resource-calendar.png +

Assigning a New Calendar to a Resource

+
+
+
+

Assigning Calendars to Orders

+

Projects can have a different calendar than the default calendar. To change the calendar for an order:

+
    +
  • Access the order list in the company overview.
  • +
  • Edit the order in question.
  • +
  • Access the "General information" tab.
  • +
  • Select the calendar to be assigned from the drop-down menu.
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+

Assigning Calendars to Tasks

+

Similar to resources and orders, you can assign specific calendars to individual tasks. This allows you to define different calendars for specific stages of a project. To assign a calendar to a task:

+
    +
  • Access the planning view of a project.
  • +
  • Right-click the task to which you want to assign a calendar.
  • +
  • Select the "Assign calendar" option.
  • +
  • Select the calendar to be assigned to the task.
  • +
  • Click Accept.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/04-avances.html b/libreplan-webapp/src/main/webapp/help/en/04-avances.html new file mode 100644 index 000000000..615d6109f --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/04-avances.html @@ -0,0 +1,97 @@ + + + + + + +Progress + + + +
+

Progress

+ + +

Project progress indicates the degree to which the estimated completion time of the project is being met. Task progress indicates the degree to which the task is being completed according to its estimated completion.

+

Generally, progress cannot be measured automatically. A staff member with experience or a checklist must determine the degree of completion for a task or project.

+

It's important to note the distinction between the hours assigned to a task or project and the progress of that task or project. While the number of hours used may be more or less than expected, the project may be ahead of or behind its estimated completion on the monitored day. Several situations can arise from these two measurements:

+
    +
  • Fewer hours consumed than expected, but the project is behind schedule: Progress is lower than estimated for the monitored day.
  • +
  • Fewer hours consumed than expected, and the project is ahead of schedule: Progress is higher than estimated for the monitored day.
  • +
  • More hours consumed than expected, and the project is behind schedule: Progress is lower than estimated for the monitored day.
  • +
  • More hours consumed than expected, but the project is ahead of schedule: Progress is higher than estimated for the monitored day.
  • +
+

The planning view allows you to compare these situations by using information about the progress made and the hours used. This chapter will explain how to enter information to monitor progress.

+

The philosophy behind progress monitoring is based on users defining the level at which they want to monitor their projects. For example, if users want to monitor orders, they only need to enter information for level-1 elements. If they want more precise monitoring at the task level, they must enter progress information at lower levels. The system will then aggregate the data upward through the hierarchy.

+
+

Managing Progress Types

+

Companies have varying needs when monitoring project progress, particularly the tasks involved. Therefore, the system includes "progress types." Users can define different progress types to measure a task's progress. For example, a task can be measured as a percentage, but this percentage can also be translated into progress in Tonnes based on the agreement with the client.

+

A progress type has a name, a maximum value, and a precision value:

+
    +
  • Name: A descriptive name that users will recognize when selecting the progress type. This name should clearly indicate what kind of progress is being measured.
  • +
  • Maximum Value: The maximum value that can be established for a task or project as the total progress measurement. For example, if you're working with Tonnes and the normal maximum is 4000 tonnes, and no task will ever require more than 4000 tonnes of any material, then 4000 would be the maximum value.
  • +
  • Precision Value: The increment value allowed for the progress type. For example, if progress in Tonnes is to be measured in whole numbers, the precision value would be 1. From that point on, only whole numbers can be entered as progress measurements (e.g., 1, 2, 300).
  • +
+

The system has two default progress types:

+
    +
  • Percentage: A general progress type that measures the progress of a project or task based on an estimated completion percentage. For example, a task is 30% complete out of the 100% estimated for a specific day.
  • +
  • Units: A general progress type that measures progress in units without specifying the type of unit. For example, a task involves creating 3000 units, and the progress is 500 units out of the total of 3000.
  • +
+
+images/tipos-avances.png +

Administration of Progress Types

+
+

Users can create new progress types as follows:

+
    +
  • Go to the "Administration" section.
  • +
  • Click the "Manage types of progress" option in the second-level menu.
  • +
  • The system will display a list of existing progress types.
  • +
  • For each progress type, users can:
      +
    • Edit
    • +
    • Delete
    • +
    +
  • +
  • Users can then create a new progress type.
  • +
  • When editing or creating a progress type, the system displays a form with the following information:
      +
    • Name of the progress type.
    • +
    • Maximum value allowed for the progress type.
    • +
    • Precision value for the progress type.
    • +
    +
  • +
+
+
+

Entering Progress Based on Type

+

Progress is entered for order elements, but it can also be entered using a shortcut from the planning tasks. Users are responsible for deciding which progress type to associate with each order element.

+

Users can enter a single, default progress type for the entire order.

+

Before measuring progress, users must associate the chosen progress type with the order. For example, they might choose percentage progress to measure progress on the entire task or an agreed progress rate if progress measurements agreed upon with the client will be entered in the future.

+
+images/avance.png +

Progress Entry Screen with Graphic Visualization

+
+

To enter progress measurements:

+
    +
  • Select the progress type to which the progress will be added. +* If no progress type exists, a new one must be created.
  • +
  • In the form that appears under the "Value" and "Date" fields, enter the absolute value of the measurement and the date of the measurement.
  • +
  • The system automatically stores the entered data.
  • +
+
+
+

Comparing Progress for an Order Element

+

Users can graphically compare the progress made on orders with the measurements taken. All progress types have a column with a check button ("Show"). When this button is selected, the progress chart of measurements taken is displayed for the order element.

+
+images/contraste-avance.png +

Comparison of Several Progress Types

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/05-recursos.html b/libreplan-webapp/src/main/webapp/help/en/05-recursos.html new file mode 100644 index 000000000..07190538a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/05-recursos.html @@ -0,0 +1,186 @@ + + + + + + +Resource Management + + + +
+

Resource Management

+ + +

The program manages two distinct types of resources: staff and machines.

+
+

Staff Resources

+

Staff resources represent the company's workers. Their key characteristics are:

+
    +
  • They fulfill one or more generic or worker-specific criteria.
  • +
  • They can be specifically assigned to a task.
  • +
  • They can be assigned generically to a task that requires a resource criterion.
  • +
  • They can have a default or a specific calendar, as needed.
  • +
+
+
+

Machine Resources

+

Machine resources represent the company's machinery. Their key characteristics are:

+
    +
  • They fulfill one or more generic or machine-specific criteria.
  • +
  • They can be specifically assigned to a task.
  • +
  • They can be assigned generically to a task that requires a machine criterion.
  • +
  • They can have a default or a specific calendar, as needed.
  • +
  • The program includes a configuration screen where an alpha value can be defined to represent the machine/worker ratio.
      +
    • The alpha value indicates the amount of worker time required to operate the machine. For example, an alpha value of 0.5 means that every 8 hours of machine operation requires 4 hours of a worker's time.
    • +
    • Users can assign an alpha value specifically to a worker, designating that worker to operate the machine for that percentage of time.
    • +
    • Users can also make a generic assignment based on a criterion, so that a percentage of use is assigned to all resources that meet that criterion and have available time. Generic assignment works similarly to generic assignment for tasks, as described previously.
    • +
    +
  • +
+
+
+

Managing Resources

+

Users can create, edit, and deactivate (but not permanently delete) workers and machines within the company by navigating to the "Resources" section. This section provides the following features:

+
    +
  • List of Workers: Displays a numbered list of workers, allowing users to manage their details.
  • +
  • List of Machines: Displays a numbered list of machines, allowing users to manage their details.
  • +
+
+

Managing Workers

+

Worker management is accessed by going to the "Resources" section and then selecting "List of workers." Users can edit any worker in the list by clicking the standard edit icon.

+

When editing a worker, users can access the following tabs:

+
    +
  1. Worker Details: This tab allows users to edit the worker's basic identification details:

    +
      +
    • Name
    • +
    • Surname(s)
    • +
    • National ID document (DNI)
    • +
    • Queue-based resource (see section on Queue-based Resources)
    • +
    +
    +images/worker-personal-data.png +

    Editing Workers' Personal Details

    +
    +
  2. +
  3. Criteria: This tab is used to configure the criteria that a worker fulfills. Users can assign any worker or generic criteria they deem appropriate. It's crucial for workers to fulfill criteria to maximize the program's functionality. To assign criteria:

    +
      +
    1. Click the "Add criteria" button.
    2. +
    3. Search for the criterion to be added and select the most appropriate one.
    4. +
    5. Click the "Add" button.
    6. +
    7. Select the start date when the criterion becomes applicable.
    8. +
    9. Select the end date for applying the criterion to the resource. This date is optional if the criterion is considered indefinite.
    10. +
    +
    +images/worker-criterions.png +

    Associating Criteria with Workers

    +
    +
  4. +
  5. Calendar: This tab allows users to configure a specific calendar for the worker. All workers have a default calendar assigned; however, it's possible to assign a specific calendar to each worker based on an existing calendar.

    +
    +images/worker-calendar.png +

    Calendar Tab for a Resource

    +
    +
  6. +
  7. Cost Category: This tab allows users to configure the cost category that a worker fulfills during a given period. This information is used to calculate the costs associated with a worker on a project.

    +
    +images/worker-costcategory.png +

    Cost Category Tab for a Resource

    +
    +
  8. +
+

Resource assignment is explained in the "Resource Assignment" section.

+
+
+

Managing Machines

+

Machines are treated as resources for all purposes. Therefore, similar to workers, machines can be managed and assigned to tasks. Resource assignment is covered in the "Resource Assignment" section, which will explain the specific features of machines.

+

Machines are managed from the "Resources" menu entry. This section has an operation called "Machine list," which displays the company's machines. Users can edit or delete a machine from this list.

+

When editing machines, the system displays a series of tabs for managing different details:

+
    +
  1. Machine Details: This tab allows users to edit the machine's identification details:

    +
      +
    1. Name
    2. +
    3. Machine code
    4. +
    5. Description of the machine
    6. +
    +
    +images/machine-data.png +

    Editing Machine Details

    +
    +
  2. +
  3. Criteria: As with worker resources, this tab is used to add criteria that the machine fulfills. Two types of criteria can be assigned to machines: machine-specific or generic. Worker criteria cannot be assigned to machines. To assign criteria:

    +
      +
    1. Click the "Add criteria" button.
    2. +
    3. Search for the criterion to be added and select the most appropriate one.
    4. +
    5. Select the start date when the criterion becomes applicable.
    6. +
    7. Select the end date for applying the criterion to the resource. This date is optional if the criterion is considered indefinite.
    8. +
    9. Click the "Save and continue" button.
    10. +
    +
    +images/machine-criterions.png +

    Assigning Criteria to Machines

    +
    +
  4. +
  5. Calendar: This tab allows users to configure a specific calendar for the machine. All machines have a default calendar assigned; however, it's possible to assign a specific calendar to each machine based on an existing calendar.

    +
    +images/machine-calendar.png +

    Assigning Calendars to Machines

    +
    +
  6. +
  7. Machine Configuration: This tab allows users to configure the ratio of machines to worker resources. A machine has an alpha value that indicates the machine/worker ratio. As mentioned previously, an alpha value of 0.5 indicates that 0.5 people are required for each full day of machine operation. Based on the alpha value, the system automatically assigns workers who are associated with the machine once the machine is assigned to a task. Associating a worker with a machine can be done in two ways:

    +
      +
    1. Specific Assignment: Assign a range of dates during which the worker is assigned to the machine. This is a specific assignment, as the system automatically assigns hours to the worker when the machine is scheduled.
    2. +
    3. Generic Assignment: Assign criteria that must be fulfilled by workers assigned to the machine. This creates a generic assignment of workers who meet the criteria.
    4. +
    +
    +images/machine-configuration.png +

    Configuration of Machines

    +
    +
  8. +
  9. Cost Category: This tab allows users to configure the cost category that a machine fulfills during a given period. This information is used to calculate the costs associated with a machine on a project.

    +
    +images/machine-costcategory.png +

    Assigning Cost Categories to Machines

    +
    +
  10. +
+
+
+

Virtual Worker Groups

+

The program allows users to create virtual worker groups, which are not real workers but simulated staff. These groups enable users to model increased production capacity at specific times, based on the calendar settings.

+

Virtual worker groups allow users to assess how project planning would be affected by hiring and assigning staff who meet specific criteria, thus aiding in the decision-making process.

+

The tabs for creating virtual worker groups are the same as those for configuring workers:

+
    +
  • General Details
  • +
  • Assigned Criteria
  • +
  • Calendars
  • +
  • Associated Hours
  • +
+

The difference between virtual worker groups and actual workers is that virtual worker groups have a name for the group and a quantity, which represents the number of real people in the group. There is also a field for comments, where additional information can be provided, such as which project would require hiring equivalent to the virtual worker group.

+
+images/virtual-resources.png +

Virtual Resources

+
+
+
+

Queue-based Resources

+

Queue-based resources are a specific type of productive element that can either be unassigned or have 100% dedication. In other words, they cannot have more than one task scheduled at the same time, nor can they be over-allocated.

+

For each queue-based resource, a queue is automatically created. The tasks scheduled for these resources can be managed specifically using the provided assignment methods, creating automatic assignments between tasks and queues that match the required criteria, or by moving tasks between queues.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/06-pedidos.html b/libreplan-webapp/src/main/webapp/help/en/06-pedidos.html new file mode 100644 index 000000000..87fd79071 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/06-pedidos.html @@ -0,0 +1,315 @@ + + + + + + +Orders and Order Elements + + + +
+

Orders and Order Elements

+ + +

Orders represent the work to be performed by users of the program. Each order corresponds to a project that the company will offer to its clients.

+

An order consists of one or more order elements. Each order element represents a specific part of the work to be done and defines how the work on the order should be planned and executed. Order elements are organized hierarchically, with no limitations on the depth of the hierarchy. This hierarchical structure allows for the inheritance of certain features, such as labels.

+

The following sections describe the operations that users can perform with orders and order elements.

+
+

Orders

+

An order represents a project or work requested by a client from the company. The order identifies the project within the company's planning. Unlike comprehensive management programs, TASKPM only requires certain key details for an order. These details are:

+
    +
  • Order Name: The name of the order.
  • +
  • Order Code: A unique code for the order.
  • +
  • Total Order Amount: The total financial value of the order.
  • +
  • Estimated Start Date: The planned start date for the order.
  • +
  • End Date: The planned completion date for the order.
  • +
  • Person in Charge: The individual responsible for the order.
  • +
  • Description: A description of the order.
  • +
  • Assigned Calendar: The calendar associated with the order.
  • +
  • Automatic Generation of Codes: A setting to instruct the system to automatically generate codes for order elements and hour groups.
  • +
  • Preference between Dependencies and Restrictions: Users can choose whether dependencies or restrictions take priority in case of conflicts.
  • +
+

However, a complete order also includes other associated entities:

+
    +
  • Hours Assigned to the Order: The total hours allocated to the order.
  • +
  • Progress Attributed to the Order: The progress made on the order.
  • +
  • Labels: Labels assigned to the order.
  • +
  • Criteria Assigned to the Order: Criteria associated with the order.
  • +
  • Materials: Materials required for the order.
  • +
  • Quality Forms: Quality forms associated with the order.
  • +
+

Creating or editing an order can be done from several locations within the program:

+
    +
  • From the "Order List" in the Company Overview:
      +
    • Editing: Click the edit button on the desired order.
    • +
    • Creating: Click "New order."
    • +
    +
  • +
  • From an Order in the Gantt Chart: Change to the order details view.
  • +
+

Users can access the following tabs when editing an order:

+
    +
  • Editing Order Details: This screen allows users to edit basic order details:

    +
      +
    • Name
    • +
    • Code
    • +
    • Estimated Start Date
    • +
    • End Date
    • +
    • Person in Charge
    • +
    • Client
    • +
    • Description
    • +
    +
    +images/order-edition.png +

    Editing Orders

    +
    +
  • +
  • Order Element List: This screen allows users to perform several operations on order elements:

    +
      +
    • Creating new order elements.
    • +
    • Promoting an order element one level up in the hierarchy.
    • +
    • Demoting an order element one level down in the hierarchy.
    • +
    • Indenting an order element (moving it down the hierarchy).
    • +
    • Unindenting an order element (moving it up the hierarchy).
    • +
    • Filtering order elements.
    • +
    • Deleting order elements.
    • +
    • Moving an element within the hierarchy by dragging and dropping.
    • +
    +
    +images/order-elements-list.png +

    Order Element List

    +
    +
  • +
  • Assigned Hours: This screen displays the total hours attributed to the project, grouping the hours entered in the order elements.

    +
    +images/order-assigned-hours.png +

    Assigning Hours Attributed to the Order by Workers

    +
    +
  • +
  • Progress: This screen allows users to assign progress types and enter progress measurements for the order. See the "Progress" section for more details.

    +
  • +
  • Labels: This screen allows users to assign labels to an order and view previously assigned direct and indirect labels. See the following section on editing order elements for a detailed description of label management.

    +
    +images/order-labels.png +

    Order Labels

    +
    +
  • +
  • Criteria: This screen allows users to assign criteria that will apply to all tasks within the order. These criteria will be automatically applied to all order elements, except those that have been explicitly invalidated. The hour groups of order elements, which are grouped by criteria, can also be viewed, allowing users to identify the criteria required for an order.

    +
    +images/order-criterions.png +

    Order Criteria

    +
    +
  • +
  • Materials: This screen allows users to assign materials to orders. Materials can be selected from the available material categories in the program. Materials are managed as follows:

    +
      +
    • Select the "Search materials" tab at the bottom of the screen.
    • +
    • Enter text to search for materials or select the categories for which you want to find materials.
    • +
    • The system filters the results.
    • +
    • Select the desired materials (multiple materials can be selected by pressing the "Ctrl" key).
    • +
    • Click "Assign."
    • +
    • The system displays the list of materials already assigned to the order.
    • +
    • Select the units and the status to assign to the order.
    • +
    • Click "Save" or "Save and continue."
    • +
    • To manage the receipt of materials, click "Divide" to change the status of a partial quantity of material.
    • +
    +
    +images/order-material.png +

    Materials Associated with an Order

    +
    +
  • +
  • Quality: Users can assign a quality form to the order. This form is then completed to ensure that certain activities associated with the order are carried out. See the following section on editing order elements for details on managing quality forms.

    +
    +images/order-quality.png +

    Quality Form Associated with the Order

    +
    +
  • +
+
+
+

Editing Order Elements

+

Order elements are edited from the "Order element list" tab by clicking the edit icon. This opens a new screen where users can:

+
    +
  • Edit information about the order element.
  • +
  • View hours attributed to order elements.
  • +
  • Manage progress of order elements.
  • +
  • Manage order labels.
  • +
  • Manage criteria required by the order element.
  • +
  • Manage materials.
  • +
  • Manage quality forms.
  • +
+

The following subsections describe each of these operations in detail.

+
+

Editing Information about the Order Element

+

Editing information about the order element includes modifying the following details:

+
    +
  • Order Element Name: The name of the order element.
  • +
  • Order Element Code: A unique code for the order element.
  • +
  • Start Date: The planned start date of the order element.
  • +
  • Estimated End Date: The planned completion date of the order element.
  • +
  • Total Hours: The total hours allocated to the order element. These hours can be calculated from the added hour groups or entered directly. If entered directly, the hours must be distributed among the hour groups, and a new hour group created if the percentages do not match the initial percentages.
  • +
  • Hour Groups: One or more hour groups can be added to the order element. The purpose of these hour groups is to define the requirements for the resources that will be assigned to perform the work.
  • +
  • Criteria: Criteria can be added that must be met to enable generic assignment for the order element.
  • +
+
+images/order-element-edition.png +

Editing Order Elements

+
+
+
+

Viewing Hours Attributed to Order Elements

+

The "Assigned hours" tab allows users to view the work reports associated with an order element and see how many of the estimated hours have already been completed.

+
+images/order-element-hours.png +

Hours Assigned to Order Elements

+
+

The screen is divided into two parts:

+
    +
  • Work Report List: Users can view the list of work reports associated with the order element, including the date and time, resource, and number of hours devoted to the task.
  • +
  • Use of Estimated Hours: The system calculates the total number of hours devoted to the task and compares them with the estimated hours.
  • +
+
+
+

Managing Progress of Order Elements

+

Entering progress types and managing order element progress is described in the "Progress" chapter.

+
+
+

Managing Order Labels

+

Labels, as described in the chapter on labels, allow users to categorize order elements. This enables users to group planning or order information based on these labels.

+

Users can assign labels directly to an order element or to a higher-level order element in the hierarchy. Once a label is assigned using either method, the order element and the related planning task are associated with the label and can be used for subsequent filtering.

+
+images/order-element-tags.png +

Assigning Labels for Order Elements

+
+

As shown in the image, users can perform the following actions from the Labels tab:

+
    +
  • View Inherited Labels: View labels associated with the order element that were inherited from a higher-level order element. The planning task associated with each order element has the same associated labels.
  • +
  • View Directly Assigned Labels: View labels directly associated with the order element using the assignment form for lower-level labels.
  • +
  • Assign Existing Labels: Assign labels by searching for them among the available labels in the form below the direct label list. To search for a label, click the magnifying glass icon or enter the first letters of the label in the text box to display the available options.
  • +
  • Create and Assign New Labels: Create new labels associated with an existing label type from this form. To do this, select a label type and enter the label value for the selected type. The system automatically creates the label and assigns it to the order element when "Create and assign" is clicked.
  • +
+
+
+

Managing Criteria Required by the Order Element and Hour Groups

+

Both an order and an order element can have criteria assigned that must be met for the work to be performed. Criteria can be direct or indirect:

+
    +
  • Direct Criteria: These are assigned directly to the order element. They are criteria required by the hour groups on the order element.
  • +
  • Indirect Criteria: These are assigned to higher-level order elements in the hierarchy and are inherited by the element being edited.
  • +
+

In addition to the required criteria, one or more hour groups that are part of the order element can be defined. This depends on whether the order element contains other order elements as child nodes or if it is a leaf node. In the first case, information about hours and hour groups can only be viewed. However, leaf nodes can be edited. Leaf nodes work as follows:

+
    +
  • The system creates a default hour group associated with the order element. The details that can be modified for an hour group are:
      +
    • Code: The code for the hour group (if not automatically generated).
    • +
    • Criterion Type: Users can choose to assign a machine or worker criterion.
    • +
    • Number of Hours: The number of hours in the hour group.
    • +
    • List of Criteria: The criteria to be applied to the hour group. To add new criteria, click "Add criterion" and select one from the search engine that appears after clicking the button.
    • +
    +
  • +
  • Users can add new hour groups with different features than previous hour groups. For example, an order element might require a welder (30 hours) and a painter (40 hours).
  • +
+
+images/order-element-criterion.png +

Assigning Criteria to Order Elements

+
+
+
+

Managing Materials

+

Materials are managed in projects as a list associated with each order element or an order in general. The list of materials includes the following fields:

+
    +
  • Code: The material code.
  • +
  • Date: The date associated with the material.
  • +
  • Units: The required number of units.
  • +
  • Unit Type: The type of unit used to measure the material.
  • +
  • Unit Price: The price per unit.
  • +
  • Total Price: The total price (calculated by multiplying the unit price by the number of units).
  • +
  • Category: The category to which the material belongs.
  • +
  • Status: The status of the material (e.g., Received, Requested, Pending, Processing, Cancelled).
  • +
+

Working with materials is done as follows:

+
    +
  • Select the "Materials" tab on an order element.
  • +
  • The system displays two sub-tabs: "Materials" and "Search materials."
  • +
  • If the order element has no assigned materials, the first tab will be empty.
  • +
  • Click "Search materials" in the lower-left part of the window.
  • +
  • The system displays the list of available categories and associated materials.
  • +
+
+images/order-element-material-search.png +

Searching for Materials

+
+
    +
  • Select categories to refine the material search.
  • +
  • The system displays the materials that belong to the selected categories.
  • +
  • From the materials list, select the materials to assign to the order element.
  • +
  • Click "Assign."
  • +
  • The system displays the selected list of materials on the "Materials" tab with new fields to complete.
  • +
+
+images/order-element-material-assign.png +

Assigning Materials to Order Elements

+
+
    +
  • Select the units, status, and date for the assigned materials.
  • +
+

For subsequent monitoring of materials, it's possible to change the status of a group of units of the received material. This is done as follows:

+
    +
  • Click the "Divide" button on the list of materials to the right of each row.
  • +
  • Select the number of units to divide the row into.
  • +
  • The program displays two rows with the material divided.
  • +
  • Change the status of the row containing the material.
  • +
+

The advantage of using this dividing tool is the ability to receive partial deliveries of material without having to wait for the entire delivery to mark it as received.

+
+
+

Managing Quality Forms

+

Some order elements require certification that certain tasks have been completed before they can be marked as complete. This is why the program has quality forms, which consist of a list of questions that are considered important if answered positively.

+

It's important to note that a quality form must be created beforehand to be assigned to an order element.

+

To manage quality forms:

+
    +
  • Go to the "Quality forms" tab.

    +
    +images/order-element-quality.png +

    Assigning Quality Forms to Order Elements

    +
    +
  • +
  • The program has a search engine for quality forms. There are two types of quality forms: by element or by percentage.

    +
      +
    • Element: Each element is independent.
    • +
    • Percentage: Each question increases the progress of the order element by a percentage. The percentages must be able to add up to 100%.
    • +
    +
  • +
  • Select one of the forms created in the administration interface and click "Assign."

    +
  • +
  • The program assigns the chosen form from the list of forms assigned to the order element.

    +
  • +
  • Click the "Edit" button on the order element.

    +
  • +
  • The program displays the questions from the quality form in the lower list.

    +
  • +
  • Mark the questions that have been completed as achieved.

    +
      +
    • If the quality form is based on percentages, the questions are answered in order.
    • +
    • If the quality form is based on elements, the questions can be answered in any order.
    • +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/07-planificacion.html b/libreplan-webapp/src/main/webapp/help/en/07-planificacion.html new file mode 100644 index 000000000..7b8954f83 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/07-planificacion.html @@ -0,0 +1,117 @@ + + + + + + +Task Planning + + + +
+

Task Planning

+ + +
+

Task Planning

+

Planning in TASKPM is a process that has been described throughout the user guide, with the chapters on orders and resource assignment being particularly important. This chapter describes the basic planning procedures after the order and Gantt charts have been properly configured.

+
+images/planning-view.png +

Work Planning View

+
+

As with the company overview, the project planning view is divided into several views based on the information being analyzed. The views available for a specific project are:

+
    +
  • Planning View
  • +
  • Resource Load View
  • +
  • Order List View
  • +
  • Advanced Assignment View
  • +
+
+

Planning View

+

The Planning View combines three different perspectives:

+
    +
  • Project Planning: Project planning is displayed in the upper right-hand part of the program as a Gantt chart. This view allows users to temporarily move tasks, assign dependencies between them, define milestones, and establish restrictions.
  • +
  • Resource Load: The Resource Load view, located in the lower right-hand part of the screen, shows resource availability based on assignments, as opposed to the assignments made to tasks. The information displayed in this view is as follows:
      +
    • Purple Area: Indicates a resource load below 100% of its capacity.
    • +
    • Green Area: Indicates a resource load below 100%, resulting from the resource being planned for another project.
    • +
    • Orange Area: Indicates a resource load over 100% as a result of the current project.
    • +
    • Yellow Area: Indicates a resource load over 100% as a result of other projects.
    • +
    +
  • +
  • Graph View and Earned Value Indicators: These can be viewed from the "Earned Value" tab. The generated graph is based on the earned value technique, and the indicators are calculated for each workday of the project. The calculated indicators are:
      +
    • BCWS (Budgeted Cost of Work Scheduled): The cumulative time function for the number of hours planned up to a certain date. It will be 0 at the planned start of the task and equal to the total number of planned hours at the end. As with all cumulative graphs, it will always increase. The function for a task will be the sum of the daily assignments until the calculation date. This function has values for all times, provided that resources have been assigned.
    • +
    • ACWP (Actual Cost of Work Performed): The cumulative time function for the hours reported in work reports up to a certain date. This function will only have a value of 0 before the date of the task's first work report, and its value will continue to increase as time passes and work report hours are added. It will have no value after the date of the last work report.
    • +
    • BCWP (Budgeted Cost of Work Performed): The cumulative time function that includes the resultant value of multiplying task progress by the amount of work that the task was estimated to require for completion. This function's values increase as time passes, as do progress values. Progress is multiplied by the total number of estimated hours for all tasks. The BCWP value is the sum of the values for the tasks being calculated. Progress is totaled when it is configured.
    • +
    • CV (Cost Variance): CV = BCWP - ACWP
    • +
    • SV (Schedule Variance): SV = BCWP - BCWS
    • +
    • BAC (Budget at Completion): BAC = max (BCWS)
    • +
    • EAC (Estimate at Completion): EAC = (ACWP / BCWP) * BAC
    • +
    • VAC (Variance at Completion): VAC = BAC - EAC
    • +
    • ETC (Estimate to Complete): ETC = EAC - ACWP
    • +
    • CPI (Cost Performance Index): CPI = BCWP / ACWP
    • +
    • SPI (Schedule Performance Index): SPI = BCWP / BCWS
    • +
    +
  • +
+

In the project planning view, users can perform the following actions:

+
    +
  • Assigning Dependencies: Right-click a task, choose "Add dependency," and drag the mouse pointer to the task to which the dependency should be assigned.
      +
    • To change the type of dependency, right-click the dependency and choose the desired type.
    • +
    +
  • +
  • Creating a New Milestone: Click the task before which the milestone is to be added and select the "Add milestone" option. Milestones can be moved by selecting the milestone with the mouse pointer and dragging it to the desired position.
  • +
  • Moving Tasks without Disturbing Dependencies: Right-click the body of the task and drag it to the desired position. If no restrictions or dependencies are violated, the system will update the daily assignment of resources to the task and place the task on the selected date.
  • +
  • Assigning Restrictions: Click the task in question and select the "Task properties" option. A pop-up window will appear with a "Restrictions" field that can be modified. Restrictions can conflict with dependencies, which is why each order specifies whether dependencies take priority over restrictions. The restrictions that can be established are:
      +
    • As Soon as Possible: Indicates that the task must start as soon as possible.
    • +
    • Not Before: Indicates that the task must not start before a certain date.
    • +
    • Start on a Specific Date: Indicates that the task must start on a specific date.
    • +
    +
  • +
+

The planning view also offers several procedures that function as viewing options:

+
    +
  • Zoom Level: Users can choose the desired zoom level. There are several zoom levels: annual, four-monthly, monthly, weekly, and daily.
  • +
  • Search Filters: Users can filter tasks based on labels or criteria.
  • +
  • Critical Path: As a result of using the Dijkstra algorithm to calculate paths on graphs, the critical path was implemented. It can be viewed by clicking the "Critical path" button in the viewing options.
  • +
  • Show Labels: Enables users to view the labels assigned to tasks in a project, which can be viewed on screen or printed.
  • +
  • Show Resources: Enables users to view the resources assigned to tasks in a project, which can be viewed on screen or printed.
  • +
  • Print: Enables users to print the Gantt chart being viewed.
  • +
+
+
+

Resource Load View

+

The Resource Load View provides a list of resources that contains a list of tasks or criteria that generate workloads. Each task or criterion is shown as a Gantt chart so that the start and end dates of the load can be seen. A different color is shown depending on whether the resource has a load that is higher or lower than 100%:

+
    +
  • Green: Load lower than 100%
  • +
  • Orange: 100% load
  • +
  • Red: Load over 100%
  • +
+
+images/resource-load.png +

Resource Load View for a Specific Order

+
+

If the mouse pointer is placed on the resource's Gantt chart, the load percentage for the worker will be shown.

+
+
+

Order List View

+

The Order List View allows users to access the order editing and deleting options. See the "Orders" chapter for more information.

+
+
+

Advanced Assignment View

+

The Advanced Assignment View is explained in depth in the "Resource Assignment" chapter.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/08-asignacion.html b/libreplan-webapp/src/main/webapp/help/en/08-asignacion.html new file mode 100644 index 000000000..46da7239c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/08-asignacion.html @@ -0,0 +1,179 @@ + + + + + + +Resource Assignment + + + +
+

Resource Assignment

+ + +

Resource assignment is one of the program's most important features and can be carried out in two different ways:

+
    +
  • Specific assignment
  • +
  • Generic assignment
  • +
+

Both types of assignment are explained in the following sections.

+

To perform either type of resource assignment, the following steps are necessary:

+
    +
  • Go to the planning view of an order.
  • +
  • Right-click on the task to be planned.
  • +
+
+images/resource-assignment-planning.png +

Resource Assignment Menu

+
+
    +
  • The program displays a screen with the following information:
      +
    • List of Criteria to be Fulfilled: For each hour group, a list of required criteria is shown.
    • +
    • Task Information: The start and end dates of the task.
    • +
    • Type of Calculation: The system allows users to choose the strategy for calculating assignments:
        +
      • Calculate Number of Hours: This calculates the number of hours required from the assigned resources, given an end date and a number of resources per day.
      • +
      • Calculate End Date: This calculates the end date of the task based on the number of resources assigned to the task and the total number of hours required to complete the task.
      • +
      • Calculate Number of Resources: This calculates the number of resources required to finish the task by a specific date, given a known number of hours per resource.
      • +
      +
    • +
    • Recommended Assignment: This option allows the program to gather the criteria to be fulfilled and the total number of hours from all hour groups, and then recommend a generic assignment. If a prior assignment exists, the system deletes it and replaces it with the new one.
    • +
    • Assignments: A list of assignments that have been made. This list shows the generic assignments (the number will be the list of fulfilled criteria, and the number of hours and resources per day). Each assignment can be explicitly removed by clicking the delete button.
    • +
    +
  • +
+
+images/resource-assignment.png +

Resource Assignment

+
+
    +
  • Users select "Search resources."
  • +
  • The program displays a new screen consisting of a criteria tree and a list of workers who fulfill the selected criteria on the right:
  • +
+
+images/resource-assignment-search.png +

Resource Assignment Search

+
+
    +
  • Users can select:
      +
    • Specific Assignment: See the "Specific Assignment" section for details on this option.
    • +
    • Generic Assignment: See the "Generic Assignment" section for details on this option.
    • +
    +
  • +
  • Users select a list of criteria (generic) or a list of workers (specific). Multiple selections can be made by pressing the "Ctrl" key while clicking each worker/criterion.
  • +
  • Users then click the "Select" button. It's important to remember that if a generic assignment is not selected, users must choose a worker or machine to perform the assignment. If a generic assignment is selected, it is sufficient for users to choose one or more criteria.
  • +
  • The program then displays the selected criteria or resource list in the list of assignments on the original resource assignment screen.
  • +
  • Users must choose the hours or resources per day, depending on the assignment method used in the program.
  • +
+
+

Specific Assignment

+

This is the specific assignment of a resource to a project task. In other words, the user decides which specific worker (by name and surname) or machine must be assigned to a task.

+

Specific assignment can be carried out on the screen shown in this image:

+
+images/asignacion-especifica.png +

Specific Resource Assignment

+
+

When a resource is specifically assigned, the program creates daily assignments based on the percentage of daily assigned resources selected, after comparing it with the available resource calendar. For example, an assignment of 0.5 resources for a 32-hour task means that 4 hours per day are assigned to the specific resource to complete the task (assuming a working calendar of 8 hours per day).

+
+

Specific Machine Assignment

+

Specific machine assignment functions in the same way as worker assignment. When a machine is assigned to a task, the system stores a specific assignment of hours for the chosen machine. The main difference is that the system searches the list of assigned workers or criteria at the moment the machine is assigned:

+
    +
  • If the machine has a list of assigned workers, the program chooses from those that are required by the machine, based on the assigned calendar. For example, if the machine calendar is 16 hours per day and the resource calendar is 8 hours, two resources are assigned from the list of available resources.
  • +
  • If the machine has one or more assigned criteria, generic assignments are made from among the resources that fulfill the criteria assigned to the machine.
  • +
+
+
+
+

Generic Assignment

+

Generic assignment occurs when users do not choose resources specifically but leave the decision to the program, which distributes the loads among the company's available resources.

+
+images/asignacion-xenerica.png +

Generic Resource Assignment

+
+

The assignment system uses the following assumptions as a basis:

+
    +
  • Tasks have criteria that are required from resources.
  • +
  • Resources are configured to fulfill criteria.
  • +
+

However, the system does not fail when criteria have not been assigned, but when all resources fulfill the non-requirement of criteria.

+

The generic assignment algorithm functions as follows:

+
    +
  • All resources and days are treated as containers where daily assignments of hours fit, based on the maximum assignment capacity in the task calendar.
  • +
  • The system searches for the resources that fulfill the criterion.
  • +
  • The system analyzes which assignments currently have different resources that fulfill criteria.
  • +
  • The resources that fulfill the criteria are chosen from those that have sufficient availability.
  • +
  • If freer resources are not available, assignments are made to the resources that have less availability.
  • +
  • Over-assignment of resources only begins when all the resources that fulfill the respective criteria are 100% assigned, until the total amount required to carry out the task is attained.
  • +
+
+

Generic Machine Assignment

+

Generic machine assignment functions in the same way as worker assignment. For example, when a machine is assigned to a task, the system stores a generic assignment of hours for all machines that fulfill the criteria, as described for resources in general. However, in addition, the system performs the following procedure for machines:

+
    +
  • For all machines chosen for generic assignment:
      +
    • It collects the machine's configuration information: alpha value, assigned workers, and criteria.
    • +
    • If the machine has an assigned list of workers, the program chooses the number required by the machine, depending on the assigned calendar. For example, if the machine calendar is 16 hours per day and the resource calendar is 8 hours, the program assigns two resources from the list of available resources.
    • +
    • If the machine has one or more assigned criteria, the program makes generic assignments from among the resources that fulfill the criteria assigned to the machine.
    • +
    +
  • +
+
+
+
+

Advanced Assignment

+

Advanced assignments allow users to design assignments that are automatically carried out by the application to personalize them. This procedure allows users to manually choose the daily hours that are dedicated by resources to assigned tasks or define a function that is applied to the assignment.

+

The steps to follow to manage advanced assignments are:

+
    +
  • Go to the advanced assignment window. There are two ways to access advanced assignments:
      +
    • Go to a specific order and change the view to advanced assignment. In this case, all the tasks on the order and assigned resources (specific and generic) will be shown.
    • +
    • Go to the resource assignment window by clicking the "Advanced assignment" button. In this case, the assignments that show the resources (generic and specific) assigned to a task will be shown.
    • +
    +
  • +
+
+images/advance-assignment.png +

Advanced Resource Assignment

+
+
    +
  • Users can choose the desired zoom level:
      +
    • Zoom Levels Greater Than One Day: If users change the assigned hour value to a week, month, four-month, or six-month period, the system distributes the hours linearly across all days throughout the chosen period.
    • +
    • Daily Zoom: If users change the assigned hour value to a day, these hours only apply to that day. Consequently, users can decide how many hours they want to assign per day to task resources.
    • +
    +
  • +
  • Users can choose to design an advanced assignment function. To do so, users must:
      +
    • Choose the function from the selection list that appears next to each resource and click "Configure."
    • +
    • The system displays a new window if the chosen function needs to be specifically configured. Supported functions:
        +
      • Segments: A function that allows users to define segments to which a polynomial function is applied. The function per segment is configured as follows:
          +
        • Date: The date on which the segment ends. If the following value (length) is established, the date is calculated; alternatively, length is calculated.
        • +
        • Defining the Length of Each Segment: This indicates what percentage of the task's duration is required for the segment.
        • +
        • Defining the Amount of Work: This indicates what workload percentage is expected to be completed in this segment. The quantity of work must be incremental. For example, if there is a 10% segment, the next one must be larger (for example, 20%).
        • +
        • Segment Graphs and Accumulated Loads.
        • +
        +
      • +
      +
    • +
    • Users then click "Accept."
    • +
    • The program stores the function and applies it to the daily resource assignments.
    • +
    +
  • +
+
+images/stretches.png +

Configuration of the Segment Function

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/09-partes.html b/libreplan-webapp/src/main/webapp/help/en/09-partes.html new file mode 100644 index 000000000..90242b6c7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/09-partes.html @@ -0,0 +1,84 @@ + + + + + + +Work Reports + + + +
+

Work Reports

+ + +

Work reports enable the monitoring of the hours that resources dedicate to the tasks to which they are assigned.

+

The program allows users to configure new forms for entering dedicated hours, specifying the fields that they want to appear in these forms. This allows for the incorporation of reports from tasks carried out by workers and the monitoring of worker activity.

+

Before users can add entries for resources, they must define at least one work report type. This type defines the structure of the report, including all the rows that are added to it. Users can create as many work report types as necessary within the system.

+
+

Work Report Types

+

A work report consists of a series of fields that are common to the entire report and a set of work report lines with specific values for the fields defined in each row. For example, resources and tasks are common to all reports. However, there can be other new fields, such as "incidents," which are not required in all report types.

+

Users can configure different work report types so that a company can design its reports to meet its specific needs:

+
+images/work-report-types.png +

Work Report Types

+
+

The administration of work report types allows users to configure these types and add new text fields or optional tags. In the first tab for editing work report types, it is possible to configure the type for the mandatory attributes (whether they apply to the whole report or are specified at the line level) and add new optional fields.

+

The mandatory fields that must appear in all work reports are as follows:

+
    +
  • Name and Code: Identification fields for the name of the work report type and its code.
  • +
  • Date: Field for the date of the report.
  • +
  • Resource: Worker or machine appearing on the report or work report line.
  • +
  • Order Element: Code for the order element to which the performed work is attributed.
  • +
  • Hour Management: Determines the hour attribution policy to be used, which can be:
      +
    • According to Assigned Hours: Hours are attributed based on the assigned hours.
    • +
    • According to Start and Finish Times: Hours are calculated based on the start and finish times.
    • +
    • According to the Number of Hours and Start and Finish Range: Discrepancies are allowed, and the number of hours takes priority.
    • +
    +
  • +
+

Users can add new fields to the reports:

+
    +
  • Tag Type: Users can request the system to display a tag when completing the work report. For example, the client tag type, if the user wishes to enter the client for whom the work was carried out in each report.
  • +
  • Free Fields: Fields where text can be entered freely in the work report.
  • +
+
+images/work-report-type.png +

Creating a Work Report Type with Personalized Fields

+
+

Users can configure date, resource, and order element fields to appear in the header of the report, which means they apply to the entire report, or they can be added to each of the rows.

+

Finally, new additional text fields or tags can be added to the existing ones, in the work report header or in each line, by using the "Additional text" and "Tag type" fields, respectively. Users can configure the order in which these elements are to be entered in the "Management of additional fields and tags" tab.

+
+
+

Work Report List

+

Once the format of the reports to be incorporated into the system has been configured, users can enter the details in the created form according to the structure defined in the corresponding work report type. To do this, users need to follow these steps:

+
    +
  • Click the "New work report" button associated with the desired report from the list of work report types.
  • +
  • The program then displays the report based on the configurations given for the type. See the following image.
  • +
+
+images/work-report-type.png +

Structure of the Work Report Based on Type

+
+
    +
  • Select all the fields shown for the report:
      +
    • Resource: If the header has been chosen, the resource is only shown once. Alternatively, for each line of the report, it is necessary to choose a resource.
    • +
    • Task Code: Code of the task to which the work report is being assigned. Similar to the rest of the fields, if the field is in the header, the value is entered once or as many times as necessary on the lines of the report.
    • +
    • Date: Date of the report or each line, depending on whether the header or line is configured.
    • +
    • Number of Hours: The number of work hours in the project.
    • +
    • Start and Finish Times: Start and finish times for the work in order to calculate definitive work hours. This field only appears in the case of the hour assignment policies, "According to Start and Finish Times" and "According to the Number of Hours and Start and Finish Range."
    • +
    • Type of Hours: Enables users to choose the type of hour, e.g., "Normal," "Extraordinary," etc.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/10-etiquetas.html b/libreplan-webapp/src/main/webapp/help/en/10-etiquetas.html new file mode 100644 index 000000000..eb6451798 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/10-etiquetas.html @@ -0,0 +1,68 @@ + + + + + + +Labels + + + +
+

Labels

+ +
+

Contents

+ +
+

Labels are entities used in the program to conceptually organize tasks or order elements.

+

Labels are categorized according to label type. A label can only belong to one label type; however, users can create many similar labels belonging to different label types.

+
+

Label Types

+

Label types are used to group the types of labels that users want to manage in the program. Here are some examples of possible label types:

+
    +
  • Client: Users may be interested in labeling tasks, orders, or order elements in relation to the client who requests them.
  • +
  • Area: Users may be interested in labeling tasks, orders, or order elements in relation to the areas in which they are carried out.
  • +
+

The administration of label types is managed from the "Administration" menu option. This is where users can edit label types, create new label types, and add labels to label types. Users can access the list of labels from this option.

+
+images/tag-types-list.png +

List of Label Types

+
+

From the list of label types, users can:

+
    +
  • Create a new label type.
  • +
  • Edit an existing label type.
  • +
  • Delete a label type with all of its labels.
  • +
+

Editing and creating labels share the same form. From this form, the user can assign a name to the label type, create or delete labels, and store the changes. The procedure is as follows:

+
    +
  • Select a label to edit or click the create button for a new one.
  • +
  • The system displays a form with a text entry for the name and a list of text entries with existing and assigned labels.
  • +
  • If users wish to add a new label, they must click the "New label" button.
  • +
  • The system displays a new row on the list with an empty text box that users must edit.
  • +
  • Users enter a name for the label.
  • +
  • The system adds the name to the list.
  • +
  • Users click "Save" or "Save and continue" to continue editing the form.
  • +
+
+images/tag-types-edition.png +

Editing Label Types

+
+
+
+

Labels

+

Labels are entities that belong to a label type. These entities can be assigned to order elements. Assigning a label to an order element means that all the elements descending from this element will inherit the label to which they belong. Having an assigned label means that these entities can be filtered where searches can be carried out:

+
    +
  • Search for tasks in the Gantt chart.
  • +
  • Search for order elements in the list of order elements.
  • +
  • Filters for reports.
  • +
+

The assignment of labels to order elements is covered in the chapter on orders.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/11-materiales.html b/libreplan-webapp/src/main/webapp/help/en/11-materiales.html new file mode 100644 index 000000000..a06770897 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/11-materiales.html @@ -0,0 +1,54 @@ + + + + + + +Materials Management + + + +
+

Materials Management

+ +
+

Contents

+ +
+
+

Administration of Materials

+

Users can manage a basic database of materials, organized by categories.

+

Categories are containers to which specific materials and other categories can be assigned. They are stored in a hierarchical tree structure, as materials can belong to leaf categories or intermediary categories.

+

To manage categories, users must follow these steps:

+
    +
  • Go to the "Administration -> Materials" option.
  • +
  • The program displays a tree of categories.
  • +
  • Enter a category name in the text box and then click "Add."
  • +
  • The program adds the category to the tree.
  • +
+

To insert a category into the category tree, users must first select the parent category in the tree and then click "Add."

+
+images/material.png +

Material Administration Screen

+
+

To manage materials, users must follow these steps:

+
    +
  • Select the category to which materials are to be added and click "Add" to the right of "Materials."
  • +
  • The program adds a new empty row with fields to enter details about the material:
      +
    • Code: Material type code (this can be the external code from an ERP).
    • +
    • Description: Description of the material.
    • +
    • Unit Price: Unit price of each piece of material.
    • +
    • Unit: Unit used to measure each unit of material.
    • +
    • Category: Category to which the material belongs.
    • +
    • Availability: Indicates whether or not the material is active.
    • +
    +
  • +
  • Users complete the fields and click "Save."
  • +
+

The assignment of materials to order elements is explained in the chapter on "Orders."

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/12-formularios-calidad.html b/libreplan-webapp/src/main/webapp/help/en/12-formularios-calidad.html new file mode 100644 index 000000000..97a584178 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/12-formularios-calidad.html @@ -0,0 +1,52 @@ + + + + + + +Quality Forms + + + +
+

Quality Forms

+ + +
+

Administration of Quality Forms

+

Quality forms consist of a list of questions or statements that indicate the tasks or processes that should have been completed before a task can be marked as complete by the company. These forms include the following fields:

+
    +
  • Name: The name of the quality form.
  • +
  • Description: A description of the quality form.
  • +
  • Type of Quality Form: The type can have two values:
      +
    • Percentage: Indicates that the questions must be answered in a logical order, and affirmative answers indicate that the task is progressing. For example, a basic process for a task might suggest that the task is 15% complete. Users must answer a question before proceeding to the next one.
    • +
    • Item: Indicates that the questions do not need to be answered in a logical order and can be answered in any sequence.
    • +
    +
  • +
+

Users must follow these steps to manage quality forms:

+
    +
  • From the "Administration" menu, access the "Quality forms" option.
  • +
  • Click "Edit" on an existing form or click "Create" to create a new one.
  • +
  • The program displays a form with fields for the name, description, and type.
  • +
  • Select the type.
  • +
  • The program displays the fields that are allowed for each type:
      +
    • Percentage: Question and percentage.
    • +
    • Item: Question.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+images/quality.png +

Quality Form Administration Screen

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/13-usuarios.html b/libreplan-webapp/src/main/webapp/help/en/13-usuarios.html new file mode 100644 index 000000000..f46a23ded --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/13-usuarios.html @@ -0,0 +1,79 @@ + + + + + + +User Management + + + +
+

User Management

+ +
+

Contents

+ +
+
+

Managing Users

+

TASKPM's system allows administrators to manage user profiles, authorizations, and users. Users are assigned to user profiles, which can have a series of predefined roles that grant access to the program's features. Roles are defined authorizations within TASKPM. Examples of roles include:

+
    +
  • Administration: A role that must be assigned to administrators to enable them to perform administrative operations.
  • +
  • Web Service Reader: A role required for users to consult the program's web services.
  • +
  • Web Service Writer: A role required for users to write data via the program's web services.
  • +
+

Roles are predefined within the system. A user profile consists of one or more roles. Users must have specific roles to perform certain operations.

+

Users can be assigned one or more profiles, or one or more roles directly, allowing for specific or generic authorization to be granted.

+

To manage users, follow these steps:

+
    +
  • Go to "Manage users" in the "Administration" menu.
  • +
  • The program displays a form with a list of users.
  • +
  • Click the edit button for the desired user or click the "Create" button.
  • +
  • A form will appear with the following fields:
      +
    • User Name: The user's login name.
    • +
    • Password: The user's password.
    • +
    • Authorized/Unauthorized: A setting to enable or disable the user's account.
    • +
    • Email: The user's email address.
    • +
    • List of Associated Roles: To add a new role, users must search for a role in the selection list and click "Assign."
    • +
    • List of Associated Profiles: To add a new profile, users must search for a profile in the selection list and click "Assign."
    • +
    +
  • +
+
+images/manage-user.png +

Managing Users

+
+
    +
  • Click "Save" or "Save and continue."
  • +
+
+

Managing Profiles

+

To manage the program's profiles, users must follow these steps:

+
    +
  • Go to "Manage user profiles" in the "Administration" menu.
  • +
  • The program displays a list of profiles.
  • +
  • Click the edit button for the desired profile or click "Create."
  • +
  • A form appears in the program with the following fields:
      +
    • Name: The name of the user profile.
    • +
    • List of Roles (Authorizations): To add a role to the profile, users must select a role from the role list and click "Add."
    • +
    +
  • +
+
+images/manage-user-profile.png +

Managing User Profiles

+
+
    +
  • Click "Save" or "Save and continue," and the system will store the created or modified profile.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/14-custos.html b/libreplan-webapp/src/main/webapp/help/en/14-custos.html new file mode 100644 index 000000000..5c35ce71d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/14-custos.html @@ -0,0 +1,110 @@ + + + + + + +Cost management + + + +
+

Cost management

+ +
+

Contents

+ +
+
+

Costs

+

Cost management allows users to estimate the costs of resources used in a project. To manage costs, the following entities must be defined:

+
    +
  • Hour Types: These indicate the types of hours worked by a resource. Users can define hour types for both machines and workers. Examples of hour types include: "Additional hours paid at €20 per hour." The following fields can be defined for hour types:
      +
    • Code: External code for the hour type.
    • +
    • Name: Name of the hour type. For example, "Additional."
    • +
    • Default Rate: Basic default rate for the hour type.
    • +
    • Activation: Indicates whether the hour type is active or not.
    • +
    +
  • +
  • Cost Categories: Cost categories define the costs associated with different hour types during specific periods (which may be indefinite). For example, the cost of additional hours for first-grade skilled workers in the following year is €24 per hour. Cost categories include:
      +
    • Name: Cost category name.
    • +
    • Activation: Indicates whether the category is active or not.
    • +
    • List of Hour Types: This list defines the hour types included in the cost category. It specifies the periods and rates for each hour type. For example, as rates change, each year can be included on this list as an hour type period, with a specific hourly rate for each hour type (which may differ from the default hourly rate for that hour type).
    • +
    +
  • +
+
+

Managing Hour Types

+

Users must follow these steps to register hour types:

+
    +
  • Select "Manage hour types worked" on the "Administration" menu.
  • +
  • The program displays a list of existing hour types.
  • +
+
+images/hour-type-list.png +

Hour Type List

+
+
    +
  • Click "Edit" or "Create."
  • +
  • The program displays an hour type editing form.
  • +
+
+images/hour-type-edit.png +

Editing Hour Types

+
+
    +
  • Users can enter or change:
      +
    • The hour type name.
    • +
    • The hour type code.
    • +
    • The default rate.
    • +
    • Hour type activation/deactivation.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+

Cost Categories

+

Users must follow these steps to register cost categories:

+
    +
  • Select "Manage cost categories" on the "Administration" menu.
  • +
  • The program displays a list of existing categories.
  • +
+
+images/category-cost-list.png +

Cost Category List

+
+
    +
  • Click the "Edit" or "Create" button.
  • +
  • The program displays a cost category editing form.
  • +
+
+images/category-cost-edit.png +

Editing Cost Categories

+
+
    +
  • Users enter or change:
      +
    • The name of the cost category.
    • +
    • The activation/deactivation of the cost category.
    • +
    • The list of hour types included in the category. All hour types have the following fields:
        +
      • Hour Type: Choose one of the existing hour types in the system. If none exist, an hour type must be created (this process is explained in the previous subsection).
      • +
      • Start and Finish Date: The start and finish dates (the latter is optional) for the period that applies to the cost category.
      • +
      • Hourly Rate: The hourly rate for this specific category.
      • +
      +
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+

The assignment of cost categories to resources is described in the chapter on resources. Go to the "Resources" section.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/15-1-report-hours-worked-by-resource.html b/libreplan-webapp/src/main/webapp/help/en/15-1-report-hours-worked-by-resource.html new file mode 100644 index 000000000..f97f118aa --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/15-1-report-hours-worked-by-resource.html @@ -0,0 +1,101 @@ + + + + + + +Hours Worked by Resource Report + + + +
+

Hours Worked by Resource Report

+ + +
+

Purpose

+

This report extracts a list of tasks and the time resources have dedicated to them within a specified period. Several filters allow users to refine the query to obtain only the desired information and exclude extraneous data.

+
+
+

Input Parameters and Filters

+
    +
  • +
    Dates.
    +
      +
    • Type: Optional.
    • +
    • +
      Two date fields:
      +
        +
      • Start Date: This is the earliest date for work reports to be included. Work reports with dates earlier than the Start Date are excluded. If this parameter is left blank, work reports are not filtered by Start Date.
      • +
      • End Date: This is the latest date for work reports to be included. Work reports with dates later than the End Date are excluded. If this parameter is left blank, work reports are not filtered by End Date.
      • +
      +
      +
      +
    • +
    +
    +
    +
  • +
  • Filter by Workers: +* Type: Optional. +* How it works: You can select one or more workers to restrict the work reports to the time tracked by those specific workers. To add a worker as a filter, search for them in the selector and click the Add button. If this filter is left empty, work reports are retrieved regardless of the worker.
  • +
  • Filter by Labels: +* Type: Optional. +* How it works: You can add one or more labels to use as filters by searching for them in the selector and clicking the Add button. These labels are used to select the tasks to be included in the results when calculating the hours dedicated to them. This filter can be applied to timesheets, tasks, both, or neither.
  • +
  • Filter by Criteria: +* Type: Optional. +* How it works: You can select one or more criteria by searching for them in the selector and then clicking the Add button. These criteria are used to select the resources that satisfy at least one of them. The report will show all the time dedicated by the resources that meet one of the selected criteria.
  • +
+
+
+

Output

+
+

Heading

+

The report heading displays the filters that were configured and applied to the current report.

+
+ +
+

Body

+

The report body consists of several groups of information.

+
    +
  • The first level of aggregation is by resource. All the time dedicated by a resource is shown together below the header. Each resource is identified by:

    +
      +
    • Worker: Surname, First Name.
    • +
    • Machine: Name.
    • +
    +

    A summary line shows the total number of hours worked by the resource.

    +
  • +
  • The second level of grouping is by date. All the reports from a specific resource on the same date are shown together.

    +

    A summary line shows the total number of hours worked by the resource on that date.

    +
  • +
  • The final level lists the work reports for the worker on that day. The information displayed for each work report line is:

    +
      +
    • Task Code: The code of the task to which the tracked hours are attributed.
    • +
    • Task Name: The name of the task to which the tracked hours are attributed.
    • +
    • Starting Time: This is optional. It is the time at which the resource began working on the task.
    • +
    • Ending Time: This is optional. It is the time at which the resource finished working on the task on the specified date.
    • +
    • Text Fields: This is optional. If the work report line has text fields, the filled values are shown here. The format is: <Name of the text field>:<Value>
    • +
    • Labels: This depends on whether the work report model has a label field in its definition. If there are multiple labels, they are shown in the same column. The format is: <Name of the label type>:<Value of the label>
    • +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/15-2-total-hours-by-resource-month.html b/libreplan-webapp/src/main/webapp/help/en/15-2-total-hours-by-resource-month.html new file mode 100644 index 000000000..246cfc9c1 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/15-2-total-hours-by-resource-month.html @@ -0,0 +1,67 @@ + + + + + + +Total Hours Worked by Resource in a Month Report + + + +
+

Total Hours Worked by Resource in a Month Report

+ + +
+

Purpose

+

This report provides the total number of hours worked by each resource in a given month. This information can be useful for determining worker overtime or, depending on the organization, the number of hours for which each resource should be compensated.

+

The application tracks work reports for both workers and machines. For machines, the report sums up the number of hours they were in operation during the month.

+
+
+

Input Parameters and Filters

+

To generate this report, users must specify the year and month for which they want to retrieve the total number of hours worked by each resource.

+
+
+

Output

+

The output format is as follows:

+ + +
+

Body

+

The data section of the report consists of a single table with two columns:

+
+
    +
  • One column labeled Name for the name of the resource.
  • +
  • One column labeled Hours with the total number of hours worked by the resource in that row.
  • +
+
+

There is a final row that aggregates the total number of hours worked by all resources during the specified month and year.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/15-3-work-progress-per-project.html b/libreplan-webapp/src/main/webapp/help/en/15-3-work-progress-per-project.html new file mode 100644 index 000000000..e2f5053a9 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/15-3-work-progress-per-project.html @@ -0,0 +1,125 @@ + + + + + + +Work and Progress per Project Report + + + +
+

Work and Progress per Project Report

+ + +
+

Purpose

+

This report provides an overview of the status of projects, considering both progress and cost.

+

It analyzes the current progress of each project, comparing it with the planned progress and the work completed.

+

The report also displays several ratios related to project cost, comparing current performance with the planned performance.

+
+
+

Input Parameters and Filters

+

There are several mandatory parameters:

+
+
    +
  • Reference Date: This is the date used as a reference point for comparing the planned status of the project with its actual performance. The default value for this field is the current date.
  • +
  • Progress Type: This is the progress type used to measure project progress. The application allows a project to be measured simultaneously with different progress types. The type selected by the user in the dropdown menu is used for calculating the report data. The default value for the progress type is spread, which is a special progress type that uses the preferred method of measuring progress configured for each WBS element.
  • +
+
+

The optional parameters are:

+
+
    +
  • Starting Date: This is the earliest start date for projects to be included in the report. If this field is left blank, there is no minimum start date for the projects.
  • +
  • Ending Date: This is the latest end date for projects to be included in the report. All projects that finish after the Ending Date will be excluded.
  • +
  • Filter by Projects: This filter allows users to select the specific projects to be included in the report. If no projects are added to the filter, the report will include all projects in the database. A searchable dropdown menu is provided to find the desired project. Projects are added to the filter by clicking the Add button.
  • +
+
+
+
+

Output

+

The output format is as follows:

+
+

Heading

+

The report header displays the following fields:

+
+
    +
  • Starting Date: The filtering start date. This is not displayed if the report is not filtered by this field.
  • +
  • Ending Date: The filtering end date. This is not displayed if the report is not filtered by this field.
  • +
  • Progress Type: The progress type used for the report.
  • +
  • Projects: This indicates the filtered projects for which the report is generated. It will show the string All when the report includes all projects that satisfy the other filters.
  • +
  • Reference Date: The mandatory input reference date selected for the report.
  • +
+
+
+ +
+

Body

+

The body of the report consists of a list of projects selected based on the input filters.

+

Filters work by adding conditions, except for the set formed by the date filters (Starting Date, Ending Date) and the Filter by Projects. In this case, if one or both date filters are filled and the Filter by Projects has a list of selected projects, the latter filter takes precedence. This means that the projects included in the report are those provided by the Filter by Projects, regardless of the date filters.

+

It's important to note that progress in the report is calculated as a fraction of unity, ranging between 0 and 1.

+

For each project selected for inclusion in the report output, the following information is displayed:

+
+
    +
  • Project Name.
  • +
  • +
    Total Hours. The total hours for the project are shown by adding the hours for each task. Two types of total hours are shown:
    +
      +
    • Estimated (TE). This is the sum of all the estimated hours in the project's WBS. It represents the total number of hours estimated to complete the project.
    • +
    • Planned (TP). In TASKPM, it's possible to have two different quantities: the estimated number of hours for a task (the number of hours initially estimated to complete the task) and the planned hours (the hours allocated in the plan to complete the task). The planned hours can be equal to, less than, or greater than the estimated hours and are determined in a later phase, the assignment operation. Therefore, the total planned hours for a project are the sum of all the allocated hours for its tasks.
    • +
    +
    +
    +
  • +
  • +
    Progress. Three measurements related to the overall progress of the type specified in the progress input filter for each project at the reference date are shown:
    +
      +
    • Measured (PM). This is the overall progress considering the progress measurements with a date earlier than the Reference Date in the input parameters of the report. All tasks are taken into account, and the sum is weighted by the number of hours for each task.
    • +
    • Imputed (PI). This is the progress assuming that work continues at the same pace as the hours completed for a task. If X hours out of Y hours for a task are completed, the overall imputed progress is considered to be X/Y.
    • +
    • Planned (PP). This is the overall progress of the project according to the planned schedule at the reference date. If everything happened exactly as planned, the measured progress should be the same as the planned progress.
    • +
    +
    +
    +
  • +
  • +
    Hours up to Date. There are two fields that show the number of hours up to the reference date from two perspectives:
    +
      +
    • Planned (HP). This number is the sum of the hours allocated to any task in the project with a date less than or equal to the Reference Date.
    • +
    • Actual (HR). This number is the sum of the hours reported in the work reports for any of the tasks in the project with a date less than or equal to the Reference Date.
    • +
    +
    +
    +
  • +
  • +
    Difference. Under this heading, there are several metrics related to cost:
    +
      +
    • Cost. This is the difference in hours between the number of hours spent, considering the measured progress, and the hours completed up to the reference date. The formula is: PM*TP - HR.
    • +
    • Planned. This is the difference between the hours spent according to the overall measured project progress and the number planned up to the Reference Date. It measures the advantage or delay in time. The formula is: PM*TP - HP.
    • +
    • Cost Ratio. This is calculated by dividing PM / PI. If it is greater than 1, it means that the project is profitable at this point. If it is less than 1, it means that the project is losing money.
    • +
    • Planned Ratio. This is calculated by dividing PM / PP. If it is greater than 1, it means that the project is ahead of schedule. If it is less than 1, it means that the project is behind schedule.
    • +
    +
    +
    +
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/15-informes.html b/libreplan-webapp/src/main/webapp/help/en/15-informes.html new file mode 100644 index 000000000..c2c7cafab --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/15-informes.html @@ -0,0 +1,26 @@ + + + + + + +Reports + + + +
+

Reports

+ +

TASKPM integrates with JasperReports to provide report management, enabling users to generate various reports for analyzing the data available in the program.

+

The available reports are:

+ +
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/16-ldap-authentication.html b/libreplan-webapp/src/main/webapp/help/en/16-ldap-authentication.html new file mode 100644 index 000000000..ad5d4976d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/16-ldap-authentication.html @@ -0,0 +1,251 @@ + + + + + + +LDAP Configuration + + + +
+

LDAP Configuration

+ + +

This screen allows you to establish a connection with LDAP to delegate +authentication and/or authorization.

+

It is divided into four different areas, which are explained below:

+
+

Activation

+

This area is used to set the properties that determine how TASKPM uses +LDAP.

+

If the field Enable LDAP authentication is checked, TASKPM will query +LDAP each time a user attempts to log in to the application.

+

The field Use LDAP roles checked means that a mapping between LDAP roles and +TASKPM roles is established. Consequently, the permissions for a user in +TASKPM will depend on the roles the user has in LDAP.

+
+
+

Configuration

+

This section contains the parameter values for accessing LDAP. Base, UserDN, and +Password are parameters used to connect to LDAP and search for users. Therefore, +the specified user must have permission to perform this operation in LDAP. At the +bottom of this section, there is a button to check if an LDAP connection is +possible with the given parameters. It is advisable to test the connection before +continuing the configuration.

+
+

Note

+

If your LDAP is configured to work with anonymous authentication, you can +leave the UserDN and Password attributes empty.

+
+
+

Tip

+

Regarding Active Directory (AD) configuration, the Base field must be the +exact location where the bound user resides in AD.

+

Example: ou=organizational_unit,dc=example,dc=org

+
+
+
+

Authentication

+

Here, you can configure the property in LDAP nodes where the given username +should be found. The property UserId must be filled with the name of the +property where the username is stored in LDAP.

+

The checkbox Save passwords in database, when checked, means that the +password is also stored in the TASKPM database. In this way, if LDAP is +offline or unreachable, LDAP users can authenticate against the TASKPM +database. If it is not checked, LDAP users can only be authenticated against +LDAP.

+
+
+

Authorization

+

This section allows you to define a strategy for matching LDAP roles with +TASKPM roles. The first choice is the strategy to use, depending on the +LDAP implementation.

+
+

Group Strategy

+

When this strategy is used, it indicates that LDAP has a role-group strategy. +This means that users in LDAP are nodes that are directly under a branch that +represents the group.

+

The next example represents a valid LDAP structure for using the group strategy.

+
    +
  • LDAP structure:

    +
    +dc=example,dc=org
    +|- ou=groups
    +   |- cn=admins
    +   |- cn=itpeople
    +   |- cn=workers
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

In this case, each group will have an attribute, for example, called member, +with the list of users belonging to the group:

+
    +
  • cn=admins:
      +
    • member: uid=admin1,ou=people,dc=example,dc=org
    • +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=itpeople:
      +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    • member: uid=it2,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=workers:
      +
    • member: uid=worker1,ou=people,dc=example,dc=org
    • +
    • member: uid=worker2,ou=people,dc=example,dc=org
    • +
    • member: uid=worker3,ou=people,dc=example,dc=org
    • +
    +
  • +
+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Group strategy
  • +
  • Group path: ou=groups
  • +
  • Role property: member
  • +
  • Role search query: uid=[USER_ID],ou=people,dc=example,dc=org
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: cn=admins;cn=itpeople
  • +
  • Web service reader: cn=itpeople
  • +
  • Web service writer: cn=itpeople
  • +
  • All projects read allowed: cn=admins
  • +
  • All projects edition allowed: cn=admins
  • +
  • Project creation allowed: cn=workers
  • +
+
+
+

Property Strategy

+

When an administrator decides to use this strategy, it indicates that each user +is an LDAP node, and within the node, there exists a property that represents +the group(s) for the user. In this case, the configuration does not require the +Group path parameter.

+

The next example represents a valid LDAP structure for using the property strategy.

+
    +
  • LDAP structure:

    +
    +dc=example,dc=org
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

With Attribute

+

In this case, each user will have an attribute, for example, called group, +with the name of the group to which they belong:

+
    +
  • uid=admin1:
      +
    • group: admins
    • +
    +
  • +
  • uid=it1:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=it2:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=worker1:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker2:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker3:
      +
    • group: workers
    • +
    +
  • +
+
+

Warning

+

This strategy has a restriction: each user can belong to only one group.

+
+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Property strategy
  • +
  • Group path:
  • +
  • Role property: group
  • +
  • Role search query: [USER_ID]
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: admins;itpeople
  • +
  • Web service reader: itpeople
  • +
  • Web service writer: itpeople
  • +
  • All projects read allowed: admins
  • +
  • All projects edition allowed: admins
  • +
  • Project creation allowed: workers
  • +
+

By User Identifier

+

You can even use a workaround to specify TASKPM roles directly to users +without having an attribute in each LDAP user.

+

In this case, you will specify which users have the different TASKPM roles +by uid.

+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Property strategy
  • +
  • Group path:
  • +
  • Role property: uid
  • +
  • Role search query: [USER_ID]
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: admin1;it1
  • +
  • Web service reader: it1;it2
  • +
  • Web service writer: it1;it2
  • +
  • All projects read allowed: admin1
  • +
  • All projects edition allowed: admin1
  • +
  • Project creation allowed: worker1;worker2;worker3
  • +
+
+
+

Role Matching

+

At the bottom of this section, there is a table with all the TASKPM roles +and a text field next to each one. This is for matching roles. For instance, +if an administrator decides that the Administration TASKPM role matches +the admin and administrators roles of LDAP, the text field should contain: +"admin;administrators". The character for splitting roles is ";".

+
+

Note

+

If you want to specify that all users or all groups have one permission, you +can use an asterisk (*) as a wildcard to refer to them. For example, if +you want everyone to have the Project creation allowed role, you will +configure the role matching as follows:

+
    +
  • Project creation allowed: *
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/17-1-project-dashboard.html b/libreplan-webapp/src/main/webapp/help/en/17-1-project-dashboard.html new file mode 100644 index 000000000..5dc0899b7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/17-1-project-dashboard.html @@ -0,0 +1,173 @@ + + + + + + +Project Dashboard + + + +
+

Project Dashboard

+ + +

The project dashboard is a TASKPM perspective that contains a set of KPIs (Key Performance Indicators) to help assess a project's performance in terms of:

+
+
    +
  • Work progress
  • +
  • Cost
  • +
  • Status of allocated resources
  • +
  • Time constraints
  • +
+
+
+

Progress Performance Indicators

+

Two indicators are calculated: project progress percentage and task status.

+
+

Project Progress Percentage

+

This chart displays the overall progress of a project, comparing it to the expected progress based on the Gantt chart.

+

Progress is represented by two bars:

+
+
    +
  • Current Progress: The current progress based on the measurements taken.
  • +
  • Expected Progress: The progress the project should have achieved at this point, according to the project plan.
  • +
+
+

To view the actual measured value for each bar, hover the mouse cursor over the bar.

+

The overall project progress is estimated using several different methods, as there is no single, universally correct approach:

+
+
    +
  • Spreading Progress: This is the progress type set as the spreading progress at the project level. In this case, there is no way to calculate an expected value, and only the current bar is displayed.
  • +
  • By All Task Hours: The progress of all project tasks is averaged to calculate the overall value. This is a weighted average that considers the number of hours allocated to each task.
  • +
  • By Critical Path Hours: The progress of tasks belonging to any of the project's critical paths is averaged to obtain the overall value. This is a weighted average that considers the total allocated hours for each involved task.
  • +
  • By Critical Path Duration: The progress of tasks belonging to any of the critical paths is averaged using a weighted average, but this time considering the duration of each involved task instead of the assigned hours.
  • +
+
+
+
+

Task Status

+

A pie chart shows the percentage of project tasks in different states. The defined states are:

+
+
    +
  • Finished: Completed tasks, identified by a 100% progress value.
  • +
  • In Progress: Tasks that are currently underway. These tasks have a progress value other than 0% or 100%, or some work time has been tracked.
  • +
  • Ready to Start: Tasks with 0% progress, no tracked time, all their FINISH_TO_START dependent tasks are finished, and all their START_TO_START dependent tasks are finished or in progress.
  • +
  • Blocked: Tasks with 0% progress, no tracked time, and with previous dependent tasks that are neither in progress nor in the ready to start state.
  • +
+
+
+
+
+

Cost Indicators

+

Several Earned Value Management cost indicators are calculated:

+
+
    +
  • CV (Cost Variance): The difference between the Earned Value curve and the Actual Cost curve at the current moment. Positive values indicate a benefit, and negative values indicate a loss.

    +
  • +
  • ACWP (Actual Cost of Work Performed): The total number of hours tracked in the project at the current moment.

    +
  • +
  • CPI (Cost Performance Index): The Earned Value / Actual Cost ratio.

    +
    +
      +
    • > 100 is favorable, indicating that the project is under budget.
    • +
    • = 100 is also favorable, indicating that the cost is right on plan.
    • +
    • < 100 is unfavorable, indicating that the cost of completing the work is higher than planned.
    • +
    +
    +
  • +
  • ETC (Estimate To Complete): The time remaining to complete the project.

    +
  • +
  • BAC (Budget At Completion): The total amount of work allocated in the project plan.

    +
  • +
  • EAC (Estimate At Completion): The manager's projection of the total cost at project completion, based on the CPI.

    +
  • +
  • VAC (Variance At Completion): The difference between the BAC and the EAC.

    +
    +
      +
    • < 0 indicates that the project is over budget.
    • +
    • > 0 indicates that the project is under budget.
    • +
    +
    +
  • +
+
+
+
+

Resources

+

To analyze the project from the resources' point of view, two ratios and a histogram are provided.

+
+

Estimation Deviation on Completed Task Histogram

+

This histogram calculates the deviation between the number of hours allocated to the project tasks and the actual number of hours dedicated to them.

+

The deviation is calculated as a percentage for all finished tasks, and the calculated deviations are represented in a histogram. The vertical axis shows the number of tasks within each deviation interval. Six deviation intervals are dynamically calculated.

+
+
+

Overtime Ratio

+

This ratio summarizes the overload of resources allocated to the project tasks. It is calculated using the formula: overtime ratio = overload / (load + overload).

+
+
    +
  • = 0 is favorable, indicating that the resources are not overloaded.
  • +
  • > 0 is unfavorable, indicating that the resources are overloaded.
  • +
+
+
+
+

Availability Ratio

+

This ratio summarizes the free capacity of the resources currently allocated to the project. Therefore, it measures the resources' availability to receive more allocations without being overloaded. It is calculated as: availability ratio = (1 - load/capacity) * 100

+
+
    +
  • Possible values are between 0% (fully assigned) and 100% (not assigned).
  • +
+
+
+
+
+

Time

+

Two charts are included: a histogram for the time deviation in the finish time of project tasks and a pie chart for deadline violations.

+
+

Task Completion Lead or Lag

+

This calculation determines the difference in days between the planned end time for project tasks and their actual end time. The planned completion date is taken from the Gantt chart, and the actual finish date is taken from the last time tracked for the task.

+

The lag or lead in task completion is represented in a histogram. The vertical axis shows the number of tasks with a lead/lag day difference value corresponding to the abscissa days interval. Six dynamic task completion deviation intervals are calculated.

+
+
    +
  • Negative values mean finishing ahead of schedule.
  • +
  • Positive values mean finishing behind schedule.
  • +
+
+
+
+

Deadline Violations

+

This section calculates the margin with the project deadline, if set. Additionally, a pie chart shows the percentage of tasks meeting their deadline. Three types of values are included in the chart:

+
+
    +
  • Percentage of tasks without a deadline configured.
  • +
  • Percentage of ended tasks with an actual end date later than their deadline. The actual end date is taken from the last time tracked for the task.
  • +
  • Percentage of ended tasks with an actual end date earlier than their deadline.
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/17-2-pipeline-dashboard.html b/libreplan-webapp/src/main/webapp/help/en/17-2-pipeline-dashboard.html new file mode 100644 index 000000000..bb54ed657 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/17-2-pipeline-dashboard.html @@ -0,0 +1,33 @@ + + + + + + +Pipeline Dashboard + + + +
+

Pipeline Dashboard

+ +

The pipeline dashboard is a TASKPM perspective that lists all company projects in a table. This "pipeline" table has nine columns, each corresponding to a project status:

+
+
    +
  • PRE-SALES
  • +
  • OFFERED
  • +
  • OUTSOURCED
  • +
  • ACCEPTED
  • +
  • STARTED
  • +
  • ON HOLD
  • +
  • FINISHED
  • +
  • CANCELLED
  • +
  • ARCHIVED
  • +
+
+

Projects are listed by name in each column based on their current status.

+

A project's start date, end date, and current progress can be viewed in a tooltip popup by hovering the mouse cursor over a project's name.

+

Projects with an ARCHIVED status can be hidden by unchecking the "Show archived column data" checkbox.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/17-dashboards.html b/libreplan-webapp/src/main/webapp/help/en/17-dashboards.html new file mode 100644 index 000000000..3dc8f1af4 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/17-dashboards.html @@ -0,0 +1,24 @@ + + + + + + +Dashboards + + + +
+

Dashboards

+ +

TASKPM offers dashboard views for projects, providing an overview of their current status.

+

The two available dashboard views are:

+ +
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/18-connectors.html b/libreplan-webapp/src/main/webapp/help/en/18-connectors.html new file mode 100644 index 000000000..0f879b53d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/18-connectors.html @@ -0,0 +1,238 @@ + + + + + + +Connectors + + + +
+

Connectors

+ + +

Connectors are TASKPM client applications that can be used to communicate with (web) servers to retrieve data, process it, and store it. Currently, there are three connectors: the JIRA connector, the Tim Enterprise connector, and the E-mail connector.

+
+

Configuration

+

Connectors must be configured properly before they can be used. They can be configured from the "Main Settings" screen under the "Connectors" tab.

+

The connector screen includes:

+
    +
  • Pull-down list: A list of available connectors.
  • +
  • Properties edit screen: A property edit form for the selected connector.
  • +
  • Test connection button: A button to test the connection with the connector.
  • +
+

Select the connector you want to configure from the pull-down list of connectors. A property editor form for the selected connector will be displayed. In the property editor form, you can change the property values as needed and test your configurations using the "Test connection" button.

+
+

Note

+

The properties are configured with default values. The most important property is "Activated." By default, it is set to "N." This indicates that the connector will not be used unless you change the value to "Y" and save the changes.

+
+
+
+

JIRA Connector

+

JIRA is an issue and project tracking system.

+

The JIRA connector is an application that can be used to request JIRA web server data for JIRA issues and process the response. The request is based on JIRA labels. In JIRA, labels can be used to categorize issues. The request is structured as follows: retrieve all issues that are categorized by this label name.

+

The connector receives the response, which in this case is the issues, and converts them to TASKPM "Order elements" and "Time sheets."

+

The JIRA connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the JIRA connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the JIRA connector. The default is "N."
  • +
  • Server URL: The absolute path to the JIRA web server.
  • +
  • User name and password: The user credentials for authorization.
  • +
  • JIRA labels: comma-separated list of labels or URL: You can either enter the label URL or a comma-separated list of labels.
  • +
  • Hours type: The type of work hours. The default is "Default."
  • +
+
+

Note

+

JIRA labels: Currently, the JIRA web server does not support providing a list of all available labels. As a workaround, we have developed a simple PHP script that performs a simple SQL query in the JIRA database to fetch all distinct labels. You can either use this PHP script as the "JIRA labels URL" or enter the labels you want as comma-separated text in the "JIRA labels" field.

+
+

Finally, click the "Test connection" button to test if you can connect to the JIRA web server and that your configurations are correct.

+
+
+

Synchronization

+

From the project window, under "General data," you can start synchronizing order elements with JIRA issues.

+

Click the "Sync with JIRA" button to start the synchronization.

+
    +
  • If this is the first time, a pop-up window (with an auto-completed list of labels) will be displayed. In this window, you can select a label to synchronize with and click the "Start sync" button to begin the synchronization process, or click the "Cancel" button to cancel it.
  • +
  • If a label is already synchronized, the last synchronized date and the label will be displayed in the JIRA screen. In this case, no pop-up window to select a label will be displayed. Instead, the synchronization process will start directly for that displayed (already synchronized) label.
  • +
+
+

Note

+

The relationship between "Order" and "label" is one-to-one. Only one label can be synchronized with one "Order."

+
+
+

Note

+

Upon successful (re)synchronization, the information will be written to the database, and the JIRA screen will be updated with the last synchronized date and label.

+
+

(Re)synchronization is performed in two phases:

+
    +
  • Phase 1: Synchronizing order elements, including progress assignment and measurements.
  • +
  • Phase 2: Synchronizing time sheets.
  • +
+
+

Note

+

If Phase 1 fails, Phase 2 will not be performed, and no information will be written to the database.

+
+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+

Upon successful completion of synchronization, the result will be displayed in the "Work Breakdown Structure (WBS tasks)" tab of the "Project details" screen. In this UI, there are two changes from the standard WBS:

+
    +
  • The "Total task hours" column is unmodifiable (read-only) because the synchronization is one-way. Task hours can only be updated in the JIRA web server.
  • +
  • The "Code" column displays the JIRA issue keys, and they are also hyperlinks to the JIRA issues. Click the desired key if you want to go to the document for that key (JIRA issue).
  • +
+
+
+

Scheduling

+

Re-synchronization of JIRA issues can also be performed through the scheduler. Go to the "Job scheduling" screen. In that screen, you can configure a JIRA job to perform synchronization. The job searches for the last synchronized labels in the database and re-synchronizes them accordingly. See also the Scheduler Manual.

+
+
+
+

Tim Enterprise Connector

+

Tim Enterprise is a Dutch product from Aenova. It is a web-based application for the administration of time spent on projects and tasks.

+

The Tim connector is an application that can be used to communicate with the Tim Enterprise server to:

+
    +
  • Export all hours spent by a worker (user) on a project that could be registered in Tim Enterprise.
  • +
  • Import all rosters of the worker (user) to plan the resource effectively.
  • +
+

The Tim connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the Tim connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the Tim connector. The default is "N."
  • +
  • Server URL: The absolute path to the Tim Enterprise server.
  • +
  • User name and password: The user credentials for authorization.
  • +
  • Number of days timesheet to Tim: The number of days back you want to export the time sheets.
  • +
  • Number of days roster from Tim: The number of days forward you want to import the rosters.
  • +
  • Productivity factor: Effective working hours in percentage. The default is "100%."
  • +
  • Department IDs to import roster: Comma-separated department IDs.
  • +
+

Finally, click the "Test connection" button to test if you can connect to the Tim Enterprise server and that your configurations are correct.

+
+
+

Export

+

From the project window, under "General data," you can start exporting time sheets to the Tim Enterprise server.

+

Enter the "Tim product code" and click the "Export to Tim" button to start the export.

+

The Tim connector adds the following fields along with the product code:

+
    +
  • The worker/user's full name.
  • +
  • The date the worker worked on a task.
  • +
  • The effort, or hours worked on the task.
  • +
  • An option indicating whether Tim Enterprise should update the registration or insert a new one.
  • +
+

The Tim Enterprise response contains only a list of record IDs (integers). This makes it difficult to determine what went wrong, as the response list contains only numbers not related to the request fields. The export request (registration in Tim) is assumed to have succeeded if all the list entries do not contain "0" values. Otherwise, the export request has failed for those entries that contain "0" values. Therefore, you cannot see which request failed, as the list entries only contain the value "0." The only way to determine this is to examine the log file on the Tim Enterprise server.

+
+

Note

+

Upon successful exporting, the information will be written to the database, and the Tim screen will be updated with the last exported date and product code.

+
+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+
+
+

Scheduling Export

+

The export process can also be performed through the scheduler. Go to the "Job Scheduling" screen. In that screen, you can configure a Tim Export job. The job searches for the last exported time sheets in the database and re-exports them accordingly. See also the Scheduler manual.

+
+
+

Import

+

Importing rosters only works with the help of the scheduler. There is no user interface designed for this, as no input is needed from the user. Go to the "Job scheduling" screen and configure a Tim Import job. The job loops through all departments configured in the connector properties and imports all rosters for each department. See also the Scheduler Manual.

+

For import, the Tim connector adds the following fields in the request:

+
    +
  • Period: The period (date from - date to) for which you want to import the roster. This can be provided as a filter criterion.
  • +
  • Department: The department for which you want to import the roster. Departments are configurable.
  • +
  • The fields you are interested in (like Person info, RosterCategory, etc.) that the Tim server should include in its response.
  • +
+

The import response contains the following fields, which are sufficient to manage the exception days in TASKPM:

+
    +
  • Person info: Name and network name.
  • +
  • Department: The department the worker is working in.
  • +
  • Roster category: Information on the presence/absence (Aanwzig/afwezig) of the worker and the reason (TASKPM exception type) in case the worker is absent.
  • +
  • Date: The date the worker is present/absent.
  • +
  • Time: The start time of presence/absence, for example, 08:00.
  • +
  • Duration: The number of hours that the worker is present/absent.
  • +
+

By converting the import response to TASKPM's "Exception day," the following translations are taken into account:

+
    +
  • If the roster category contains the name "Vakantie," it will be translated to "RESOURCE HOLIDAY."
  • +
  • The roster category "Feestdag" will be translated to "BANK HOLIDAY."
  • +
  • All the rest, like "Jus uren," "PLB uren," etc., should be added to the "Calendar Exception Days" manually.
  • +
+

Moreover, in the import response, the roster is divided into two or three parts per day: for example, roster-morning, roster-afternoon, and roster-evening. However, TASKPM allows only one "Exception type" per day. The Tim connector is then responsible for merging these parts as one exception type. That is, the roster category with the highest duration is assumed to be a valid exception type, but the total duration is the sum of all durations of these category parts.

+

Contrary to TASKPM, in Tim Enterprise, the total duration in case the worker is on holiday means the worker is not available for that total duration. However, in TASKPM, if the worker is on holiday, the total duration should be zero. The Tim connector also handles this translation.

+
+
+
+

E-mail Connector

+

E-mail is a method of exchanging digital messages from an author to one or more recipients.

+

The E-mail connector can be used to set Simple Mail Transfer Protocol (SMTP) server connection properties.

+

The E-mail connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the E-mail connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the E-mail connector. The default is "N."
  • +
  • Protocol: The type of SMTP protocol.
  • +
  • Host: The absolute path to the SMTP server.
  • +
  • Port: The port of the SMTP server.
  • +
  • From address: The e-mail address of the message sender.
  • +
  • Username: The username for the SMTP server.
  • +
  • Password: The password for the SMTP server.
  • +
+

Finally, click the "Test connection" button to test if you can connect to the SMTP server and that your configurations are correct.

+
+
+

Edit E-mail Template

+

From the project window, under "Configuration" and then "Edit E-mail Templates," you can modify the e-mail templates for messages.

+

You can choose:

+
    +
  • Template language:
  • +
  • Template type:
  • +
  • E-mail subject:
  • +
  • Template contents:
  • +
+

You need to specify the language because the web application will send e-mails to users in the language they have chosen in their preferences. You need to choose the template type. The type is the user role, meaning that this e-mail will be sent only to users who are in the selected role (type). You need to set the e-mail subject. The subject is a brief summary of the topic of the message. You need to set the e-mail contents. This is any information that you want to send to the user. There are also some keywords that you may use in the message; the web application will parse them and set a new value instead of the keyword.

+
+
+

Scheduling E-mails

+

Sending e-mails can only be performed through the scheduler. Go to "Configuration," then the "Job Scheduling" screen. In that screen, you can configure an e-mail sending job. The job takes a list of e-mail notifications, gathers data, and sends it to the user's e-mail. See also the Scheduler manual.

+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/19-scheduler.html b/libreplan-webapp/src/main/webapp/help/en/19-scheduler.html new file mode 100644 index 000000000..8379b5b4c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/19-scheduler.html @@ -0,0 +1,107 @@ + + + + + + +Scheduler + + + +
+

Scheduler

+ + +

The scheduler is designed to schedule jobs dynamically. It is developed using the Spring Framework Quartz scheduler.

+

To use this scheduler effectively, the jobs (Quartz jobs) that should be scheduled must be created first. Then, these jobs can be added to the database, as all jobs to be scheduled are stored in the database.

+

When the scheduler starts, it reads the jobs to be scheduled or unscheduled from the database and schedules or removes them accordingly. Afterward, jobs can be added, updated, or removed dynamically using the Job scheduling user interface.

+
+

Note

+

The scheduler starts when the TASKPM web application starts and stops when the application stops.

+
+
+

Note

+

This scheduler supports only cron expressions to schedule jobs.

+
+

The criteria that the scheduler uses to schedule or remove jobs when it starts are as follows:

+

For all jobs:

+
    +
  • Schedule
      +
    • Job has a Connector, and the Connector is activated, and the job is allowed to be scheduled.
    • +
    • Job has no Connector and is allowed to be scheduled.
    • +
    +
  • +
  • Remove
      +
    • Job has a Connector, and the Connector is not activated.
    • +
    • Job has a Connector, and the Connector is activated, but the job is not allowed to be scheduled.
    • +
    • Job has no Connector and is not allowed to be scheduled.
    • +
    +
  • +
+
+

Note

+

Jobs cannot be rescheduled or unscheduled if they are currently running.

+
+
+

Job Scheduling List View

+

The Job scheduling list view allows users to:

+
    +
  • Add a new job.
  • +
  • Edit an existing job.
  • +
  • Remove a job.
  • +
  • Start a process manually.
  • +
+
+
+

Add or Edit Job

+

From the Job scheduling list view, click:

+
    +
  • Create to add a new job, or
  • +
  • Edit to modify the selected job.
  • +
+

Both actions will open a create/edit job form. The form displays the following properties:

+
    +
  • Fields:
      +
    • Job group: The name of the job group.
    • +
    • Job name: The name of the job.
    • +
    • Cron expression: A read-only field with an Edit button to open the cron expression input window.
    • +
    • Job class name: A pull-down list to select the job (an existing job).
    • +
    • Connector: A pull-down list to select a connector. This is not mandatory.
    • +
    • Schedule: A checkbox to indicate whether to schedule this job.
    • +
    +
  • +
  • Buttons:
      +
    • Save: To save or update a job in both the database and the scheduler. The user is then returned to the Job scheduling list view.
    • +
    • Save and continue: The same as "Save," but the user is not returned to the Job scheduling list view.
    • +
    • Cancel: Nothing is saved, and the user is returned to the Job scheduling list view.
    • +
    +
  • +
  • And a hint section about cron expression syntax.
  • +
+
+

Cron Expression Pop-up

+

To enter the cron expression correctly, a cron expression pop-up form is used. In this form, you can enter the desired cron expression. See also the hint about the cron expression. If you enter an invalid cron expression, you will be notified immediately.

+
+
+
+

Remove Job

+

Click the Remove button to delete the job from both the database and the scheduler. The success or failure of this action will be displayed.

+
+
+

Start Job Manually

+

As an alternative to waiting for the job to run as scheduled, you can click this button to start the process directly. Afterward, the success or failure information will be displayed in a pop-up window.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/20-acerca-de.html b/libreplan-webapp/src/main/webapp/help/en/20-acerca-de.html new file mode 100644 index 000000000..b6700acd4 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/20-acerca-de.html @@ -0,0 +1,155 @@ + + + + + + +About + + + +
+

About

+ + + +
+

License

+

This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version.

+

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/>.

+
+
+

Written by

+
+

LibrePlan Team

+ +
+
+

Previous Team Members

+ +
+
+

Translators

+ +
+
+

Contributors

+ +
+
+
+

Public Funding

+

This project currently accepts donations through the Open Collective organization <https://opencollective.com/LibrePlan>.

+

Within the global scope that LibrePlan is designed for regarding planning management, a project was developed to solve some common planning problems.

+

This project was partially financed by Xunta de Galicia, Ministerio de Industria, Turismo e Comercio, and by the European Union, Fondo Europeo de Desenvolvemento Rexional.

+
+images/logos.png +
+ +++ + + + +
scale:100
+

This project was part of Plan Avanza:

+
+images/avanza.png +
+ +++ + + + +
scale:100
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/21-communications.html b/libreplan-webapp/src/main/webapp/help/en/21-communications.html new file mode 100644 index 000000000..e4f5ea081 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/21-communications.html @@ -0,0 +1,18 @@ + + + + + + +Subcontractor Work Description + + + +
+

Subcontractor Work Description

+ +

While it is possible to leave this field empty, doing so can lead to errors in communication functionality when multiple empty fields exist.

+

Therefore, we strongly recommend always using a unique work description.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/22-pert.html b/libreplan-webapp/src/main/webapp/help/en/22-pert.html new file mode 100644 index 000000000..c27af3c56 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/22-pert.html @@ -0,0 +1,17 @@ + + + + + + +PERT Chart + + + +
+

PERT Chart

+ +

Unlike Libreplan, which was focused on the GANNT chart and did not have a PERT chart, TASKPM does have a PERT chart and is more focused on it.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/22-taskpm.html b/libreplan-webapp/src/main/webapp/help/en/22-taskpm.html new file mode 100644 index 000000000..126f991aa --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/22-taskpm.html @@ -0,0 +1,18 @@ + + + + + + +PERT Chart and Subnets + + + +
+

PERT Chart and Subnets

+ +

Unlike Libreplan, which was focused on the GANNT chart and did not have a PERT chart, TASKPM does have a PERT chart and is more focused on it.

+

Libreplan, only had a single level of planning, the whole project, seen in GANNT charts, TASKPM sees these as subnetworks of activities of a master project.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/23-subnets.html b/libreplan-webapp/src/main/webapp/help/en/23-subnets.html new file mode 100644 index 000000000..42cd9e634 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/23-subnets.html @@ -0,0 +1,17 @@ + + + + + + +Task Subnets + + + +
+

Task Subnets

+ +

Unlike Libreplan, which only had a single level of planning, the whole project, TASKPM has subnetworks of activities which can be embedded in a master project.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/images/advance-assignment.png b/libreplan-webapp/src/main/webapp/help/en/images/advance-assignment.png new file mode 100644 index 000000000..aeb55b2b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/advance-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/asignacion-especifica.png b/libreplan-webapp/src/main/webapp/help/en/images/asignacion-especifica.png new file mode 100644 index 000000000..9ee94d9c6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/asignacion-especifica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/asignacion-xenerica.png b/libreplan-webapp/src/main/webapp/help/en/images/asignacion-xenerica.png new file mode 100644 index 000000000..d2a16597f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/asignacion-xenerica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/avance.png b/libreplan-webapp/src/main/webapp/help/en/images/avance.png new file mode 100644 index 000000000..ee289e19c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/avanza.png b/libreplan-webapp/src/main/webapp/help/en/images/avanza.png new file mode 100644 index 000000000..a51893f80 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/avanza.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/calendar-administration.png b/libreplan-webapp/src/main/webapp/help/en/images/calendar-administration.png new file mode 100644 index 000000000..bb4e17032 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/calendar-administration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/calendar-create-derived.png b/libreplan-webapp/src/main/webapp/help/en/images/calendar-create-derived.png new file mode 100644 index 000000000..9f01f2c33 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/calendar-create-derived.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/calendar-edition.png b/libreplan-webapp/src/main/webapp/help/en/images/calendar-edition.png new file mode 100644 index 000000000..a98cc4454 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/calendar-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/calendar-exceptions.png b/libreplan-webapp/src/main/webapp/help/en/images/calendar-exceptions.png new file mode 100644 index 000000000..c2a53a684 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/calendar-exceptions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/category-cost-edit.png b/libreplan-webapp/src/main/webapp/help/en/images/category-cost-edit.png new file mode 100644 index 000000000..1755ee79e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/category-cost-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/category-cost-list.png b/libreplan-webapp/src/main/webapp/help/en/images/category-cost-list.png new file mode 100644 index 000000000..1d7ff838c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/category-cost-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/company_view.png b/libreplan-webapp/src/main/webapp/help/en/images/company_view.png new file mode 100644 index 000000000..c3a7631e6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/company_view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/contraste-avance.png b/libreplan-webapp/src/main/webapp/help/en/images/contraste-avance.png new file mode 100644 index 000000000..831cceac3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/contraste-avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/default-calendar.png b/libreplan-webapp/src/main/webapp/help/en/images/default-calendar.png new file mode 100644 index 000000000..6fd379d08 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/default-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/edicion-criterio.png b/libreplan-webapp/src/main/webapp/help/en/images/edicion-criterio.png new file mode 100644 index 000000000..2b879ced5 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/edicion-criterio.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/hour-type-edit.png b/libreplan-webapp/src/main/webapp/help/en/images/hour-type-edit.png new file mode 100644 index 000000000..4917b08a8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/hour-type-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/hour-type-list.png b/libreplan-webapp/src/main/webapp/help/en/images/hour-type-list.png new file mode 100644 index 000000000..1872eb4f7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/hour-type-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/lista-criterios.png b/libreplan-webapp/src/main/webapp/help/en/images/lista-criterios.png new file mode 100644 index 000000000..a2e7d03cb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/lista-criterios.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/logo.png b/libreplan-webapp/src/main/webapp/help/en/images/logo.png new file mode 100644 index 000000000..8215f3973 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/logo.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/logos.png b/libreplan-webapp/src/main/webapp/help/en/images/logos.png new file mode 100644 index 000000000..6e3033c69 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/logos.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/machine-calendar.png b/libreplan-webapp/src/main/webapp/help/en/images/machine-calendar.png new file mode 100644 index 000000000..a725f67a2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/machine-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/machine-configuration.png b/libreplan-webapp/src/main/webapp/help/en/images/machine-configuration.png new file mode 100644 index 000000000..0777473fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/machine-configuration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/machine-costcategory.png b/libreplan-webapp/src/main/webapp/help/en/images/machine-costcategory.png new file mode 100644 index 000000000..b8414eac6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/machine-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/machine-criterions.png b/libreplan-webapp/src/main/webapp/help/en/images/machine-criterions.png new file mode 100644 index 000000000..7c270bf35 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/machine-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/machine-data.png b/libreplan-webapp/src/main/webapp/help/en/images/machine-data.png new file mode 100644 index 000000000..5edb47d12 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/machine-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/manage-user-profile.png b/libreplan-webapp/src/main/webapp/help/en/images/manage-user-profile.png new file mode 100644 index 000000000..6a86064e2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/manage-user-profile.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/manage-user.png b/libreplan-webapp/src/main/webapp/help/en/images/manage-user.png new file mode 100644 index 000000000..df59f1b7c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/manage-user.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/material.png b/libreplan-webapp/src/main/webapp/help/en/images/material.png new file mode 100644 index 000000000..a77b5aa41 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/menu.png b/libreplan-webapp/src/main/webapp/help/en/images/menu.png new file mode 100644 index 000000000..f4eec5250 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/menu.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/new-resource-calendar.png b/libreplan-webapp/src/main/webapp/help/en/images/new-resource-calendar.png new file mode 100644 index 000000000..9040e0bc0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/new-resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/order-assigned-hours.png b/libreplan-webapp/src/main/webapp/help/en/images/order-assigned-hours.png new file mode 100644 index 000000000..4fd629386 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/order-assigned-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/order-criterions.png b/libreplan-webapp/src/main/webapp/help/en/images/order-criterions.png new file mode 100644 index 000000000..e59bd833f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/order-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/order-edition.png b/libreplan-webapp/src/main/webapp/help/en/images/order-edition.png new file mode 100644 index 000000000..ff67134db Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/order-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/order-element-criterion.png b/libreplan-webapp/src/main/webapp/help/en/images/order-element-criterion.png new file mode 100644 index 000000000..f167979b0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/order-element-criterion.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/order-element-edition.png b/libreplan-webapp/src/main/webapp/help/en/images/order-element-edition.png new file mode 100644 index 000000000..66e5e8602 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/order-element-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/order-element-hours.png b/libreplan-webapp/src/main/webapp/help/en/images/order-element-hours.png new file mode 100644 index 000000000..06cc1dc37 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/order-element-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/order-element-material-assign.png b/libreplan-webapp/src/main/webapp/help/en/images/order-element-material-assign.png new file mode 100644 index 000000000..90f973766 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/order-element-material-assign.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/order-element-material-search.png b/libreplan-webapp/src/main/webapp/help/en/images/order-element-material-search.png new file mode 100644 index 000000000..550f1d7fa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/order-element-material-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/order-element-quality.png b/libreplan-webapp/src/main/webapp/help/en/images/order-element-quality.png new file mode 100644 index 000000000..3272ce70e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/order-element-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/order-element-tags.png b/libreplan-webapp/src/main/webapp/help/en/images/order-element-tags.png new file mode 100644 index 000000000..e43a7d795 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/order-element-tags.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/order-elements-list.png b/libreplan-webapp/src/main/webapp/help/en/images/order-elements-list.png new file mode 100644 index 000000000..271ac9bf6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/order-elements-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/order-labels.png b/libreplan-webapp/src/main/webapp/help/en/images/order-labels.png new file mode 100644 index 000000000..076e0a745 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/order-labels.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/order-material.png b/libreplan-webapp/src/main/webapp/help/en/images/order-material.png new file mode 100644 index 000000000..9197679e7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/order-material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/order-quality.png b/libreplan-webapp/src/main/webapp/help/en/images/order-quality.png new file mode 100644 index 000000000..ee9e9027e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/order-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/order_list.png b/libreplan-webapp/src/main/webapp/help/en/images/order_list.png new file mode 100644 index 000000000..72e70f3b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/order_list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/planning-view.png b/libreplan-webapp/src/main/webapp/help/en/images/planning-view.png new file mode 100644 index 000000000..de74811eb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/planning-view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/quality.png b/libreplan-webapp/src/main/webapp/help/en/images/quality.png new file mode 100644 index 000000000..1850f51b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/resource-assignment-generic.png b/libreplan-webapp/src/main/webapp/help/en/images/resource-assignment-generic.png new file mode 100644 index 000000000..3519a5087 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/resource-assignment-generic.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/resource-assignment-planning.png b/libreplan-webapp/src/main/webapp/help/en/images/resource-assignment-planning.png new file mode 100644 index 000000000..c4233780d Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/resource-assignment-planning.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/resource-assignment-search.png b/libreplan-webapp/src/main/webapp/help/en/images/resource-assignment-search.png new file mode 100644 index 000000000..cae142d81 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/resource-assignment-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/resource-assignment-specific.png b/libreplan-webapp/src/main/webapp/help/en/images/resource-assignment-specific.png new file mode 100644 index 000000000..8f7b1cba2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/resource-assignment-specific.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/resource-assignment.png b/libreplan-webapp/src/main/webapp/help/en/images/resource-assignment.png new file mode 100644 index 000000000..427d25b79 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/resource-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/resource-calendar.png b/libreplan-webapp/src/main/webapp/help/en/images/resource-calendar.png new file mode 100644 index 000000000..749c7b829 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/resource-load.png b/libreplan-webapp/src/main/webapp/help/en/images/resource-load.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/resource-load.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/resources_global.png b/libreplan-webapp/src/main/webapp/help/en/images/resources_global.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/resources_global.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/stretches.png b/libreplan-webapp/src/main/webapp/help/en/images/stretches.png new file mode 100644 index 000000000..d661a63f6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/stretches.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/tag-types-edition.png b/libreplan-webapp/src/main/webapp/help/en/images/tag-types-edition.png new file mode 100644 index 000000000..d366c09c2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/tag-types-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/tag-types-list.png b/libreplan-webapp/src/main/webapp/help/en/images/tag-types-list.png new file mode 100644 index 000000000..e7de5048c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/tag-types-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/tipos-avances.png b/libreplan-webapp/src/main/webapp/help/en/images/tipos-avances.png new file mode 100644 index 000000000..bb417f52c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/tipos-avances.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/virtual-resources.png b/libreplan-webapp/src/main/webapp/help/en/images/virtual-resources.png new file mode 100644 index 000000000..3a54f95d3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/virtual-resources.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/work-report-hours.png b/libreplan-webapp/src/main/webapp/help/en/images/work-report-hours.png new file mode 100644 index 000000000..568e9fed6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/work-report-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/work-report-type.png b/libreplan-webapp/src/main/webapp/help/en/images/work-report-type.png new file mode 100644 index 000000000..2549d8b5e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/work-report-type.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/work-report-types.png b/libreplan-webapp/src/main/webapp/help/en/images/work-report-types.png new file mode 100644 index 000000000..986f705aa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/work-report-types.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/worker-calendar.png b/libreplan-webapp/src/main/webapp/help/en/images/worker-calendar.png new file mode 100644 index 000000000..1227969b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/worker-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/worker-costcategory.png b/libreplan-webapp/src/main/webapp/help/en/images/worker-costcategory.png new file mode 100644 index 000000000..f330db68c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/worker-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/worker-criterions.png b/libreplan-webapp/src/main/webapp/help/en/images/worker-criterions.png new file mode 100644 index 000000000..a131a29fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/worker-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/images/worker-personal-data.png b/libreplan-webapp/src/main/webapp/help/en/images/worker-personal-data.png new file mode 100644 index 000000000..6a5033ba8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/en/images/worker-personal-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/en/index.html b/libreplan-webapp/src/main/webapp/help/en/index.html new file mode 100644 index 000000000..0053e95ab --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/index.html @@ -0,0 +1,52 @@ + + + + + + +TASKPM: User documentation + + + +
+

TASKPM: User documentation

+ +
+images/logo.png +
+

Following document contains necessary help for using TASKPM, a web application for personal project planning with support for the standard model of the firm as well.

+

Chapter 2 is specific to the TASKPM derivation, the remainder is the largely unchanged document original document, but with some revisions for our context.

+

The original authors apparently intended this division of chapters, which I've adapted for this derivation:

+

1-2 global goals and behaviour.

+

3-11 basic entities to understand the minimum concepts to use TASKPM.

+

12-16 focus on the traditional model of the firm, this function is preserved but is not maintained and the Jasper reports dont work at all currently. We have alternative ERP functionality and there isat this time no intent to integrate it with what is done in these chapters.

+

17 is mooted by the DS SAR and should be ignored.

+

18-20 and 22 are ancillary function that will be maintained and supported.

+

Credit for the orignal pkg from which TASKPM was derived is in Chapter 21, per it's Affero license the sources of this derivation are available to users entitled to use the app in our forgejo repo.

+
    +
  1. Introduction
  2. +
  3. PERT Chart and Task Subprojects
  4. +
  5. Criteria
  6. +
  7. Calendars
  8. +
  9. Progress
  10. +
  11. Resource Management
  12. +
  13. Orders and Order Elements
  14. +
  15. Task Planning
  16. +
  17. Resource Assignment
  18. +
  19. Work Reports
  20. +
  21. Labels
  22. +
  23. Materials Management
  24. +
  25. Quality Forms
  26. +
  27. User Management
  28. +
  29. Cost management
  30. +
  31. Reports
  32. +
  33. LDAP Configuration
  34. +
  35. Dashboards
  36. +
  37. Connectors
  38. +
  39. Scheduler
  40. +
  41. Libreplan
  42. +
  43. Subcontractor Work Description
  44. +
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/en/lsr.css b/libreplan-webapp/src/main/webapp/help/en/lsr.css new file mode 100644 index 000000000..ced6c967a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/en/lsr.css @@ -0,0 +1,250 @@ +/* +Author: Peter Parente +Date: 2008/01/22 +Version: 1.0 +Copyright: This stylesheet has been placed in the public domain - free to edit and use for all uses. +*/ + +body { + font: 0.8em Verdana, Tahoma, sans-serif; + background: #ffffff; + color: black; + margin: 2em; +} + +p.topic-title { + font-weight: bold; +} + +table.docinfo { + text-align: left; + margin: 2em 0; +} + +a[href] { + color: #436976; + background-color: transparent; +} + +a.toc-backref { + text-decoration: none; +} + +h1 a[href] { + color: #003a6b; + text-decoration: none; + background-color: transparent; +} + +a.strong { + font-weight: bold; +} + +img { + margin: 0; + border: 0; +} + +p { + margin: 0.5em 0 1em 0; + line-height: 1.5em; +} + +p a:visited { + color: purple; + background-color: transparent; +} + +p a:active { + color: red; + background-color: transparent; +} + +a:hover { + text-decoration: none; +} + +p img { + border: 0; + margin: 0; +} + +p.rubric { + font-weight: bold; + font-style: italic; +} + +h1.title { + color: #003a6b; + font-size: 250%; + margin-bottom: 0; +} + +h2.subtitle { + color: #003a6b; + border-bottom: 0; +} + +h1, h2, h3, h4, h5, h6 { + color: #555; + background-color: transparent; + margin: 0; + padding-top: 0.5em; +} + +h1 { + font-size: 160%; + margin-bottom: 0.5em; + border-bottom: 2px solid #aaa; +} + +h2 { + font-size: 140%; + margin-bottom: 0.5em; + border-bottom: 1px solid #aaa; +} + +h3 { + font-size: 130%; + margin-bottom: 0.5em; +} + +h4 { + font-size: 110%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h5 { + font-size: 105%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h6 { + font-size: 100%; + font-weight: bold; + margin-bottom: 0.5em; +} + +dt { + font-style: italic; +} + +dd { + margin-bottom: 1.5em; +} + +div.admonition, div.note, div.tip, div.caution, div.important, div.warning { + margin: 2em 2em; + padding: 0 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +div.important { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +div.caution { + background: transparent url('../images/caution.png') 10px 2px no-repeat; +} + +div.note { + background: transparent url('../images/note.png') 10px 2px no-repeat; +} + +div.tip { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-example { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-critical-example { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +p.admonition-title { + font-weight: bold; + border-bottom: 1px solid #aaa; + padding-left: 30px; +} + +table.docutils { + text-align: left; + border: 1px solid gray; + border-collapse: collapse; + width: 100%; + margin: 1.5em 0; +} + +table.docutils caption { + font-style: italic; +} + +table.docutils td, table.docutils th { + padding: 0.25em 0.5em; +} + +table.docutils th { + background-color: #dddddd; +} + +div.sidebar { + width: 33%; + float: right; + margin: 0 2em; + padding: 0 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +p.sidebar-title { + margin-bottom: 0; + color: #003a6b; + border-bottom: 1px solid #aaa; + font-weight: bold; +} + +p.sidebar-subtitle { + margin-top: 0; + font-style: italic; + color: #003a6b; +} + +div.figure { + text-align: center; +} + +div.figure img { + background: #f8f8f8; + padding: 0.25em; + border: 1px solid #888; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +div.figure img:hover { + background: #e0e0e0; +} + +div.figure p.caption { + text-align: center; + margin-top: 0.1em; + font-style: italic; + color: #444; +} + +pre.literal-block { + padding: 0.15em; + background: #f8f8f8; + border: 1px solid #dfdfdf; + border-left: 0.25em solid #dfdfdf +} diff --git a/libreplan-webapp/src/main/webapp/help/es/01-introducion.html b/libreplan-webapp/src/main/webapp/help/es/01-introducion.html new file mode 100644 index 000000000..294f7267c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/es/01-introducion.html @@ -0,0 +1,147 @@ + + + + + + +Introducción + + + +
+

Introducción

+ + +

El propósito de este documento es describir las características de LibrePlan y +proporcionar información a los usuarios sobre cómo configurar y utilizar la +aplicación.

+

LibrePlan es una aplicación web de código abierto para la planificación de +proyectos. Su objetivo principal es proporcionar una solución completa para la +gestión de los proyectos de la empresa. +Para cualquier información específica que necesites sobre este software, por +favor ponte en contacto con el equipo de desarrollo en +http://www.libreplan.com/contact/

+
+images/company_view.png +

Vista global de empresa

+
+
+

Vista global de la empresa y gestión de perspectivas

+

Como se muestra en la anterior la captura de la pantalla principal de la aplicación y la vista global de la empresa, una vista en la que el usuario puede ver la lista de proyectos planificados para conocer el estado global de la empresa, tanto a nivel de pedidos, como del uso de recursos. La vista global de la empresa está, asimismo, formado por 3 perspectivas:

+
    +
  • Vista de planificación: Vista que combina dos puntos de vista:

    +
    +
      +
    • Vista de los pedidos y su temporalidad: Cada proyecto es una caja de diagramas de Gantt indicando la fecha de comienzo y de fin del proyecto. Además, se combina dicha información con el mostrado de la fecha acordada de finalización (deadline) y con un contraste entre porcentaje de avance y horas realmente dedicadas a cada proyecto. Esta información da una visión clara de cómo se encuentra la empresa en un momento dado. Esta vista es la portada de la aplicación.
    • +
    • Gráfica de uso de los recursos de la empresa: Gráfica que busca la información de asignaciones de los recursos a los proyectos y que ofrece un resumen de cómo está el uso de los recursos de toda la empresa: el color verde indica asignaciones de recursos por debajo del 100%, la línea negra indica la carga disponible de recursos y el color amarillo indica las asignaciones a recursos que están por encima del 100%. Es posible disponer de menos asignaciones que recursos disponibles y al mismo tiempo contar con sobreasignaciones en recursos concretos.
    • +
    +
    +
  • +
  • Vista de carga de recursos: Pantalla que muestra el listado de trabajadores de la empresa y la carga debido la asignaciones específicas a tareas o asignaciones genéricas debido a que el recurso satisface una lista de criterios. Ver siguiente imagen. Para acceder a esta vista es necesario hacer click en Carga global de recursos.

    +
  • +
  • Vista de administración de pedidos. Pantalla que muestra el listado de pedidos de la empresa donde el usuario pode realizar las siguientes operaciones: filtrar, editar, borrar, visualizar en planificación o crear nuevo pedido. Para acceder a esta vista es necesario hacer click en Lista de pedidos.

    +
  • +
+
+images/resources_global.png +

Vista global de recursos

+
+
+images/order_list.png +

Estructura de Descomposición de Trabajo

+
+

La gestión de perspectivas que se comentó para la vista global de empresa es muy similar a la planteada para un solo proyecto. El acceso a un proyecto se puede realizar de varias formas:

+
    +
  • Presionando en el botón derecho sobre la caja de diagrama de Gantt del pedido y seleccionando en Planificar.
  • +
  • Accediendo al listado de pedidos y haciendo click en el icono simbolizando los diagramas de Gantt.
  • +
  • Creando un nuevo pedido y cambiar de perspectiva sobre el pedido siendo visualizado.
  • +
+

Sobre un pedido, la aplicación muestra las siguientes perspectivas:

+
    +
  • Vista de planificación. Vista en la que el usuario puede visualizar la planificación de las tareas, dependencias, hitos, etc. Ver sección de Planificación para más información.
  • +
  • Vista de carga de recursos. Vista en la que el usuario puede comprobar la carga de los recursos asignados al proyecto. El código de colores es mismo que en la vista global de empresa: verde para carga menor al 100%, amarillo para carga igual a 100% y rojo para carga mayor a 100%. La carga puede venir dada por una tarea o por una lista de criterios (asignación genérica).
  • +
  • Vista de edición de pedido. Vista en la que el usuario puede administrar los datos del pedido. Ver sección de Pedidos para más información.
  • +
  • Vista de asignación avanzada de recursos. Vista en la que el usuario puede asignar recursos de manera avanzada, seleccionando las horas por día o las funciones de asignación que desea aplicar. Ver sección de Asignación de recursos para más información.
  • +
+
+
+

¿Por que es útil LibrePlan?

+

LibrePlan es una aplicación que se ha desarrollado como una herramienta de +planificación de propósito general. Se basa en una serie de conceptos +descubiertos mediante el análisis de problemas en la planificación de proyectos +industriales que no estaban completamente cubiertos por ninguna herramienta de +planificación existente. Otras de las motivaciones para el desarrollo de +LibrePlan se basaban en proporcionar una alternativa de software libre, y +complétamente web, a las herramientas de planficación privativas existentes.

+

Los conceptos esenciales que se utilizan para el programa son los siguientes:

+
    +
  • Vista global de empresa y multiproyecto: LibrePlan es una aplicación orientada específicamente a dotar de información a los usuarios sobre proyectos que se llevan a cabo en una empresa, por lo que la base es multiproyecto. No se determinó que el enfoque del proyecto sea orientado individualmente a cada proyecto. Sin embargo, también é posible posible disponer de varias vistas específicas, entre ellas la de proyectos individuales.
  • +
  • Gestión de perspectivas: La vista global de empresa o vista multiproyecto se ve complementada con las perspectivas sobre la información que se almacena. Por ejemplo, la vista global de empresa permite visualizar los pedidos y contrastar el estado de los mismos, visualizar la carga general de recursos de la empresa y administrar los pedidos. Por otro lado, en la vista de proyecto, es posible visualizar la planificación, la carga de recursos, la vista de asignación de recursos avanzada y la edición del pedido relacionado.
  • +
  • Criterios: Los criterios son una entidad del sistema que permiten clasificar los recursos (tanto humanos como máquinas) y las tareas. Desde el punto de vista de los recursos, estos deben satisfacer criterios y, desde el punto de vista de las tareas, estas requiren criterios a ser satisfechos. Se corresponden con uno de los aspectos más importantes de la aplicación, ya que los criterios forman parte de la base de las asignaciones genéricas en la aplicación, resolviendo uno de los problemas más importantes para el sector, la alta temporalidad de los recursos humanos y la dificultad para tener estimaciones de carga de la empresa a largo plazo.
  • +
  • Recursos: Son de dos tipos diferentes: humanos y máquinas. Los recursos humanos son los trabajadores de la empresa que se utilizan para planificar, monitorizar y controlar la carga de la empresa. Y, por outro lado, las máquinas, dependientes de las persoas que las gestionan, son otros recursos que actúan de modo similar a los recursos humanos.
  • +
  • Asignación de recursos: Una de las claves es el hecho de ofrecer la posibilidade de dos tipos de asignación: asignación específica y asignación genérica. La genérica es una asignación basada en los criterios que se requieren para realizar una tarea, y que deben ser satisfechos por recursos que tienen la capacidad de realizarlas. Para entender la asignación genérica es necesario entender el siguiente caso: Jonh Smith es soldador, generalmente el propio Jonh Smith es asignado a la tarea planificada, pero "LibrePlan" ofrece la posibilidad de elegir un recurso en general entre los soldadores da empresa, sin preocuparse de si Jonh Smith es el asignado a la tarea.
  • +
  • Control de carga de la empresa: La aplicación da la posibilidad de tener un control sencillo de la carga de los recursos de la empresa. Este control se realiza a medio y largo plazo ya que se pueden controlar tanto los proyectos presentes como los potenciales proyectos a futuro. "LibrePlan" ofrece gráficos de uso de recursos.
  • +
  • Etiquetas: Son elementos que se usan para lo etiquetado de las tareas de los proyectos. Con estas etiquetas el usuario de la aplicación puede realizar agrupaciones conceptuales de las tareas para posteriormente poder consultarlas de manera agrupada y filtrada.
  • +
  • Filtrados: Dado que el sistema dispone de manera natural de elementos que etiquetan o caracterízan tareas y recursos, es posible utilizar filtrado de criterios o etiquetas, lo cual dota de una gran potencia para poder consultar información categorizada o extraer informes específicos en base a criterios o etiquetas.
  • +
  • Calendarios: Los calendarios determinan las horas productivas disponibles de los diferentes recursos. El usuario puede crear calendarios generales de la empresa y derivar las características para calendarios más concretos, llegando hasta a nivel de calendario por recurso o tarea.
  • +
  • Pedido y elementos de pedido: Los trabajos solicitados por los clientes tienen un reflejo en la aplicación en forma de pedido, que se estructura en elementos de pedido. El pedido con sus elementos conforman una estructura jerárquica en n niveles. Este árbol de elementos es sobre la que se trabaje a la hora de planificar trabajos.
  • +
  • Avances: La aplicación permite gestionar diversos tipos de avances. Un proyecto puede ser medido en porcentaje de avance, sin embargo, puede ser medido en unidades, presupuesto acordado, etc. Es responsabilidad de la persona que gestiona la planificación decidir que tipo de avance es utilizado para contrastar avances a niveles superiores de proyecto.
  • +
  • Tareas: Las tareas son los elementos de planificación de la aplicación. Son utilizadas para temporalizar los trabajos a realizar. Las características más importantes de las tareas son: tienen dependencias entre sí y pueden requerir criterios a ser satisfechos para asignar recursos.
  • +
  • Partes de trabajo: Son los partes de los trabajadores de las empresas, indicando las horas trabajadas y por otro lado las tareas asignadas a las horas que un trabajador realizó. Con esta información, el sistema es capaz de calcular cuantas horas fueron consumidas de una tarea con respeto al total de horas presupuestadas, permitiendo contrastar los avances respeto del consumo de horas real.
  • +
+

A mayores de las funcionalidades que ofrece la aplicación caben destacar otras características que lo distinguen de aplicaciones similares:

+
    +
  • Integración con ERP: La aplicación importa información directamente de los ERP de las empresas para los pedidos, recursos humanos, partes de trabajo y ciertos criterios.
  • +
  • Gestión de versiones: La aplicación permite la gestión de diversas versiones de planificaciones y al incluso tiempo a posibilidad de consultar la información de cada una de ellas.
  • +
  • Gestión de históricos: La aplicación no borra información, solo la invalida, por lo que es posible consultar mediante filtrados por fechas la información antigua.
  • +
+
+
+

Convenciones de usabilidad

+
+

Comportamiento de los formularios

+

Antes de realizar una exposición de las distintas funcionalidades asociadas a los módulos más importantes, es necesario hacer una explicación general de la filosofía de navegación y formularios.

+

Existen fundamentalmente 3 tipos de formularios de edición:

+
    +
  • Formularios con botón de Volver. Estos formularios forman parte de una navegación más completa, y los cambios que se van realizando se van almacenando en memoria. Los cambios sólo se aplican cuando el usuario almacena explícitamente toda los datos de la pantalla desde la que llegó la dicho formulario.
  • +
  • Formularios con botón de Guardar y Cerrar. Estos formularios permiten realizar 2 operaciones. La primera de ellas almacena y cierra la ventana actual y la segunda de ellas cierra sin almacenar los cambios.
  • +
  • Formularios con botón de Guardar y Continuar, "Guardar" y "Cerrar". Permiten realizar 3 operaciones. La primera de ellas almacena pero continúa en el formulario actual. La segunda almacena y cierra el formulario. Y la tercera cierra la ventana sin almacenar los cambios.
  • +
+
+
+

Iconos y botones estándar

+
    +
  • Edición: La edición de los registros de la aplicación puede ser realizada generalmente a través de un icono formado por un lápiz sobre una libreta blanca.
  • +
  • Indentado izquierda: Generalmente estas operaciones son necesarias para elementos de un árbol que se desean mover hacia niveles internos. Esta operación puede ser hecha con el icono formado por una flecha hacia derecha de color verde.
  • +
  • Indentado derecha: Generalmente estas operaciones son necesarias para elementos de un árbol que se desean mover desde niveles internos cara externos. Esta operación puede ser hecha con el icono formado por una flecha hacia izquierda de color verde.
  • +
  • Borrado: Los borrados pueden ser realizados con el icono de la papelera.
  • +
  • Búsqueda: La lupa es un icono que indica que la entrada de texto a la izquierda de la misma está pensada para la búsqueda de elementos.
  • +
+
+
+

Pestañas

+

Existirán formularios de edición y administración de contenidos que se encuentran representados mediante componentes gráficos basados en pestañas. Dicha presentación es un mecanismo para organizar la información de un formulario global en diferentes secciones que pueden ser accedidas presionando en los títulos de las diferentes pestañas, manteniendo el estado en el que se encontraban las demás. En todos estos casos, las operaciones de guardar o cancelar que se ejecuten afectan al conjunto de subformularios de las diferentes pestañas.

+
+
+

Acciones explícitas y ayuda contextual

+

Están implementados en la aplicación componentes que proporcionan un texto descriptivo adicional del elemento sobre que se encuentra enfocado al transcurrir un segundo sobre los mismos. +Las acciones que el usuario puede ejecutar en la aplicación están explicitadas tanto en las etiquetas de los botones y en los textos de ayuda que aparecen sobre los mismos, en las opciones del menú de navegación o en las opciones de los menús contextuales que se despliegan el hacer click en el botón derecho en el área del planificador. +Asimismo, también se proporcionan atajos a las operaciones principales haciendo doble click en los elementos que se listan, o asociando los eventos de teclado con los cursores y la tecla de retorno al desplazamiento por los formularios es a la acción de añadir elementos, respectivamente.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/es/02-criterios.html b/libreplan-webapp/src/main/webapp/help/es/02-criterios.html new file mode 100644 index 000000000..dd8e946c4 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/es/02-criterios.html @@ -0,0 +1,68 @@ + + + + + + +Criterios + + + +
+

Criterios

+ + +

Los criterios son los elementos que se utilizan en la aplicación para categorizar los recursos y las tareas. Las tareas requieren criterios y los recursos los satisfacen. Un ejemplo de utilización de criterios es la siguiente secuencia: un recurso es asignado con el criterio "soldador" (es decir, satisface el criterio "soldador") y una tarea requiere el criterio "soldador" para ser realizada, en consecuencia ante una asignación de recursos a tareas los trabajadores con criterio "soldador" son los utilizados a la hora de asignar recursos genéricamente (no aplica en las asignaciones específicas). Ver capítulo de asignación de recursos para entender los distintos tipos de asignaciones.

+

En el proyecto, existen varias operaciones que se pueden realizar con criterios:

+
    +
  • Administración de criterios
  • +
  • Asignación de criterios a recursos.
  • +
  • Asignación de criterios a tareas.
  • +
  • Filtrado de entidades por criterios. Es posible filtrar tareas y elementos de pedido por criterios para realizar operaciones en la aplicación.
  • +
+

De las tres funcionalidades anteriores sólo se explicará la primera de ellas en esta sección dejando para secciones posteriores los dos tipos de asignación, la de recursos en el capitulo "Gestión de recursos" y la de filstrado en el capítulo "Planificación de tareas".

+
+

Administración de criterios

+

La administración de criterios es accesible desde el menú de administración:

+
+images/menu.png +

Pestañas de menú de primer nivel

+
+

La operación específica para administrar criterios es Gestionar Criterios. A partir de dicha operación es posible listar los criterios disponibles en el sistema.

+
+images/lista-criterios.png +

Listado de criterios

+
+

Presionando en el botón Crear se podrá acceder al formulario de creación/edición de un criterio. La edición de un criterio se realiza presionando en el icono de edición del incluso.

+
+images/edicion-criterio.png +

Edición de criterios

+
+

En el formulario de edición de criterios que se muestra en la imagen anterior se pueden realizar las siguientes operaciones:

+
    +
  • Edición del nombre del criterio
  • +
  • Indicar si es posible asignar varios valores simultáneamente ó mesmo elemento para el tipo de criterio seleccionado. Por ejemplo, un recurso que satisface dos criterios, soldador y torneiro.
  • +
  • Indicar el tipo del criterio:
      +
    • Tipo genérico: Criterio que puede satisfacer indistintamente una máquina o un trabajador.
    • +
    • Tipo trabajador: Criterio que puede satisfacer un trabajador exclusivamente.
    • +
    • Tipo máquina: Criterio que puede satisfacer una máquina exclusivamente.
    • +
    +
  • +
  • Indicar si el criterio es jerárquico o no. Existen casos en los que los criterios deben ser tratados jerarquicamente, es decir, que el hecho de ser un criterio asignado a un elemento no hoja haga que este criterio esté asignado automáticamente a los hijos. Un ejemplo claro de jerarquización de criterios es el criterio localización, por ser jerárquico una persona que haya asignado Galicia como localización pertenecerá a la localización España.
  • +
  • Indicar si el criterio está habilitado y deshabilitado. Esta es el modo de borrar criterios. Debido a que una vez creado un criterio, y utilizado en datos históricos, estos no pueden ser cambiados, el criterio debe existir en el sistema. Para evitar que este criterio salga en diferentes elementos de selección, puede ser invalidado.
  • +
  • Realizar una descripción del criterio.
  • +
  • Añadir nuevos valores. En la segunda parte del formulario aparece una entrada de texto con un botón Nuevo Criterio.
  • +
  • Editar el nombre de los criterios existentes.
  • +
  • Desplazar verticalmente los criterios en la lista de los existentes.
  • +
  • Eliminar un valor de criterio de la lista.
  • +
+

El formulario de administración de criterios es un formulario que responde a las características de los formularios comentados en la introducción como de 3 operaciones (guardar, guardar y cerrar y cerrar).

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/es/03-calendarios.html b/libreplan-webapp/src/main/webapp/help/es/03-calendarios.html new file mode 100644 index 000000000..389ba3194 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/es/03-calendarios.html @@ -0,0 +1,210 @@ + + + + + + +Calendarios + + + +
+

Calendarios

+ + +

Los calendarios son las entidades de la aplicación que determinan las capacidad de carga de los distintos recursos. Un calendario está formado por una serie de días anuales, donde cada día dispone de horas disponibles para trabajar.

+

Por ejemplo, un festivo puede tener 0 horas disponibles y, si las horas de trabajo dentro de un día laboral son 8, es este número lo que se asigna como tiempo disponible para ese día.

+

Existen dos modos de indicar al sistema cuantas horas de trabajo tiene un día:

+
    +
  • Por día de la semana. Por ejemplo, los lunes se trabajan 8 horas generalmente.
  • +
  • Por excepciones. Por ejemplo, el lunes 30 de Enero se trabajan 10 horas.
  • +
+
+

Administración de calendarios

+

El sistema de calendarios es jerárquico, de modo que se pueden crear calendarios base o calendarios que heredan de dichos calendarios, manteniendo una estructura arbórea. Un calendario que hereda de un calendario de nivel superior del árbol, hereda las dedicaciones diarias y las excepciones, siempre y cuando no sean modificadas explícitamente para el calendario hijo. Además, es necesario entender los siguientes conceptos para administrar calendarios:

+
    +
  • Cada día es independiente entre sí y cada año tiene días diferentes, es decir, si se marca el 8 de Diciembre de 2009 cómo festivo eso no quiere decir que el año 2010 ya tenga el día 8 de Diciembre como festivo.
  • +
  • Los días laborales se marcan en base a días de la semana, es decir, si se determina que lo normal es trabajar 8 horas los lunes, quedan todos los lunes de todas las semanas de los diferentes años marcados cómo 8 horas disponibles.
  • +
  • Es posible marcar excepciones o intervalos de excepción, es decir, elegir un día concreto o grupo de días en los que las horas disponibles sean diferentes a la regla general para dichos días de la semana.
  • +
+
+images/calendar-administration.png +

Administración de calendarios

+
+

La administración de calendarios es accesible desde las operaciones de la pestaña de "Administración". Desde dicho punto el usuario puede realizar las siguientes operaciones:

+
    +
  1. Crear un nuevo calendario desde cero.
  2. +
  3. Crear un calendario derivado de otro calendario.
  4. +
  5. Crear un calendario como copia de otro calendario.
  6. +
  7. Editar un calendario existente.
  8. +
+
+

Creación de un nuevo calendario

+

Para la creación de un nuevo calendario es necesario presionar en el botón "Crear". El sistema muestra un formulario en el que el usuario puede realizar las siguientes operaciones:

+
    +
  • Elegir la pestaña en la que desea trabajar:

    +
    +
      +
    • Marcado de excepciones.
    • +
    • Selección de horas trabajadas por día.
    • +
    +
    +
  • +
  • +
    Si el usuario selecciona el marcado de excepciones:
    +
      +
    • Seleccionar un día específico del calendario.
    • +
    • Marcar el tipo de excepción. Los tipos disponibles son: vacaciones, baja, huelga, festivo, festivo trabajable.
    • +
    • Seleccionar la fecha de fin del intervalo de excepción (para marcar excepciones de 1 día de duración no se necesita modificar este campo).
    • +
    • Marcar el número de horas trabajadas durante los días excepcionales.
    • +
    • Borrar excepciones previas.
    • +
    +
    +
    +
  • +
  • Si el usuario elige la selección de horas trabajadas por día:

    +
    +
      +
    • Marcar las horas disponibles para cada día de la semana (lunes, martes, miércoles, jueves, viernes, sábados y domingos).
    • +
    • Crear nuevas distribuciones de horas semanales aplicables en el futuro.
    • +
    • Borrar distribuciones de horas realizadas previamente.
    • +
    +
    +
  • +
+

Con estas operaciones un usuario de la aplicación tiene la capacidad de personalizar los calendarios completamente a sus necesidades. Para almacenar los cambios en el formulario es necesario presionar en el botón "Guardar".

+
+images/calendar-edition.png +

Edición de calendario

+
+
+images/calendar-exceptions.png +

Inclusión de excepción en calendario

+
+
+
+

Creación de un calendario derivado

+

Un calendario derivado es un calendario que se crea como hijo de un existente, es decir, hereda todas las características del original y al mismo tiempo es posible modificarlo para que contenga sus particularidades.

+

Un ejemplo de uso de calendarios derivados es la existencia de un calendario general para España, y la creación de un derivado para sólo incluir los festivos gallegos añadidos sobre los que ya estaban definidos en el general.

+

Es importante destacar que ante cualquier modificación realizada sobre el calendario original el derivado es directamente afectado, siempre y cuando, no se hubiese definido una actuación concreta sobre él mismo. Por ejemplo, en el calendario de España se incluye un día laboral en el 17 de Mayo con 8 horas de trabajo y en el calendario gallego, que se creó como derivación, el día 17 de Mayo es considerado un día de 0 horas de trabajo por ser festivo. Si sobre el calendario español se cambian los días de la semana del 17 Mayo para que las horas disponibles sean 4 diarias, en el gallego lo que sucede es que todos los días de la semana del 17 de Mayo tiene 4 horas disponibles excepto el día 17 que tiene 0 horas, tal y como explícitamente se había establecido antes.

+
+images/calendar-create-derived.png +

Creación de calendario derivado

+
+

Para crear un calendario derivado en la aplicación, es necesario hacer el siguiente:

+
    +
  • Acceder al menú de Administración.
  • +
  • Presionar en la operación de Administración de calendarios.
  • +
  • Elegir uno de los calendarios sobre el que se desea realizar un derivado y presionar en el botón "Crear".
  • +
  • Una vez realizada esta operación el sistema muestra un formulario de edición con las mismas características que los formularios para crear calendarios desde cero, con la diferencia de que las excepciones y las horas por día de la semana se proponen en base al calendario original.
  • +
+
+
+

Creación de un calendario por copia

+

Un calendario copiado es un calendario que se crea como copia exacta de otro existente, es decir, que recibe todas las características del original y, al mismo tiempo, es posible modificarlo para que contenga sus particularidades.

+

La diferencia entre copiar y derivar un calendario radica en los cambios en el original. En el caso de copias, si el original es modificado, no afecta a la copia, sin embargo, cuando se deriva, sí afecta al hijo.

+

Un ejemplo de uso de calendario por copia es el disponer de un calendario para "Pontevedra" y necesitar un calendario para "A Coruña" donde la mayoría de las características son las mismas, sin embargo, no se espera que los cambios en uno afecten al otro.

+

Para crear un calendario copiado en la aplicación, es necesario hacer el siguiente:

+
    +
  • Acceder al menú de Administración.
  • +
  • Presionar en la operación de administración de calendarios.
  • +
  • Elegir uno de los calendarios sobre lo que se desea realizar un derivado y presionar en el botón "Crear".
  • +
  • Una vez realizada esta operación el sistema muestra un formulario de edición con las mismas características que los formularios para crear calendarios desde cero, con la diferencia de que las excepciones y las horas por día de la semana se proponen en base al calendario original.
  • +
+
+
+

Calendario por defecto

+

Uno de los calendarios existentes en el sistema puede ser dado de alta como por defecto. Este calendario es lo que se asigna a cualquier entidad que en el sistema sea gestionado con calendarios.

+

Para configurar el calendario por defecto se debe realizar el siguiente:

+
    +
  • Acceder al menú de Administración.
  • +
  • Presionar en la operación Configuración.
  • +
  • Donde aparece el texto Calendario por defecto, seleccionar el que se desee establecer como calendario por defecto de la aplicación.
  • +
  • Presionar en Guardar.
  • +
+
+images/default-calendar.png +

Creación de calendario por defecto

+
+
+
+

Asignación de calendario a recursos

+

Los recursos sólo tienen activación, es decir, horas disponibles para trabajar, si disponen de un calendario asignado con un período válido de activación. Si no se le asignó ningún calendario a los recursos, los recursos tienen asignado el calendario por defecto con un período de activación que comienza en la fecha de alta y sin fecha de caducidad.

+
+images/resource-calendar.png +

Calendario de recursos

+
+

Sin embargo, es posible eliminar el calendario asignado previamente a un recurso y crear un calendario nuevo a partir de un existente. De este modo hay recursos que puedan ser completamente personalizados a nivel de calendario.

+

Para asignar un calendario a un recurso es necesario dar los siguientes pasos:

+
    +
  • Acceder a la edición de recursos.

    +
  • +
  • Elegir un recurso y presionar en editar.

    +
  • +
  • Seleccionar la pestaña de "Calendario".

    +
  • +
  • A partir de la pestaña anterior aparece un calendario con las excepciones, las horas trabajables por día y los períodos de activación.

    +
  • +
  • Para cada pestaña:

    +
    +
      +
    • Excepciones: Es posible elegir el tipo de excepción y un período en el que se aplica para poder incluir las vacaciones, días festivos, laborables diferentes, etc.
    • +
    • Semana de trabajo: Es posible modificar las horas trabajadas durante los distintos días de la semana (lunes, martes, etc.).
    • +
    • Períodos de activación: Es posible crear nuevos períodos de activación que refleja las fechas de inicio y fin de los contratos asociados al recurso. Ver la siguiente imagen.
    • +
    +
    +
  • +
  • Para almacenar es necesario presionar en Guardar.

    +
  • +
  • El usuario puede presionar en Borrar se desea cambiar el calendario asignado al recurso.

    +
  • +
+
+images/new-resource-calendar.png +

Asignación de nuevo calendario a recurso

+
+
+
+

Asignación de calendario a pedidos

+

Los proyectos pueden disponer de un calendario diferente al calendario por defecto. Para cambiar el calendario del pedido es necesario:

+
+
    +
  • Acceder al listado de pedidos dentro de la vista global de empresa.
  • +
  • Editar el pedido en cuestión.
  • +
  • Acceder a la pestaña de "Datos generales".
  • +
  • Seleccionar en el desplegable de selección el calendario que se desea asignar.
  • +
  • Presionar en "Guardar" o "Guardar y Continuar".
  • +
+
+
+
+

Asignación de calendario a tareas

+

Al igual que se permite asignar calendarios a recursos o pedidos, es posible realizar la misma operación para tareas planificadas. Esta operación permite definir calendarios específicos para momentos concretos de un proyecto. Para realizar esta operación es necesario:

+
+
    +
  • Acceder a la planificación de un proyecto.
  • +
  • Presionar en el botón derecho sobre la tarea a la que se desea asignar calendario.
  • +
  • Seleccionar la operación "Asignación de calendario".
  • +
  • Elegir el calendario que se desea asignar a la tarea.
  • +
  • Presionar en "Aceptar".
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/es/04-avances.html b/libreplan-webapp/src/main/webapp/help/es/04-avances.html new file mode 100644 index 000000000..040131831 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/es/04-avances.html @@ -0,0 +1,99 @@ + + + + + + +Avances + + + +
+

Avances

+ + +

El avance de un proyecto marca el grado en el que se está cumpliendo con el alcance estimado para la realización del mismo, además, el avance de una tarea indica ese mismo grado para el alcance estimado para dicha tarea.

+

Generalmente los avances no tienen un modo automático de ser medidos, y es una persona quien en base a la experiencia o a la realización de una lista de chequeo determina el grado de compleción de una tarea o un proyecto.

+

Cabe destacar que hay una diferencia importante entre el uso de horas asignadas a una tarea o proyecto, con el grado de avance en esa misma tarea o proyecto. Mientras que el uso de horas puede estar en desvío o no, el proyecto puede estar en un grado de avance inferior o superior al estimado para el día en el que se está controlando. Se producen, debido la estas dos medidas, varias posibles situaciones:

+
    +
  • Se consumieron menos horas de las estimadas para el elemento a medir y, al mismo tiempo, el proyecto está yendo más lento de lo estimado, porque el avance es inferior al estimado para el día de control.
  • +
  • Se consumieron menos horas de las estimadas para el elemento a medir y, al mismo tiempo, el proyecto está yendo más rápido del estimado, porque el avance es inferior al estimado para el día de control.
  • +
  • Se consumieron más horas de las estimadas y, al mismo tiempo, el proyecto está yendo más lento del estimado, porque el avance es inferior al estimado para el día de control.
  • +
  • Se consumieron más horas de las estimadas y, al mismo, tiempo el proyecto está yendo más rápido del estimado, porque el avance es inferior al estimado para el día de control.
  • +
+

El contraste de estas posibles situaciones es posible realizarlo desde la propia planificación, utilizando información del grado de avance y por otro lado del grado de uso de horas. En este capítulo se tratará la introducción de la información para poder llevar un control del avance.

+

La filosofía implantada en el proyecto para el control del avance está basada en que el usuario divida hasta el punto en el que desea el control de avances de sus proyectos. En consecuencia, si el usuario desea controlar a nivel de pedido, sólo debe introducir información en los elementos de nivel 1, cuando se desea poder disponer de un control más fino sobre las tareas, debe introducir información de avances en niveles inferiores, siendo el sistema que propaga hacia arriba en la jerarquía todos los datos.

+
+

Gestión de tipos de avance

+

Cada empresa puede tener unas necesidades diferentes de control del avance de sus proyectos, y concretamente de las tareas que los componen. Por esta razón fue necesario contemplar la existencia de unas entidades en el sistema llamadas "tipos de avance". Los tipos de avance son diferentes tipologías que cada usuario puede dar de alta en el sistema para medir el avance de una tarea. Por ejemplo, una tarea puede ser medida porcentualmente, pero al mismo tiempo ese avance porcentual se traduce en un avance en Toneladas sobre lo acordado con el cliente.

+

Un tipo de avance está caracterizado por un nombre, un valor máximo y una precisión:

+
    +
  • Nombre: Será un nombre representativo que el usuario debe recordar para cuando seleccione la asignación de avances sea capaz de entender que tipo de avance está midiendo.
  • +
  • Valor máximo: Es el valor máximo que se le permite a una tarea o proyecto establecer como medida total de avance. Por ejemplo, trabajando con Toneladas, si se considera que el máximo normal en toneladas es de 4000 y nunca va a haber tareas que requieran realizar más de 4000 toneladas de algún material, ese debería ser el valor máximo establecido.
  • +
  • Precisión: Es el valor de los incrementos que se permiten para el tipo de avance creado. Por ejemplo, si el avance en Toneladas se va a medir en valores redondeados, podría ser 1 la precisión. Desde ese momento, sólo se podrían introducir medidas de avance con números enteros, por ejemplo, 1, 2, 300, etc.
  • +
+

El sistema cuenta con dos tipos de avance creados por defecto:

+
    +
  • Porcentual: Tipo de avance general que permite medir el avance de un proyecto o tarea en base al porcentaje que se estima de compleción, por ejemplo, una tarea está al 30% respeto al 100% estimado en un día concreto.
  • +
  • Unidades: Tipo de avance general que permite medir el avance en unidades sin necesidad de especificar las unidades concretas. La tarea comprendía la creación de 3000 unidades y el avance son 500 unidades sobre las 3000 estimadas.
  • +
+
+images/tipos-avances.png +

Administración de tipos de avances

+
+

El usuario puede crear nuevos tipos de avance de la siguiente manera:

+
    +
  • El usuario accede a la sección de "Administración".
  • +
  • Presiona en la opción del menú de segundo nivel "Gestionar tipos de avance".
  • +
  • El sistema muestra un listado de tipos de avance existentes.
  • +
  • Con cada tipo de avance el usuario puede:
      +
    • Editar
    • +
    • Borrar
    • +
    +
  • +
  • A mayores, el usuario puede crear un tipo de avance nuevo.
  • +
  • Con la edición o la creación, el sistema muestra un formulario con la siguiente información:
      +
    • Nombre del tipo de avance.
    • +
    • Valor máximo que acepta el tipo de avance.
    • +
    • Precisión del tipo de avance.
    • +
    +
  • +
+
+
+

Introducción de avances en base a tipo

+

La introducción de los avances se realiza sobre los elementos de pedido, sin embargo, es posible hacerlo con un atajo desde las tareas de planificación. Es responsabilidad del usuario la decisión sobre qué tipos de avance desea asociar a cada elemento de pedido.

+

Es posible introducir un tipo de avance único y defectivo para todo un pedido.

+

Antes de poder realizar medidas de avance, es necesario asociar el tipo elegido al pedido, por ejemplo, un avance de tipo porcentaje para medir porcentualmente los avances realizados sobre el total de la tarea, o un avance de tipo pactado por se se quieren introducir a futuro mediciones de avances pactadas con el cliente.

+
+images/avance.png +

Pantalla de introducción de avances con visualización gráfica.

+
+

Para introducir mediciones de avance es necesario realizar el siguiente:

+
    +
  • Seleccionar el tipo de avance para lo cual desea introducir el avance.
      +
    • Si no existe ningún tipo de avance es necesario añadir un tipo de avance.
    • +
    +
  • +
  • En el formulario que aparece debajo con los campos "Valor" y "Fecha" introducir el valor absoluto de la medida y la fecha que se le desea asignar a la medida tomada.
  • +
  • El sistema almacena automáticamente los datos introducidos.
  • +
+
+
+

Contraste de avances sobre un elemento del pedido

+

Es posible contrastar graficamente las evoluciones de los avances de los pedidos en base a las mediciones realizadas. Cada tipo de avance dispone de una columna con botones de chequeo (de título "Mostrar") el cual al ser marcado se muestra la gráfica de evoluciones de medidas realizadas sobre el elemento de pedido.

+
+images/contraste-avance.png +

Contraste de varios avances.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/es/05-recursos.html b/libreplan-webapp/src/main/webapp/help/es/05-recursos.html new file mode 100644 index 000000000..2126df896 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/es/05-recursos.html @@ -0,0 +1,177 @@ + + + + + + +Gestión de recursos + + + +
+

Gestión de recursos

+ + +

La aplicación gestiona dos tipos de recursos diferentes: recursos trabajadores y recursos máquinas.

+

Los recursos trabajadores representan los trabajadores de las empresas. Las características principales son:

+
    +
  • Satisfacen uno o varios criterios de tipo genérico o tipo trabajador.
  • +
  • Son asignables específicamente a una tarea.
  • +
  • Son asignables como parte de la asignación genérica a una tarea que requiera un criterio de tipo recurso.
  • +
  • Dispondrán de un calendario por defecto o específico si así lo decide el usuario.
  • +
+

Los recursos máquina representan las máquinas de las empresas. Las características principales son:

+
    +
  • Satisfacen uno o varios criterios de tipo genérico o tipo máquina.
  • +
  • Son asignables específicamente a una tarea.
  • +
  • Son asignables como parte de la asignación genérica a una tarea que requiera un criterio de tipo máquina.
  • +
  • Dispondrán de un calendario por defecto o específico si así lo decide el usuario.
  • +
  • Contará con una pantalla de configuración en la que se podrá establecer un valor alfa que represente la relación entre máquina y trabajador.
      +
    • El alfa representa cuanto tiempo de un trabajador es necesario para que la máquina funcione. Por ejemplo, un alfa de 0.5 indica que de cada 8 horas de máquina son necesarias 4 de un trabajador.
    • +
    • Es posible asignar un alfa de manera específica a un trabajador, es decir, se elige el trabajador que estará ocupado ese porcentaje de su tiempo con la máquina.
    • +
    • O bien, es posible hacer una asignación genérica en base a un criterio, de modo que se asigna un porcentaje del uso a todos los criterios que satisfacen ese criterio y tienen tiempo disponible. El funcionamiento de la asignación genérica es la misma que la explicada para asignaciones genéricas a tareas.
    • +
    +
  • +
+

El usuario puede crear, editar e invalidar (nunca borrar definitivamente) trabajadores de la empresa desde la pestaña de "Recursos". Desde dicha pestaña existen las siguientes operaciones:

+
    +
  • Listado de trabajadores: Los trabajadores se mostrarán listados y paginados, desde donde pueden gestionar sus datos.
  • +
  • Listado de máquinas: Las máquinas se mostrarán listados y paginados, desde donde pueden gestionar sus datos.
  • +
+
+

Gestión de trabajadores

+

La gestión de trabajadores se realiza desde la pestaña de "Recursos" y la operación de "Lista de trabajadores". Desde la lista de recursos es posible editar cada uno de los trabajadores presionando en el icono estándar de edición.

+

Una vez en la edición de un recurso, el usuario puede acceder a las siguientes pestañas:

+
    +
  1. Pestaña de datos de trabajador. Esta pestaña permite editar los datos básicos de identificación del trabajador.
      +
    • Nombre
    • +
    • Apellidos
    • +
    • DNI
    • +
    • Recursos limitantes (ver sección)
    • +
    +
  2. +
+
+images/worker-personal-data.png +

Edición de datos personales de trabajador

+
+
    +
  1. Pestaña de criterios. Desde este punto se podrá configurar los criterios que un trabajador satisface. El usuario puede asignar cualquier valor de criterio de tipo trabajador o genérico que así considere a un trabajador. ES importante, para que la aplicación sea utilizada en todo su valor, que los trabajadores satisfagan criterios. Para asignar criterios el usuario debe:
      +
    1. Presionar en el botón "Añadir criterio".
    2. +
    3. Buscar el criterio que desea añadir y seleccionar lo que encaje con su búsqueda.
    4. +
    5. Presionar en el botón de añadir.
    6. +
    7. Seleccionar fecha de inicio del criterio desde el momento que se aplica.
    8. +
    9. Seleccionar la fecha de fin de aplicación del criterio al recurso. Dicha fecha no es obligatoria indicando que el criterio es indefinido.
    10. +
    +
  2. +
+
+images/worker-criterions.png +

Asociación de criterios a trabajador

+
+
    +
  1. Pestaña de calendario. Pestaña desde la que se puede configurar un calendario específico para el recurso trabajador. Cada trabajador dispone de un calendario por defecto asignado, sin embargo, es posible asignar un calendario específico para cada uno a partir de uno existente.
  2. +
+
+images/worker-calendar.png +

Pestaña de calendario para un recurso

+
+
    +
  1. Pestaña de categoría de coste. Pestaña desde la que se puede configurar la categoría de coste que satisface un recurso en un período dado. Estos datos son utilizados para posteriormente calcular los costes asociados al trabajador en un proyecto.
  2. +
+
+images/worker-costcategory.png +

Pestaña de categoría de coste para recurso

+
+

La asignación de recursos se explica en la sección de asignación de recursos.

+
+
+

Gestión de máquinas

+

Las máquinas son recursos a todos los efectos, por lo cual, tal y como sucede con los trabajadores, las máquinas son administrables y asignables a tareas. La asignación de recursos se tratará en la sección de asignación. En este punto se explicarán las características específicas de las máquinas.

+

Las máquinas son administradas desde la entrada de menú "Recursos". En dicha sección existe una operación llamada "Listado de máquinas" que permite la visualización de las máquinas que disponen en una empresa. A partir de este listado se podrá editar o borrar una máquina.

+

En la edición de una máquina el sistema muestra una serie de pestañas desde las cuáles se permite administrar diferentes datos:

+
    +
  1. Pestaña de datos de la máquina. Pestaña para la edición de datos identificativos de las máquinas. Los datos modificables en esta pestaña son:

    +

    i Nombre.

    +

    ii Código de la máquina.

    +

    iii Descripción de la máquina.

    +
  2. +
+
+images/machine-data.png +

Edición de datos de máquina

+
+
    +
  1. Pestaña de criterios. Tal y como se comentó en la anterior sección de recursos trabajadores, esta es la pestaña en la que se pueden añadir criterios que satisfacen las diversas máquinas del sistema. Los criterios que son asignables a las máquinas son los de criterios de tipo máquina o genéricos. No se pueden asignar criterios de trabajadores. Para asignar criterios, el usuario debe:
      +
    1. Presionar en el botón "Añadir criterio".
    2. +
    3. Buscar el criterio que desea añadir y seleccionar lo que encaje con su búsqueda.
    4. +
    5. Seleccionar fecha de inicio del criterio desde el momento que deba aplicarse.
    6. +
    7. Seleccionar la fecha de fin de aplicación del criterio al recurso. Dicha fecha no es obligatoria indicando que el criterio es indefinido.
    8. +
    9. Presionar en el botón de "Guardar y Continuar".
    10. +
    +
  2. +
+
+images/machine-criterions.png +

Asignación de criterios a máquinas

+
+
    +
  1. Pestaña de calendario. Pestaña desde la que se puede configurar un calendario específico para el recurso máquina. Cada trabajador dispone de un calendario por defecto asignado, sin embargo, es posible asignar un calendario específico para cada uno a partir de un existente.
  2. +
+
+images/machine-calendar.png +

Asignación de calendario a máquina

+
+
    +
  1. Pestaña de configuración de máquinas: Desde esta pestaña es posible configurar la relación de las máquinas con los recursos trabajadores existentes. Una máquina dispone de un alfa que indica la relación entre la máquina y los recursos implicados, tal y como ya se comentó, un alfa de 0.5 indica que se consume trabajo de 0.5 personas para cada jornada completa de máquina. El sistema, a partir de un alfa, crea automáticamente asignaciones a los trabajadores que estén de alguna manera relacionados con la máquina una vez se asigna una máquina a una tarea. La forma de relacionar un trabajador con una máquina se puede hacer de dos maneras:

    +

    i Asignando específicamente un rango de fechas en las que el trabajador se desea asignar a una máquina. Es una asignación específica de modo que el sistema asigna automáticamente horas al trabajador cuando se planifique la máquina.

    +

    ii Asignando específicamente criterios que se desea satisfagan los trabajadores que sean asignados a las máquinas. De este modo se hará una asignación genérica a los trabajadores que satisfacen los criterios.

    +
  2. +
+
+images/machine-configuration.png +

Configuración de máquina

+
+
    +
  1. Pestaña de categoría de coste. Pestaña desde la que se puede configurar la categoría de coste que satisface una máquina en un período dado. Estos datos son utilizados para posteriormente calcular los costes asociados al trabajador en un proyecto.
  2. +
+
+images/machine-costcategory.png +

Asignación de categoría de coste a máquina

+
+
+
+

Grupos de trabajadores virtuales

+

La aplicación permite la creación de recursos en el sistema, los cuales no son trabajadores reales, sino que son personal simulado que permite aumentar la capacidad productiva en un momento determinado según las configuraciones que se definan de su calendario.

+

Mediante los grupos de trabajadores virtuales es posible comprobar cómo se vería afectada la planificación de los proyectos, contratando y asignando personal que satisfaga los criterios que se definan, ayudando de este modo en el proceso de toma de decisiones.

+

Las pestañas de las que consta el formulario de creación de grupos de trabajadores virtuales son las mismas que las que permiten configurar los trabajadores, y decir:

+
+
    +
  • Datos generales
  • +
  • Criterios asignados
  • +
  • Calendarios
  • +
  • Horas asociadas
  • +
+
+

La diferencia con respeto a los trabajadores, es que en los grupos de trabajadores virtuales se especifica un nombre para el grupo y una cantidad que se corresponde con el número de personas reales que forman este grupo. Adicionalmente existe un campo de observaciones en el que se puede aportar información adicional como, por ejemplo, para que proyecto estaría prevista la contratación del equivalente del grupo de recursos virtuales, etc.

+
+images/virtual-resources.png +

Recursos virtuales

+
+
+
+

Recursos limitantes

+

Los recursos limitantes son un tipo especial de elementos productivos que sólamente pueden encontrarse no asignados o con un 100% de dedicación. Lo que es lo mismo, no pueden de tener más de una tarea asignada al mismo tiempo o encontrarse sobreplanificados.

+

Por cada recurso limitante se crea automáticamente una cola para que las tareas que tiene planificadas puedan ser gestionadas de forma específica mediante los métodos de asignación proporcionados, realizando asignaciones automáticas de las tareas a las colas que cumplan los criterios que requieren o moviendo tareas entre colas.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/es/06-pedidos.html b/libreplan-webapp/src/main/webapp/help/es/06-pedidos.html new file mode 100644 index 000000000..38dce8828 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/es/06-pedidos.html @@ -0,0 +1,337 @@ + + + + + + +Pedidos y elementos de pedidos + + + +
+

Pedidos y elementos de pedidos

+ + +

Los pedidos son las entidades que describen los trabajos a realizar por parte de los usuarios que utilicen la aplicación. +Cada pedido se corresponde con los proyectos que las empresas van a ofrecer a sus clientes.

+

Un pedido está formado por una o varias líneas de pedido. Cada línea de pedido se corresponde con la estruturación que se desee realizar sobre los trabajos dentro de ese pedido. Las líneas de pedido se organizan de modo jerárquica sin limitaciones de profundidad. El hecho de que las líneas de pedido se organicen de modo jerárquico marca el funcionamiento de diversas características heredables, tal como las etiquetas.

+

En las siguientes secciones se describirán las operaciones que un usuario puede realizar con los pedidos y las líneas de pedidos.

+
+

Pedido

+

Un pedido es un proyecto o trabajo que un cliente le solicita a una empresa. El pedido para lo planificador identifica la entidad de proyecto dentro de la empresa. La diferencia de las aplicaciones de gestión globales, "LibrePlan" sólo necesita utilizar ciertos datos de los pedidos. Estos datos son:

+
    +
  • Nombre del pedido
  • +
  • Código del pedido.
  • +
  • Importe total del pedido
  • +
  • Fecha de comienzo estimada
  • +
  • Fecha de finalización
  • +
  • Responsable
  • +
  • Descripción
  • +
  • Calendario asignado.
  • +
  • Autogeneración de códigos. Campo para indicarle al sistema que autogenere los códigos de los elementos de pedido y de los grupos de horas.
  • +
  • Preferencia entre dependencias y restricciones. El usuario puede elegir dependencias o restricciones como prioritarios a la hora de ser aplicados cuendo entran en conflicto.
  • +
+

Sin embargo, el propio pedido está relacionado con otras entidades que finalmente lo dotan de una mayor riqueza:

+
    +
  • Horas asignadas al pedido.
  • +
  • Avances imputados al pedido.
  • +
  • Etiquetas.
  • +
  • Criterios asignados al pedido.
  • +
  • Materiales
  • +
  • Formularios de calidad
  • +
+

Para editar o crear un pedido es posible realizarlo desde varios puntos de la aplicación:

+
    +
  • Accediendo a la perspectiva de "Lista de pedidos" dentro de la vista global de empresa.

    +
    +
      +
    • La edición se realiza presionando en el botón de editar sobre lo pedido elegido.
    • +
    • La creación se realiza presionando en "Nuevo pedido".
    • +
    +
    +
  • +
  • Accediendo a un pedido en el diagrama de Gantt y cambiando de perspectiva a la de detalles de pedido.

    +
  • +
+

Desde la edición de pedido es posible acceder a las siguientes pestañas:

+
    +
  • Edición de los datos de pedidos. Desde dicha pantalla es posible editar los datos básicos del pedido. Actualmente:
      +
    • Nombre
    • +
    • Código
    • +
    • Fecha de comienzo estimada
    • +
    • Fecha de finalización
    • +
    • Responsable
    • +
    • Cliente
    • +
    • Descripción
    • +
    +
  • +
+
+images/order-edition.png +

Edición de pedido

+
+
    +
  • Listado de elementos de pedido. Desde lo listado de elementos de pedido es posible realizar varias operaciones:
      +
    • Crear nuevos elementos de pedido.
    • +
    • Subir en un mismo nivel de la jerarquía un elemento de pedido.
    • +
    • Bajar en un mismo nivel de la jerarquía un elemento de pedido.
    • +
    • Indentar un elemento de pedido, o lo que es lo mismo, mover hacia abajo en la jerarquía, cambiando de nivel del elemento.
    • +
    • Des-indentar un elemento de pedido, o lo que es lo mismo, mover hacia arriba en la jerarquía, cambiando de nivel del elemento.
    • +
    • Filtrar los elementos de pedido.
    • +
    • Borrar elementos de pedido.
    • +
    • Mover arrastrando y soltando un elemento de pedido en la jerarquía.
    • +
    +
  • +
+
+images/order-elements-list.png +

Listado de elementos de pedido

+
+
    +
  • Horas asignadas. Pantalla en la que se muestran las horas totales imputadas al proyecto, tratándose de una pantalla de visualización donde se agrupan las horas imputadas a los elementos de pedido.
  • +
+
+images/order-assigned-hours.png +

Asignación de horas imputadas al pedido por los trabajadores

+
+
    +
  • Avances. Pantalla en la que se permiten imputar tipos de avances y medidas de avances al pedido. Ver sección de "Avances" para el funcionamiento de la misma.
  • +
  • Etiquetas. Pantalla en la que se permite asignar etiquetas a un pedido y conocer las etiquetas directas e indirectas que ya fueron asignadas. Ver la siguiente sección de edición de elementos de pedido más en profundidad para conocer el procedimiento de gestionar las etiquetas.
  • +
+
+images/order-labels.png +

Etiquetas de pedido

+
+
    +
  • Criterios. Pantalla en la que se pueden asignar los criterios que se desean aplicar globalmente a todas las tareas de un pedido. Estos criterios serían aplicados de manera automática a todos los elementos de pedido, excepto que estos fueran invalidados explícitamente. Asimismo, se pueden visualizar los grupos de horas de los elementos de pedidos agrupados por criterios, lo cual permite conocer los criterios que se exigen a lo largo de un pedido.
  • +
+
+images/order-criterions.png +

Criterios de pedido

+
+
    +
  • Materiales. Pantalla en la que se puede asignar el material disponible al pedido. El material es seleccionable de entre las categorías de material que existen en la aplicación. Los materiales son gestionados del siguiente modo:

    +
    +
      +
    • El usuario selecciona la pestaña que se muestra en la zona inferior de la pantalla llamada "Búsqueda de materiales".
    • +
    • El usuario puede introducir un texto para la búsqueda de materiales o seleccionar las categorías para las que se desea mostrar materiales.
    • +
    • El sistema filtra los resultados.
    • +
    • El usuario selecciona los materiales que desea (para seleccionar más de un material el usuario puede presionar en el botón "Ctrl" que permite la selección múltiple en el listado.
    • +
    • El usuario presiona en "Asignar".
    • +
    • El sistema muestra el listado de materiales ya asignado al pedido.
    • +
    • El usuario selecciona las unidades y el estado que desea asignarle al pedido.
    • +
    • El usuario presiona en "Guardar" o "Guardar y Continuar".
    • +
    • Si el usuario desea gestionar la recepción de material, el sistema permite presionar en "Dividir" para cambiar el estado de una cantidad parcial de materiales.
    • +
    +
    +
  • +
+
+images/order-material.png +

Material asociado a un pedido

+
+
    +
  • Calidad. Es posible asignar un formulario de calidad al pedido con el objetivo de ser cumplimentado para asegurar la realización de ciertas actividades asociadas al pedido. Ver la sección siguiente sobre edición de elementos de pedido para conocer el procedimiento de gestionar el formulario de calidad.
  • +
+
+images/order-quality.png +

Formulario de calidad asociado al pedido

+
+
+
+

Edición de elementos de pedido

+

La edición de elementos de pedido se realiza desde la pestaña de "Listado de elementos de pedido" a partir del icono de edición. Si el usuario presiona en el icono de edición, el sistema muestra una nueva pantalla desde la que el usuario puede realizar lo siguiente:

+
    +
  • Editar la información del elemento de pedido.
  • +
  • Visualización de horas imputadas a elemento de pedido.
  • +
  • Gestionar los avances de los elementos de pedido.
  • +
  • Gestionar las etiquetas del pedido.
  • +
  • Gestionar los criterios exigidos por el elemento de pedido.
  • +
  • Gestionar los materiales.
  • +
  • Gestionar los formularios de calidad.
  • +
+

Las siguientes subsecciones tratan cada uno de las operaciones en profundidad.

+
+

Edición de la información del elemento de pedido

+

La edición de información de elemento de pedido incluye la edición de los siguientes datos:

+
    +
  • Nombre del elemento de pedido.
  • +
  • Código del elemento de pedido.
  • +
  • Fecha de inicio del elemento de pedido.
  • +
  • Fecha estimada de fin del elemento de pedido.
  • +
  • Horas totales del elemento de pedido. Estas horas pueden ser calculadas a partir de los grupos de horas añadidas o introducidas directamente en este punto que se habían repartido entre los grupos de horas, creando algún nuevo si los porcentajes no coinciden con los porcentajes iniciales.
  • +
  • Grupos de horas: ES posible añadir uno o varios grupos de horas al elemento de pedido. El significado disteis grupos de horas es el establecimiento de los requerimientos que se le exigen a los recursos que vayan a ser asignados para realizarlas.
  • +
  • Criterios: ES posible añadir criterios que se deben satisfacer para poder se asignado xenericamente para realizar dicho elemento de pedido.
  • +
+
+images/order-element-edition.png +

Edición de elemento de pedido

+
+
+
+

Visualización de horas imputadas a elementos de pedido

+

La pestaña de "Horas asignadas" permite visualizar los partes de trabajo asociados a un elemento de pedido y al incluso tiempo permite visualizar cuantas horas de las presupuestadas están ya realizadas.

+
+images/order-element-hours.png +

Horas asignadas a elementos de pedido

+
+

La pantalla está dividida en dos partes:

+
    +
  • Listado de partes de trabajo: El usuario ve el listado de partes de trabajo que están asociados al elemento de pedido pudiendo comprobar la fecha y hora, recurso y número de horas dedicadas a la tarea.
  • +
  • Uso de las horas presupuestadas: El sistema calcula el total de horas dedicadas a la tarea y las contrasta con las que estaban presupuestadas.
  • +
+
+
+

Gestión de avances de los elementos de pedido

+

La introducción de tipos de avances y gestión de los avances de los elementos de pedido fue descrita en el capítulo de "Avances".

+
+
+

Gestión de etiquetas del pedido

+

Las etiquetas, tal y como se describen en el capítulo dedicado a las mismas, son entidades que permiten categorizar los elementos de pedido. De este modo, el usuario puede agrupar información de planificación o pedidos en base a ellas.

+

Un usuario puede asignar etiquetas directamente a un elemento de pedido o bien a un antecesor en la jerarquía del elemento de pedido. A partir del momento en el que se asigna una etiqueta de uno de las dos formas anteriores, tanto el elemento de pedido como la tarea de planificación asociada estan asociadas a dicha etiqueta, siendo utilizadas para posteriores filtrados.

+
+images/order-element-tags.png +

Asignación de etiquetas para elementos de pedido

+
+

Tal y como se puede ver en la imagen, desde la pestaña de etiquetas, el usuario puede realizar las siguientes operaciones:

+
    +
  • Visualización de las etiquetas que un elemento del pedido tiene asociadas por herencia de un elemento de pedido superior en la jerarquía a la que le fue asignada directamente. La tarea de planificación asociada a cada elemento de pedido tiene las mismas etiquetas asociadas.
  • +
  • Visualización de las etiquetas que un elemento del pedido tiene asociadas directamente a través del siguiente formulario de asignación de etiquetas inferior.
  • +
  • Asignar etiquetas existentes: Un usuario puede asignar etiquetas a partir de la búsqueda de una entre las existentes en el formulario inferior al listado de etiquetas directas. Para buscar una etiqueta llega con presionar en el icono con la lupa o escribir el inicio de la etiqueta en la entrada de texto para que el sistema muestre las opciones disponibles.
  • +
  • Crear y asignar etiquetas nuevas: Un usuario puede crear nuevas etiquetas asociadas a un tipo de etiquetas existente desde dicho formulario. Para realizar la operación es necesario que seleccione un tipo de etiqueta a la que se asocia y se introduzca el valor de la etiqueta para el tipo seleccionado. Presionando en "Crear y asignar" el sistema ya la crea automáticamente y la asigna al elemento de pedido.
  • +
+
+
+

Gestionar los criterios exigidos por el elemento de pedido y los grupos de horas

+

Tanto un pedido como un elemento de pedido pueden tener asignados los criterios que se exigen para ser realizados. Los criterios pueden afectar de manera directa o de manera indirecta:

+
    +
  • Criterios directos: Son los que se asignan directamente al elemento de pedido. Son los criterios que se van a exigir a los grupos de horas que forman parte del elemento de pedido.
  • +
  • Criterios indirectos: Son los criterios que se asignan en elementos de pedido superiores en la jerarquía y son heredados por el elemento en edición.
  • +
+

A mayores del criterio exigido, es posible definir uno o varios grupos de horas que forman parte del elemento de pedido. Dependiendo de se el elemento de pedido contiene otros elementos de pedido como hijos o es un nodo hoja. En el primero de los casos los datos de horas y grupos de horas son solo visualizables y en el caso de nodos hoja son editables. El funcionamiento en este segundo caso es el siguiente:

+
    +
  • Por defecto, el sistema crea un grupo de horas asociado al elemento de pedido. Los datos modificables para un grupo de horas son:

    +
    +
      +
    • Código del grupo de horas, si no es autogenerado.
    • +
    • Tipo de criterio. El usuario puede elegir se desea asignar un criterio de tipo máquina o trabajador.
    • +
    • Número de horas del grupo de horas.
    • +
    • Lista de criterios que se aplican al grupo de horas. Para añadir nuevos criterios el usuario debe presionar en "Añadir criterio" y seleccionar uno en el buscador que aparece tras presionar en el botón.
    • +
    +
    +
  • +
  • El usuario puede añadir nuevos grupos de horas con características diferentes que los grupos de horas anteriores. Ejemplo de esto sería que un elemento de pedido debe ser hecho por un soldador (30h) y por un pintor (40h).

    +
  • +
+
+images/order-element-criterion.png +

Asignación de criterios a elementos de pedidos

+
+
+
+

Gestionar los materiales

+

Los materiales son gestionados en los proyectos como un listado asociado a cada línea de pedido o a un pedido globalmente. El listado de materiales está formado por los siguientes campos:

+
    +
  • Código
  • +
  • Fecha
  • +
  • Unidades: Unidades necesarias.
  • +
  • Tipo de unidad: Tipo de unidad en el que se mide el material.
  • +
  • Precio de la unidad: Precio unitario.
  • +
  • Precio total: Precio resultante de multiplicar el precio unitario por las unidades.
  • +
  • Categoría: Categoría de material a la que pertenece.
  • +
  • Estado: Recibido, Solicitado, Pendiente, Procesando, Cancelado.
  • +
+

El modo de trabajar con los materiales es el siguiente:

+
    +
  • El usuario selecciona la pestaña de "Materiales" de un elemento de pedido.
  • +
  • El sistema muestra dos subpestanas: "Materiales" y "Búsqueda de materiales".
  • +
  • Si el elemento de pedido no tenía materiales asignados, la primera pestaña muestra un listado vacío.
  • +
  • El usuario presiona en "Búsqueda de materiales" en la zona inferior izquierda de la ventana.
  • +
  • El sistema muestra el listado de categorías disponibles y los materiales asociados.
  • +
+
+images/order-element-material-search.png +

Búsqueda de material

+
+
    +
  • El usuario selecciona categorías en las que buscar para afinar la búsqueda de materiales.
  • +
  • El sistema muestra los materiales pertenecientes a las categorías seleccionadas.
  • +
  • El usuario selecciona en el listado de materiales aquellos que desea asignar al elemento de pedido.
  • +
  • El usuario presiona en "Asignar".
  • +
  • El sistema muestra el listado seleccionado de materiales en la pestaña de "Materiales" con nuevos campos por cubrir.
  • +
+
+images/order-element-material-assign.png +

Asignación de material a elemento de pedido

+
+
    +
  • El usuario selecciona las unidades, estado y fecha de los materiales asignados.
  • +
+

Para control posterior de los materiales es posible cambiar el estado de un grupo de unidades del material recibido. Esta operación se realiza del siguiente modo:

+
    +
  • El usuario presiona en el botón "Dividir" que se muestra en el listado de materiales a la derecha de cada fila.
  • +
  • El usuario selecciona el número de unidades para los que desea dividir la fila.
  • +
  • La aplicación muestra dos filas con el material dividido.
  • +
  • El usuario cambia el estado de la fila de material que desea.
  • +
+

La utilidad de esta operación de división es la de poder recibir entregas parciales de material sin necesidad de esperar a recibirlo todo para marcarlo cómo recibido.

+
+
+

Gestionar los formularios de calidad

+

Existen elementos de pedido que deben certificar que ciertas tareas fueron realizados para poder ser marcadas cómo completadas. Es por eso que surgen los formularios de calidad, las cuales están formados por una lista de preguntas que pueden haber asignado un peso según sea contestada positivamente.

+

Es importante destacar que un formulario de calidad debe ser creado previamente para poder ser asignado al elemento de pedido.

+

Para gestionar los formulario de calidad:

+
    +
  • El usuario accede a la pestaña de "Formularios de calidad".
  • +
+
+images/order-element-quality.png +

Asignación de formulario de calidad a elemento de pedido

+
+
    +
  • La aplicación muestra un buscador de formularios de calidad. Existen dos tipos de formularios de calidad: por elementos o porcentaje.

    +
    +
      +
    • Por elementos: Cada elemento es independiente.
    • +
    • Por porcentaje: Cada pregunta incrementa el avance en el elemento de pedido en un porcentaje. Los porcentajes deben ser incrementales hasta el 100%.
    • +
    +
    +
  • +
  • El usuario selecciona uno de los formularios dados de alta desde la interface de administración y presiona en "Asignar".

    +
  • +
  • La aplicación asigna el formulario elegido en el listado de formularios asignados al elemento de pedido.

    +
  • +
  • El usuario presiona en el botón "Editar" del elemento de pedido.

    +
  • +
  • La aplicación despliega las preguntas del formulario de calidad en el listado inferior.

    +
  • +
  • +
    El usuario marca cómo conseguidas las preguntas que son realizadas.
    +
      +
    • Si el tipo de formulario de calidad es por porcentaje, las preguntas son contestadas por orden.
    • +
    • Si el tipo de formulario de calidad es por elementos, las preguntas son contestadas en cualquier orden.
    • +
    +
    +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/es/07-planificacion.html b/libreplan-webapp/src/main/webapp/help/es/07-planificacion.html new file mode 100644 index 000000000..50efb32cf --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/es/07-planificacion.html @@ -0,0 +1,134 @@ + + + + + + +Planificación de tareas + + + +
+

Planificación de tareas

+ + +
+

Planificación de tareas

+

La planificación en "LibrePlan" es un proceso que se describe a lo largo de todos los capítulos del documento de usuario, entre los cuales destacan los capítulos de pedidos y de asignación de recursos. En este capítulo se tratan las operaciones básicas de planificación, una vez el pedido está correctamente configurado y la interacción con los diagramas de Gantt.

+
+images/planning-view.png +

Vista de planificación de un trabajo

+
+

Tal y como sucede con la vista global de la empresa, la vista de planificación de un proyecto se divide en varias perspectivas que se muestran en base a la información que se está analizando del mismo. Las perspectivas de un proyecto concreto son:

+
    +
  • Vista de planificación
  • +
  • Vista de carga de recursos
  • +
  • Vista de listado de pedidos
  • +
  • Vista de asignación avanzada
  • +
+
+

Vista de planificación

+

La perspectiva de planificación combina tres vistas diferentes:

+
    +
  • Planificación del proyecto. La planificación del proyecto se visualiza en la zona superior derecha de la aplicación. Se representa la planificación en diagramación de Gantt. Es la vista en la que se permite mover temporalmente las tareas, asignar dependencias entre ellas, definir hitos o establecer restricciones.

    +
  • +
  • Vista de carga de recursos. La vista de carga de recursos es el gráfico inferior derecho en el que se muestra la disponibilidad de recursos según las asignacións que se realizaron, contrastada con las asignaciones realizadas a tareas. La información que se muestra en el gráfico es:

    +
    +
      +
    • Zona violeta: Indica la carga de recursos por debajo del 100% de su capacidad.
    • +
    • Zona verde: Indica la carga de recursos por debajo del 100% derivado de que el recurso está planificado en otro proyecto.
    • +
    • Zona naranja: Indica la carga de recursos por encima de su 100% debido al proyecto actual.
    • +
    • Zona amarilla: Indica la carga de recursos por encima de su 100% debido a otros proyectos.
    • +
    +
    +
  • +
  • Vista de gráfico e indicadores do valor ganado. Visible desde la pestaña de "Valor Ganado". Gráfico que se genera en base a la técnica del valor ganado y os indicadores calculados cada uno de los días de trabajo del proyecto. Los indicadores calculados son:

    +
    +
      +
    • BCWS: función acumulativa en el tiempo del número de horas planificadas hasta una fecha. En el inicio planificado de la tarea será 0 y al final será el total de horas planificadas. Como toda gráfica acumulativa, esta siempre será creciente. La función para una tarea tendrá la suma de las asignaciones de día hasta el día de cálculo. Esta función tiene valores para todos los momentos en el tiempo siempre que tengamos asignación de recursos.
    • +
    • ACWP: función acumulativa en el tiempo de las horas imputadas en los partes de trabajo hasta una fecha. Esta función solo tendrá valores iguales a 0 antes de la fecha del promer parte de trabajo de la tarea e irá incrementando su valor a medida que avanza el tiempo y se incorporen horas de partes de trabajo. No tendrá valor después de la fecha del último parte de trabajo.
    • +
    • BCWP: función acumulativa en el tiempo que incorpora el valor resultante de multiplicar el avance de las tareas por la cantidad de trabajo que se estimaba que llevaría la tarea. Esta función tiene valores incrementales a medida que se incrementa el tiempo y tenemos valores de avance que se van incrementando. El avance se multiplica por el total de horas estimadas de cada una de las tareas. Y el valor de BCWP es la sume de estos valores para las tareas que es están calculando. Un avance se suma en el momento de tiempo que se configuró.
    • +
    • CV: Variación en coste CV = BCWP - ACWP
    • +
    • SV: Variación en planificación SV = BCWP - BCWS
    • +
    • BAC: Total coste planificado BAC = max (BCWS)
    • +
    • EAC: Estimación de coste total actual EAC = (ACWP/ BCWP) * BAC
    • +
    • VAC: Desviación al coste final VAC = BAC - EAC
    • +
    • ETC: Estimado del coste pendiente ETC = EAC - ACWP
    • +
    • CPI: Índice de eficiencia de coste CPI = BCWP / ACWP
    • +
    • SPI: Índice de eficiencia da planificación SPI = BCWP / BCWS
    • +
    +
    +
  • +
+

Dentro de la planificación del proyecto el usuario puede realizar las siguientes operaciones:

+
+
    +
  • Asignar dependencias. Para realizar dicha operación es necesario pulsar con el botón derecho y elegir "Añadir dependencia", arrastrar el puntero del ratón para la tarea destinataria de la dependencia.

    +
    +
      +
    • Para cambiar el tipo de dependencia, pulsar con el botón derecho sobre la dependencia y elegir el tipo que se desea asignar.
    • +
    +
    +
  • +
  • Crear nuevo hito. Pulsar sobre la tarea anterior al hitoque se desea añadir y seleccionar la operación "Añadir hito". Los hitos pueden ser movidos selecionando con el puntero sobre la tarea y arrastrando con el ratón el hito a la posición deseada.

    +
  • +
  • Mover tareas sin violar dependencias. Presionar con el ratón sobre el cuerpo de la tarea y sin soltar el ratón, arrastrar la tarea hacia la posición en la que se desea colocar. Si no se violan restricciones o dependencias el sistema actualiza las asignaciones de recursos diarias a la tarea y coloca la tarea en la fecha seleccionada.

    +
  • +
  • Asignar restricciones. Presionar sobre la tarea en cuestión y seleccionar la operación "Propiedades de la tarea". Aparecerá un pop-up con un campo modificable que es "Restricciones". Las restricciones pueden entrar en conflicto con las dependencias, por lo que será en cada pedido donde se indique si las dependencias tienen prioridad o no sobre las restricciones. Las que se pueden establecer son:

    +
    +
      +
    • Tan pronto como sea posible: Indica que la tarea debe comenzar tan pronto como sea posible.
    • +
    • No antes de. Indica que la tarea no debe comenzar antes de una fecha.
    • +
    • Comenzar en fecha fija. Indica que la tarea debe comenzar en fecha fija.
    • +
    +
    +
  • +
+
+

A mayores, dentro da perspectiva de planificación se ofrecen varias operaciones, que finalmente actuarán como opciones de visualización:

+
    +
  • Nivel de zoom: Es posible seleccionar el nivel de zoom que le interese al usuario. Existen varios niveles de zoom: por año, cuatrimestres, mensuales, semanales y diarios.
  • +
  • Filtros de búsqueda: Es posible filtrar tareas en base a etiquetas o criterios.
  • +
  • Camino crítico. Utilizando el algoritmo de Dijkstra para cálculo de caminos en grafos se implementó el camino crítico que se visualiza si se presiona en el botón "Camino crítico" de las opciones de visualización.
  • +
  • Mostrar etiquetas: Permite mostrar las etiquetas asignadas a las tareas del proyecto en visualización e impresión.
  • +
  • Mostrar recursos: Permite mostrar los recursos asignados a las tareas del proyecto en visualización e impresión.
  • +
  • Imprimir: Permite imprimir el diagrama de Gantt que se está visualizando en el momento.
  • +
+
+
+

Vista de carga de recursos

+

La vista de carga de recursos ofrece una lista de recursos que contiene una lista de tareas o criterios que generan carga de trabajo. Cada tarea o criterio es mostrado en modo diagrama de Gantt para dar visibilidad a la fecha de comienzo y final de dicha carga. Según un recurso tiene una carga superior o inferior al 100% se muestra un color:

+
    +
  • Color verde: carga inferior al 100%
  • +
  • Color naranja: carga del 100%
  • +
  • Color roja: carga superior al 100%
  • +
+
+images/resource-load.png +

Vista de carga de recursos para un pedido concreto

+
+

Si se coloca el ratón sobre una zona del diagrama de Gantt de un recurso se mostrará el porcentaje de carga del trabajador en ese momento dado.

+
+
+

Vista de listado de pedidos

+

La vista de listado de pedidos permite acceder a la edición y borrado de pedidos. Ver el capítulo de "Pedidos".

+
+
+

Vista de asignación avanzada

+

La vista de asignación avanzada se explica en profundidad en el capítulo de "Asignación de recursos".

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/es/08-asignacion.html b/libreplan-webapp/src/main/webapp/help/es/08-asignacion.html new file mode 100644 index 000000000..219ac0c8b --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/es/08-asignacion.html @@ -0,0 +1,215 @@ + + + + + + +Asignación de recursos + + + +
+

Asignación de recursos

+ + + +

La asignación de recursos es una de las partes más importantes de la aplicación. La asignación de recursos puede realizarse de dos maneras diferentes:

+
    +
  • Asignaciones específicas.
  • +
  • Asignaciones genéricas.
  • +
+

Cada una de las asignaciones es explicada en las siguientes secciones.

+

Para realizar cualquiera de las dos asignaciones de recursos es necesario dar los siguientes pasos:

+
    +
  • Acceder a la planificación de un pedido.
  • +
  • Presionar con el botón derecho sobre la tarea que se desea planificar.
  • +
+
+images/resource-assignment-planning.png +

Menú de asignación de recursos

+
+
    +
  • La aplicación muestra una pantalla en la que se puede visualizar la siguiente información.

    +
    +
      +
    • Listado de criterios que deben ser satisfechos. Por cada grupo de horas, se muestra un listado de grupos de horas y cada grupo de horas exige su listado de criterios.

      +
    • +
    • Información de la tarea: fecha de inicio y fecha de fin de la tarea.

      +
    • +
    • Tipo de cálculo: El sistema permite elegir la estrategia que se desea llevar a cabo para calcular las asignaciones:

      +
      +
        +
      • Calcular número de horas: Calcula el número de horas que haría falta que dedicaran los recursos asignados dados una fecha de fin y un número de recursos por día.
      • +
      • Calcular fecha fin: Calcula la fecha de fin de la tarea a partir de los número de recursos de la tarea y de las horas totales dedicar para finalizar la tarea.
      • +
      • Calcular número de recursos: Calcula el número de recursos necesarios para finalizar la tarea en una fecha específica y dedicando una serie de horas conocidas.
      • +
      +
      +
    • +
    • Asignación recomendada: Opción que le permite a la aplicación recoger los criterios que deben ser satisfechos y las horas totales de cada grupo de horas y hace una propuesta de asignación genérica recomendada. Si había una asignación previa, el sistema elimina dicha asignación sustituyéndola por la nueva.

      +
    • +
    • Asignaciones: Listado de asignaciones realizadas. En este listado se podrán ver las asignaciones genéricas (el nombre sería la lista de criterios satisfecha, horas y número de recursos por día). Cada asignación realizada puede ser borrada explícitamente presionando en el botón de borrar.

      +
    • +
    +
    +
  • +
+
+images/resource-assignment.png +

Asignación de recursos

+
+
    +
  • El usuario selecciona "Búsqueda de recursos".
  • +
  • La aplicación muestra una nueva pantalla formada por un árbol de criterios y un listado a la derecha de los trabajadores que cumplen los criterios seleccionados:
  • +
+
+images/resource-assignment-search.png +

Búsqueda de asignación de recursos

+
+
    +
  • El usuario puede seleccionar:

    +
    +
      +
    • Asignación específica. Ver sección "Asignación específica" para conocer que significa elegir esta opción.
    • +
    • Asignación genérica. Ver sección "Asignación genérica" para conocer que significa elegir esta opción.
    • +
    +
    +
  • +
  • El usuario selecciona una lista de criterios (genérica) o una lista de trabajadores (específica). La elección múltiple se realiza presionando en el botón "Crtl" a la hora de pulsar en cada trabajador o criterio.

    +
  • +
  • El usuario presiona en el botón "Seleccionar". Es importante tener en cuenta que, si no se marca asignación genérica, es necesario escoger un trabajador o máquina para poder realizar una asignación, en caso contrario llega con elegir uno o varios criterios.

    +
  • +
  • La aplicación muestra en el listado de asignaciones de la pantalla original de asignación de recursos a lista de criterios o recursos seleccionados.

    +
  • +
  • El usuario debe elegir las horas o los recursos por día dependiendo de la estrategia de asignación que le solicitó llevar a cabo a la aplicación.

    +
  • +
+
+

Asignación específica

+

La asignación específica es aquella asignación de un recurso de modo concreto y específica a una tarea de un proyecto, es decir, el usuario de la aplicación está decidiendo qué "nombre y apellidos" o qué "máquina" concreta debe ser asignada a una tarea.

+

La asignación específica es realizable desde la pantalla que se puede ver en la imagen:

+
+images/asignacion-especifica.png +

Asignación específica de recursos

+
+

La aplicación, cuando un recurso es asignado específicamente, crea asignaciones diarias en relación al porcentaje de recurso diario que se eligió para asignación, contrastando previamente con el calendario disponible del recurso. Ejemplo: una asignación de 0.5 recursos para una tarea de 32 horas implica que se asignen al recurso específico (suponiendo un calendario laboral de 8 horas diarias) 4 horas diarias para realizar la tarea.

+
+

Asignación específica de máquinas

+

La asignación específica de máquinas actúa igual que la de trabajadores, es decir, cuando se asigna una máquina a una tarea, el sistema almacena una asignación de horas específica a la máquina elegida. La diferencia principal es que en el momento de asignar una máquina, el sistema busca el listado de trabajadores o criterios asignados a la máquina:

+
    +
  • Si la máquina tenía un listado de trabajadores asignados, elige entre el número de ellos que requiera la máquina para el calendario asignado. Por ejemplo, si el calendario de la máquina es de 16 horas diarias y de los recursos de 8, asigna dos recursos de la lista de recursos disponibles.
  • +
  • Si la máquina tenía un criterio o varios asignados, realiza asignaciones genéricas entre los recursos que satisfacen los criterios asignados a la máquina.
  • +
+
+
+
+

Asignación genérica

+

La asignación genérica es aquella asignación donde el usuario no elige los recursos concretamente dejando la decisión a la aplicación, eligiendo ésta como reparte las cargas entre los recursos disponibles de la empresa.

+
+images/asignacion-xenerica.png +

Asignación genérica de recursos

+
+

El sistema de asignación utiliza como base los siguientes supuestos:

+
    +
  • Las tareas cuentan con criterios requeridos a los recursos.
  • +
  • Los recursos están configurados para que satisfagan los criterios.
  • +
+

Sin embargo, el sistema no falla en aquellos casos en los que no se asignen criterios sino que todos los recursos satisfacen el no requirimiento de criterios.

+

El algoritmo de asignación genérica actúa del siguiente modo:

+
    +
  • Cada recurso y día es tratado como un contenedor donde caben asignaciones diarias de horas, basándose la capacidad máxima de asignación en el calendario de la tarea.
  • +
  • El sistema busca los recursos que satisfacen el criterio.
  • +
  • El sistema analiza qué asignaciones tienen actualmente los diferentes recursos que cumplen los criterios.
  • +
  • De entre los que satisfacen los criterios se escogen los recursos que tienen disponibilidad suficiente.
  • +
  • Si los recursos más libres van siendo ocupados, se siguen realizando asignaciones en los recursos que tenían menor disponibilidad.
  • +
  • Sólo cuando todos los recursos que satisfacen los criterios correspondientes están asignados al 100% se comienza con la sobreasignación de recursos hasta completar el total necesario para realizar la tarea.
  • +
+
+

Asignación genérica de máquinas

+

La asignación genérica de máquinas actúa de igual modo que la de trabajadores, es decir, cuando se asigna una máquina a una tarea, el sistema almacena una asignación de horas genérica a cada una de las máquinas que satisfacen los criterios, tal y como se describió genericamente para los recursos en general. Sin embargo, tratándose de máquinas el sistema realiza la siguiente operación a mayores:

+
    +
  • Para cada máquina elegida para la asignación genérica:
      +
    • Recoge la información de configuración de la máquina, es decir, alfa, trabajadores y criterios asignados.
    • +
    • Si la máquina tenía un listado de trabajadores asignados, elige entre el número de ellos que requiera la máquina dependiendo del calendario asignado. Por ejemplo, si el calendario de la máquina es de 16 horas diarias y de los recursos de 8, asigna dos recursos de la lista de recursos disponibles.
    • +
    • Si la máquina tenía un criterio o varios asignados, realiza asignaciones genéricas entre los recursos que satisfacen los criterios asignados a la máquina.
    • +
    +
  • +
+
+
+
+

Asignación avanzada

+

La asignación avanzada permite diseñar las asignaciones que se realizan automáticamente por la aplicación de manera más personalizada. Esta operación permite elegir manualmente las horas diarias que dedican los recursos a las tareas que están asignadas o definir una función que se le aplica a dichas asignaciones.

+

Para gestionar la asignación avanzada los pasos a dar son los siguientes:

+
    +
  • Acceder a la ventana de asignación avanzada. Existen dos modos de acceder a la asignación avanzada:

    +
    +
      +
    • Accediendo a un pedido concreto y cambiar de perspectiva para asignación avanzada. En este caso se mostrarán todas las tareas del pedido y los recursos asignados (tanto específicos cómo genéricos).
    • +
    • Accediendo a la asignación de recursos y presionando en el botón "Asignación avanzada". En este caso se mostrarán las asignaciones de la tarea para la que se está asignando recursos (se muestran tanto las genéricas como las específicas).
    • +
    +
    +
  • +
+
+images/advance-assignment.png +

Asignación avanzada de recursos

+
+
    +
  • El usuario puede acceder al zoom que desee:

    +
    +
      +
    • Si el zoom elegido es un zoom superior a día. Si el usuario modifica el valor de horas asignado a la semana, mes, cuatrimestre o semestre, el sistema reparte las horas de manera lineal durante todos los días del período elegido.
    • +
    • Si el zoom elegido es un zoom de día. Si el usuario modifica el valor de horas asignado al día, estas horas sólo aplican al día. De este modo el usuario puede decidir cuantas horas se asignan diariamente a los recursos de la tarea.
    • +
    +
    +
  • +
  • El usuario puede elegir diseñar una función de asignación avanzada. Para realizarlo:

    +
    +
      +
    • Elegir la función en la lista de selección que aparece al lado de cada recurso y presionar en "Configurar".

      +
    • +
    • El sistema muestra una nueva ventana si la función elegida requiere de configuración específica. Las funciones soportadas son:

      +
      +
        +
      • Tramos: Función que permite definir tramos en los que se aplica una función polinómica. La función por tramos se configura del siguiente modo:

        +
        +
          +
        • Fecha. Fecha en la que finaliza el tramo. Si se establece el siguiente valor (longitud) la fecha es calculada, en caso contrario, se calcula la longitud.
        • +
        • Definición de la longitud de cada tramo. Indica que porcentaje de duración de la tarea se desea para el tramo.
        • +
        • Definición de la cantidad de trabajo. Indica que porcentaje de carga de trabajo se espera tener hecho en ese tramo. La cantidad de trabajo debe ser incremental, de modo que si hay un tramo del 10% el siguiente tramo debe ser superior (por ejemplo, 20%).
        • +
        • Gráficas de tramos y carga acumulada.
        • +
        +
        +
      • +
      +
      +
    • +
    • El usuario presiona en "Aceptar".

      +
    • +
    • La aplicación almacena la función y la aplica en las asignaciones diarias del recurso.

      +
    • +
    +
    +
  • +
+
+images/stretches.png +

Configuración de función por tramos

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/es/09-partes.html b/libreplan-webapp/src/main/webapp/help/es/09-partes.html new file mode 100644 index 000000000..11d804bde --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/es/09-partes.html @@ -0,0 +1,92 @@ + + + + + + +Partes de trabajo + + + +
+

Partes de trabajo

+ + +

Los partes de trabajo permiten el seguimiento de las horas que dedican los recursos existentes a las tareas en las que están planificados.

+

La aplicación permite configurar nuevos formularios de introducción de horas dedicadas, especificando los campos que se desea que figuren en estos modelos, así como incorporar los partes de las tareas que son realizadas por los trabajadores y hacer un seguimiento de los mismos.

+

Antes de poder añadir entradas con dedicación de los recursos, es necesario especificar como mínimo un tipo de parte de trabajo que defina la estructura que tienen todas las filas que se añadan en él. Pueden crearse tantos tipos de partes de trabajo en el sistema como sea necesario.

+
+

Tipos de partes de trabajo

+

Un parte de trabajo consta de una serie de campos comunes para todo el parte, y un conjunto de líneas de parte de trabajo con valores específicos para los campos definidos en cada una de las filas. Por ejemplo, el recurso y la tarea son comunes para todos los partes, sin embargo, puede haber campos nuevos como "incidencias", que no se deseen en todos los tipos.

+

Es posible configurar diferentes tipos de partes de trabajo para que una empresa diseñe sus partes dependiendo de las necesidades para cada caso:

+
+images/work-report-types.png +

Tipos de partes de trabajo

+
+

La administración de los tipos de partes de trabajo permite configurar este tipo de características, así como añadir nuevos campos de texto o de etiquetas opcionales. Dentro de la primera de las pestañas de edición de los tipos de partes de trabajo se puede configurar el tipo para los atributos obligatorios (si son globales para todo el parte, o se especifican a nivel de línea), y añadir nuevos campos opcionales.

+

Los campos obligatorios que deben figurar en todos los partes de trabajo son los siguientes:

+
    +
  • Nombre y código: Campos identificativos del nombre del tipo de parte de trabajo y código del mismo.
  • +
  • Fecha: Campo de fecha a la que corresponde el parte.
  • +
  • Recurso: Trabajador o máquina que figura en el parte o línea de parte de trabajo.
  • +
  • Elemento de pedido: Código del elemento de pedido al que imputar las horas del trabajo realizado.
  • +
  • +
    Gestión de horas: Determina la política de imputación de horas a llevar a cabo, la cual puede ser:
    +
      +
    • Por número de horas asignadas.
    • +
    • Por horas de comienzo y fin.
    • +
    • Por número de horas y rango de comienzo y fin (permite divergencia y tiene prioridad el número de horas).
    • +
    +
    +
    +
  • +
+

Existe la posibilidad de añadir nuevos campos a los partes:

+
    +
  • Tipo de etiqueta: Es posible solicitar que se indique una etiqueta del sistema a la hora de rellenar el parte de trabajo. Por ejemplo, el tipo de etiqueta cliente si deseamos que en cada parte se introduzca el cliente para el cual se trabajó.
  • +
  • Campos libres: Campos de tipo entrada de texto libre que se pueden introducir en el parte de trabajo.
  • +
+
+images/work-report-type.png +

Creación de tipo de parte de trabajo con campos personalizados

+
+

Para los campos de fecha, recurso y elemento de pedido, pueden configurarse se figuran en la cabecera del parte y por lo tanto son globales al mismo, o si son añadidos en cada una de las filas.

+

Finalmente, pueden añadirse nuevos campos de texto adicionales o etiquetas a las existentes en el sistema, tanto para la cabecera de los partes de trabajo como en cada una de las líneas, mediante los campos de "Texto Complementario" y "Tipos de Etiquetas", respectivamente. En la pestaña de "Gestión de campos adicionales y etiquetas", el usuario puede configurar el orden en la que introducir dichos elementos en los partes de trabajo.

+
+
+

Listado de partes de trabajo

+

Una vez configurados los formatos de los partes a incorporar al sistema, se pueden introducir los datos en el formulario creado según la estructura definida en el tipo de parte de trabajo correspondiente. Para hacerlo, es necesario seguir los siguientes pasos:

+
    +
  • Presionar en el botón "Nuevo parte de trabajo" asociado el tipo de parte que se desee del listado de tipos de partes de trabajo.
  • +
  • La aplicación muestra el parte construído a partir de la configuración dada para el tipo. Ver siguiente imagen.
  • +
+
+images/work-report-type.png +

Estructura del parte de trabajo a partir del tipo

+
+
    +
  • Seleccionar cada uno de los campos que se muestra para el parte:

    +
    +
      +
    • Recurso: Si se eligió la cabecera, sólo se indica el recurso una vez. En caso contrario, para cada línea del parte es necesario elegir un recurso.
    • +
    • Código de la tarea: Código de la tarea a la que se está asignando el parte de trabajo. Al igual que el resto de campos, si el campo es de cabecera se introducirá el valor una vez o tantas veces como líneas del parte.
    • +
    • Fecha: Fecha del parte o de cada línea dependiendo de se la configuración es por cabecera o línea.
    • +
    • Número de horas. El número de horas de trabajo del proyecto.
    • +
    • Horas de inicio y fin. Horas de comienzo y fin de trabajo para calcular las horas de trabajo definitivas. Este campo sólo aparece en los casos de políticas de imputación de horas de "Por horas de comienzo y fin" y "Por número de horas y rango de comienzo y fin".
    • +
    • Tipo de horas: Permite elegir entre tipos de horas "Normales", "Extraordinarias", etc.
    • +
    +
    +
  • +
  • Presionar en "Guardar" o "Guardar y Continuar".

    +
  • +
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/es/10-etiquetas.html b/libreplan-webapp/src/main/webapp/help/es/10-etiquetas.html new file mode 100644 index 000000000..f00079f24 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/es/10-etiquetas.html @@ -0,0 +1,68 @@ + + + + + + +Etiquetas + + + +
+

Etiquetas

+ +
+

Contents

+ +
+

Las etiquetas son entidades que se utilizan en la aplicación para la organización conceptualmente de tareas o elementos de pedido.

+

Las etiquetas se categorizan según los tipos de etiquetas. Una etiqueta sólo pertenece a un tipo de etiqueta, sin embargo, nada impide crear tantas etiquetas similares que pertenezcan a tipos de etiquetas diferentes.

+
+

Tipos de etiquetas

+

Los tipos de etiquetas se utilizan para agrupar tipologías de etiquetas que los usuarios deseen gestionar en la aplicación. Ejemplos de tipos de etiquetas posibles:

+
    +
  1. Cliente: El usuario podría estar interesado en etiquetar las tareas, pedidos o elementos de pedido en base al cliente que los solicitó.
  2. +
  3. Zona: El usuario podría estar interesado en etiquetar las tareas, pedidos o elementos de pedido en base a la zona en la que se realizan.
  4. +
+

La administración de tipos de etiquetas se gestionará desde la opción de menú de "Administración". Es desde esta opción, desde la que el usuario puede editar tipos de etiqueta, crear nuevos tipos de etiqueta o añadir etiquetas a tipos de etiquetas. Desde dicha operación puede accederse al listado de etiquetas.

+
+images/tag-types-list.png +

Lista de tipos de etiquetas

+
+

Desde el listado de tipos de etiquetas es posible:

+
    +
  1. Crear nuevo tipo de etiquetas.
  2. +
  3. Editar un tipo de etiquetas existente.
  4. +
  5. Borrar un tipo de etiquetas con todas sus etiquetas.
  6. +
+

Tanto la edición como la creación de etiquetas comparten formulario. Desde dicho formulario el usuario puede asignar un nombre al tipo de etiquetas, crear o borrar etiquetas y almacenar los cambios. Para realizar esto:

+
    +
  1. El usuario debería seleccionar una etiqueta a editar o presionar en el botón de creación de una nueva.
  2. +
  3. El sistema muestra un formulario con una entrada de texto para el nombre y un listado de entradas de texto con las etiquetas existentes y asignadas.
  4. +
  5. Si el usuario desea añadir una nueva etiqueta debe presionar en el botón "Etiqueta nueva".
  6. +
  7. El sistema muestra una nueva fila al listado con una entrada de texto vacía que el usuario debe editar.
  8. +
  9. El usuario introduce un nombre para la etiqueta.
  10. +
  11. El sistema añade el nombre al listado.
  12. +
  13. El usuario presiona en "Guardar" para guardar y salir o "Guardar y Continuar" para guardar y continuar editando el formulario.
  14. +
+
+images/tag-types-edition.png +

Edición de tipos de etiquetas

+
+
+
+

Etiquetas

+

Las etiquetas son entidades que pertenecen a un tipo de etiqueta. Estas entidades pueden ser asignadas a elementos de pedido. El hecho de asignar una etiqueta a un elemento de pedido hace que todos los elementos descendientes de dicho elemento hereden la etiqueta a la que pertenecen. El hecho de contar con una etiqueta asignada permite que esos elementos salgan filtrados en los puntos en los que se ofrece la posibilidad de búsqueda:

+
    +
  1. Búsqueda de tareas en el diagrama de Gantt.
  2. +
  3. Búsqueda de elementos de pedido en el listado de elementos de pedido.
  4. +
  5. Filtrados para informes.
  6. +
+

La asignación de etiquetas a elementos de pedido es cubierta en el capítulo de pedidos.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/es/11-materiales.html b/libreplan-webapp/src/main/webapp/help/es/11-materiales.html new file mode 100644 index 000000000..1d4417a02 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/es/11-materiales.html @@ -0,0 +1,59 @@ + + + + + + +Materiales + + + +
+

Materiales

+ + +
+

Administración de materiales

+

Es posible gestionar una base de datos de materiales básica organizados por categorías.

+

Las categorías son contedores a los que se pueden asignar materiales concretos y al mismo tiempo más categorías. Se almacenan en modo arbóreo de suerte que los materiales pueden pertenecer a categorías hoja o categorías intermedias.

+

Para administrar categorías:

+
    +
  • El usuario accede a la operación de "Administración->Materiales".
  • +
  • La aplicación muestra un árbol de categorías.
  • +
  • El usuario introduce un nombre de categoría dentro de la entrada de texto con un botón "Añadir" y presiona en el botón.
  • +
  • La aplicación añade la categoría en el árbol de categorías.
  • +
+

Si el usuario desea posicionar una categoría dentro del árbol de categorías debe seleccionar previamente la categoría padre en dicho árbol para después presionar en "Añadir".

+
+images/material.png +

Pantalla de administración de materiales

+
+

Para administrar materiales:

+
    +
  • El usuario selecciona la categoría para la que desea incluir materiales y presiona en el botón "Añadir" en la zona derecha de "Materiales".

    +
  • +
  • La aplicación añade una nueva fila vacía con campos para introducir los datos del material:

    +
    +
      +
    • Código: Código del tipo de material (puede ser el código externo proveniente de un ERP).
    • +
    • Descripción: Descripción del material.
    • +
    • Precio de la unidad: Precio unitario de cada elemento de material.
    • +
    • Unidad: Unidad en la que se desea medir cada unidad de material.
    • +
    • Categoría: Categoría a la que pertenece.
    • +
    • Deshabilitado: Si el material está borrado o no.
    • +
    +
    +
  • +
  • El usuario llena los campos y presiona en el botón "Guardar".

    +
  • +
+

La asignación de materiales a elementos de pedidos se explica en el capítulo de "Pedidos".

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/es/12-formularios-calidad.html b/libreplan-webapp/src/main/webapp/help/es/12-formularios-calidad.html new file mode 100644 index 000000000..6b57fbd8a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/es/12-formularios-calidad.html @@ -0,0 +1,65 @@ + + + + + + +Formularios de calidad + + + +
+

Formularios de calidad

+ + +
+

Administración de formularios de calidad

+

Los formularios de calidad son una lista de preguntas o frases que indican tareas o procesos que deben estar completados para que una tarea se pueda dar por completada por parte de la empresa usuaria. Estos formularios están formados por los siguientes campos:

+
    +
  • Nombre

    +
  • +
  • Descripción

    +
  • +
  • Tipo de formulario de calidad. El tipo puede tomar dos valores:

    +
    +
      +
    • Por porcentaje: Indica que las preguntas deben llevar un orden lógico y que la contestación positiva de las preguntas indica un avance respeto de la tarea. Por ejemplo, que un proceso básico para una tarea implica que la tarea está al 15%. Es necesario contestar una pregunta previa para poder pasar a la siguiente.
    • +
    • Por item: Indica que las preguntas no tienen por que llevar un orden lógico y en consecuencia pueden ser contestadas según se desee.
    • +
    +
    +
  • +
+

Para administrar estos formularios de calidad es necesario realizar los siguientes pasos:

+
    +
  • Acceder en el menú de "Administración" a la operación "Formularios de calidad".

    +
  • +
  • Presionar en editar uno existente o en el botón de "Crear".

    +
  • +
  • La aplicación muestra un formulario con nombre, descripción y tipo.

    +
  • +
  • Seleccionar el tipo.

    +
  • +
  • La aplicación muestra los campos permitidos para cada tipo:

    +
    +
      +
    • Por porcentaje: pregunta y porcentaje.
    • +
    • Por item: pregunta.
    • +
    +
    +
  • +
  • Presionar en "Guardar" o "Guardar y Continuar".

    +
  • +
+
+images/quality.png +

Pantalla de administración de materiales

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/es/13-usuarios.html b/libreplan-webapp/src/main/webapp/help/es/13-usuarios.html new file mode 100644 index 000000000..432231d29 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/es/13-usuarios.html @@ -0,0 +1,91 @@ + + + + + + +Usuarios + + + +
+

Usuarios

+ + +
+

Administración de usuarios

+

El sistema de usuarios de "LibrePlan" permite gestionar perfiles, permisos y usuarios. Un usuario pertenece a un perfil de usuario y por otro lado los perfiles pueden tener una serie de roles predefinidos para el acceso a la aplicación. Los roles son los permisos definidos sobre "LibrePlan". Ejemplos de roles:

+
    +
  • Administración: Rol que los usuarios administradores deben tener asignados para poder realizar operaciones de administración.
  • +
  • Lector de servicios web: Rol que los usuarios necesitan para poder consultar servicios web de la aplicación.
  • +
  • Escritor de servicios web: Rol que los usuarios necesitan para poder escribir utilizando los servicios web de la aplicación.
  • +
+

Los roles están predefinidos en el sistema. Un perfil de usuario está compuesto por uno o varios roles, de modo que se comprueban roles a los que pertenecen los usuarios para realizar ciertas operaciones.

+

Los usuarios pertenecen a un o varios perfiles o directamente a un o varios roles, de modo que se puede asignar permisos específicos o un grupo de permisos genérico.

+

Para administrar usuarios es necesario realizar los siguientes pasos:

+
    +
  • Acceder a la operación de "Gestionar usuarios" del menú de "Administración".

    +
  • +
  • La aplicación muestra un formulario con el listado de usuarios.

    +
  • +
  • Presionar el botón de edición del usuario elegido o presionar en el botón "Crear".

    +
  • +
  • Mostrara un formulario con los siguientes campos:

    +
    +
      +
    • Nombre de usuario.
    • +
    • Contraseña
    • +
    • Habilitado/Deshabilitado.
    • +
    • E-mail
    • +
    • Lista de roles asociados. Para añadir un nuevo rol es necesario buscar uno de los roles mostrados en la lista de selección y presionar en "Asignar".
    • +
    • Lista de perfiles asociados. Para añadir un nuevo perfil es necesario buscar uno de los perfiles mostrados en la lista de selección y presionar en "Asignar".
    • +
    +
    +
  • +
+
+images/manage-user.png +

Administración de usuarios

+
+
    +
  • Presionar en "Guardar" o "Guardar y Continuar".
  • +
+
+

Administración de perfiles

+

Para administrar los perfiles de la aplicación es necesario dar los siguientes pasos:

+
    +
  • Acceder a la operación de "Gestionar perfiles de usuario" del menú de "Administración".

    +
  • +
  • La aplicación muestra un listado de perfiles.

    +
  • +
  • Presionar el botón de edición del perfil elegido o presionar en el botón "Crear".

    +
  • +
  • La aplicación muestra un formulario con los siguientes campos:

    +
    +
      +
    • Nombre
    • +
    • Lista de roles (permisos) asociados al perfil. Para añadir un rol asociado al perfil se deberá seleccionar uno de la lista de roles y presionar en "Añadir".
    • +
    +
    +
  • +
+
+images/manage-user-profile.png +

Gestión de perfiles de usuarios

+
+
    +
  • Presionar en "Guardar" o "Guardar y Continuar" y el sistema almacena el perfil creado o modificado.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/es/14-custos.html b/libreplan-webapp/src/main/webapp/help/es/14-custos.html new file mode 100644 index 000000000..868014016 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/es/14-custos.html @@ -0,0 +1,129 @@ + + + + + + +Gestión de costes + + + +
+

Gestión de costes

+ + +
+

Costes

+

La gestión de costes está planteada para poder realizar una previsión estimativa de los costes de los recursos de un proyecto. Para la gestión de costes se determinó la existencia de las siguientes entidades:

+
    +
  • Tipos de horas trabajadas: Indican los tipos de horas de trabajo de los recursos. Es posible incluir como tipos tanto los tipos de horas para máquinas como para trabajadores. Ejemplos de tipos de horas serían: Extraordinarias pagadas a 20 euros de manera genérica. Los campos que se pueden incluir en los tipos de horas trabajadas:

    +
    +
      +
    • Código: Código externo del tipo de horas.
    • +
    • Nombre: Nombre del tipo de hora. Por ejemplo, extraordinaria.
    • +
    • Precio por defecto: Precio base por defecto para el tipo de horas.
    • +
    • Activado: Indica si el tipo de hora está activado.
    • +
    +
    +
  • +
  • Categorías de coste. Las categorías de coste indican categorías que se utilizan para definir costes dependiendo de los tipos de horas durante unos períodos (estos períodos pueden ser indefinidos). Por ejemplo, el coste de las horas extraordinarias de los oficiales de 1ª durante el siguiente año es de 24 euros hora. Las categorías de coste están formadas por:

    +
    +
      +
    • Nombre: Nombre de la categoría de coste.
    • +
    • Activado: Indica si la categoría está activada o no.
    • +
    • Listado de tipos de hora asignados a la categoría de coste. Indican diversos períodos y precios para los tipos de hora. Por ejemplo, cada año con cambio de precios se incluye como un período de tipo de hora en este listado. Por otro lado, para cada tipo de horas se mantiene un precio por hora (que puede ser diferente del precio por hora por defecto que se haya incluido para el tipo de hora).
    • +
    +
    +
  • +
+
+

Administración de tipos de horas trabajadas

+

Para dar de alta tipos de horas trabajadas es necesario dar los siguientes pasos:

+
    +
  • Seleccionar la operación "Administrar tipos de hora de trabajo" en el menú de "Administración".
  • +
  • La aplicación muestra el listado de tipos de hora existentes.
  • +
+
+images/hour-type-list.png +

Lista de tipos de horas

+
+
    +
  • El usuario presiona en el icono de "Editar" o presiona en el botón "Crear".
  • +
  • La aplicación muestra un formulario de edición del tipo de hora.
  • +
+
+images/hour-type-edit.png +

Edición de tipos de horas

+
+
    +
  • El usuario introduce o modifica:

    +
    +
      +
    • El nombre del tipo de hora.
    • +
    • El código del tipo de hora.
    • +
    • El precio por defecto.
    • +
    • Activación/Desactivación del tipo de hora.
    • +
    +
    +
  • +
  • El usuario presiona en "Guardar" o "Guardar y Continuar".

    +
  • +
+
+
+

Categorías de coste

+

Para dar de alta categorías de coste es necesario dar los siguientes pasos:

+
    +
  • Seleccionar la operación "Administrar categorías de coste" en el menú de "Administración".
  • +
  • La aplicación muestra el listado de categorías existentes.
  • +
+
+images/category-cost-list.png +

Lista de categorías de coste

+
+
    +
  • El usuario presiona en el icono de "Editar" o presiona en el botón "Crear".
  • +
  • La aplicación muestra un formulario de edición de la categoría de coste.
  • +
+
+images/category-cost-edit.png +

Edición de categorías de coste

+
+
    +
  • El usuario introduce o modifica:

    +
    +
      +
    • El nombre de la categoría de coste.

      +
    • +
    • Activación/Desactivación del tipo de hora.

      +
    • +
    • Listado de tipos de hora que forman parte de la categoría. Para cada tipo de hora:

      +
      +
        +
      • Tipo de hora: Elegir uno de los tipos de hora existentes en el sistema. Si no existen ninguno es necesario crearlo (se explica en la subsección anterior).
      • +
      • Fecha de inicio y fecha fin (opcional esta segunda) del período en el que afecta la categoría de coste.
      • +
      • Precio por hora para esta categoría específicamente.
      • +
      +
      +
    • +
    +
    +
  • +
  • El usuario presiona en "Guardar" o "Guardar y Continuar".

    +
  • +
+

La asignación de categorías de coste a recursos puede verse en el capítulo de recursos. Acceder a la sección de "Recursos".

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/es/15-1-report-hours-worked-by-resource.html b/libreplan-webapp/src/main/webapp/help/es/15-1-report-hours-worked-by-resource.html new file mode 100644 index 000000000..8d640bfa3 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/es/15-1-report-hours-worked-by-resource.html @@ -0,0 +1,128 @@ + + + + + + +Informe de horas trabajadas por recurso + + + +
+

Informe de horas trabajadas por recurso

+ + +
+

Propósito

+

Este informe permite extraer una lista de tareas y tiempo dedicado por parte de los recursos de la organización en un período de tiempo. Hay varios filtros que permiten configurar la consulta para obtener la información deseada y evitar datos superfluos.

+
+
+

Datos de entrada y filtros

+
+
    +
  • +
    Fechas.
    +
      +
    • Tipo: Opcional.
    • +
    • +
      Dos campos de fecha:
      +
        +
      • Fecha de inicio. Es la fecha mínima de los partes de trabajo que se desean. Los partes de trabajo con fecha inferior a la fecha de inicio se ignoran. Si no se especifica este parámetro, no hay fecha inferior de filtrado.
      • +
      • Fecha de fin. Es la fecha máxima de los los partes de trabajo que se incorporarán en los resultados del informe. Los partes de trabajo con una fecha posterior que la fecha de fin se obvian. Si no se cubre el parámetro, no existe fecha tope para los partes de trabajo a seleccionar.
      • +
      +
      +
      +
    • +
    +
    +
    +
  • +
  • +
    Filtrado por trabajadores
    +
      +
    • Tipo: Opcional.
    • +
    • Cómo funciona: Se puede seleccionar un trabajador para restringir el conjunto de partes de trabajo a aquellos correspondientes al trabajador seleccionado. Si se deja en blanco, se seleccionan los partes de trabajo de forma independiente al trabajador al que pertenecen.
    • +
    +
    +
    +
  • +
  • +
    Filtrado por etiquetas
    +
      +
    • Tipo: Opcional.
    • +
    • Cómo funciona: Se puede seleccionar una o varias etiquetas a través del componente de interfaz para su búsqueda y pulsando en el botón Añadir para incorporarlas al filtro. Se usan para seleccionar las tareas que serán incluidas en los resultados del informe.
    • +
    +
    +
    +
  • +
  • +
    Filtrado por criterio
    +
      +
    • Tipo: Opcional.
    • +
    • Cómo funciona: Se puede seleccionar uno o varios criterios a través del componente de búsqueda y, después, mediante el pulsado del botón de Añadir. Estos criterios se usan para seleccionar los recursos que satisfagan al menos uno de ellos. El informe tendrá en cuenta el tiempo dedicado de los recursos que satisfagan al menos uno de los criterios añadidos en este filtro.
    • +
    +
    +
    +
  • +
+
+
+
+

Salida

+
+

Cabecera

+

En la cabecera del informe se indica qué filtros ha sido configurados y aplicados para la extracción del informe a la que corresponde una cabecera concreta.

+
+
+

Pie de página

+

Include la fecha en la que el reporte se sacó.

+
+
+

Cuerpo

+

El cuerpo del informe contiene los siguientes grupos de información:

+
    +
  • Hay un primer nivel de agregación de información por recurso. Todo el tiempo dedicado por un recurso se muestra junto debajo de la cabecera. Cada recurso se identifica por:

    +
    +
      +
    • Trabajador: Apellidos, Nombre
    • +
    • Máquina: Nombre.
    • +
    +
    +
  • +
+

Se muestra una línea de resumen con el total de las horas trabajadas por un recurso.

+
    +
  • Hay un segundo nivel de agrupamiento consistente en la fecha. Todos los partes de trabajo de un recurso concreto en el mismo día se muestra de forma conjunta.
  • +
+

Hay una línea de resumen con el total de las horas trabajadas por recurso.

+
    +
  • Hay un tercer y último nivel en el cual se listan los partes de trabajo del mismo día de un trabajador. La información que se muestra para cada línea de parte de trabajo de esta agrupación es:

    +
    +
      +
    • Código de tarea al que las horas reportadas imputan tiempo.
    • +
    • Nombre de la tarea al que las horas reportadas imputan.
    • +
    • Hora de inicio. No es obligatorio. Es la hora de inicio a la que el recurso empezó a realizar el trabajo de la tarea.
    • +
    • Hora de fin- Es opcional. Es la hora de fin hasta la cual el recurso trabajó en la tarea en la fecha especificada.
    • +
    • Campos de texto. Es opcional. Si el tipo de parte de trabajo tiene campos de texto rellenados con valores, estos valores se muestrann en esta columna según el formato: <Nombre del campo de texto>:<Valor>
    • +
    • Etiquetas. Contiene valor dependiendo de si el tipo de parte de trabajo contiene al menos un campo de etiquetas en su definición. Si hay varias etiquetas se muestran en la misma columna. El formato es: <Nombre del tipo de etiqueta>.<Valor de la etiqueta asociada>.
    • +
    +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/es/15-2-total-hours-by-resource-month.html b/libreplan-webapp/src/main/webapp/help/es/15-2-total-hours-by-resource-month.html new file mode 100644 index 000000000..6ea9f0c1d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/es/15-2-total-hours-by-resource-month.html @@ -0,0 +1,67 @@ + + + + + + +Informe de horas totales trabajadas por recurso en un mes + + + +
+

Informe de horas totales trabajadas por recurso en un mes

+ + +
+

Propósito

+

Este informe permite obtener el número total de horas trabajadas por los recursos en un mes. Esto puede ser útil para calcular las horas extras hechas o, dependendiendo de la organización, la cantidad de horas que tiene que ser pagadas por recurso en un mes.

+

La aplicación permite registrar partes de trabajo tanto para los trabajadores como para las máquinas. Y, de acuerdo con esto, el informe en el caso de las máquinas indica las horas totales que las máquinas han estado funcionando en un determinado mes.

+
+
+

Parámetros de entrada y filtro

+

En el informe debe ser especificado el año y el mes para obtener el total de horas por recurso que han trabajado.

+
+
+

Salida

+

El formato de salida del informe es el siguiente:

+
+

Cabecera

+

En la cabecera del informe se muestra;

+
+
    +
  • El año al que pertenece el informe que se está extrayendo.
  • +
  • El mes al cual pertene los datos del informe mostrado.
  • +
+
+
+
+

Pie de página

+

En el pie de página se muestra la fecha en la que cúal el informe se sacó.

+
+
+

Cuerpo

+

El área de datos del informe consiste en una única sección en la que se incluye una tabal con dos columnas:

+
+
    +
  • Una columna denominada Nombre para el nombre del recurso.
  • +
  • Una columna llamada Horas con la suma de todas las horas dedicadas por el recurso al que corresponde una fila.
  • +
+
+

Hay una final total agregadora del total de horas devotadas por cualquier de los recursos en el mes, años al que corresponde el informe.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/es/15-3-work-progress-per-project.html b/libreplan-webapp/src/main/webapp/help/es/15-3-work-progress-per-project.html new file mode 100644 index 000000000..9391826e9 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/es/15-3-work-progress-per-project.html @@ -0,0 +1,125 @@ + + + + + + +Informe de trabajo y progres por proyecto + + + +
+

Informe de trabajo y progres por proyecto

+ + +
+

Propósito

+

Este informe permite mostrar cúal es el estado global de los proyectos teniendo en cuenta dos variables: el progreso y el coste.

+

Se analiza el estado actual de progreso de un proyecto comparándolo con lo previsto de acuerdo a la planificación y al trabajo dedicado.

+

También se muestran varios ratios relacionados al coste del proyecto comparándolo el rendimiento actual con el teórico.

+
+
+

Parámetro de entrada y filtros

+

Hay varios parámetros obligatorios. Estos son:

+
+
    +
  • Fecha de referencia. Es la fecha de referencia para hacer la comparación del estado previsto de planificación del proyecto en esa fecha con el rendimiento real del proyecto en esa citada fecha.
  • +
  • Tipo de progreso. Es el tipo de progreso que se quiere usar para medir el progreso global. En la aplicación un proyecto puede ser medido simultáneamente con diferentes tipos de progresos, y el seleccionado por el usuario en el combo de selección es el usado para calcular el informe. El valor por defecto para el tipo de progreso a usar es propagado, que es un tipo especial de progreso consistente en el uso en cada elemento del WBS del valor allí configurado como que propaga.
  • +
+
+

Con respecto a los campos opciones, son los siguientes:

+
+
    +
  • Fecha de inicio. En la fecha de inicio mínima de los proyectos que se quieren incluir en el informe. Es opcional. Si no se especifica fecha de inicio, no existe fecha mínima para los proyectos a incluír.
  • +
  • Fecha de fin. Es la fecha máxima de fin de los proyectos para que estos sean incluidos en el informe. Todos los proyectos que terminan tras la fecha de fin son descartados.
  • +
  • Filtro por proyectos. Este filtro permite seleccionar un conjunto de proyectos a los que limitar los resultados del informe. Si no se añade ningún proyecto al filtro, se muestra el informe para todos los proyectos de la base de datos. Hay un selector autcompletable para encontrar los proyectos requeridos. Se añaden al filtro mediante la pulsación en el botón Añadir.
  • +
+
+
+
+

Salida

+

El formato de salida es la siguiente:

+
+

Cabecera

+

In the report header the following fields are showed:

+
+
    +
  • Fecha de inicio. Es el filtro por fecha de inicio. No se muestra si el informe no es filtrado por este campo.
  • +
  • Fecha de fin. Es el filtro por fecha fin. No se muestra si el usuario no lo rellena.
  • +
  • Tipo de progreso. Es el tipo de progreso usado por este informe.
  • +
  • Proyectos. Es un campo que informa acerca de los proyectos filtrados para los que se obtiene el prooyecto. Consiste en la cadena de texto Todos cuando el informe se obtiene para todos los proyectos que satisfacen el resto de los filtros.
  • +
  • Fecha de referencia. Muestra el campo de entrada obligatorio fecha de referencia utilizado en la extracción del informe.
  • +
+
+
+
+

Pie de página

+

Se muestra la fecha en la que el informe ha sido extraído.

+
+
+

Cuerpo

+

El cuerpo del informe consiste en la lista de proyectos que han sido seleccionados como resultado de los filtros de entrada.

+

Otra cosa importante es que el progreso en el informe es calculado en tantos por uno. Son valores entre el 0 y el 1.

+

Los filtros funcionan añadiendo condiciones que se aplican en cadena a excepción del conjunto formado por los filtros de fecha (fecha de inicio, fecha de fin) y el filtro por proyectos. En este caso, si uno de los filtros de fecha contiene algún valor y también el filtro por proyectos tiene algun proyecto configurado al mismo tiempo, entonces este último filtro es el que manda en la selección. Esto significa que los proyectos que se incluyen en el informe son los proporcionados por el filtro por proyectos independientemente de lo que haya en los filtros de fechas

+
+
Para cada proyecto seleccionado a ser incluido en la salida del informe, se muestra la siguiente información:
+
    +
  • El nombre del proyecto.
  • +
  • +
    Las horas totales. Las horas totales del proyecto se muestran mediante la adición de las horas de cada tarea. Se calculan dos tipos de horas totales:
    +
      +
    • Estimadas (TE). Esta cantidad es la suma de todas las horas del WBS del proyecto. Es el número total de horas en las que un proyecto está estimado para ser completado.
    • +
    • Planificadas (TP). En LibrePlan es posible tener dos cantidades diferentes. Las horsa estimadas de una tarea, que son el número de horas que a priori se piensa que son necesaras para terminar una tarea, y las horas planificadas, que son las horas asignadas en el plan para hacer la tarea. Las horas planificadas pueden ser igual, menos o más que las horas estimadas y se deciden en una fase posterior, en la operación de asignación. Por tanto, las horas totales planificadas de un proyecto es la suma de todas las horas asignadas de sus tareas.
    • +
    +
    +
    +
  • +
  • +
    Progreso. Se muestran tres medidas relacionadas con el tipo de progreso especificado en el filtro de entrada en la fecha de referencia:
    +
      +
    • Medidas (PM). Es el progreso global considerando las medidas de progreso con una fecha menor o igual a la fecha de referencia en los campos de entrada para el informe. Además, se tiene en cuenta a todas last areas y la suma se pondera por el número de horas de cada tarea.
    • +
    • Imputado (PI). Este el el progreso considerando que el trabajo realizado va a la misma velocidad que las horas dedicadas en las tareas. Si se hacen X horas de Y totales de una tarea, se considera que el progreso imputado global es X/Y.
    • +
    +
    +
    +
  • +
  • +
    Horas hasta la fecha. Son dos campos que muestran el número de horas hasta la fecha de referencia desde dos puntos de vista:
    +
      +
    • Planeadas (HP). Este número es la adición de las horas asignadas en cualquier tarea con una fecha inferior a la fecha de referencia.
    • +
    • Reales (HR).. Este número es la adición de las horas imputadas en los partes de trabajo a cualquiera de las tareas de un proyecto con una fecha los partes de trabajo igual o inferior a la fecha de referencia.
    • +
    +
    +
    +
  • +
  • +
    Diferencia. Englobadas en esta sección se encuentras varias maneras de medir el coste:
    +
      +
    • En coste. Es la diferencia en horas entre el número de horas gastadas teniendo en cuenta el progreso medido y las horas dedicadas hasta la fecha de referencia. La fórmula es: PM*TP - HR.
    • +
    • En planificación. Es la diferencia entre las horas gastadas de acuerdo al progreso medido global y el número de horas planificadas hasta la fecha de referencia. Mide el adelanto o el retraso. La fórmula es: PM*TP - HR.
    • +
    • Ratio de coste. Se calcula dividiendo PM/PI. Si es mayor que 1, significa que el proyecto va en beneficios y si es mejor que 1, que se está perdiendo dinero
    • +
    • Ratio en planificación. Se cualcula dividiendo PM/PP. Si es mayor que 1, significa que el proyecto va adelantado y si es menor que 1 que va con retraso.
    • +
    +
    +
    +
  • +
+
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/es/15-informes.html b/libreplan-webapp/src/main/webapp/help/es/15-informes.html new file mode 100644 index 000000000..9c2f63bd6 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/es/15-informes.html @@ -0,0 +1,32 @@ + + + + + + +Informes + + + +
+

Informes

+ +
+

Contents

+ +
+
+

Informes

+

"LibrePlan" está integrado con JasperReports para la gestión de informes lo cual permite implantar diversos informes que analiza datos existentes en la aplicación.

+

Los informes definidos son:

+
    +
  1. Informe sobre las horas trabajadas por recurso
  2. +
  3. Informe sobre el total de horas trabajadas por recurso en un mes
  4. +
  5. Informe sobre el trabajo y progreso por proyecto
  6. +
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/es/16-ldap-authentication.html b/libreplan-webapp/src/main/webapp/help/es/16-ldap-authentication.html new file mode 100644 index 000000000..a77089653 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/es/16-ldap-authentication.html @@ -0,0 +1,255 @@ + + + + + + +Configuración LDAP + + + +
+

Configuración LDAP

+ + +

Esta pantalla permite establecer una conexión LDAP para delegar autenticación +y/o autorización.

+

Está dividida en catro áreas diferentes relacionadas que se explican debajo:

+
+

Activación

+

Esta área se usa para establecer las propiedades que configuran como LibrePlan +usa LDAP.

+

Si el campo Habilita autenticación LDAP está marcado, LibrePlan utiliza el +LDAP para autenticar cada vez que el usuario intenta entrar en la aplicación.

+

El campo Usar LDAP roles marcado significa que el mapping entre el roles LDAP +y roles LibrePlan está establecido, de manera que los permisos en LibrePlan +dependen de los roles que el usuario tiene en el LDAP.

+
+
+

Configuración

+

Esta sección tiene los parámentros para el acceso al LDAP. Los parámetros +Base, UserDN y Contraseña son los parámetros para conectar al LDAP y buscar +a los usuarios. El usuario configurado debe tener permiso en el LDAP. En la +última parte de esta sección hay un botón para comprobar que la conexión con el +LDAP es posible con los parámetros configurados. Es una buena idea probar la +conexión antes de continuar con la configuración.

+
+

Note

+

Si su LDAP está configurado para trabajar con autenticación anónima puede +dejar vacíos los atributos UserDN y Contraseña.

+
+
+

Tip

+

Sobre la configuración de Active Directory (AD), el campo Base debe ser +la localización exacta donde reside el usuario vinculado en el AD.

+

Ejemplo: ou=organizational_unit,dc=example,dc=org

+
+
+
+

Autenticación

+

En esta sección se configuran la propiedad de los nodos de LDAP donde se +encuentra almacenada el login del usuario. La propiedad UserId debe ser +rellenado con el nombre de la propiedad donde el login está almacenado en el +LDAP.

+

El checkbox Almacenar contraseñas en la base de datos cuando se encuentra +marcado, indica que la contraseña se almacena también en la base de datos +LibrePlan. De esta forma, si el LDAP está offline o no existe conectividad, los +usuarios del LDAP pueden autenticarse contra la base de datos de LibrePlan. Si +no está marcado, los usuario de LDAP sólo pueden ser autenticados contro el +LDAP.

+
+
+

Autorización

+

Esta sección permite definir la estrategia para asociar los roles de LDAP con +los roles de LibrePlan.

+
+

Estrategia de grupo

+

Cuando se usa esta estrategia, implica que el LDAP está usando una estrageia de +grupo de rol. Significa que los usuarios en el LDAP son nodos que cuelgan +directamente de una rama que representa el grupo.

+

El siguiente ejemplo representa una estructura de LDAP válida para usar la +estrategia de grupo.

+
    +
  • Estructura del LDAP:

    +
    +dc=example,dc=org
    +|- ou=groups
    +   |- cn=admins
    +   |- cn=itpeople
    +   |- cn=workers
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

En este caso, cada grupo tendrá un atributo, por ejemplo llamado member, +con la lista de usuarios que pertenencen al grupo:

+
    +
  • cn=admins:
      +
    • member: uid=admin1,ou=people,dc=example,dc=org
    • +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=itpeople:
      +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    • member: uid=it2,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=workers:
      +
    • member: uid=worker1,ou=people,dc=example,dc=org
    • +
    • member: uid=worker2,ou=people,dc=example,dc=org
    • +
    • member: uid=worker3,ou=people,dc=example,dc=org
    • +
    +
  • +
+

La configuración para este caso es la siguiente:

+
    +
  • Estrategia para la búsqueda de roles: Estrategia de grupo
  • +
  • Path del grupo: ou=groups
  • +
  • Propiedad del rol: member
  • +
  • Consulta para la búsqueda de roles: uid=[USER_ID],ou=people,dc=example,dc=org
  • +
+

Y por ejemplo si quiere hacer alguna correspondencia de roles:

+
    +
  • Administration: cn=admins;cn=itpeople
  • +
  • Web service reader: cn=itpeople
  • +
  • Web service writer: cn=itpeople
  • +
  • All projects read allowed: cn=admins
  • +
  • All projects edition allowed: cn=admins
  • +
  • Project creation allowed: cn=workers
  • +
+
+
+

Estrategia de propiedad

+

Cuando el administrador decide usar esta estrategia, implica que cada usuario es +un nodo de LDAP y que en el nodo existe una propiedad que representa el grupo o +grupos al que pertenece el usuairo. En este caso, la configuración no necesita +el parámetro Path del grupo:

+

El siguiente ejemplo representa una estructura de LDAP válida para usar la +estrategia de propiedad.

+
    +
  • Estructura del LDAP:

    +
    +dc=example,dc=org
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

Con atributo

+

En este caso, cada usuario tendrá un atributo, por ejemplo llamado group` +con el nombre del grupo al que pertenece:

+
    +
  • uid=admin1:
      +
    • group: admins
    • +
    +
  • +
  • uid=it1:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=it2:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=worker1:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker2:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker3:
      +
    • group: workers
    • +
    +
  • +
+
+

Warning

+

Esta estrategia tienen una restricción, cada usuario puede pertenecer sólo a un +grupo.

+
+

La configuración para este caso es la siguiente:

+
    +
  • Estrategia para la búsqueda de roles: Estrategia de propiedad
  • +
  • Path del grupo:
  • +
  • Propiedad del rol: group
  • +
  • Consulta para la búsqueda de roles: [USER_ID]
  • +
+

Y por ejemplo si quiere hacer alguna correspondencia de roles:

+
    +
  • Administration: admins;itpeople
  • +
  • Web service reader: itpeople
  • +
  • Web service writer: itpeople
  • +
  • All projects read allowed: admins
  • +
  • All projects edition allowed: admins
  • +
  • Project creation allowed: workers
  • +
+

Por identificador de usuario

+

Incluso puede tener una solución para especificar los roles de LibrePlan +directamente a los usuarios, sin tener un atributo en cada usuario de LDAP.

+

En este caso, especificará que usuarios tienen los diferentes roles por uid.

+

La configuración para este caso es la siguiente:

+
    +
  • Estrategia para la búsqueda de roles: Estrategia de propiedad
  • +
  • Path del grupo:
  • +
  • Propiedad del rol: uid
  • +
  • Consulta para la búsqueda de roles: [USER_ID]
  • +
+

Y por ejemplo si quiere hacer alguna correspondencia de roles:

+
    +
  • Administration: admin1;it1
  • +
  • Web service reader: it1;it2
  • +
  • Web service writer: it1;it2
  • +
  • All projects read allowed: admin1
  • +
  • All projects edition allowed: admin1
  • +
  • Project creation allowed: worker1;worker2;worker3
  • +
+
+
+

Correspondencia de roles

+

En el fondo de la pantalla de esta sección hay una tabla con todos los roles de +LibrePlan y un campo de texto anexo a cada uno de ellos. Esta área es para la +asociación de los roles. Por ejemplo, si un usuario administrador de LibrePlan +decide que rol de LibrePlan Administración se corresponde con los roles +admin y administrators del LDAP en el campo de texto hay que configurar: +"admin;administrators". El carácter de separación de roles es ";".

+
+

Note

+

Si quiere especificar que todos los usuarios o todos los roles tengan un +permiso puede usar un asterisco (*) como comodín para referirse a ellos. +Por ejemplo, si quiere que todo el mundo tenga el rol Project creation +allowed configurará la correspondica de roles como sigue:

+
    +
  • Project creation allowed: *
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/es/17-panel-indicadores.html b/libreplan-webapp/src/main/webapp/help/es/17-panel-indicadores.html new file mode 100644 index 000000000..0185c5cfd --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/es/17-panel-indicadores.html @@ -0,0 +1,231 @@ + + + + + + +Panel de indicadores + + + +
+

Panel de indicadores

+ + +

El panel de indicadores es una perspectiva de LibrePlan que contiene un +conjunto de indicadores de rendimiento que ayudan a conocer como está +resultando un proyecto de acuerdo a:

+
+
    +
  • cómo está progresando el trabajo que hay que realizar para llevarlo a cabo.
  • +
  • cuánto está costando.
  • +
  • el estado de los recursos asignados.
  • +
  • las restricciones de tiempo.
  • +
+
+
+

Indicadores de rendimiento de proyecto

+

Se han calculado dos indicadores: el porcentaje de progreso de proyecto y el +estado de las tareas.

+
+

Porcentaje de progreso de proyecto

+

Es una gráfica donde el progreso global de un proyecto se calcula y se contrasta +con el valor esperado de progreso que el proyecto debería tener de acuerdo al +Gantt

+

El progreso se representa a través de dos barras:

+
+
    +
  • Progreso actual. Es el progreso existente en el momento presente de +acuerdo a las mediciones realizadas.
  • +
  • Progreso esperado. Es el progreso que el proyecto debería tener en el +momento actual de acuerdo a la planificación creada.
  • +
+
+

El progreso global de proyecto se estima de varias maneras diferentes, ya que no +existe una manera única correcta de hacerlo:

+
+
    +
  • Progreso propagado. Es el tipo de progreso marcado para propagar a +nivel del proyecto. En este caso, además, no existe manera de calcular un +valor de progreso esperado y, en consecuencia, únicamente se muestra la barra de +progreso actual.
  • +
  • Por horas de todas las tareas. El progreso de todas las tareas del +proyecto es promediado para calcular el valor global. Es una media +ponderada que toma en cuenta el número de horas asignado a cada tarea.
  • +
  • Por horas del camino crítico. El progreso de todas las tareas +pertenecientes a alguno de los caminos críticos del proyecto es promediado +para obtener el valor global. Se hace una media ponderada que toma en +cuenta las horas asignadas totales a cada una de las tareas implicadas.
  • +
  • Por duración del camino crítico. El progreso de las tareas +pertenecientes a alguno de los caminos críticos se promedia a través de una +media ponderada pero, en esta ocasión, teniendo en cuenta la duración de +las tareas implicadas en lugar de las horas asignadas.
  • +
+
+
+
+

Estado de las tareas

+

El estado de las tareas se representa a través de un gráfico de tarta que recoge el porcentaje de las tareas +del proyecto en los diferentes estados posibles. Estos estados posibles son los +siguientes:

+
+
    +
  • Finalizadas. Son las tareas completadas, detectadas por un valor de +progreso del 100% medido.
  • +
  • En curso. Son las tareas que se encuentra empezadas. Tienen un valor de +progreso diferente de 0% y de 100% o, también, algún tiempo dedicado.
  • +
  • Preparadas para comenzar. Tienen un valor de progreso del 0%, no tienen +tiempo trabajado imputado, todas las tareas dependientes FIN_A_INICIO +están finalizadas y todas las tareas dependientes INICIO_A_INICIO están +finalizadas o en curso.
  • +
  • Bloqueadas. Son tareas que tienen un 0% de progreso, sin tiempo +imputado y con las tareas de las que se depende previas en un estado +diferente a en curso y a preparadas para comenzar.
  • +
+
+
+
+
+

Indicadores de coste

+

Hay varios indicadores de Valor Ganado calculados en el panel:

+
+
    +
  • CV (Varianza de coste). Es la diferencia entre la curva de Valor +Ganado y la curva de Coste Real en el momento presente. Valores +positivos indican beneficio, mientras que valores negativos pérdida.

    +
  • +
  • ACWP (Coste real del trabajo realizado). Es el número total de horas +imputadas en el proyecto hasta el momento actual.

    +
  • +
  • CPI (Indice de rendimiento en coste). Es el ratio Valor Ganado/ Coste +real.

    +
    +
      +
    • > 100 es bueno, significa que se está bajo presupuesto.
    • +
    • = 100 es bueno igualmente, significa está con un coste exactamente igual +al plan trazado.
    • +
    • < 100 es malo, significa que el coste de completar el trabajo es más +alto que el planificado.
    • +
    +
    +
  • +
  • ETC (Estimación para compleción). Es el tiempo que está pendiente de +realizar para finalizar el proyecto.

    +
  • +
  • BAC (Presupuesto en compleción). Es el tiempo total asignado en el plan +de proyecto.

    +
  • +
  • VAC (Varianza en compleción). Es la diferencia entre el BAC y el +ETC.

    +
    +
      +
    • < 0 es estar sobre presupuesto.
    • +
    • > 0 es estar bajo presupuesto.
    • +
    +
    +
  • +
+
+
+
+

Recursos

+

Para analizar el proyecto desde el punto de vista de los recursos se +proporcionan 2 ratios y 1 histograma.

+
+

Histograma de desvío estimado en tareas completadas

+

Se calcula el desvío entre el número de horas asignadas a las tareas del +proyecto y el número final de horas dedicadas a las mismas.

+

El desvío se calcula en porcentaje para todas para todas las tareas terminadas y +los desvíos calculados se representan en un histograma. En el eje vertical se +muestran el número de tareas que están en un determinado intervalo de desvío. +Seis intervalos de desvío se calculan dinámicamente.

+
+
+

Ratio de sobrecarga

+

Resume la sobrecarga de los recursos que se asignan en las tareas del proyecto. +Se calcula de acuerdo a la fórmula: ratio de sobrecarga = sobrecarga / (carga + sobrecarga).

+
+
    +
  • = 0 es bueno, significa que los recursos no están sobrecargados.
  • +
  • > 0 es malo, significa que los recursos están sobrecargados.
  • +
+
+
+
+

Ratio de disponibilidad

+

Resume la capacidad que está disponible para asignar en los recursos del +proyecto. Por tanto es una medida de la disponibilidad de los recursos para +recibir más asignaciones sin ser sobrecargados. Se calcula como: ratio de +disponibilidad = (1 - carga/capacidad)*100

+
+
    +
  • Los valores posibles están entre 0% (completamente asignados) y 100% (no +asignados)
  • +
+
+
+
+
+

Tiempo

+

Se incluyen dos gráficas de tiempo: un histograma para la desviación de tiempo +a la finalización de las tareas de los proyectos y un gráfico de +tarta para las violaciones de fecha de entrega.

+
+

Adelanto o retraso en la compleción de las tareas

+

Se calcula la diferencia en días entre la fecha de finalización planificada +para las tareas del proyecto y su tiempo de finalización real. La fecha de +terminación prevista se obtiene del Gantt y la fecha de terminación real se +obtiene a partir de la fecha del trabajo imputado a la tarea más reciente.

+

El retraso o adelanto en la compleción de las tareas se representa a través de +un histograma. En el eje vertical se representan el número de tareas con un +número de días de adelanto o retraso incluidas en el intervalo indicado +en la abcisa. Se calcula seis intervalos de desvío en la compleción de tareas +de forma dinámica.

+
+
    +
  • Valores negativos indican terminación antes de tiempo.
  • +
  • Valores positivos indican terminación con retraso.
  • +
+
+
+
+

Violaciones de fecha de entrega

+

Por un lado se calcula el margen con la fecha de entrega de proyecto, si esta se +configura. Por otro lado se pinta un gráfico de sectores con el porcentaje de +tareas que cumplen la fecha de entrega. Se incluyen tres tipos de valores:

+
+
    +
  • Porcentaje de tareas sin fecha de entrega configurada.
  • +
  • Porcentaje de tares finalizadas con una fecha de terminación real posterior +a la fecha de entrega configurada. La fecha de finalización real se obtiene +el último trabajo registrado en la tarea.
  • +
  • Porcentaje de tareas finalizadas con una fecha de terminación real anterior +a su fecha de entrega.
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/es/20-acerca-de.html b/libreplan-webapp/src/main/webapp/help/es/20-acerca-de.html new file mode 100644 index 000000000..58fd51c83 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/es/20-acerca-de.html @@ -0,0 +1,134 @@ + + + + + + +Acerca de + + + +
+

Acerca de

+ + + +
+

Licencia

+

Este programa es software libre; puede redistribuirlo o modificarlo bajo los +términos de la Licencia Pública Generala Affero GNU tal como se publica por la +Free Software Foundation; ya sea la versión 3 de la Licencia, o (a su elección) +cualquier versión posterior.

+

Este programa se distribuye con la esperanza de que le sea útil, pero SIN +NINGUNA GARANTÍA; sin incluso la garantía implícita de MERCANTILIDAD o IDONEIDAD +PARA UN PROPÓSITO PARTICULAR. Vea la Licencia Pública General Affero GNU para +más detalles.

+

Debería haber recibido una copia de la Licencia Pública General Affero GNU junto +con este programa. Si no es así, visite <http://www.gnu.org/licenses/>.

+
+
+

Escrito por

+
+

Equipo de LibrePlan

+ +
+
+

Anteriores miembros del equipo

+ +
+
+

Traductores

+ +
+
+

Contribuidores

+ +
+
+
+

Financiación pública

+

Dentro del marco global de LibrePlan y la gestión de la planificación, se desarrolló un proyecto que pretende resolver +una serie de problemas comunes de planificación. +Este proyecto fue cofinanciado por la Xunta de Galicia, el Ministerio de Industria, Turismo y Comercio, y la +Unión Europea, Fondo Europeo de Desarrollo Regional.

+
+images/logos.png +
+

El proyecto formo parte del Plan Avanza:

+
+images/avanza.gif +
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/es/images/advance-assignment.png b/libreplan-webapp/src/main/webapp/help/es/images/advance-assignment.png new file mode 100644 index 000000000..aeb55b2b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/advance-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/asignacion-especifica.png b/libreplan-webapp/src/main/webapp/help/es/images/asignacion-especifica.png new file mode 100644 index 000000000..9ee94d9c6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/asignacion-especifica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/asignacion-xenerica.png b/libreplan-webapp/src/main/webapp/help/es/images/asignacion-xenerica.png new file mode 100644 index 000000000..d2a16597f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/asignacion-xenerica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/avance.png b/libreplan-webapp/src/main/webapp/help/es/images/avance.png new file mode 100644 index 000000000..ee289e19c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/avanza.gif b/libreplan-webapp/src/main/webapp/help/es/images/avanza.gif new file mode 100644 index 000000000..cd959cf3a Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/avanza.gif differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/calendar-administration.png b/libreplan-webapp/src/main/webapp/help/es/images/calendar-administration.png new file mode 100644 index 000000000..bb4e17032 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/calendar-administration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/calendar-create-derived.png b/libreplan-webapp/src/main/webapp/help/es/images/calendar-create-derived.png new file mode 100644 index 000000000..9f01f2c33 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/calendar-create-derived.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/calendar-edition.png b/libreplan-webapp/src/main/webapp/help/es/images/calendar-edition.png new file mode 100644 index 000000000..a98cc4454 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/calendar-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/calendar-exceptions.png b/libreplan-webapp/src/main/webapp/help/es/images/calendar-exceptions.png new file mode 100644 index 000000000..c2a53a684 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/calendar-exceptions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/category-cost-edit.png b/libreplan-webapp/src/main/webapp/help/es/images/category-cost-edit.png new file mode 100644 index 000000000..1755ee79e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/category-cost-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/category-cost-list.png b/libreplan-webapp/src/main/webapp/help/es/images/category-cost-list.png new file mode 100644 index 000000000..1d7ff838c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/category-cost-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/company_view.png b/libreplan-webapp/src/main/webapp/help/es/images/company_view.png new file mode 100644 index 000000000..c3a7631e6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/company_view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/contraste-avance.png b/libreplan-webapp/src/main/webapp/help/es/images/contraste-avance.png new file mode 100644 index 000000000..831cceac3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/contraste-avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/default-calendar.png b/libreplan-webapp/src/main/webapp/help/es/images/default-calendar.png new file mode 100644 index 000000000..6fd379d08 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/default-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/edicion-criterio.png b/libreplan-webapp/src/main/webapp/help/es/images/edicion-criterio.png new file mode 100644 index 000000000..2b879ced5 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/edicion-criterio.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/hour-type-edit.png b/libreplan-webapp/src/main/webapp/help/es/images/hour-type-edit.png new file mode 100644 index 000000000..4917b08a8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/hour-type-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/hour-type-list.png b/libreplan-webapp/src/main/webapp/help/es/images/hour-type-list.png new file mode 100644 index 000000000..1872eb4f7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/hour-type-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/lista-criterios.png b/libreplan-webapp/src/main/webapp/help/es/images/lista-criterios.png new file mode 100644 index 000000000..a2e7d03cb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/lista-criterios.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/logo.png b/libreplan-webapp/src/main/webapp/help/es/images/logo.png new file mode 100644 index 000000000..4e7d02651 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/logo.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/logos.png b/libreplan-webapp/src/main/webapp/help/es/images/logos.png new file mode 100644 index 000000000..7314a0759 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/logos.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/machine-calendar.png b/libreplan-webapp/src/main/webapp/help/es/images/machine-calendar.png new file mode 100644 index 000000000..a725f67a2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/machine-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/machine-configuration.png b/libreplan-webapp/src/main/webapp/help/es/images/machine-configuration.png new file mode 100644 index 000000000..0777473fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/machine-configuration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/machine-costcategory.png b/libreplan-webapp/src/main/webapp/help/es/images/machine-costcategory.png new file mode 100644 index 000000000..b8414eac6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/machine-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/machine-criterions.png b/libreplan-webapp/src/main/webapp/help/es/images/machine-criterions.png new file mode 100644 index 000000000..7c270bf35 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/machine-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/machine-data.png b/libreplan-webapp/src/main/webapp/help/es/images/machine-data.png new file mode 100644 index 000000000..5edb47d12 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/machine-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/manage-user-profile.png b/libreplan-webapp/src/main/webapp/help/es/images/manage-user-profile.png new file mode 100644 index 000000000..6a86064e2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/manage-user-profile.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/manage-user.png b/libreplan-webapp/src/main/webapp/help/es/images/manage-user.png new file mode 100644 index 000000000..df59f1b7c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/manage-user.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/material.png b/libreplan-webapp/src/main/webapp/help/es/images/material.png new file mode 100644 index 000000000..a77b5aa41 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/menu.png b/libreplan-webapp/src/main/webapp/help/es/images/menu.png new file mode 100644 index 000000000..f4eec5250 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/menu.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/new-resource-calendar.png b/libreplan-webapp/src/main/webapp/help/es/images/new-resource-calendar.png new file mode 100644 index 000000000..9040e0bc0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/new-resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/order-assigned-hours.png b/libreplan-webapp/src/main/webapp/help/es/images/order-assigned-hours.png new file mode 100644 index 000000000..4fd629386 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/order-assigned-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/order-criterions.png b/libreplan-webapp/src/main/webapp/help/es/images/order-criterions.png new file mode 100644 index 000000000..e59bd833f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/order-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/order-edition.png b/libreplan-webapp/src/main/webapp/help/es/images/order-edition.png new file mode 100644 index 000000000..ff67134db Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/order-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/order-element-criterion.png b/libreplan-webapp/src/main/webapp/help/es/images/order-element-criterion.png new file mode 100644 index 000000000..f167979b0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/order-element-criterion.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/order-element-edition.png b/libreplan-webapp/src/main/webapp/help/es/images/order-element-edition.png new file mode 100644 index 000000000..66e5e8602 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/order-element-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/order-element-hours.png b/libreplan-webapp/src/main/webapp/help/es/images/order-element-hours.png new file mode 100644 index 000000000..06cc1dc37 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/order-element-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/order-element-material-assign.png b/libreplan-webapp/src/main/webapp/help/es/images/order-element-material-assign.png new file mode 100644 index 000000000..90f973766 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/order-element-material-assign.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/order-element-material-search.png b/libreplan-webapp/src/main/webapp/help/es/images/order-element-material-search.png new file mode 100644 index 000000000..550f1d7fa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/order-element-material-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/order-element-quality.png b/libreplan-webapp/src/main/webapp/help/es/images/order-element-quality.png new file mode 100644 index 000000000..3272ce70e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/order-element-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/order-element-tags.png b/libreplan-webapp/src/main/webapp/help/es/images/order-element-tags.png new file mode 100644 index 000000000..e43a7d795 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/order-element-tags.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/order-elements-list.png b/libreplan-webapp/src/main/webapp/help/es/images/order-elements-list.png new file mode 100644 index 000000000..271ac9bf6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/order-elements-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/order-labels.png b/libreplan-webapp/src/main/webapp/help/es/images/order-labels.png new file mode 100644 index 000000000..076e0a745 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/order-labels.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/order-material.png b/libreplan-webapp/src/main/webapp/help/es/images/order-material.png new file mode 100644 index 000000000..9197679e7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/order-material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/order-quality.png b/libreplan-webapp/src/main/webapp/help/es/images/order-quality.png new file mode 100644 index 000000000..ee9e9027e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/order-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/order_list.png b/libreplan-webapp/src/main/webapp/help/es/images/order_list.png new file mode 100644 index 000000000..72e70f3b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/order_list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/planning-view.png b/libreplan-webapp/src/main/webapp/help/es/images/planning-view.png new file mode 100644 index 000000000..de74811eb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/planning-view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/quality.png b/libreplan-webapp/src/main/webapp/help/es/images/quality.png new file mode 100644 index 000000000..1850f51b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/resource-assignment-generic.png b/libreplan-webapp/src/main/webapp/help/es/images/resource-assignment-generic.png new file mode 100644 index 000000000..3519a5087 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/resource-assignment-generic.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/resource-assignment-planning.png b/libreplan-webapp/src/main/webapp/help/es/images/resource-assignment-planning.png new file mode 100644 index 000000000..c4233780d Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/resource-assignment-planning.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/resource-assignment-search.png b/libreplan-webapp/src/main/webapp/help/es/images/resource-assignment-search.png new file mode 100644 index 000000000..cae142d81 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/resource-assignment-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/resource-assignment-specific.png b/libreplan-webapp/src/main/webapp/help/es/images/resource-assignment-specific.png new file mode 100644 index 000000000..8f7b1cba2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/resource-assignment-specific.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/resource-assignment.png b/libreplan-webapp/src/main/webapp/help/es/images/resource-assignment.png new file mode 100644 index 000000000..427d25b79 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/resource-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/resource-calendar.png b/libreplan-webapp/src/main/webapp/help/es/images/resource-calendar.png new file mode 100644 index 000000000..749c7b829 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/resource-load.png b/libreplan-webapp/src/main/webapp/help/es/images/resource-load.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/resource-load.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/resources_global.png b/libreplan-webapp/src/main/webapp/help/es/images/resources_global.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/resources_global.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/stretches.png b/libreplan-webapp/src/main/webapp/help/es/images/stretches.png new file mode 100644 index 000000000..d661a63f6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/stretches.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/tag-types-edition.png b/libreplan-webapp/src/main/webapp/help/es/images/tag-types-edition.png new file mode 100644 index 000000000..d366c09c2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/tag-types-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/tag-types-list.png b/libreplan-webapp/src/main/webapp/help/es/images/tag-types-list.png new file mode 100644 index 000000000..e7de5048c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/tag-types-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/tipos-avances.png b/libreplan-webapp/src/main/webapp/help/es/images/tipos-avances.png new file mode 100644 index 000000000..bb417f52c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/tipos-avances.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/virtual-resources.png b/libreplan-webapp/src/main/webapp/help/es/images/virtual-resources.png new file mode 100644 index 000000000..3a54f95d3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/virtual-resources.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/work-report-hours.png b/libreplan-webapp/src/main/webapp/help/es/images/work-report-hours.png new file mode 100644 index 000000000..568e9fed6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/work-report-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/work-report-type.png b/libreplan-webapp/src/main/webapp/help/es/images/work-report-type.png new file mode 100644 index 000000000..2549d8b5e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/work-report-type.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/work-report-types.png b/libreplan-webapp/src/main/webapp/help/es/images/work-report-types.png new file mode 100644 index 000000000..986f705aa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/work-report-types.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/worker-calendar.png b/libreplan-webapp/src/main/webapp/help/es/images/worker-calendar.png new file mode 100644 index 000000000..1227969b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/worker-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/worker-costcategory.png b/libreplan-webapp/src/main/webapp/help/es/images/worker-costcategory.png new file mode 100644 index 000000000..f330db68c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/worker-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/worker-criterions.png b/libreplan-webapp/src/main/webapp/help/es/images/worker-criterions.png new file mode 100644 index 000000000..a131a29fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/worker-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/images/worker-personal-data.png b/libreplan-webapp/src/main/webapp/help/es/images/worker-personal-data.png new file mode 100644 index 000000000..6a5033ba8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/es/images/worker-personal-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/es/index.html b/libreplan-webapp/src/main/webapp/help/es/index.html new file mode 100644 index 000000000..ace1c5a43 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/es/index.html @@ -0,0 +1,42 @@ + + + + + + +Documentación de usuario da aplicación + + + +
+

Documentación de usuario da aplicación

+ +images/logo.png +

En el siguiente documento se proporciona la documentación de ayuda necesaria para utilizar LibrePlan, la aplicación web de código abierto para la planificación de proyectos.

+

Esta documentación está organizada del siguiente modo:

+

En primer lugar se describen los objetivos principales de la aplicación, comportamiento global y contextualización general del uso y necesidades de la misma.

+

A continuación se introducen las entidades básicas que será necesario conocer para utilizar las funcionalidades de LibrePlan.

+

Finalmente, se detallan los procesos completos de creación de pedidos, proyectos, planificación de proyectos, asignación de recursos, imputación de avances y extracción de resultados.

+
    +
  1. Introducción
  2. +
  3. Criterios
  4. +
  5. Calendarios
  6. +
  7. Avances
  8. +
  9. Gestión de recursos
  10. +
  11. Pedidos y elementos de pedidos
  12. +
  13. Planificación de tareas
  14. +
  15. Asignación de recursos
  16. +
  17. Partes de trabajo
  18. +
  19. Etiquetas
  20. +
  21. Materiales
  22. +
  23. Formularios de calidad
  24. +
  25. Usuarios
  26. +
  27. Gestión de costes
  28. +
  29. Informes
  30. +
  31. Configuración LDAP
  32. +
  33. Panel de indicadores
  34. +
  35. Acerca de
  36. +
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/es/lsr.css b/libreplan-webapp/src/main/webapp/help/es/lsr.css new file mode 100644 index 000000000..81e4c1669 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/es/lsr.css @@ -0,0 +1,251 @@ +/* +Author: Peter Parente +Date: 2008/01/22 +Version: 1.0 +Copyright: This stylesheet has been placed in the public domain - free to edit and use for all uses. +*/ + +body { + font: 0.8em Verdana, Tahoma, sans-serif; + background: #ffffff; + color: black; + margin: 2em; +/* padding: 0em 2em; */ +} + +p.topic-title { + font-weight: bold; +} + +table.docinfo { + text-align: left; + margin: 2em 0em; +} + +a[href] { + color: #436976; + background-color: transparent; +} + +a.toc-backref { + text-decoration: none; +} + +h1 a[href] { + color: #003a6b; + text-decoration: none; + background-color: transparent; +} + +a.strong { + font-weight: bold; +} + +img { + margin: 0; + border: 0; +} + +p { + margin: 0.5em 0 1em 0; + line-height: 1.5em; +} + +p a:visited { + color: purple; + background-color: transparent; +} + +p a:active { + color: red; + background-color: transparent; +} + +a:hover { + text-decoration: none; +} + +p img { + border: 0; + margin: 0; +} + +p.rubric { + font-weight: bold; + font-style: italic; +} + +h1.title { + color: #003a6b; + font-size: 250%; + margin-bottom: 0em; +} + +h2.subtitle { + color: #003a6b; + border-bottom: 0px; +} + +h1, h2, h3, h4, h5, h6 { + color: #555; + background-color: transparent; + margin: 0em; + padding-top: 0.5em; +} + +h1 { + font-size: 160%; + margin-bottom: 0.5em; + border-bottom: 2px solid #aaa; +} + +h2 { + font-size: 140%; + margin-bottom: 0.5em; + border-bottom: 1px solid #aaa; +} + +h3 { + font-size: 130%; + margin-bottom: 0.5em; +} + +h4 { + font-size: 110%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h5 { + font-size: 105%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h6 { + font-size: 100%; + font-weight: bold; + margin-bottom: 0.5em; +} + +dt { + font-style: italic; +} + +dd { + margin-bottom: 1.5em; +} + +div.admonition, div.note, div.tip, div.caution, div.important, div.warning { + margin: 2em 2em; + padding: 0em 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +div.important { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +div.caution { + background: transparent url('../images/caution.png') 10px 2px no-repeat; +} + +div.note { + background: transparent url('../images/note.png') 10px 2px no-repeat; +} + +div.tip { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-example { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-critical-example { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +p.admonition-title { + font-weight: bold; + border-bottom: 1px solid #aaa; + padding-left: 30px; +} + +table.docutils { + text-align: left; + border: 1px solid gray; + border-collapse: collapse; + width: 100%; + margin: 1.5em 0em; +} + +table.docutils caption { + font-style: italic; +} + +table.docutils td, table.docutils th { + padding: 0.25em 0.5em; +} + +table.docutils th { + background-color: #dddddd; +} + +div.sidebar { + width: 33%; + float: right; + margin: 0em 2em; + padding: 0em 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +p.sidebar-title { + margin-bottom: 0em; + color: #003a6b; + border-bottom: 1px solid #aaa; + font-weight: bold; +} + +p.sidebar-subtitle { + margin-top: 0em; + font-style: italic; + color: #003a6b; +} + +div.figure { + text-align: center; +} + +div.figure img { + background: #f8f8f8; + padding: 0.25em; + border: 1px solid #888; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +div.figure img:hover { + background: #e0e0e0; +} + +div.figure p.caption { + text-align: center; + margin-top: 0.1em; + font-style: italic; + color: #444; +} + +pre.literal-block { + padding: 0.15em; + background: #f8f8f8; + border: 1px solid #dfdfdf; + border-left: 0.25em solid #dfdfdf +} diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/01-introducion.html b/libreplan-webapp/src/main/webapp/help/fa_IR/01-introducion.html new file mode 100644 index 000000000..51e520ad7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/01-introducion.html @@ -0,0 +1,132 @@ + + + + + + +Introduction + + + +
+

Introduction

+ + +

This document describes the features of TASKPM and provides user information on how to configure and use the application.

+

TASKPM is an open-source web application for project planning. Its primary goal is to provide a comprehensive solution for company project management. For any specific information you may need about this software, please contact the development team at http://www.libreplan.com/contact/

+
+images/company_view.png +

Company Overview

+
+
+

Company Overview and View Management

+

As shown in the program's main screen (see the previous screenshot) and the company overview, users can view a list of planned projects. This allows them to understand the company's overall status regarding orders and resource utilization. The company overview offers three distinct views:

+
    +
  • Planning View: This view combines two perspectives:

    +
    +
      +
    • Order and Time Tracking: Each project is represented by a Gantt chart, indicating the project's start and end dates. This information is displayed alongside the agreed-upon deadline. A comparison is then made between the percentage of progress achieved and the actual time dedicated to each project. This provides a clear picture of the company's performance at any given time. This view is the program's default landing page.
    • +
    • Company Resource Utilization Graph: This graph displays information on resource allocation across projects, providing a summary of the entire company's resource usage. Green indicates that resource allocation is below 100% of capacity. The black line represents the total available resource capacity. Yellow indicates that resource allocation exceeds 100%. It's possible to have under-allocation overall while simultaneously experiencing over-allocation for specific resources.
    • +
    +
    +
  • +
  • Resource Load View: This screen displays a list of the company's workers and their specific task allocations, or generic allocations based on defined criteria. To access this view, click on Overall load of resources. See the following image for an example.

    +
  • +
  • Orders Administration View: This screen displays a list of company orders, allowing users to perform the following actions: filter, edit, delete, visualize planning, or create a new order. To access this view, click on Order list.

    +
  • +
+
+images/resources_global.png +

Resource Overview

+
+
+images/order_list.png +

Work Breakdown Structure

+
+

The view management described above for the company overview is very similar to the management available for a single project. A project can be accessed in several ways:

+
    +
  • Right-click on the Gantt chart for the order and select Plan.
  • +
  • Access the order list and click on the Gantt diagram icon.
  • +
  • Create a new order and change the current order view.
  • +
+

The program offers the following views for an order:

+
    +
  • Planning View: This view allows users to visualize task planning, dependencies, milestones, and more. See the Planning section for further details.
  • +
  • Resource Load View: This view allows users to check the designated resource load for a project. The color code is consistent with the company overview: green for a load less than 100%, yellow for a load equal to 100%, and red for a load over 100%. The load may originate from a specific task or a set of criteria (generic allocation).
  • +
  • Editing Order View: This view allows users to modify the details of the order. See the Orders section for more information.
  • +
  • Advanced Resource Allocation View: This view allows users to allocate resources with advanced options, such as specifying hours per day or the allocated functions to be performed. See the Resource allocation section for more information.
  • +
+
+
+

What Makes TASKPM Useful?

+

TASKPM is a general-purpose planning tool developed to address challenges in industrial project planning that were not adequately covered by existing tools. The development of TASKPM was also motivated by the desire to provide a free, open-source, and entirely web-based alternative to proprietary planning tools.

+

The core concepts underpinning the program are as follows:

+
    +
  • Company and Multi-Project Overview: TASKPM is specifically designed to provide users with information about multiple projects being carried out within a company. Therefore, it is inherently a multi-project program. The program's focus is not limited to individual projects, although specific views for individual projects are also available.
  • +
  • View Management: The company overview, or multi-project view, is accompanied by various views of the stored information. For example, the company overview allows users to view orders and compare their status, view the company's overall resource load, and manage orders. Users can also access the planning view, resource load view, advanced resource allocation view, and editing order view for individual projects.
  • +
  • Criteria: Criteria are a system entity that enables the classification of both resources (human and machine) and tasks. Resources must meet certain criteria, and tasks require specific criteria to be fulfilled. This is one of the program's most important features, as criteria form the basis of generic allocation and address a significant challenge in the industry: the time-consuming nature of human resource management and the difficulty of long-term company load estimations.
  • +
  • Resources: There are two types of resources: human and machine. Human resources are the company's workers, used for planning, monitoring, and controlling the company's workload. Machine resources, dependent on the people who operate them, function similarly to human resources.
  • +
  • Resource Allocation: A key feature of the program is the ability to designate resources in two ways: specifically and generically. Generic allocation is based on the criteria required to complete a task and must be fulfilled by resources capable of meeting those criteria. To understand generic allocation, consider this example: John Smith is a welder. Typically, John Smith would be specifically assigned to a planned task. However, TASKPM offers the option of selecting any welder within the company, without needing to specify that John Smith is the assigned person.
  • +
  • Company Load Control: The program allows for easy control of the company's resource load. This control extends to both the mid-term and long-term, as current and future projects can be managed within the program. TASKPM provides graphs that visually represent resource utilization.
  • +
  • Labels: Labels are used to categorize project tasks. With these labels, users can group tasks by concept, allowing for later review as a group or after filtering.
  • +
  • Filters: Because the system naturally includes elements that label or characterize tasks and resources, criteria filters or labels can be used. This is very useful for reviewing categorized information or generating specific reports based on criteria or labels.
  • +
  • Calendars: Calendars define the available productive hours for different resources. Users can create general company calendars or define more specific calendars, allowing for the creation of calendars for individual resources and tasks.
  • +
  • Orders and Order Elements: Work requested by clients is treated as an order within the application, structured into order elements. The order and its elements follow a hierarchical structure with x levels. This element tree forms the basis for work planning.
  • +
  • Progress: The program can manage various types of progress. A project's progress can be measured as a percentage, in units, against the agreed budget, and more. The responsibility for determining which type of progress to use for comparison at higher project levels lies with the planning manager.
  • +
  • Tasks: Tasks are the fundamental planning elements within the program. They are used to schedule work to be carried out. Key characteristics of tasks include: dependencies between tasks, and the potential requirement for specific criteria to be met before resources can be allocated.
  • +
  • Work Reports: These reports, submitted by the company's workers, detail the hours worked and the tasks associated with those hours. This information allows the system to calculate the actual time taken to complete a task compared to the budgeted time. Progress can then be compared against the actual hours used.
  • +
+

In addition to the core functions, TASKPM offers other features that distinguish it from similar programs:

+
    +
  • Integration with ERP: The program can directly import information from company ERP systems, including orders, human resources, work reports, and specific criteria.
  • +
  • Version Management: The program can manage multiple planning versions, while still allowing users to review the information from each version.
  • +
  • History Management: The program does not delete information; it only marks it as invalid. This allows users to review historical information using date filters.
  • +
+
+
+

Usability Conventions

+
+

Information About Forms

+

Before describing the various functions associated with the most important modules, we need to explain the general navigation and form behavior.

+

There are essentially three types of editing forms:

+
    +
  • Forms with a *Return* button: These forms are part of a larger context, and the changes made are stored in memory. The changes are only applied when the user explicitly saves all the details on the screen from which the form originated.
  • +
  • Forms with *Save* and *Close* buttons: These forms allow for two actions. The first saves the changes and closes the current window. The second closes the window without saving any changes.
  • +
  • Forms with *Save and continue*, *Save*, and *Close* buttons: These forms allow for three actions. The first saves the changes and keeps the current form open. The second saves the changes and closes the form. The third closes the window without saving any changes.
  • +
+
+
+

Standard Icons and Buttons

+
    +
  • Editing: In general, records in the program can be edited by clicking on an icon that looks like a pencil on a white notebook.
  • +
  • Left Indent: These operations are generally used for elements within a tree structure that need to be moved to a deeper level. This is done by clicking on the icon that looks like a green arrow pointing to the right.
  • +
  • Right Indent: These operations are generally used for elements within a tree structure that need to be moved to a higher level. This is done by clicking on the icon that looks like a green arrow pointing to the left.
  • +
  • Deleting: Users can delete information by clicking on the trash can icon.
  • +
  • Search: The magnifying glass icon indicates that the text field to its left is used for searching for elements.
  • +
+
+
+

Tabs

+

The program uses tabs to organize content editing and administration forms. This method is used to divide a comprehensive form into different sections, accessible by clicking on the tab names. The other tabs retain their current status. In all cases, the save and cancel options apply to all sub-forms within the different tabs.

+
+
+

Explicit Actions and Context Help

+

The program includes components that provide additional descriptions of elements when the mouse hovers over them for one second. The actions that the user can perform are indicated on the button labels, in the help texts associated with them, in the browsing menu options, and in the context menus that appear when right-clicking in the planner area. Furthermore, shortcuts are provided for the main operations, such as double-clicking on listed elements or using key events with the cursor and the Enter key to add elements when navigating through forms.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/02-criterios.html b/libreplan-webapp/src/main/webapp/help/fa_IR/02-criterios.html new file mode 100644 index 000000000..42fad10d3 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/02-criterios.html @@ -0,0 +1,69 @@ + + + + + + +Criteria + + + +
+

Criteria

+ +
+

Contents

+ +
+

Criteria are elements used within the program to categorize both resources and tasks. Tasks require specific criteria, and resources must meet those criteria.

+

Here's an example of how criteria are used: A resource is assigned the criterion "welder" (meaning the resource fulfills the "welder" category), and a task requires the "welder" criterion to be completed. Consequently, when resources are allocated to tasks using generic allocation (as opposed to specific allocation), workers with the "welder" criterion will be considered. For more information on the different types of allocation, refer to the chapter on resource allocation.

+

The program allows for several operations involving criteria:

+
    +
  • Criteria administration
  • +
  • Assigning criteria to resources
  • +
  • Assigning criteria to tasks
  • +
  • Filtering entities based on criteria. Tasks and order items can be filtered by criteria to perform various operations within the program.
  • +
+

This section will only explain the first function, criteria administration. The two types of allocation will be covered later: resource allocation in the "Resource Management" chapter, and filtering in the "Task Planning" chapter.

+
+

Criteria Administration

+

Criteria administration can be accessed through the administration menu:

+
+images/menu.png +

First-Level Menu Tabs

+
+

The specific operation for managing criteria is Manage criteria. This operation allows you to list the criteria available in the system.

+
+images/lista-criterios.png +

List of Criteria

+
+

You can access the create/edit criterion form by clicking the Create button. To edit an existing criterion, click the edit icon.

+
+images/edicion-criterio.png +

Editing Criteria

+
+

The criteria editing form, as shown in the previous image, allows you to perform the following operations:

+
    +
  • Edit the criterion's name.
  • +
  • Specify whether multiple values can be assigned simultaneously or only one value for the selected criterion type. For example, a resource could fulfill two criteria, "welder" and "lathe operator."
  • +
  • Specify the criterion type:
      +
    • Generic: A criterion that can be used for both machines and workers.
    • +
    • Worker: A criterion that can only be used for workers.
    • +
    • Machine: A criterion that can only be used for machines.
    • +
    +
  • +
  • Indicate whether the criterion is hierarchical. Sometimes, criteria need to be treated hierarchically. For example, assigning a criterion to an element does not automatically assign it to elements derived from it. A clear example of a hierarchical criterion is "location." For instance, a person designated with the location "Galicia" will also belong to "Spain."
  • +
  • Indicate whether the criterion is authorized. This is how users deactivate criteria. Once a criterion has been created and used in historical data, it cannot be changed. Instead, it can be deactivated to prevent it from appearing in selection lists.
  • +
  • Describe the criterion.
  • +
  • Add new values. A text entry field with the New criterion button is located in the second part of the form.
  • +
  • Edit the names of existing criteria values.
  • +
  • Move criteria values up or down in the list of current criteria values.
  • +
  • Remove a criterion value from the list.
  • +
+

The criteria administration form follows the form behavior described in the introduction, offering three actions: Save, Save and Close, and Close.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/03-calendarios.html b/libreplan-webapp/src/main/webapp/help/fa_IR/03-calendarios.html new file mode 100644 index 000000000..0d0bbf0d5 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/03-calendarios.html @@ -0,0 +1,187 @@ + + + + + + +Calendars + + + +
+

Calendars

+ + +

Calendars are entities within the program that define the working capacity of resources. A calendar consists of a series of days throughout the year, with each day divided into available working hours.

+

For example, a public holiday might have 0 available working hours. Conversely, a typical workday might have 8 hours designated as available working time.

+

There are two primary ways to define the number of working hours in a day:

+
    +
  • By Weekday: This method sets a standard number of working hours for each day of the week. For example, Mondays might typically have 8 working hours.
  • +
  • By Exception: This method allows for specific deviations from the standard weekday schedule. For example, Monday, January 30th, might have 10 working hours, overriding the standard Monday schedule.
  • +
+
+

Calendar Administration

+

The calendar system is hierarchical, allowing you to create base calendars and then derive new calendars from them, forming a tree structure. A calendar derived from a higher-level calendar will inherit its daily schedules and exceptions unless explicitly modified. To effectively manage calendars, it's important to understand the following concepts:

+
    +
  • Day Independence: Each day is treated independently, and each year has its own set of days. For example, if December 8th, 2009, is a public holiday, this does not automatically mean that December 8th, 2010, is also a public holiday.
  • +
  • Weekday-Based Working Days: Standard working days are based on weekdays. For example, if Mondays typically have 8 working hours, then all Mondays in all weeks of all years will have 8 available hours unless an exception is defined.
  • +
  • Exceptions and Exception Periods: You can define exceptions or exception periods to deviate from the standard weekday schedule. For example, you can specify a single day or a range of days with a different number of available working hours than the general rule for those weekdays.
  • +
+
+images/calendar-administration.png +

Calendar Administration

+
+

Calendar administration is accessible through the "Administration" menu. From there, users can perform the following actions:

+
    +
  1. Create a new calendar from scratch.
  2. +
  3. Create a calendar derived from an existing one.
  4. +
  5. Create a calendar as a copy of an existing one.
  6. +
  7. Edit an existing calendar.
  8. +
+
+

Creating a New Calendar

+

To create a new calendar, click the "Create" button. The system will display a form where you can configure the following:

+
    +
  • Select the Tab: Choose the tab you want to work on:
      +
    • Marking Exceptions: Define exceptions to the standard schedule.
    • +
    • Working Hours per Day: Define the standard working hours for each weekday.
    • +
    +
  • +
  • Marking Exceptions: If you select the "Marking Exceptions" option, you can:
      +
    • Select a specific day on the calendar.
    • +
    • Select the type of exception. The available types are: holiday, illness, strike, public holiday, and working holiday.
    • +
    • Select the end date of the exception period. (This field does not need to be changed for single-day exceptions.)
    • +
    • Define the number of working hours during the days of the exception period.
    • +
    • Delete previously defined exceptions.
    • +
    +
  • +
  • Working Hours per Day: If you select the "Working Hours per Day" option, you can:
      +
    • Define the available working hours for each weekday (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, and Sunday).
    • +
    • Define different weekly hour distributions for future periods.
    • +
    • Delete previously defined hour distributions.
    • +
    +
  • +
+

These options allow users to fully customize calendars according to their specific needs. Click the "Save" button to store any changes made to the form.

+
+images/calendar-edition.png +

Editing Calendars

+
+
+images/calendar-exceptions.png +

Adding an Exception to a Calendar

+
+
+
+

Creating Derived Calendars

+

A derived calendar is created based on an existing calendar. It inherits all the features of the original calendar, but you can modify it to include different options.

+

A common use case for derived calendars is when you have a general calendar for a country, such as Spain, and you need to create a derived calendar to include additional public holidays specific to a region, such as Galicia.

+

It's important to note that any changes made to the original calendar will automatically propagate to the derived calendar, unless a specific exception has been defined in the derived calendar. For example, the calendar for Spain might have an 8-hour working day on May 17th. However, the calendar for Galicia (a derived calendar) might have no working hours on that same day because it's a regional public holiday. If the Spanish calendar is later changed to have 4 available working hours per day for the week of May 17th, the Galician calendar will also change to have 4 available working hours for every day in that week, except for May 17th, which will remain a non-working day due to the defined exception.

+
+images/calendar-create-derived.png +

Creating a Derived Calendar

+
+

To create a derived calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Calendar administration option.
  • +
  • Select the calendar you want to use as the basis for the derived calendar and click the "Create" button.
  • +
  • The system will display an editing form with the same characteristics as the form used to create a calendar from scratch, except that the proposed exceptions and the working hours per weekday will be based on the original calendar.
  • +
+
+
+

Creating a Calendar by Copying

+

A copied calendar is an exact duplicate of an existing calendar. It inherits all the features of the original calendar, but you can modify it independently.

+

The key difference between a copied calendar and a derived calendar is how they are affected by changes to the original. If the original calendar is modified, the copied calendar remains unchanged. However, derived calendars are affected by changes made to the original, unless an exception is defined.

+

A common use case for copied calendars is when you have a calendar for one location, such as "Pontevedra," and you need a similar calendar for another location, such as "A Coruña," where most of the features are the same. However, changes to one calendar should not affect the other.

+

To create a copied calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Calendar administration option.
  • +
  • Select the calendar you want to copy and click the "Create" button.
  • +
  • The system will display an editing form with the same characteristics as the form used to create a calendar from scratch, except that the proposed exceptions and the working hours per weekday will be based on the original calendar.
  • +
+
+
+

Default Calendar

+

One of the existing calendars can be designated as the default calendar. This calendar will be automatically assigned to any entity in the system that is managed with calendars unless a different calendar is specified.

+

To set up a default calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Configuration option.
  • +
  • In the Default calendar field, select the calendar you want to use as the program's default calendar.
  • +
  • Click Save.
  • +
+
+images/default-calendar.png +

Setting a Default Calendar

+
+
+
+

Assigning a Calendar to Resources

+

Resources can only be activated (i.e., have available working hours) if they have an assigned calendar with a valid activation period. If no calendar is assigned to a resource, the default calendar is assigned automatically, with an activation period that begins on the start date and has no expiry date.

+
+images/resource-calendar.png +

Resource Calendar

+
+

However, you can delete the calendar that has been previously assigned to a resource and create a new calendar based on an existing one. This allows for complete customization of calendars for individual resources.

+

To assign a calendar to a resource:

+
    +
  • Go to the Edit resources option.
  • +
  • Select a resource and click Edit.
  • +
  • Select the "Calendar" tab.
  • +
  • The calendar, along with its exceptions, working hours per day, and activation periods, will be displayed.
  • +
  • Each tab will have the following options:
      +
    • Exceptions: Define exceptions and the period to which they apply, such as holidays, public holidays, or different workdays.
    • +
    • Working Week: Modify the working hours for each weekday (Monday, Tuesday, etc.).
    • +
    • Activation Periods: Create new activation periods to reflect the start and end dates of contracts associated with the resource. See the following image.
    • +
    +
  • +
  • Click Save to store the information.
  • +
  • Click Delete if you want to change the calendar assigned to a resource.
  • +
+
+images/new-resource-calendar.png +

Assigning a New Calendar to a Resource

+
+
+
+

Assigning Calendars to Orders

+

Projects can have a different calendar than the default calendar. To change the calendar for an order:

+
    +
  • Access the order list in the company overview.
  • +
  • Edit the order in question.
  • +
  • Access the "General information" tab.
  • +
  • Select the calendar to be assigned from the drop-down menu.
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+

Assigning Calendars to Tasks

+

Similar to resources and orders, you can assign specific calendars to individual tasks. This allows you to define different calendars for specific stages of a project. To assign a calendar to a task:

+
    +
  • Access the planning view of a project.
  • +
  • Right-click the task to which you want to assign a calendar.
  • +
  • Select the "Assign calendar" option.
  • +
  • Select the calendar to be assigned to the task.
  • +
  • Click Accept.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/04-avances.html b/libreplan-webapp/src/main/webapp/help/fa_IR/04-avances.html new file mode 100644 index 000000000..615d6109f --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/04-avances.html @@ -0,0 +1,97 @@ + + + + + + +Progress + + + +
+

Progress

+ + +

Project progress indicates the degree to which the estimated completion time of the project is being met. Task progress indicates the degree to which the task is being completed according to its estimated completion.

+

Generally, progress cannot be measured automatically. A staff member with experience or a checklist must determine the degree of completion for a task or project.

+

It's important to note the distinction between the hours assigned to a task or project and the progress of that task or project. While the number of hours used may be more or less than expected, the project may be ahead of or behind its estimated completion on the monitored day. Several situations can arise from these two measurements:

+
    +
  • Fewer hours consumed than expected, but the project is behind schedule: Progress is lower than estimated for the monitored day.
  • +
  • Fewer hours consumed than expected, and the project is ahead of schedule: Progress is higher than estimated for the monitored day.
  • +
  • More hours consumed than expected, and the project is behind schedule: Progress is lower than estimated for the monitored day.
  • +
  • More hours consumed than expected, but the project is ahead of schedule: Progress is higher than estimated for the monitored day.
  • +
+

The planning view allows you to compare these situations by using information about the progress made and the hours used. This chapter will explain how to enter information to monitor progress.

+

The philosophy behind progress monitoring is based on users defining the level at which they want to monitor their projects. For example, if users want to monitor orders, they only need to enter information for level-1 elements. If they want more precise monitoring at the task level, they must enter progress information at lower levels. The system will then aggregate the data upward through the hierarchy.

+
+

Managing Progress Types

+

Companies have varying needs when monitoring project progress, particularly the tasks involved. Therefore, the system includes "progress types." Users can define different progress types to measure a task's progress. For example, a task can be measured as a percentage, but this percentage can also be translated into progress in Tonnes based on the agreement with the client.

+

A progress type has a name, a maximum value, and a precision value:

+
    +
  • Name: A descriptive name that users will recognize when selecting the progress type. This name should clearly indicate what kind of progress is being measured.
  • +
  • Maximum Value: The maximum value that can be established for a task or project as the total progress measurement. For example, if you're working with Tonnes and the normal maximum is 4000 tonnes, and no task will ever require more than 4000 tonnes of any material, then 4000 would be the maximum value.
  • +
  • Precision Value: The increment value allowed for the progress type. For example, if progress in Tonnes is to be measured in whole numbers, the precision value would be 1. From that point on, only whole numbers can be entered as progress measurements (e.g., 1, 2, 300).
  • +
+

The system has two default progress types:

+
    +
  • Percentage: A general progress type that measures the progress of a project or task based on an estimated completion percentage. For example, a task is 30% complete out of the 100% estimated for a specific day.
  • +
  • Units: A general progress type that measures progress in units without specifying the type of unit. For example, a task involves creating 3000 units, and the progress is 500 units out of the total of 3000.
  • +
+
+images/tipos-avances.png +

Administration of Progress Types

+
+

Users can create new progress types as follows:

+
    +
  • Go to the "Administration" section.
  • +
  • Click the "Manage types of progress" option in the second-level menu.
  • +
  • The system will display a list of existing progress types.
  • +
  • For each progress type, users can:
      +
    • Edit
    • +
    • Delete
    • +
    +
  • +
  • Users can then create a new progress type.
  • +
  • When editing or creating a progress type, the system displays a form with the following information:
      +
    • Name of the progress type.
    • +
    • Maximum value allowed for the progress type.
    • +
    • Precision value for the progress type.
    • +
    +
  • +
+
+
+

Entering Progress Based on Type

+

Progress is entered for order elements, but it can also be entered using a shortcut from the planning tasks. Users are responsible for deciding which progress type to associate with each order element.

+

Users can enter a single, default progress type for the entire order.

+

Before measuring progress, users must associate the chosen progress type with the order. For example, they might choose percentage progress to measure progress on the entire task or an agreed progress rate if progress measurements agreed upon with the client will be entered in the future.

+
+images/avance.png +

Progress Entry Screen with Graphic Visualization

+
+

To enter progress measurements:

+
    +
  • Select the progress type to which the progress will be added. +* If no progress type exists, a new one must be created.
  • +
  • In the form that appears under the "Value" and "Date" fields, enter the absolute value of the measurement and the date of the measurement.
  • +
  • The system automatically stores the entered data.
  • +
+
+
+

Comparing Progress for an Order Element

+

Users can graphically compare the progress made on orders with the measurements taken. All progress types have a column with a check button ("Show"). When this button is selected, the progress chart of measurements taken is displayed for the order element.

+
+images/contraste-avance.png +

Comparison of Several Progress Types

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/05-recursos.html b/libreplan-webapp/src/main/webapp/help/fa_IR/05-recursos.html new file mode 100644 index 000000000..07190538a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/05-recursos.html @@ -0,0 +1,186 @@ + + + + + + +Resource Management + + + +
+

Resource Management

+ + +

The program manages two distinct types of resources: staff and machines.

+
+

Staff Resources

+

Staff resources represent the company's workers. Their key characteristics are:

+
    +
  • They fulfill one or more generic or worker-specific criteria.
  • +
  • They can be specifically assigned to a task.
  • +
  • They can be assigned generically to a task that requires a resource criterion.
  • +
  • They can have a default or a specific calendar, as needed.
  • +
+
+
+

Machine Resources

+

Machine resources represent the company's machinery. Their key characteristics are:

+
    +
  • They fulfill one or more generic or machine-specific criteria.
  • +
  • They can be specifically assigned to a task.
  • +
  • They can be assigned generically to a task that requires a machine criterion.
  • +
  • They can have a default or a specific calendar, as needed.
  • +
  • The program includes a configuration screen where an alpha value can be defined to represent the machine/worker ratio.
      +
    • The alpha value indicates the amount of worker time required to operate the machine. For example, an alpha value of 0.5 means that every 8 hours of machine operation requires 4 hours of a worker's time.
    • +
    • Users can assign an alpha value specifically to a worker, designating that worker to operate the machine for that percentage of time.
    • +
    • Users can also make a generic assignment based on a criterion, so that a percentage of use is assigned to all resources that meet that criterion and have available time. Generic assignment works similarly to generic assignment for tasks, as described previously.
    • +
    +
  • +
+
+
+

Managing Resources

+

Users can create, edit, and deactivate (but not permanently delete) workers and machines within the company by navigating to the "Resources" section. This section provides the following features:

+
    +
  • List of Workers: Displays a numbered list of workers, allowing users to manage their details.
  • +
  • List of Machines: Displays a numbered list of machines, allowing users to manage their details.
  • +
+
+

Managing Workers

+

Worker management is accessed by going to the "Resources" section and then selecting "List of workers." Users can edit any worker in the list by clicking the standard edit icon.

+

When editing a worker, users can access the following tabs:

+
    +
  1. Worker Details: This tab allows users to edit the worker's basic identification details:

    +
      +
    • Name
    • +
    • Surname(s)
    • +
    • National ID document (DNI)
    • +
    • Queue-based resource (see section on Queue-based Resources)
    • +
    +
    +images/worker-personal-data.png +

    Editing Workers' Personal Details

    +
    +
  2. +
  3. Criteria: This tab is used to configure the criteria that a worker fulfills. Users can assign any worker or generic criteria they deem appropriate. It's crucial for workers to fulfill criteria to maximize the program's functionality. To assign criteria:

    +
      +
    1. Click the "Add criteria" button.
    2. +
    3. Search for the criterion to be added and select the most appropriate one.
    4. +
    5. Click the "Add" button.
    6. +
    7. Select the start date when the criterion becomes applicable.
    8. +
    9. Select the end date for applying the criterion to the resource. This date is optional if the criterion is considered indefinite.
    10. +
    +
    +images/worker-criterions.png +

    Associating Criteria with Workers

    +
    +
  4. +
  5. Calendar: This tab allows users to configure a specific calendar for the worker. All workers have a default calendar assigned; however, it's possible to assign a specific calendar to each worker based on an existing calendar.

    +
    +images/worker-calendar.png +

    Calendar Tab for a Resource

    +
    +
  6. +
  7. Cost Category: This tab allows users to configure the cost category that a worker fulfills during a given period. This information is used to calculate the costs associated with a worker on a project.

    +
    +images/worker-costcategory.png +

    Cost Category Tab for a Resource

    +
    +
  8. +
+

Resource assignment is explained in the "Resource Assignment" section.

+
+
+

Managing Machines

+

Machines are treated as resources for all purposes. Therefore, similar to workers, machines can be managed and assigned to tasks. Resource assignment is covered in the "Resource Assignment" section, which will explain the specific features of machines.

+

Machines are managed from the "Resources" menu entry. This section has an operation called "Machine list," which displays the company's machines. Users can edit or delete a machine from this list.

+

When editing machines, the system displays a series of tabs for managing different details:

+
    +
  1. Machine Details: This tab allows users to edit the machine's identification details:

    +
      +
    1. Name
    2. +
    3. Machine code
    4. +
    5. Description of the machine
    6. +
    +
    +images/machine-data.png +

    Editing Machine Details

    +
    +
  2. +
  3. Criteria: As with worker resources, this tab is used to add criteria that the machine fulfills. Two types of criteria can be assigned to machines: machine-specific or generic. Worker criteria cannot be assigned to machines. To assign criteria:

    +
      +
    1. Click the "Add criteria" button.
    2. +
    3. Search for the criterion to be added and select the most appropriate one.
    4. +
    5. Select the start date when the criterion becomes applicable.
    6. +
    7. Select the end date for applying the criterion to the resource. This date is optional if the criterion is considered indefinite.
    8. +
    9. Click the "Save and continue" button.
    10. +
    +
    +images/machine-criterions.png +

    Assigning Criteria to Machines

    +
    +
  4. +
  5. Calendar: This tab allows users to configure a specific calendar for the machine. All machines have a default calendar assigned; however, it's possible to assign a specific calendar to each machine based on an existing calendar.

    +
    +images/machine-calendar.png +

    Assigning Calendars to Machines

    +
    +
  6. +
  7. Machine Configuration: This tab allows users to configure the ratio of machines to worker resources. A machine has an alpha value that indicates the machine/worker ratio. As mentioned previously, an alpha value of 0.5 indicates that 0.5 people are required for each full day of machine operation. Based on the alpha value, the system automatically assigns workers who are associated with the machine once the machine is assigned to a task. Associating a worker with a machine can be done in two ways:

    +
      +
    1. Specific Assignment: Assign a range of dates during which the worker is assigned to the machine. This is a specific assignment, as the system automatically assigns hours to the worker when the machine is scheduled.
    2. +
    3. Generic Assignment: Assign criteria that must be fulfilled by workers assigned to the machine. This creates a generic assignment of workers who meet the criteria.
    4. +
    +
    +images/machine-configuration.png +

    Configuration of Machines

    +
    +
  8. +
  9. Cost Category: This tab allows users to configure the cost category that a machine fulfills during a given period. This information is used to calculate the costs associated with a machine on a project.

    +
    +images/machine-costcategory.png +

    Assigning Cost Categories to Machines

    +
    +
  10. +
+
+
+

Virtual Worker Groups

+

The program allows users to create virtual worker groups, which are not real workers but simulated staff. These groups enable users to model increased production capacity at specific times, based on the calendar settings.

+

Virtual worker groups allow users to assess how project planning would be affected by hiring and assigning staff who meet specific criteria, thus aiding in the decision-making process.

+

The tabs for creating virtual worker groups are the same as those for configuring workers:

+
    +
  • General Details
  • +
  • Assigned Criteria
  • +
  • Calendars
  • +
  • Associated Hours
  • +
+

The difference between virtual worker groups and actual workers is that virtual worker groups have a name for the group and a quantity, which represents the number of real people in the group. There is also a field for comments, where additional information can be provided, such as which project would require hiring equivalent to the virtual worker group.

+
+images/virtual-resources.png +

Virtual Resources

+
+
+
+

Queue-based Resources

+

Queue-based resources are a specific type of productive element that can either be unassigned or have 100% dedication. In other words, they cannot have more than one task scheduled at the same time, nor can they be over-allocated.

+

For each queue-based resource, a queue is automatically created. The tasks scheduled for these resources can be managed specifically using the provided assignment methods, creating automatic assignments between tasks and queues that match the required criteria, or by moving tasks between queues.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/06-pedidos.html b/libreplan-webapp/src/main/webapp/help/fa_IR/06-pedidos.html new file mode 100644 index 000000000..87fd79071 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/06-pedidos.html @@ -0,0 +1,315 @@ + + + + + + +Orders and Order Elements + + + +
+

Orders and Order Elements

+ + +

Orders represent the work to be performed by users of the program. Each order corresponds to a project that the company will offer to its clients.

+

An order consists of one or more order elements. Each order element represents a specific part of the work to be done and defines how the work on the order should be planned and executed. Order elements are organized hierarchically, with no limitations on the depth of the hierarchy. This hierarchical structure allows for the inheritance of certain features, such as labels.

+

The following sections describe the operations that users can perform with orders and order elements.

+
+

Orders

+

An order represents a project or work requested by a client from the company. The order identifies the project within the company's planning. Unlike comprehensive management programs, TASKPM only requires certain key details for an order. These details are:

+
    +
  • Order Name: The name of the order.
  • +
  • Order Code: A unique code for the order.
  • +
  • Total Order Amount: The total financial value of the order.
  • +
  • Estimated Start Date: The planned start date for the order.
  • +
  • End Date: The planned completion date for the order.
  • +
  • Person in Charge: The individual responsible for the order.
  • +
  • Description: A description of the order.
  • +
  • Assigned Calendar: The calendar associated with the order.
  • +
  • Automatic Generation of Codes: A setting to instruct the system to automatically generate codes for order elements and hour groups.
  • +
  • Preference between Dependencies and Restrictions: Users can choose whether dependencies or restrictions take priority in case of conflicts.
  • +
+

However, a complete order also includes other associated entities:

+
    +
  • Hours Assigned to the Order: The total hours allocated to the order.
  • +
  • Progress Attributed to the Order: The progress made on the order.
  • +
  • Labels: Labels assigned to the order.
  • +
  • Criteria Assigned to the Order: Criteria associated with the order.
  • +
  • Materials: Materials required for the order.
  • +
  • Quality Forms: Quality forms associated with the order.
  • +
+

Creating or editing an order can be done from several locations within the program:

+
    +
  • From the "Order List" in the Company Overview:
      +
    • Editing: Click the edit button on the desired order.
    • +
    • Creating: Click "New order."
    • +
    +
  • +
  • From an Order in the Gantt Chart: Change to the order details view.
  • +
+

Users can access the following tabs when editing an order:

+
    +
  • Editing Order Details: This screen allows users to edit basic order details:

    +
      +
    • Name
    • +
    • Code
    • +
    • Estimated Start Date
    • +
    • End Date
    • +
    • Person in Charge
    • +
    • Client
    • +
    • Description
    • +
    +
    +images/order-edition.png +

    Editing Orders

    +
    +
  • +
  • Order Element List: This screen allows users to perform several operations on order elements:

    +
      +
    • Creating new order elements.
    • +
    • Promoting an order element one level up in the hierarchy.
    • +
    • Demoting an order element one level down in the hierarchy.
    • +
    • Indenting an order element (moving it down the hierarchy).
    • +
    • Unindenting an order element (moving it up the hierarchy).
    • +
    • Filtering order elements.
    • +
    • Deleting order elements.
    • +
    • Moving an element within the hierarchy by dragging and dropping.
    • +
    +
    +images/order-elements-list.png +

    Order Element List

    +
    +
  • +
  • Assigned Hours: This screen displays the total hours attributed to the project, grouping the hours entered in the order elements.

    +
    +images/order-assigned-hours.png +

    Assigning Hours Attributed to the Order by Workers

    +
    +
  • +
  • Progress: This screen allows users to assign progress types and enter progress measurements for the order. See the "Progress" section for more details.

    +
  • +
  • Labels: This screen allows users to assign labels to an order and view previously assigned direct and indirect labels. See the following section on editing order elements for a detailed description of label management.

    +
    +images/order-labels.png +

    Order Labels

    +
    +
  • +
  • Criteria: This screen allows users to assign criteria that will apply to all tasks within the order. These criteria will be automatically applied to all order elements, except those that have been explicitly invalidated. The hour groups of order elements, which are grouped by criteria, can also be viewed, allowing users to identify the criteria required for an order.

    +
    +images/order-criterions.png +

    Order Criteria

    +
    +
  • +
  • Materials: This screen allows users to assign materials to orders. Materials can be selected from the available material categories in the program. Materials are managed as follows:

    +
      +
    • Select the "Search materials" tab at the bottom of the screen.
    • +
    • Enter text to search for materials or select the categories for which you want to find materials.
    • +
    • The system filters the results.
    • +
    • Select the desired materials (multiple materials can be selected by pressing the "Ctrl" key).
    • +
    • Click "Assign."
    • +
    • The system displays the list of materials already assigned to the order.
    • +
    • Select the units and the status to assign to the order.
    • +
    • Click "Save" or "Save and continue."
    • +
    • To manage the receipt of materials, click "Divide" to change the status of a partial quantity of material.
    • +
    +
    +images/order-material.png +

    Materials Associated with an Order

    +
    +
  • +
  • Quality: Users can assign a quality form to the order. This form is then completed to ensure that certain activities associated with the order are carried out. See the following section on editing order elements for details on managing quality forms.

    +
    +images/order-quality.png +

    Quality Form Associated with the Order

    +
    +
  • +
+
+
+

Editing Order Elements

+

Order elements are edited from the "Order element list" tab by clicking the edit icon. This opens a new screen where users can:

+
    +
  • Edit information about the order element.
  • +
  • View hours attributed to order elements.
  • +
  • Manage progress of order elements.
  • +
  • Manage order labels.
  • +
  • Manage criteria required by the order element.
  • +
  • Manage materials.
  • +
  • Manage quality forms.
  • +
+

The following subsections describe each of these operations in detail.

+
+

Editing Information about the Order Element

+

Editing information about the order element includes modifying the following details:

+
    +
  • Order Element Name: The name of the order element.
  • +
  • Order Element Code: A unique code for the order element.
  • +
  • Start Date: The planned start date of the order element.
  • +
  • Estimated End Date: The planned completion date of the order element.
  • +
  • Total Hours: The total hours allocated to the order element. These hours can be calculated from the added hour groups or entered directly. If entered directly, the hours must be distributed among the hour groups, and a new hour group created if the percentages do not match the initial percentages.
  • +
  • Hour Groups: One or more hour groups can be added to the order element. The purpose of these hour groups is to define the requirements for the resources that will be assigned to perform the work.
  • +
  • Criteria: Criteria can be added that must be met to enable generic assignment for the order element.
  • +
+
+images/order-element-edition.png +

Editing Order Elements

+
+
+
+

Viewing Hours Attributed to Order Elements

+

The "Assigned hours" tab allows users to view the work reports associated with an order element and see how many of the estimated hours have already been completed.

+
+images/order-element-hours.png +

Hours Assigned to Order Elements

+
+

The screen is divided into two parts:

+
    +
  • Work Report List: Users can view the list of work reports associated with the order element, including the date and time, resource, and number of hours devoted to the task.
  • +
  • Use of Estimated Hours: The system calculates the total number of hours devoted to the task and compares them with the estimated hours.
  • +
+
+
+

Managing Progress of Order Elements

+

Entering progress types and managing order element progress is described in the "Progress" chapter.

+
+
+

Managing Order Labels

+

Labels, as described in the chapter on labels, allow users to categorize order elements. This enables users to group planning or order information based on these labels.

+

Users can assign labels directly to an order element or to a higher-level order element in the hierarchy. Once a label is assigned using either method, the order element and the related planning task are associated with the label and can be used for subsequent filtering.

+
+images/order-element-tags.png +

Assigning Labels for Order Elements

+
+

As shown in the image, users can perform the following actions from the Labels tab:

+
    +
  • View Inherited Labels: View labels associated with the order element that were inherited from a higher-level order element. The planning task associated with each order element has the same associated labels.
  • +
  • View Directly Assigned Labels: View labels directly associated with the order element using the assignment form for lower-level labels.
  • +
  • Assign Existing Labels: Assign labels by searching for them among the available labels in the form below the direct label list. To search for a label, click the magnifying glass icon or enter the first letters of the label in the text box to display the available options.
  • +
  • Create and Assign New Labels: Create new labels associated with an existing label type from this form. To do this, select a label type and enter the label value for the selected type. The system automatically creates the label and assigns it to the order element when "Create and assign" is clicked.
  • +
+
+
+

Managing Criteria Required by the Order Element and Hour Groups

+

Both an order and an order element can have criteria assigned that must be met for the work to be performed. Criteria can be direct or indirect:

+
    +
  • Direct Criteria: These are assigned directly to the order element. They are criteria required by the hour groups on the order element.
  • +
  • Indirect Criteria: These are assigned to higher-level order elements in the hierarchy and are inherited by the element being edited.
  • +
+

In addition to the required criteria, one or more hour groups that are part of the order element can be defined. This depends on whether the order element contains other order elements as child nodes or if it is a leaf node. In the first case, information about hours and hour groups can only be viewed. However, leaf nodes can be edited. Leaf nodes work as follows:

+
    +
  • The system creates a default hour group associated with the order element. The details that can be modified for an hour group are:
      +
    • Code: The code for the hour group (if not automatically generated).
    • +
    • Criterion Type: Users can choose to assign a machine or worker criterion.
    • +
    • Number of Hours: The number of hours in the hour group.
    • +
    • List of Criteria: The criteria to be applied to the hour group. To add new criteria, click "Add criterion" and select one from the search engine that appears after clicking the button.
    • +
    +
  • +
  • Users can add new hour groups with different features than previous hour groups. For example, an order element might require a welder (30 hours) and a painter (40 hours).
  • +
+
+images/order-element-criterion.png +

Assigning Criteria to Order Elements

+
+
+
+

Managing Materials

+

Materials are managed in projects as a list associated with each order element or an order in general. The list of materials includes the following fields:

+
    +
  • Code: The material code.
  • +
  • Date: The date associated with the material.
  • +
  • Units: The required number of units.
  • +
  • Unit Type: The type of unit used to measure the material.
  • +
  • Unit Price: The price per unit.
  • +
  • Total Price: The total price (calculated by multiplying the unit price by the number of units).
  • +
  • Category: The category to which the material belongs.
  • +
  • Status: The status of the material (e.g., Received, Requested, Pending, Processing, Cancelled).
  • +
+

Working with materials is done as follows:

+
    +
  • Select the "Materials" tab on an order element.
  • +
  • The system displays two sub-tabs: "Materials" and "Search materials."
  • +
  • If the order element has no assigned materials, the first tab will be empty.
  • +
  • Click "Search materials" in the lower-left part of the window.
  • +
  • The system displays the list of available categories and associated materials.
  • +
+
+images/order-element-material-search.png +

Searching for Materials

+
+
    +
  • Select categories to refine the material search.
  • +
  • The system displays the materials that belong to the selected categories.
  • +
  • From the materials list, select the materials to assign to the order element.
  • +
  • Click "Assign."
  • +
  • The system displays the selected list of materials on the "Materials" tab with new fields to complete.
  • +
+
+images/order-element-material-assign.png +

Assigning Materials to Order Elements

+
+
    +
  • Select the units, status, and date for the assigned materials.
  • +
+

For subsequent monitoring of materials, it's possible to change the status of a group of units of the received material. This is done as follows:

+
    +
  • Click the "Divide" button on the list of materials to the right of each row.
  • +
  • Select the number of units to divide the row into.
  • +
  • The program displays two rows with the material divided.
  • +
  • Change the status of the row containing the material.
  • +
+

The advantage of using this dividing tool is the ability to receive partial deliveries of material without having to wait for the entire delivery to mark it as received.

+
+
+

Managing Quality Forms

+

Some order elements require certification that certain tasks have been completed before they can be marked as complete. This is why the program has quality forms, which consist of a list of questions that are considered important if answered positively.

+

It's important to note that a quality form must be created beforehand to be assigned to an order element.

+

To manage quality forms:

+
    +
  • Go to the "Quality forms" tab.

    +
    +images/order-element-quality.png +

    Assigning Quality Forms to Order Elements

    +
    +
  • +
  • The program has a search engine for quality forms. There are two types of quality forms: by element or by percentage.

    +
      +
    • Element: Each element is independent.
    • +
    • Percentage: Each question increases the progress of the order element by a percentage. The percentages must be able to add up to 100%.
    • +
    +
  • +
  • Select one of the forms created in the administration interface and click "Assign."

    +
  • +
  • The program assigns the chosen form from the list of forms assigned to the order element.

    +
  • +
  • Click the "Edit" button on the order element.

    +
  • +
  • The program displays the questions from the quality form in the lower list.

    +
  • +
  • Mark the questions that have been completed as achieved.

    +
      +
    • If the quality form is based on percentages, the questions are answered in order.
    • +
    • If the quality form is based on elements, the questions can be answered in any order.
    • +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/07-planificacion.html b/libreplan-webapp/src/main/webapp/help/fa_IR/07-planificacion.html new file mode 100644 index 000000000..7b8954f83 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/07-planificacion.html @@ -0,0 +1,117 @@ + + + + + + +Task Planning + + + +
+

Task Planning

+ + +
+

Task Planning

+

Planning in TASKPM is a process that has been described throughout the user guide, with the chapters on orders and resource assignment being particularly important. This chapter describes the basic planning procedures after the order and Gantt charts have been properly configured.

+
+images/planning-view.png +

Work Planning View

+
+

As with the company overview, the project planning view is divided into several views based on the information being analyzed. The views available for a specific project are:

+
    +
  • Planning View
  • +
  • Resource Load View
  • +
  • Order List View
  • +
  • Advanced Assignment View
  • +
+
+

Planning View

+

The Planning View combines three different perspectives:

+
    +
  • Project Planning: Project planning is displayed in the upper right-hand part of the program as a Gantt chart. This view allows users to temporarily move tasks, assign dependencies between them, define milestones, and establish restrictions.
  • +
  • Resource Load: The Resource Load view, located in the lower right-hand part of the screen, shows resource availability based on assignments, as opposed to the assignments made to tasks. The information displayed in this view is as follows:
      +
    • Purple Area: Indicates a resource load below 100% of its capacity.
    • +
    • Green Area: Indicates a resource load below 100%, resulting from the resource being planned for another project.
    • +
    • Orange Area: Indicates a resource load over 100% as a result of the current project.
    • +
    • Yellow Area: Indicates a resource load over 100% as a result of other projects.
    • +
    +
  • +
  • Graph View and Earned Value Indicators: These can be viewed from the "Earned Value" tab. The generated graph is based on the earned value technique, and the indicators are calculated for each workday of the project. The calculated indicators are:
      +
    • BCWS (Budgeted Cost of Work Scheduled): The cumulative time function for the number of hours planned up to a certain date. It will be 0 at the planned start of the task and equal to the total number of planned hours at the end. As with all cumulative graphs, it will always increase. The function for a task will be the sum of the daily assignments until the calculation date. This function has values for all times, provided that resources have been assigned.
    • +
    • ACWP (Actual Cost of Work Performed): The cumulative time function for the hours reported in work reports up to a certain date. This function will only have a value of 0 before the date of the task's first work report, and its value will continue to increase as time passes and work report hours are added. It will have no value after the date of the last work report.
    • +
    • BCWP (Budgeted Cost of Work Performed): The cumulative time function that includes the resultant value of multiplying task progress by the amount of work that the task was estimated to require for completion. This function's values increase as time passes, as do progress values. Progress is multiplied by the total number of estimated hours for all tasks. The BCWP value is the sum of the values for the tasks being calculated. Progress is totaled when it is configured.
    • +
    • CV (Cost Variance): CV = BCWP - ACWP
    • +
    • SV (Schedule Variance): SV = BCWP - BCWS
    • +
    • BAC (Budget at Completion): BAC = max (BCWS)
    • +
    • EAC (Estimate at Completion): EAC = (ACWP / BCWP) * BAC
    • +
    • VAC (Variance at Completion): VAC = BAC - EAC
    • +
    • ETC (Estimate to Complete): ETC = EAC - ACWP
    • +
    • CPI (Cost Performance Index): CPI = BCWP / ACWP
    • +
    • SPI (Schedule Performance Index): SPI = BCWP / BCWS
    • +
    +
  • +
+

In the project planning view, users can perform the following actions:

+
    +
  • Assigning Dependencies: Right-click a task, choose "Add dependency," and drag the mouse pointer to the task to which the dependency should be assigned.
      +
    • To change the type of dependency, right-click the dependency and choose the desired type.
    • +
    +
  • +
  • Creating a New Milestone: Click the task before which the milestone is to be added and select the "Add milestone" option. Milestones can be moved by selecting the milestone with the mouse pointer and dragging it to the desired position.
  • +
  • Moving Tasks without Disturbing Dependencies: Right-click the body of the task and drag it to the desired position. If no restrictions or dependencies are violated, the system will update the daily assignment of resources to the task and place the task on the selected date.
  • +
  • Assigning Restrictions: Click the task in question and select the "Task properties" option. A pop-up window will appear with a "Restrictions" field that can be modified. Restrictions can conflict with dependencies, which is why each order specifies whether dependencies take priority over restrictions. The restrictions that can be established are:
      +
    • As Soon as Possible: Indicates that the task must start as soon as possible.
    • +
    • Not Before: Indicates that the task must not start before a certain date.
    • +
    • Start on a Specific Date: Indicates that the task must start on a specific date.
    • +
    +
  • +
+

The planning view also offers several procedures that function as viewing options:

+
    +
  • Zoom Level: Users can choose the desired zoom level. There are several zoom levels: annual, four-monthly, monthly, weekly, and daily.
  • +
  • Search Filters: Users can filter tasks based on labels or criteria.
  • +
  • Critical Path: As a result of using the Dijkstra algorithm to calculate paths on graphs, the critical path was implemented. It can be viewed by clicking the "Critical path" button in the viewing options.
  • +
  • Show Labels: Enables users to view the labels assigned to tasks in a project, which can be viewed on screen or printed.
  • +
  • Show Resources: Enables users to view the resources assigned to tasks in a project, which can be viewed on screen or printed.
  • +
  • Print: Enables users to print the Gantt chart being viewed.
  • +
+
+
+

Resource Load View

+

The Resource Load View provides a list of resources that contains a list of tasks or criteria that generate workloads. Each task or criterion is shown as a Gantt chart so that the start and end dates of the load can be seen. A different color is shown depending on whether the resource has a load that is higher or lower than 100%:

+
    +
  • Green: Load lower than 100%
  • +
  • Orange: 100% load
  • +
  • Red: Load over 100%
  • +
+
+images/resource-load.png +

Resource Load View for a Specific Order

+
+

If the mouse pointer is placed on the resource's Gantt chart, the load percentage for the worker will be shown.

+
+
+

Order List View

+

The Order List View allows users to access the order editing and deleting options. See the "Orders" chapter for more information.

+
+
+

Advanced Assignment View

+

The Advanced Assignment View is explained in depth in the "Resource Assignment" chapter.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/08-asignacion.html b/libreplan-webapp/src/main/webapp/help/fa_IR/08-asignacion.html new file mode 100644 index 000000000..46da7239c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/08-asignacion.html @@ -0,0 +1,179 @@ + + + + + + +Resource Assignment + + + +
+

Resource Assignment

+ + +

Resource assignment is one of the program's most important features and can be carried out in two different ways:

+
    +
  • Specific assignment
  • +
  • Generic assignment
  • +
+

Both types of assignment are explained in the following sections.

+

To perform either type of resource assignment, the following steps are necessary:

+
    +
  • Go to the planning view of an order.
  • +
  • Right-click on the task to be planned.
  • +
+
+images/resource-assignment-planning.png +

Resource Assignment Menu

+
+
    +
  • The program displays a screen with the following information:
      +
    • List of Criteria to be Fulfilled: For each hour group, a list of required criteria is shown.
    • +
    • Task Information: The start and end dates of the task.
    • +
    • Type of Calculation: The system allows users to choose the strategy for calculating assignments:
        +
      • Calculate Number of Hours: This calculates the number of hours required from the assigned resources, given an end date and a number of resources per day.
      • +
      • Calculate End Date: This calculates the end date of the task based on the number of resources assigned to the task and the total number of hours required to complete the task.
      • +
      • Calculate Number of Resources: This calculates the number of resources required to finish the task by a specific date, given a known number of hours per resource.
      • +
      +
    • +
    • Recommended Assignment: This option allows the program to gather the criteria to be fulfilled and the total number of hours from all hour groups, and then recommend a generic assignment. If a prior assignment exists, the system deletes it and replaces it with the new one.
    • +
    • Assignments: A list of assignments that have been made. This list shows the generic assignments (the number will be the list of fulfilled criteria, and the number of hours and resources per day). Each assignment can be explicitly removed by clicking the delete button.
    • +
    +
  • +
+
+images/resource-assignment.png +

Resource Assignment

+
+
    +
  • Users select "Search resources."
  • +
  • The program displays a new screen consisting of a criteria tree and a list of workers who fulfill the selected criteria on the right:
  • +
+
+images/resource-assignment-search.png +

Resource Assignment Search

+
+
    +
  • Users can select:
      +
    • Specific Assignment: See the "Specific Assignment" section for details on this option.
    • +
    • Generic Assignment: See the "Generic Assignment" section for details on this option.
    • +
    +
  • +
  • Users select a list of criteria (generic) or a list of workers (specific). Multiple selections can be made by pressing the "Ctrl" key while clicking each worker/criterion.
  • +
  • Users then click the "Select" button. It's important to remember that if a generic assignment is not selected, users must choose a worker or machine to perform the assignment. If a generic assignment is selected, it is sufficient for users to choose one or more criteria.
  • +
  • The program then displays the selected criteria or resource list in the list of assignments on the original resource assignment screen.
  • +
  • Users must choose the hours or resources per day, depending on the assignment method used in the program.
  • +
+
+

Specific Assignment

+

This is the specific assignment of a resource to a project task. In other words, the user decides which specific worker (by name and surname) or machine must be assigned to a task.

+

Specific assignment can be carried out on the screen shown in this image:

+
+images/asignacion-especifica.png +

Specific Resource Assignment

+
+

When a resource is specifically assigned, the program creates daily assignments based on the percentage of daily assigned resources selected, after comparing it with the available resource calendar. For example, an assignment of 0.5 resources for a 32-hour task means that 4 hours per day are assigned to the specific resource to complete the task (assuming a working calendar of 8 hours per day).

+
+

Specific Machine Assignment

+

Specific machine assignment functions in the same way as worker assignment. When a machine is assigned to a task, the system stores a specific assignment of hours for the chosen machine. The main difference is that the system searches the list of assigned workers or criteria at the moment the machine is assigned:

+
    +
  • If the machine has a list of assigned workers, the program chooses from those that are required by the machine, based on the assigned calendar. For example, if the machine calendar is 16 hours per day and the resource calendar is 8 hours, two resources are assigned from the list of available resources.
  • +
  • If the machine has one or more assigned criteria, generic assignments are made from among the resources that fulfill the criteria assigned to the machine.
  • +
+
+
+
+

Generic Assignment

+

Generic assignment occurs when users do not choose resources specifically but leave the decision to the program, which distributes the loads among the company's available resources.

+
+images/asignacion-xenerica.png +

Generic Resource Assignment

+
+

The assignment system uses the following assumptions as a basis:

+
    +
  • Tasks have criteria that are required from resources.
  • +
  • Resources are configured to fulfill criteria.
  • +
+

However, the system does not fail when criteria have not been assigned, but when all resources fulfill the non-requirement of criteria.

+

The generic assignment algorithm functions as follows:

+
    +
  • All resources and days are treated as containers where daily assignments of hours fit, based on the maximum assignment capacity in the task calendar.
  • +
  • The system searches for the resources that fulfill the criterion.
  • +
  • The system analyzes which assignments currently have different resources that fulfill criteria.
  • +
  • The resources that fulfill the criteria are chosen from those that have sufficient availability.
  • +
  • If freer resources are not available, assignments are made to the resources that have less availability.
  • +
  • Over-assignment of resources only begins when all the resources that fulfill the respective criteria are 100% assigned, until the total amount required to carry out the task is attained.
  • +
+
+

Generic Machine Assignment

+

Generic machine assignment functions in the same way as worker assignment. For example, when a machine is assigned to a task, the system stores a generic assignment of hours for all machines that fulfill the criteria, as described for resources in general. However, in addition, the system performs the following procedure for machines:

+
    +
  • For all machines chosen for generic assignment:
      +
    • It collects the machine's configuration information: alpha value, assigned workers, and criteria.
    • +
    • If the machine has an assigned list of workers, the program chooses the number required by the machine, depending on the assigned calendar. For example, if the machine calendar is 16 hours per day and the resource calendar is 8 hours, the program assigns two resources from the list of available resources.
    • +
    • If the machine has one or more assigned criteria, the program makes generic assignments from among the resources that fulfill the criteria assigned to the machine.
    • +
    +
  • +
+
+
+
+

Advanced Assignment

+

Advanced assignments allow users to design assignments that are automatically carried out by the application to personalize them. This procedure allows users to manually choose the daily hours that are dedicated by resources to assigned tasks or define a function that is applied to the assignment.

+

The steps to follow to manage advanced assignments are:

+
    +
  • Go to the advanced assignment window. There are two ways to access advanced assignments:
      +
    • Go to a specific order and change the view to advanced assignment. In this case, all the tasks on the order and assigned resources (specific and generic) will be shown.
    • +
    • Go to the resource assignment window by clicking the "Advanced assignment" button. In this case, the assignments that show the resources (generic and specific) assigned to a task will be shown.
    • +
    +
  • +
+
+images/advance-assignment.png +

Advanced Resource Assignment

+
+
    +
  • Users can choose the desired zoom level:
      +
    • Zoom Levels Greater Than One Day: If users change the assigned hour value to a week, month, four-month, or six-month period, the system distributes the hours linearly across all days throughout the chosen period.
    • +
    • Daily Zoom: If users change the assigned hour value to a day, these hours only apply to that day. Consequently, users can decide how many hours they want to assign per day to task resources.
    • +
    +
  • +
  • Users can choose to design an advanced assignment function. To do so, users must:
      +
    • Choose the function from the selection list that appears next to each resource and click "Configure."
    • +
    • The system displays a new window if the chosen function needs to be specifically configured. Supported functions:
        +
      • Segments: A function that allows users to define segments to which a polynomial function is applied. The function per segment is configured as follows:
          +
        • Date: The date on which the segment ends. If the following value (length) is established, the date is calculated; alternatively, length is calculated.
        • +
        • Defining the Length of Each Segment: This indicates what percentage of the task's duration is required for the segment.
        • +
        • Defining the Amount of Work: This indicates what workload percentage is expected to be completed in this segment. The quantity of work must be incremental. For example, if there is a 10% segment, the next one must be larger (for example, 20%).
        • +
        • Segment Graphs and Accumulated Loads.
        • +
        +
      • +
      +
    • +
    • Users then click "Accept."
    • +
    • The program stores the function and applies it to the daily resource assignments.
    • +
    +
  • +
+
+images/stretches.png +

Configuration of the Segment Function

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/09-partes.html b/libreplan-webapp/src/main/webapp/help/fa_IR/09-partes.html new file mode 100644 index 000000000..90242b6c7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/09-partes.html @@ -0,0 +1,84 @@ + + + + + + +Work Reports + + + +
+

Work Reports

+ + +

Work reports enable the monitoring of the hours that resources dedicate to the tasks to which they are assigned.

+

The program allows users to configure new forms for entering dedicated hours, specifying the fields that they want to appear in these forms. This allows for the incorporation of reports from tasks carried out by workers and the monitoring of worker activity.

+

Before users can add entries for resources, they must define at least one work report type. This type defines the structure of the report, including all the rows that are added to it. Users can create as many work report types as necessary within the system.

+
+

Work Report Types

+

A work report consists of a series of fields that are common to the entire report and a set of work report lines with specific values for the fields defined in each row. For example, resources and tasks are common to all reports. However, there can be other new fields, such as "incidents," which are not required in all report types.

+

Users can configure different work report types so that a company can design its reports to meet its specific needs:

+
+images/work-report-types.png +

Work Report Types

+
+

The administration of work report types allows users to configure these types and add new text fields or optional tags. In the first tab for editing work report types, it is possible to configure the type for the mandatory attributes (whether they apply to the whole report or are specified at the line level) and add new optional fields.

+

The mandatory fields that must appear in all work reports are as follows:

+
    +
  • Name and Code: Identification fields for the name of the work report type and its code.
  • +
  • Date: Field for the date of the report.
  • +
  • Resource: Worker or machine appearing on the report or work report line.
  • +
  • Order Element: Code for the order element to which the performed work is attributed.
  • +
  • Hour Management: Determines the hour attribution policy to be used, which can be:
      +
    • According to Assigned Hours: Hours are attributed based on the assigned hours.
    • +
    • According to Start and Finish Times: Hours are calculated based on the start and finish times.
    • +
    • According to the Number of Hours and Start and Finish Range: Discrepancies are allowed, and the number of hours takes priority.
    • +
    +
  • +
+

Users can add new fields to the reports:

+
    +
  • Tag Type: Users can request the system to display a tag when completing the work report. For example, the client tag type, if the user wishes to enter the client for whom the work was carried out in each report.
  • +
  • Free Fields: Fields where text can be entered freely in the work report.
  • +
+
+images/work-report-type.png +

Creating a Work Report Type with Personalized Fields

+
+

Users can configure date, resource, and order element fields to appear in the header of the report, which means they apply to the entire report, or they can be added to each of the rows.

+

Finally, new additional text fields or tags can be added to the existing ones, in the work report header or in each line, by using the "Additional text" and "Tag type" fields, respectively. Users can configure the order in which these elements are to be entered in the "Management of additional fields and tags" tab.

+
+
+

Work Report List

+

Once the format of the reports to be incorporated into the system has been configured, users can enter the details in the created form according to the structure defined in the corresponding work report type. To do this, users need to follow these steps:

+
    +
  • Click the "New work report" button associated with the desired report from the list of work report types.
  • +
  • The program then displays the report based on the configurations given for the type. See the following image.
  • +
+
+images/work-report-type.png +

Structure of the Work Report Based on Type

+
+
    +
  • Select all the fields shown for the report:
      +
    • Resource: If the header has been chosen, the resource is only shown once. Alternatively, for each line of the report, it is necessary to choose a resource.
    • +
    • Task Code: Code of the task to which the work report is being assigned. Similar to the rest of the fields, if the field is in the header, the value is entered once or as many times as necessary on the lines of the report.
    • +
    • Date: Date of the report or each line, depending on whether the header or line is configured.
    • +
    • Number of Hours: The number of work hours in the project.
    • +
    • Start and Finish Times: Start and finish times for the work in order to calculate definitive work hours. This field only appears in the case of the hour assignment policies, "According to Start and Finish Times" and "According to the Number of Hours and Start and Finish Range."
    • +
    • Type of Hours: Enables users to choose the type of hour, e.g., "Normal," "Extraordinary," etc.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/10-etiquetas.html b/libreplan-webapp/src/main/webapp/help/fa_IR/10-etiquetas.html new file mode 100644 index 000000000..eb6451798 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/10-etiquetas.html @@ -0,0 +1,68 @@ + + + + + + +Labels + + + +
+

Labels

+ +
+

Contents

+ +
+

Labels are entities used in the program to conceptually organize tasks or order elements.

+

Labels are categorized according to label type. A label can only belong to one label type; however, users can create many similar labels belonging to different label types.

+
+

Label Types

+

Label types are used to group the types of labels that users want to manage in the program. Here are some examples of possible label types:

+
    +
  • Client: Users may be interested in labeling tasks, orders, or order elements in relation to the client who requests them.
  • +
  • Area: Users may be interested in labeling tasks, orders, or order elements in relation to the areas in which they are carried out.
  • +
+

The administration of label types is managed from the "Administration" menu option. This is where users can edit label types, create new label types, and add labels to label types. Users can access the list of labels from this option.

+
+images/tag-types-list.png +

List of Label Types

+
+

From the list of label types, users can:

+
    +
  • Create a new label type.
  • +
  • Edit an existing label type.
  • +
  • Delete a label type with all of its labels.
  • +
+

Editing and creating labels share the same form. From this form, the user can assign a name to the label type, create or delete labels, and store the changes. The procedure is as follows:

+
    +
  • Select a label to edit or click the create button for a new one.
  • +
  • The system displays a form with a text entry for the name and a list of text entries with existing and assigned labels.
  • +
  • If users wish to add a new label, they must click the "New label" button.
  • +
  • The system displays a new row on the list with an empty text box that users must edit.
  • +
  • Users enter a name for the label.
  • +
  • The system adds the name to the list.
  • +
  • Users click "Save" or "Save and continue" to continue editing the form.
  • +
+
+images/tag-types-edition.png +

Editing Label Types

+
+
+
+

Labels

+

Labels are entities that belong to a label type. These entities can be assigned to order elements. Assigning a label to an order element means that all the elements descending from this element will inherit the label to which they belong. Having an assigned label means that these entities can be filtered where searches can be carried out:

+
    +
  • Search for tasks in the Gantt chart.
  • +
  • Search for order elements in the list of order elements.
  • +
  • Filters for reports.
  • +
+

The assignment of labels to order elements is covered in the chapter on orders.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/11-materiales.html b/libreplan-webapp/src/main/webapp/help/fa_IR/11-materiales.html new file mode 100644 index 000000000..a06770897 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/11-materiales.html @@ -0,0 +1,54 @@ + + + + + + +Materials Management + + + +
+

Materials Management

+ +
+

Contents

+ +
+
+

Administration of Materials

+

Users can manage a basic database of materials, organized by categories.

+

Categories are containers to which specific materials and other categories can be assigned. They are stored in a hierarchical tree structure, as materials can belong to leaf categories or intermediary categories.

+

To manage categories, users must follow these steps:

+
    +
  • Go to the "Administration -> Materials" option.
  • +
  • The program displays a tree of categories.
  • +
  • Enter a category name in the text box and then click "Add."
  • +
  • The program adds the category to the tree.
  • +
+

To insert a category into the category tree, users must first select the parent category in the tree and then click "Add."

+
+images/material.png +

Material Administration Screen

+
+

To manage materials, users must follow these steps:

+
    +
  • Select the category to which materials are to be added and click "Add" to the right of "Materials."
  • +
  • The program adds a new empty row with fields to enter details about the material:
      +
    • Code: Material type code (this can be the external code from an ERP).
    • +
    • Description: Description of the material.
    • +
    • Unit Price: Unit price of each piece of material.
    • +
    • Unit: Unit used to measure each unit of material.
    • +
    • Category: Category to which the material belongs.
    • +
    • Availability: Indicates whether or not the material is active.
    • +
    +
  • +
  • Users complete the fields and click "Save."
  • +
+

The assignment of materials to order elements is explained in the chapter on "Orders."

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/12-formularios-calidad.html b/libreplan-webapp/src/main/webapp/help/fa_IR/12-formularios-calidad.html new file mode 100644 index 000000000..97a584178 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/12-formularios-calidad.html @@ -0,0 +1,52 @@ + + + + + + +Quality Forms + + + +
+

Quality Forms

+ + +
+

Administration of Quality Forms

+

Quality forms consist of a list of questions or statements that indicate the tasks or processes that should have been completed before a task can be marked as complete by the company. These forms include the following fields:

+
    +
  • Name: The name of the quality form.
  • +
  • Description: A description of the quality form.
  • +
  • Type of Quality Form: The type can have two values:
      +
    • Percentage: Indicates that the questions must be answered in a logical order, and affirmative answers indicate that the task is progressing. For example, a basic process for a task might suggest that the task is 15% complete. Users must answer a question before proceeding to the next one.
    • +
    • Item: Indicates that the questions do not need to be answered in a logical order and can be answered in any sequence.
    • +
    +
  • +
+

Users must follow these steps to manage quality forms:

+
    +
  • From the "Administration" menu, access the "Quality forms" option.
  • +
  • Click "Edit" on an existing form or click "Create" to create a new one.
  • +
  • The program displays a form with fields for the name, description, and type.
  • +
  • Select the type.
  • +
  • The program displays the fields that are allowed for each type:
      +
    • Percentage: Question and percentage.
    • +
    • Item: Question.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+images/quality.png +

Quality Form Administration Screen

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/13-usuarios.html b/libreplan-webapp/src/main/webapp/help/fa_IR/13-usuarios.html new file mode 100644 index 000000000..f46a23ded --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/13-usuarios.html @@ -0,0 +1,79 @@ + + + + + + +User Management + + + +
+

User Management

+ +
+

Contents

+ +
+
+

Managing Users

+

TASKPM's system allows administrators to manage user profiles, authorizations, and users. Users are assigned to user profiles, which can have a series of predefined roles that grant access to the program's features. Roles are defined authorizations within TASKPM. Examples of roles include:

+
    +
  • Administration: A role that must be assigned to administrators to enable them to perform administrative operations.
  • +
  • Web Service Reader: A role required for users to consult the program's web services.
  • +
  • Web Service Writer: A role required for users to write data via the program's web services.
  • +
+

Roles are predefined within the system. A user profile consists of one or more roles. Users must have specific roles to perform certain operations.

+

Users can be assigned one or more profiles, or one or more roles directly, allowing for specific or generic authorization to be granted.

+

To manage users, follow these steps:

+
    +
  • Go to "Manage users" in the "Administration" menu.
  • +
  • The program displays a form with a list of users.
  • +
  • Click the edit button for the desired user or click the "Create" button.
  • +
  • A form will appear with the following fields:
      +
    • User Name: The user's login name.
    • +
    • Password: The user's password.
    • +
    • Authorized/Unauthorized: A setting to enable or disable the user's account.
    • +
    • Email: The user's email address.
    • +
    • List of Associated Roles: To add a new role, users must search for a role in the selection list and click "Assign."
    • +
    • List of Associated Profiles: To add a new profile, users must search for a profile in the selection list and click "Assign."
    • +
    +
  • +
+
+images/manage-user.png +

Managing Users

+
+
    +
  • Click "Save" or "Save and continue."
  • +
+
+

Managing Profiles

+

To manage the program's profiles, users must follow these steps:

+
    +
  • Go to "Manage user profiles" in the "Administration" menu.
  • +
  • The program displays a list of profiles.
  • +
  • Click the edit button for the desired profile or click "Create."
  • +
  • A form appears in the program with the following fields:
      +
    • Name: The name of the user profile.
    • +
    • List of Roles (Authorizations): To add a role to the profile, users must select a role from the role list and click "Add."
    • +
    +
  • +
+
+images/manage-user-profile.png +

Managing User Profiles

+
+
    +
  • Click "Save" or "Save and continue," and the system will store the created or modified profile.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/14-custos.html b/libreplan-webapp/src/main/webapp/help/fa_IR/14-custos.html new file mode 100644 index 000000000..5c35ce71d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/14-custos.html @@ -0,0 +1,110 @@ + + + + + + +Cost management + + + +
+

Cost management

+ +
+

Contents

+ +
+
+

Costs

+

Cost management allows users to estimate the costs of resources used in a project. To manage costs, the following entities must be defined:

+
    +
  • Hour Types: These indicate the types of hours worked by a resource. Users can define hour types for both machines and workers. Examples of hour types include: "Additional hours paid at €20 per hour." The following fields can be defined for hour types:
      +
    • Code: External code for the hour type.
    • +
    • Name: Name of the hour type. For example, "Additional."
    • +
    • Default Rate: Basic default rate for the hour type.
    • +
    • Activation: Indicates whether the hour type is active or not.
    • +
    +
  • +
  • Cost Categories: Cost categories define the costs associated with different hour types during specific periods (which may be indefinite). For example, the cost of additional hours for first-grade skilled workers in the following year is €24 per hour. Cost categories include:
      +
    • Name: Cost category name.
    • +
    • Activation: Indicates whether the category is active or not.
    • +
    • List of Hour Types: This list defines the hour types included in the cost category. It specifies the periods and rates for each hour type. For example, as rates change, each year can be included on this list as an hour type period, with a specific hourly rate for each hour type (which may differ from the default hourly rate for that hour type).
    • +
    +
  • +
+
+

Managing Hour Types

+

Users must follow these steps to register hour types:

+
    +
  • Select "Manage hour types worked" on the "Administration" menu.
  • +
  • The program displays a list of existing hour types.
  • +
+
+images/hour-type-list.png +

Hour Type List

+
+
    +
  • Click "Edit" or "Create."
  • +
  • The program displays an hour type editing form.
  • +
+
+images/hour-type-edit.png +

Editing Hour Types

+
+
    +
  • Users can enter or change:
      +
    • The hour type name.
    • +
    • The hour type code.
    • +
    • The default rate.
    • +
    • Hour type activation/deactivation.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+

Cost Categories

+

Users must follow these steps to register cost categories:

+
    +
  • Select "Manage cost categories" on the "Administration" menu.
  • +
  • The program displays a list of existing categories.
  • +
+
+images/category-cost-list.png +

Cost Category List

+
+
    +
  • Click the "Edit" or "Create" button.
  • +
  • The program displays a cost category editing form.
  • +
+
+images/category-cost-edit.png +

Editing Cost Categories

+
+
    +
  • Users enter or change:
      +
    • The name of the cost category.
    • +
    • The activation/deactivation of the cost category.
    • +
    • The list of hour types included in the category. All hour types have the following fields:
        +
      • Hour Type: Choose one of the existing hour types in the system. If none exist, an hour type must be created (this process is explained in the previous subsection).
      • +
      • Start and Finish Date: The start and finish dates (the latter is optional) for the period that applies to the cost category.
      • +
      • Hourly Rate: The hourly rate for this specific category.
      • +
      +
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+

The assignment of cost categories to resources is described in the chapter on resources. Go to the "Resources" section.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/15-1-report-hours-worked-by-resource.html b/libreplan-webapp/src/main/webapp/help/fa_IR/15-1-report-hours-worked-by-resource.html new file mode 100644 index 000000000..f97f118aa --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/15-1-report-hours-worked-by-resource.html @@ -0,0 +1,101 @@ + + + + + + +Hours Worked by Resource Report + + + +
+

Hours Worked by Resource Report

+ + +
+

Purpose

+

This report extracts a list of tasks and the time resources have dedicated to them within a specified period. Several filters allow users to refine the query to obtain only the desired information and exclude extraneous data.

+
+
+

Input Parameters and Filters

+
    +
  • +
    Dates.
    +
      +
    • Type: Optional.
    • +
    • +
      Two date fields:
      +
        +
      • Start Date: This is the earliest date for work reports to be included. Work reports with dates earlier than the Start Date are excluded. If this parameter is left blank, work reports are not filtered by Start Date.
      • +
      • End Date: This is the latest date for work reports to be included. Work reports with dates later than the End Date are excluded. If this parameter is left blank, work reports are not filtered by End Date.
      • +
      +
      +
      +
    • +
    +
    +
    +
  • +
  • Filter by Workers: +* Type: Optional. +* How it works: You can select one or more workers to restrict the work reports to the time tracked by those specific workers. To add a worker as a filter, search for them in the selector and click the Add button. If this filter is left empty, work reports are retrieved regardless of the worker.
  • +
  • Filter by Labels: +* Type: Optional. +* How it works: You can add one or more labels to use as filters by searching for them in the selector and clicking the Add button. These labels are used to select the tasks to be included in the results when calculating the hours dedicated to them. This filter can be applied to timesheets, tasks, both, or neither.
  • +
  • Filter by Criteria: +* Type: Optional. +* How it works: You can select one or more criteria by searching for them in the selector and then clicking the Add button. These criteria are used to select the resources that satisfy at least one of them. The report will show all the time dedicated by the resources that meet one of the selected criteria.
  • +
+
+
+

Output

+
+

Heading

+

The report heading displays the filters that were configured and applied to the current report.

+
+ +
+

Body

+

The report body consists of several groups of information.

+
    +
  • The first level of aggregation is by resource. All the time dedicated by a resource is shown together below the header. Each resource is identified by:

    +
      +
    • Worker: Surname, First Name.
    • +
    • Machine: Name.
    • +
    +

    A summary line shows the total number of hours worked by the resource.

    +
  • +
  • The second level of grouping is by date. All the reports from a specific resource on the same date are shown together.

    +

    A summary line shows the total number of hours worked by the resource on that date.

    +
  • +
  • The final level lists the work reports for the worker on that day. The information displayed for each work report line is:

    +
      +
    • Task Code: The code of the task to which the tracked hours are attributed.
    • +
    • Task Name: The name of the task to which the tracked hours are attributed.
    • +
    • Starting Time: This is optional. It is the time at which the resource began working on the task.
    • +
    • Ending Time: This is optional. It is the time at which the resource finished working on the task on the specified date.
    • +
    • Text Fields: This is optional. If the work report line has text fields, the filled values are shown here. The format is: <Name of the text field>:<Value>
    • +
    • Labels: This depends on whether the work report model has a label field in its definition. If there are multiple labels, they are shown in the same column. The format is: <Name of the label type>:<Value of the label>
    • +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/15-2-total-hours-by-resource-month.html b/libreplan-webapp/src/main/webapp/help/fa_IR/15-2-total-hours-by-resource-month.html new file mode 100644 index 000000000..246cfc9c1 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/15-2-total-hours-by-resource-month.html @@ -0,0 +1,67 @@ + + + + + + +Total Hours Worked by Resource in a Month Report + + + +
+

Total Hours Worked by Resource in a Month Report

+ + +
+

Purpose

+

This report provides the total number of hours worked by each resource in a given month. This information can be useful for determining worker overtime or, depending on the organization, the number of hours for which each resource should be compensated.

+

The application tracks work reports for both workers and machines. For machines, the report sums up the number of hours they were in operation during the month.

+
+
+

Input Parameters and Filters

+

To generate this report, users must specify the year and month for which they want to retrieve the total number of hours worked by each resource.

+
+
+

Output

+

The output format is as follows:

+ + +
+

Body

+

The data section of the report consists of a single table with two columns:

+
+
    +
  • One column labeled Name for the name of the resource.
  • +
  • One column labeled Hours with the total number of hours worked by the resource in that row.
  • +
+
+

There is a final row that aggregates the total number of hours worked by all resources during the specified month and year.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/15-3-work-progress-per-project.html b/libreplan-webapp/src/main/webapp/help/fa_IR/15-3-work-progress-per-project.html new file mode 100644 index 000000000..e2f5053a9 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/15-3-work-progress-per-project.html @@ -0,0 +1,125 @@ + + + + + + +Work and Progress per Project Report + + + +
+

Work and Progress per Project Report

+ + +
+

Purpose

+

This report provides an overview of the status of projects, considering both progress and cost.

+

It analyzes the current progress of each project, comparing it with the planned progress and the work completed.

+

The report also displays several ratios related to project cost, comparing current performance with the planned performance.

+
+
+

Input Parameters and Filters

+

There are several mandatory parameters:

+
+
    +
  • Reference Date: This is the date used as a reference point for comparing the planned status of the project with its actual performance. The default value for this field is the current date.
  • +
  • Progress Type: This is the progress type used to measure project progress. The application allows a project to be measured simultaneously with different progress types. The type selected by the user in the dropdown menu is used for calculating the report data. The default value for the progress type is spread, which is a special progress type that uses the preferred method of measuring progress configured for each WBS element.
  • +
+
+

The optional parameters are:

+
+
    +
  • Starting Date: This is the earliest start date for projects to be included in the report. If this field is left blank, there is no minimum start date for the projects.
  • +
  • Ending Date: This is the latest end date for projects to be included in the report. All projects that finish after the Ending Date will be excluded.
  • +
  • Filter by Projects: This filter allows users to select the specific projects to be included in the report. If no projects are added to the filter, the report will include all projects in the database. A searchable dropdown menu is provided to find the desired project. Projects are added to the filter by clicking the Add button.
  • +
+
+
+
+

Output

+

The output format is as follows:

+
+

Heading

+

The report header displays the following fields:

+
+
    +
  • Starting Date: The filtering start date. This is not displayed if the report is not filtered by this field.
  • +
  • Ending Date: The filtering end date. This is not displayed if the report is not filtered by this field.
  • +
  • Progress Type: The progress type used for the report.
  • +
  • Projects: This indicates the filtered projects for which the report is generated. It will show the string All when the report includes all projects that satisfy the other filters.
  • +
  • Reference Date: The mandatory input reference date selected for the report.
  • +
+
+
+ +
+

Body

+

The body of the report consists of a list of projects selected based on the input filters.

+

Filters work by adding conditions, except for the set formed by the date filters (Starting Date, Ending Date) and the Filter by Projects. In this case, if one or both date filters are filled and the Filter by Projects has a list of selected projects, the latter filter takes precedence. This means that the projects included in the report are those provided by the Filter by Projects, regardless of the date filters.

+

It's important to note that progress in the report is calculated as a fraction of unity, ranging between 0 and 1.

+

For each project selected for inclusion in the report output, the following information is displayed:

+
+
    +
  • Project Name.
  • +
  • +
    Total Hours. The total hours for the project are shown by adding the hours for each task. Two types of total hours are shown:
    +
      +
    • Estimated (TE). This is the sum of all the estimated hours in the project's WBS. It represents the total number of hours estimated to complete the project.
    • +
    • Planned (TP). In TASKPM, it's possible to have two different quantities: the estimated number of hours for a task (the number of hours initially estimated to complete the task) and the planned hours (the hours allocated in the plan to complete the task). The planned hours can be equal to, less than, or greater than the estimated hours and are determined in a later phase, the assignment operation. Therefore, the total planned hours for a project are the sum of all the allocated hours for its tasks.
    • +
    +
    +
    +
  • +
  • +
    Progress. Three measurements related to the overall progress of the type specified in the progress input filter for each project at the reference date are shown:
    +
      +
    • Measured (PM). This is the overall progress considering the progress measurements with a date earlier than the Reference Date in the input parameters of the report. All tasks are taken into account, and the sum is weighted by the number of hours for each task.
    • +
    • Imputed (PI). This is the progress assuming that work continues at the same pace as the hours completed for a task. If X hours out of Y hours for a task are completed, the overall imputed progress is considered to be X/Y.
    • +
    • Planned (PP). This is the overall progress of the project according to the planned schedule at the reference date. If everything happened exactly as planned, the measured progress should be the same as the planned progress.
    • +
    +
    +
    +
  • +
  • +
    Hours up to Date. There are two fields that show the number of hours up to the reference date from two perspectives:
    +
      +
    • Planned (HP). This number is the sum of the hours allocated to any task in the project with a date less than or equal to the Reference Date.
    • +
    • Actual (HR). This number is the sum of the hours reported in the work reports for any of the tasks in the project with a date less than or equal to the Reference Date.
    • +
    +
    +
    +
  • +
  • +
    Difference. Under this heading, there are several metrics related to cost:
    +
      +
    • Cost. This is the difference in hours between the number of hours spent, considering the measured progress, and the hours completed up to the reference date. The formula is: PM*TP - HR.
    • +
    • Planned. This is the difference between the hours spent according to the overall measured project progress and the number planned up to the Reference Date. It measures the advantage or delay in time. The formula is: PM*TP - HP.
    • +
    • Cost Ratio. This is calculated by dividing PM / PI. If it is greater than 1, it means that the project is profitable at this point. If it is less than 1, it means that the project is losing money.
    • +
    • Planned Ratio. This is calculated by dividing PM / PP. If it is greater than 1, it means that the project is ahead of schedule. If it is less than 1, it means that the project is behind schedule.
    • +
    +
    +
    +
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/15-informes.html b/libreplan-webapp/src/main/webapp/help/fa_IR/15-informes.html new file mode 100644 index 000000000..c2c7cafab --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/15-informes.html @@ -0,0 +1,26 @@ + + + + + + +Reports + + + +
+

Reports

+ +

TASKPM integrates with JasperReports to provide report management, enabling users to generate various reports for analyzing the data available in the program.

+

The available reports are:

+ +
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/16-ldap-authentication.html b/libreplan-webapp/src/main/webapp/help/fa_IR/16-ldap-authentication.html new file mode 100644 index 000000000..ad5d4976d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/16-ldap-authentication.html @@ -0,0 +1,251 @@ + + + + + + +LDAP Configuration + + + +
+

LDAP Configuration

+ + +

This screen allows you to establish a connection with LDAP to delegate +authentication and/or authorization.

+

It is divided into four different areas, which are explained below:

+
+

Activation

+

This area is used to set the properties that determine how TASKPM uses +LDAP.

+

If the field Enable LDAP authentication is checked, TASKPM will query +LDAP each time a user attempts to log in to the application.

+

The field Use LDAP roles checked means that a mapping between LDAP roles and +TASKPM roles is established. Consequently, the permissions for a user in +TASKPM will depend on the roles the user has in LDAP.

+
+
+

Configuration

+

This section contains the parameter values for accessing LDAP. Base, UserDN, and +Password are parameters used to connect to LDAP and search for users. Therefore, +the specified user must have permission to perform this operation in LDAP. At the +bottom of this section, there is a button to check if an LDAP connection is +possible with the given parameters. It is advisable to test the connection before +continuing the configuration.

+
+

Note

+

If your LDAP is configured to work with anonymous authentication, you can +leave the UserDN and Password attributes empty.

+
+
+

Tip

+

Regarding Active Directory (AD) configuration, the Base field must be the +exact location where the bound user resides in AD.

+

Example: ou=organizational_unit,dc=example,dc=org

+
+
+
+

Authentication

+

Here, you can configure the property in LDAP nodes where the given username +should be found. The property UserId must be filled with the name of the +property where the username is stored in LDAP.

+

The checkbox Save passwords in database, when checked, means that the +password is also stored in the TASKPM database. In this way, if LDAP is +offline or unreachable, LDAP users can authenticate against the TASKPM +database. If it is not checked, LDAP users can only be authenticated against +LDAP.

+
+
+

Authorization

+

This section allows you to define a strategy for matching LDAP roles with +TASKPM roles. The first choice is the strategy to use, depending on the +LDAP implementation.

+
+

Group Strategy

+

When this strategy is used, it indicates that LDAP has a role-group strategy. +This means that users in LDAP are nodes that are directly under a branch that +represents the group.

+

The next example represents a valid LDAP structure for using the group strategy.

+
    +
  • LDAP structure:

    +
    +dc=example,dc=org
    +|- ou=groups
    +   |- cn=admins
    +   |- cn=itpeople
    +   |- cn=workers
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

In this case, each group will have an attribute, for example, called member, +with the list of users belonging to the group:

+
    +
  • cn=admins:
      +
    • member: uid=admin1,ou=people,dc=example,dc=org
    • +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=itpeople:
      +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    • member: uid=it2,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=workers:
      +
    • member: uid=worker1,ou=people,dc=example,dc=org
    • +
    • member: uid=worker2,ou=people,dc=example,dc=org
    • +
    • member: uid=worker3,ou=people,dc=example,dc=org
    • +
    +
  • +
+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Group strategy
  • +
  • Group path: ou=groups
  • +
  • Role property: member
  • +
  • Role search query: uid=[USER_ID],ou=people,dc=example,dc=org
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: cn=admins;cn=itpeople
  • +
  • Web service reader: cn=itpeople
  • +
  • Web service writer: cn=itpeople
  • +
  • All projects read allowed: cn=admins
  • +
  • All projects edition allowed: cn=admins
  • +
  • Project creation allowed: cn=workers
  • +
+
+
+

Property Strategy

+

When an administrator decides to use this strategy, it indicates that each user +is an LDAP node, and within the node, there exists a property that represents +the group(s) for the user. In this case, the configuration does not require the +Group path parameter.

+

The next example represents a valid LDAP structure for using the property strategy.

+
    +
  • LDAP structure:

    +
    +dc=example,dc=org
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

With Attribute

+

In this case, each user will have an attribute, for example, called group, +with the name of the group to which they belong:

+
    +
  • uid=admin1:
      +
    • group: admins
    • +
    +
  • +
  • uid=it1:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=it2:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=worker1:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker2:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker3:
      +
    • group: workers
    • +
    +
  • +
+
+

Warning

+

This strategy has a restriction: each user can belong to only one group.

+
+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Property strategy
  • +
  • Group path:
  • +
  • Role property: group
  • +
  • Role search query: [USER_ID]
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: admins;itpeople
  • +
  • Web service reader: itpeople
  • +
  • Web service writer: itpeople
  • +
  • All projects read allowed: admins
  • +
  • All projects edition allowed: admins
  • +
  • Project creation allowed: workers
  • +
+

By User Identifier

+

You can even use a workaround to specify TASKPM roles directly to users +without having an attribute in each LDAP user.

+

In this case, you will specify which users have the different TASKPM roles +by uid.

+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Property strategy
  • +
  • Group path:
  • +
  • Role property: uid
  • +
  • Role search query: [USER_ID]
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: admin1;it1
  • +
  • Web service reader: it1;it2
  • +
  • Web service writer: it1;it2
  • +
  • All projects read allowed: admin1
  • +
  • All projects edition allowed: admin1
  • +
  • Project creation allowed: worker1;worker2;worker3
  • +
+
+
+

Role Matching

+

At the bottom of this section, there is a table with all the TASKPM roles +and a text field next to each one. This is for matching roles. For instance, +if an administrator decides that the Administration TASKPM role matches +the admin and administrators roles of LDAP, the text field should contain: +"admin;administrators". The character for splitting roles is ";".

+
+

Note

+

If you want to specify that all users or all groups have one permission, you +can use an asterisk (*) as a wildcard to refer to them. For example, if +you want everyone to have the Project creation allowed role, you will +configure the role matching as follows:

+
    +
  • Project creation allowed: *
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/17-1-project-dashboard.html b/libreplan-webapp/src/main/webapp/help/fa_IR/17-1-project-dashboard.html new file mode 100644 index 000000000..5dc0899b7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/17-1-project-dashboard.html @@ -0,0 +1,173 @@ + + + + + + +Project Dashboard + + + +
+

Project Dashboard

+ + +

The project dashboard is a TASKPM perspective that contains a set of KPIs (Key Performance Indicators) to help assess a project's performance in terms of:

+
+
    +
  • Work progress
  • +
  • Cost
  • +
  • Status of allocated resources
  • +
  • Time constraints
  • +
+
+
+

Progress Performance Indicators

+

Two indicators are calculated: project progress percentage and task status.

+
+

Project Progress Percentage

+

This chart displays the overall progress of a project, comparing it to the expected progress based on the Gantt chart.

+

Progress is represented by two bars:

+
+
    +
  • Current Progress: The current progress based on the measurements taken.
  • +
  • Expected Progress: The progress the project should have achieved at this point, according to the project plan.
  • +
+
+

To view the actual measured value for each bar, hover the mouse cursor over the bar.

+

The overall project progress is estimated using several different methods, as there is no single, universally correct approach:

+
+
    +
  • Spreading Progress: This is the progress type set as the spreading progress at the project level. In this case, there is no way to calculate an expected value, and only the current bar is displayed.
  • +
  • By All Task Hours: The progress of all project tasks is averaged to calculate the overall value. This is a weighted average that considers the number of hours allocated to each task.
  • +
  • By Critical Path Hours: The progress of tasks belonging to any of the project's critical paths is averaged to obtain the overall value. This is a weighted average that considers the total allocated hours for each involved task.
  • +
  • By Critical Path Duration: The progress of tasks belonging to any of the critical paths is averaged using a weighted average, but this time considering the duration of each involved task instead of the assigned hours.
  • +
+
+
+
+

Task Status

+

A pie chart shows the percentage of project tasks in different states. The defined states are:

+
+
    +
  • Finished: Completed tasks, identified by a 100% progress value.
  • +
  • In Progress: Tasks that are currently underway. These tasks have a progress value other than 0% or 100%, or some work time has been tracked.
  • +
  • Ready to Start: Tasks with 0% progress, no tracked time, all their FINISH_TO_START dependent tasks are finished, and all their START_TO_START dependent tasks are finished or in progress.
  • +
  • Blocked: Tasks with 0% progress, no tracked time, and with previous dependent tasks that are neither in progress nor in the ready to start state.
  • +
+
+
+
+
+

Cost Indicators

+

Several Earned Value Management cost indicators are calculated:

+
+
    +
  • CV (Cost Variance): The difference between the Earned Value curve and the Actual Cost curve at the current moment. Positive values indicate a benefit, and negative values indicate a loss.

    +
  • +
  • ACWP (Actual Cost of Work Performed): The total number of hours tracked in the project at the current moment.

    +
  • +
  • CPI (Cost Performance Index): The Earned Value / Actual Cost ratio.

    +
    +
      +
    • > 100 is favorable, indicating that the project is under budget.
    • +
    • = 100 is also favorable, indicating that the cost is right on plan.
    • +
    • < 100 is unfavorable, indicating that the cost of completing the work is higher than planned.
    • +
    +
    +
  • +
  • ETC (Estimate To Complete): The time remaining to complete the project.

    +
  • +
  • BAC (Budget At Completion): The total amount of work allocated in the project plan.

    +
  • +
  • EAC (Estimate At Completion): The manager's projection of the total cost at project completion, based on the CPI.

    +
  • +
  • VAC (Variance At Completion): The difference between the BAC and the EAC.

    +
    +
      +
    • < 0 indicates that the project is over budget.
    • +
    • > 0 indicates that the project is under budget.
    • +
    +
    +
  • +
+
+
+
+

Resources

+

To analyze the project from the resources' point of view, two ratios and a histogram are provided.

+
+

Estimation Deviation on Completed Task Histogram

+

This histogram calculates the deviation between the number of hours allocated to the project tasks and the actual number of hours dedicated to them.

+

The deviation is calculated as a percentage for all finished tasks, and the calculated deviations are represented in a histogram. The vertical axis shows the number of tasks within each deviation interval. Six deviation intervals are dynamically calculated.

+
+
+

Overtime Ratio

+

This ratio summarizes the overload of resources allocated to the project tasks. It is calculated using the formula: overtime ratio = overload / (load + overload).

+
+
    +
  • = 0 is favorable, indicating that the resources are not overloaded.
  • +
  • > 0 is unfavorable, indicating that the resources are overloaded.
  • +
+
+
+
+

Availability Ratio

+

This ratio summarizes the free capacity of the resources currently allocated to the project. Therefore, it measures the resources' availability to receive more allocations without being overloaded. It is calculated as: availability ratio = (1 - load/capacity) * 100

+
+
    +
  • Possible values are between 0% (fully assigned) and 100% (not assigned).
  • +
+
+
+
+
+

Time

+

Two charts are included: a histogram for the time deviation in the finish time of project tasks and a pie chart for deadline violations.

+
+

Task Completion Lead or Lag

+

This calculation determines the difference in days between the planned end time for project tasks and their actual end time. The planned completion date is taken from the Gantt chart, and the actual finish date is taken from the last time tracked for the task.

+

The lag or lead in task completion is represented in a histogram. The vertical axis shows the number of tasks with a lead/lag day difference value corresponding to the abscissa days interval. Six dynamic task completion deviation intervals are calculated.

+
+
    +
  • Negative values mean finishing ahead of schedule.
  • +
  • Positive values mean finishing behind schedule.
  • +
+
+
+
+

Deadline Violations

+

This section calculates the margin with the project deadline, if set. Additionally, a pie chart shows the percentage of tasks meeting their deadline. Three types of values are included in the chart:

+
+
    +
  • Percentage of tasks without a deadline configured.
  • +
  • Percentage of ended tasks with an actual end date later than their deadline. The actual end date is taken from the last time tracked for the task.
  • +
  • Percentage of ended tasks with an actual end date earlier than their deadline.
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/17-2-pipeline-dashboard.html b/libreplan-webapp/src/main/webapp/help/fa_IR/17-2-pipeline-dashboard.html new file mode 100644 index 000000000..bb54ed657 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/17-2-pipeline-dashboard.html @@ -0,0 +1,33 @@ + + + + + + +Pipeline Dashboard + + + +
+

Pipeline Dashboard

+ +

The pipeline dashboard is a TASKPM perspective that lists all company projects in a table. This "pipeline" table has nine columns, each corresponding to a project status:

+
+
    +
  • PRE-SALES
  • +
  • OFFERED
  • +
  • OUTSOURCED
  • +
  • ACCEPTED
  • +
  • STARTED
  • +
  • ON HOLD
  • +
  • FINISHED
  • +
  • CANCELLED
  • +
  • ARCHIVED
  • +
+
+

Projects are listed by name in each column based on their current status.

+

A project's start date, end date, and current progress can be viewed in a tooltip popup by hovering the mouse cursor over a project's name.

+

Projects with an ARCHIVED status can be hidden by unchecking the "Show archived column data" checkbox.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/17-dashboards.html b/libreplan-webapp/src/main/webapp/help/fa_IR/17-dashboards.html new file mode 100644 index 000000000..3dc8f1af4 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/17-dashboards.html @@ -0,0 +1,24 @@ + + + + + + +Dashboards + + + +
+

Dashboards

+ +

TASKPM offers dashboard views for projects, providing an overview of their current status.

+

The two available dashboard views are:

+ +
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/18-connectors.html b/libreplan-webapp/src/main/webapp/help/fa_IR/18-connectors.html new file mode 100644 index 000000000..0f879b53d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/18-connectors.html @@ -0,0 +1,238 @@ + + + + + + +Connectors + + + +
+

Connectors

+ + +

Connectors are TASKPM client applications that can be used to communicate with (web) servers to retrieve data, process it, and store it. Currently, there are three connectors: the JIRA connector, the Tim Enterprise connector, and the E-mail connector.

+
+

Configuration

+

Connectors must be configured properly before they can be used. They can be configured from the "Main Settings" screen under the "Connectors" tab.

+

The connector screen includes:

+
    +
  • Pull-down list: A list of available connectors.
  • +
  • Properties edit screen: A property edit form for the selected connector.
  • +
  • Test connection button: A button to test the connection with the connector.
  • +
+

Select the connector you want to configure from the pull-down list of connectors. A property editor form for the selected connector will be displayed. In the property editor form, you can change the property values as needed and test your configurations using the "Test connection" button.

+
+

Note

+

The properties are configured with default values. The most important property is "Activated." By default, it is set to "N." This indicates that the connector will not be used unless you change the value to "Y" and save the changes.

+
+
+
+

JIRA Connector

+

JIRA is an issue and project tracking system.

+

The JIRA connector is an application that can be used to request JIRA web server data for JIRA issues and process the response. The request is based on JIRA labels. In JIRA, labels can be used to categorize issues. The request is structured as follows: retrieve all issues that are categorized by this label name.

+

The connector receives the response, which in this case is the issues, and converts them to TASKPM "Order elements" and "Time sheets."

+

The JIRA connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the JIRA connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the JIRA connector. The default is "N."
  • +
  • Server URL: The absolute path to the JIRA web server.
  • +
  • User name and password: The user credentials for authorization.
  • +
  • JIRA labels: comma-separated list of labels or URL: You can either enter the label URL or a comma-separated list of labels.
  • +
  • Hours type: The type of work hours. The default is "Default."
  • +
+
+

Note

+

JIRA labels: Currently, the JIRA web server does not support providing a list of all available labels. As a workaround, we have developed a simple PHP script that performs a simple SQL query in the JIRA database to fetch all distinct labels. You can either use this PHP script as the "JIRA labels URL" or enter the labels you want as comma-separated text in the "JIRA labels" field.

+
+

Finally, click the "Test connection" button to test if you can connect to the JIRA web server and that your configurations are correct.

+
+
+

Synchronization

+

From the project window, under "General data," you can start synchronizing order elements with JIRA issues.

+

Click the "Sync with JIRA" button to start the synchronization.

+
    +
  • If this is the first time, a pop-up window (with an auto-completed list of labels) will be displayed. In this window, you can select a label to synchronize with and click the "Start sync" button to begin the synchronization process, or click the "Cancel" button to cancel it.
  • +
  • If a label is already synchronized, the last synchronized date and the label will be displayed in the JIRA screen. In this case, no pop-up window to select a label will be displayed. Instead, the synchronization process will start directly for that displayed (already synchronized) label.
  • +
+
+

Note

+

The relationship between "Order" and "label" is one-to-one. Only one label can be synchronized with one "Order."

+
+
+

Note

+

Upon successful (re)synchronization, the information will be written to the database, and the JIRA screen will be updated with the last synchronized date and label.

+
+

(Re)synchronization is performed in two phases:

+
    +
  • Phase 1: Synchronizing order elements, including progress assignment and measurements.
  • +
  • Phase 2: Synchronizing time sheets.
  • +
+
+

Note

+

If Phase 1 fails, Phase 2 will not be performed, and no information will be written to the database.

+
+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+

Upon successful completion of synchronization, the result will be displayed in the "Work Breakdown Structure (WBS tasks)" tab of the "Project details" screen. In this UI, there are two changes from the standard WBS:

+
    +
  • The "Total task hours" column is unmodifiable (read-only) because the synchronization is one-way. Task hours can only be updated in the JIRA web server.
  • +
  • The "Code" column displays the JIRA issue keys, and they are also hyperlinks to the JIRA issues. Click the desired key if you want to go to the document for that key (JIRA issue).
  • +
+
+
+

Scheduling

+

Re-synchronization of JIRA issues can also be performed through the scheduler. Go to the "Job scheduling" screen. In that screen, you can configure a JIRA job to perform synchronization. The job searches for the last synchronized labels in the database and re-synchronizes them accordingly. See also the Scheduler Manual.

+
+
+
+

Tim Enterprise Connector

+

Tim Enterprise is a Dutch product from Aenova. It is a web-based application for the administration of time spent on projects and tasks.

+

The Tim connector is an application that can be used to communicate with the Tim Enterprise server to:

+
    +
  • Export all hours spent by a worker (user) on a project that could be registered in Tim Enterprise.
  • +
  • Import all rosters of the worker (user) to plan the resource effectively.
  • +
+

The Tim connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the Tim connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the Tim connector. The default is "N."
  • +
  • Server URL: The absolute path to the Tim Enterprise server.
  • +
  • User name and password: The user credentials for authorization.
  • +
  • Number of days timesheet to Tim: The number of days back you want to export the time sheets.
  • +
  • Number of days roster from Tim: The number of days forward you want to import the rosters.
  • +
  • Productivity factor: Effective working hours in percentage. The default is "100%."
  • +
  • Department IDs to import roster: Comma-separated department IDs.
  • +
+

Finally, click the "Test connection" button to test if you can connect to the Tim Enterprise server and that your configurations are correct.

+
+
+

Export

+

From the project window, under "General data," you can start exporting time sheets to the Tim Enterprise server.

+

Enter the "Tim product code" and click the "Export to Tim" button to start the export.

+

The Tim connector adds the following fields along with the product code:

+
    +
  • The worker/user's full name.
  • +
  • The date the worker worked on a task.
  • +
  • The effort, or hours worked on the task.
  • +
  • An option indicating whether Tim Enterprise should update the registration or insert a new one.
  • +
+

The Tim Enterprise response contains only a list of record IDs (integers). This makes it difficult to determine what went wrong, as the response list contains only numbers not related to the request fields. The export request (registration in Tim) is assumed to have succeeded if all the list entries do not contain "0" values. Otherwise, the export request has failed for those entries that contain "0" values. Therefore, you cannot see which request failed, as the list entries only contain the value "0." The only way to determine this is to examine the log file on the Tim Enterprise server.

+
+

Note

+

Upon successful exporting, the information will be written to the database, and the Tim screen will be updated with the last exported date and product code.

+
+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+
+
+

Scheduling Export

+

The export process can also be performed through the scheduler. Go to the "Job Scheduling" screen. In that screen, you can configure a Tim Export job. The job searches for the last exported time sheets in the database and re-exports them accordingly. See also the Scheduler manual.

+
+
+

Import

+

Importing rosters only works with the help of the scheduler. There is no user interface designed for this, as no input is needed from the user. Go to the "Job scheduling" screen and configure a Tim Import job. The job loops through all departments configured in the connector properties and imports all rosters for each department. See also the Scheduler Manual.

+

For import, the Tim connector adds the following fields in the request:

+
    +
  • Period: The period (date from - date to) for which you want to import the roster. This can be provided as a filter criterion.
  • +
  • Department: The department for which you want to import the roster. Departments are configurable.
  • +
  • The fields you are interested in (like Person info, RosterCategory, etc.) that the Tim server should include in its response.
  • +
+

The import response contains the following fields, which are sufficient to manage the exception days in TASKPM:

+
    +
  • Person info: Name and network name.
  • +
  • Department: The department the worker is working in.
  • +
  • Roster category: Information on the presence/absence (Aanwzig/afwezig) of the worker and the reason (TASKPM exception type) in case the worker is absent.
  • +
  • Date: The date the worker is present/absent.
  • +
  • Time: The start time of presence/absence, for example, 08:00.
  • +
  • Duration: The number of hours that the worker is present/absent.
  • +
+

By converting the import response to TASKPM's "Exception day," the following translations are taken into account:

+
    +
  • If the roster category contains the name "Vakantie," it will be translated to "RESOURCE HOLIDAY."
  • +
  • The roster category "Feestdag" will be translated to "BANK HOLIDAY."
  • +
  • All the rest, like "Jus uren," "PLB uren," etc., should be added to the "Calendar Exception Days" manually.
  • +
+

Moreover, in the import response, the roster is divided into two or three parts per day: for example, roster-morning, roster-afternoon, and roster-evening. However, TASKPM allows only one "Exception type" per day. The Tim connector is then responsible for merging these parts as one exception type. That is, the roster category with the highest duration is assumed to be a valid exception type, but the total duration is the sum of all durations of these category parts.

+

Contrary to TASKPM, in Tim Enterprise, the total duration in case the worker is on holiday means the worker is not available for that total duration. However, in TASKPM, if the worker is on holiday, the total duration should be zero. The Tim connector also handles this translation.

+
+
+
+

E-mail Connector

+

E-mail is a method of exchanging digital messages from an author to one or more recipients.

+

The E-mail connector can be used to set Simple Mail Transfer Protocol (SMTP) server connection properties.

+

The E-mail connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the E-mail connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the E-mail connector. The default is "N."
  • +
  • Protocol: The type of SMTP protocol.
  • +
  • Host: The absolute path to the SMTP server.
  • +
  • Port: The port of the SMTP server.
  • +
  • From address: The e-mail address of the message sender.
  • +
  • Username: The username for the SMTP server.
  • +
  • Password: The password for the SMTP server.
  • +
+

Finally, click the "Test connection" button to test if you can connect to the SMTP server and that your configurations are correct.

+
+
+

Edit E-mail Template

+

From the project window, under "Configuration" and then "Edit E-mail Templates," you can modify the e-mail templates for messages.

+

You can choose:

+
    +
  • Template language:
  • +
  • Template type:
  • +
  • E-mail subject:
  • +
  • Template contents:
  • +
+

You need to specify the language because the web application will send e-mails to users in the language they have chosen in their preferences. You need to choose the template type. The type is the user role, meaning that this e-mail will be sent only to users who are in the selected role (type). You need to set the e-mail subject. The subject is a brief summary of the topic of the message. You need to set the e-mail contents. This is any information that you want to send to the user. There are also some keywords that you may use in the message; the web application will parse them and set a new value instead of the keyword.

+
+
+

Scheduling E-mails

+

Sending e-mails can only be performed through the scheduler. Go to "Configuration," then the "Job Scheduling" screen. In that screen, you can configure an e-mail sending job. The job takes a list of e-mail notifications, gathers data, and sends it to the user's e-mail. See also the Scheduler manual.

+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/19-scheduler.html b/libreplan-webapp/src/main/webapp/help/fa_IR/19-scheduler.html new file mode 100644 index 000000000..8379b5b4c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/19-scheduler.html @@ -0,0 +1,107 @@ + + + + + + +Scheduler + + + +
+

Scheduler

+ + +

The scheduler is designed to schedule jobs dynamically. It is developed using the Spring Framework Quartz scheduler.

+

To use this scheduler effectively, the jobs (Quartz jobs) that should be scheduled must be created first. Then, these jobs can be added to the database, as all jobs to be scheduled are stored in the database.

+

When the scheduler starts, it reads the jobs to be scheduled or unscheduled from the database and schedules or removes them accordingly. Afterward, jobs can be added, updated, or removed dynamically using the Job scheduling user interface.

+
+

Note

+

The scheduler starts when the TASKPM web application starts and stops when the application stops.

+
+
+

Note

+

This scheduler supports only cron expressions to schedule jobs.

+
+

The criteria that the scheduler uses to schedule or remove jobs when it starts are as follows:

+

For all jobs:

+
    +
  • Schedule
      +
    • Job has a Connector, and the Connector is activated, and the job is allowed to be scheduled.
    • +
    • Job has no Connector and is allowed to be scheduled.
    • +
    +
  • +
  • Remove
      +
    • Job has a Connector, and the Connector is not activated.
    • +
    • Job has a Connector, and the Connector is activated, but the job is not allowed to be scheduled.
    • +
    • Job has no Connector and is not allowed to be scheduled.
    • +
    +
  • +
+
+

Note

+

Jobs cannot be rescheduled or unscheduled if they are currently running.

+
+
+

Job Scheduling List View

+

The Job scheduling list view allows users to:

+
    +
  • Add a new job.
  • +
  • Edit an existing job.
  • +
  • Remove a job.
  • +
  • Start a process manually.
  • +
+
+
+

Add or Edit Job

+

From the Job scheduling list view, click:

+
    +
  • Create to add a new job, or
  • +
  • Edit to modify the selected job.
  • +
+

Both actions will open a create/edit job form. The form displays the following properties:

+
    +
  • Fields:
      +
    • Job group: The name of the job group.
    • +
    • Job name: The name of the job.
    • +
    • Cron expression: A read-only field with an Edit button to open the cron expression input window.
    • +
    • Job class name: A pull-down list to select the job (an existing job).
    • +
    • Connector: A pull-down list to select a connector. This is not mandatory.
    • +
    • Schedule: A checkbox to indicate whether to schedule this job.
    • +
    +
  • +
  • Buttons:
      +
    • Save: To save or update a job in both the database and the scheduler. The user is then returned to the Job scheduling list view.
    • +
    • Save and continue: The same as "Save," but the user is not returned to the Job scheduling list view.
    • +
    • Cancel: Nothing is saved, and the user is returned to the Job scheduling list view.
    • +
    +
  • +
  • And a hint section about cron expression syntax.
  • +
+
+

Cron Expression Pop-up

+

To enter the cron expression correctly, a cron expression pop-up form is used. In this form, you can enter the desired cron expression. See also the hint about the cron expression. If you enter an invalid cron expression, you will be notified immediately.

+
+
+
+

Remove Job

+

Click the Remove button to delete the job from both the database and the scheduler. The success or failure of this action will be displayed.

+
+
+

Start Job Manually

+

As an alternative to waiting for the job to run as scheduled, you can click this button to start the process directly. Afterward, the success or failure information will be displayed in a pop-up window.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/20-acerca-de.html b/libreplan-webapp/src/main/webapp/help/fa_IR/20-acerca-de.html new file mode 100644 index 000000000..569e69e4d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/20-acerca-de.html @@ -0,0 +1,155 @@ + + + + + + +About + + + +
+

About

+ + + +
+

License

+

This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version.

+

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/>.

+
+
+

Written by

+
+

TASKPM Team

+ +
+
+

Previous Team Members

+ +
+
+

Translators

+ +
+
+

Contributors

+ +
+
+
+

Public Funding

+

This project currently accepts donations through the Open Collective organization <https://opencollective.com/TASKPM>.

+

Within the global scope that TASKPM is designed for regarding planning management, a project was developed to solve some common planning problems.

+

This project was partially financed by Xunta de Galicia, Ministerio de Industria, Turismo e Comercio, and by the European Union, Fondo Europeo de Desenvolvemento Rexional.

+
+images/logos.png +
+ +++ + + + +
scale:100
+

This project was part of Plan Avanza:

+
+images/avanza.png +
+ +++ + + + +
scale:100
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/21-communications.html b/libreplan-webapp/src/main/webapp/help/fa_IR/21-communications.html new file mode 100644 index 000000000..e4f5ea081 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/21-communications.html @@ -0,0 +1,18 @@ + + + + + + +Subcontractor Work Description + + + +
+

Subcontractor Work Description

+ +

While it is possible to leave this field empty, doing so can lead to errors in communication functionality when multiple empty fields exist.

+

Therefore, we strongly recommend always using a unique work description.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/22-pert.html b/libreplan-webapp/src/main/webapp/help/fa_IR/22-pert.html new file mode 100644 index 000000000..c27af3c56 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/22-pert.html @@ -0,0 +1,17 @@ + + + + + + +PERT Chart + + + +
+

PERT Chart

+ +

Unlike Libreplan, which was focused on the GANNT chart and did not have a PERT chart, TASKPM does have a PERT chart and is more focused on it.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/23-subnets.html b/libreplan-webapp/src/main/webapp/help/fa_IR/23-subnets.html new file mode 100644 index 000000000..42cd9e634 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/23-subnets.html @@ -0,0 +1,17 @@ + + + + + + +Task Subnets + + + +
+

Task Subnets

+ +

Unlike Libreplan, which only had a single level of planning, the whole project, TASKPM has subnetworks of activities which can be embedded in a master project.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/advance-assignment.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/advance-assignment.png new file mode 100644 index 000000000..aeb55b2b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/advance-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/asignacion-especifica.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/asignacion-especifica.png new file mode 100644 index 000000000..9ee94d9c6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/asignacion-especifica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/asignacion-xenerica.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/asignacion-xenerica.png new file mode 100644 index 000000000..d2a16597f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/asignacion-xenerica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/avance.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/avance.png new file mode 100644 index 000000000..ee289e19c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/avanza.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/avanza.png new file mode 100644 index 000000000..a51893f80 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/avanza.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/calendar-administration.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/calendar-administration.png new file mode 100644 index 000000000..bb4e17032 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/calendar-administration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/calendar-create-derived.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/calendar-create-derived.png new file mode 100644 index 000000000..9f01f2c33 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/calendar-create-derived.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/calendar-edition.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/calendar-edition.png new file mode 100644 index 000000000..a98cc4454 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/calendar-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/calendar-exceptions.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/calendar-exceptions.png new file mode 100644 index 000000000..c2a53a684 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/calendar-exceptions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/category-cost-edit.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/category-cost-edit.png new file mode 100644 index 000000000..1755ee79e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/category-cost-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/category-cost-list.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/category-cost-list.png new file mode 100644 index 000000000..1d7ff838c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/category-cost-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/company_view.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/company_view.png new file mode 100644 index 000000000..c3a7631e6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/company_view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/contraste-avance.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/contraste-avance.png new file mode 100644 index 000000000..831cceac3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/contraste-avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/default-calendar.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/default-calendar.png new file mode 100644 index 000000000..6fd379d08 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/default-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/edicion-criterio.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/edicion-criterio.png new file mode 100644 index 000000000..2b879ced5 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/edicion-criterio.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/hour-type-edit.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/hour-type-edit.png new file mode 100644 index 000000000..4917b08a8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/hour-type-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/hour-type-list.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/hour-type-list.png new file mode 100644 index 000000000..1872eb4f7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/hour-type-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/lista-criterios.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/lista-criterios.png new file mode 100644 index 000000000..a2e7d03cb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/lista-criterios.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/logo.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/logo.png new file mode 100644 index 000000000..4e7d02651 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/logo.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/logos.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/logos.png new file mode 100644 index 000000000..7314a0759 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/logos.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/machine-calendar.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/machine-calendar.png new file mode 100644 index 000000000..a725f67a2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/machine-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/machine-configuration.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/machine-configuration.png new file mode 100644 index 000000000..0777473fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/machine-configuration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/machine-costcategory.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/machine-costcategory.png new file mode 100644 index 000000000..b8414eac6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/machine-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/machine-criterions.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/machine-criterions.png new file mode 100644 index 000000000..7c270bf35 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/machine-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/machine-data.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/machine-data.png new file mode 100644 index 000000000..5edb47d12 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/machine-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/manage-user-profile.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/manage-user-profile.png new file mode 100644 index 000000000..6a86064e2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/manage-user-profile.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/manage-user.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/manage-user.png new file mode 100644 index 000000000..df59f1b7c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/manage-user.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/material.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/material.png new file mode 100644 index 000000000..a77b5aa41 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/menu.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/menu.png new file mode 100644 index 000000000..f4eec5250 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/menu.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/new-resource-calendar.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/new-resource-calendar.png new file mode 100644 index 000000000..9040e0bc0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/new-resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-assigned-hours.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-assigned-hours.png new file mode 100644 index 000000000..4fd629386 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-assigned-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-criterions.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-criterions.png new file mode 100644 index 000000000..e59bd833f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-edition.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-edition.png new file mode 100644 index 000000000..ff67134db Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-element-criterion.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-element-criterion.png new file mode 100644 index 000000000..f167979b0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-element-criterion.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-element-edition.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-element-edition.png new file mode 100644 index 000000000..66e5e8602 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-element-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-element-hours.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-element-hours.png new file mode 100644 index 000000000..06cc1dc37 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-element-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-element-material-assign.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-element-material-assign.png new file mode 100644 index 000000000..90f973766 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-element-material-assign.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-element-material-search.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-element-material-search.png new file mode 100644 index 000000000..550f1d7fa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-element-material-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-element-quality.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-element-quality.png new file mode 100644 index 000000000..3272ce70e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-element-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-element-tags.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-element-tags.png new file mode 100644 index 000000000..e43a7d795 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-element-tags.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-elements-list.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-elements-list.png new file mode 100644 index 000000000..271ac9bf6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-elements-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-labels.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-labels.png new file mode 100644 index 000000000..076e0a745 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-labels.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-material.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-material.png new file mode 100644 index 000000000..9197679e7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-quality.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-quality.png new file mode 100644 index 000000000..ee9e9027e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/order_list.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order_list.png new file mode 100644 index 000000000..72e70f3b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/order_list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/planning-view.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/planning-view.png new file mode 100644 index 000000000..de74811eb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/planning-view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/quality.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/quality.png new file mode 100644 index 000000000..1850f51b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/resource-assignment-generic.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/resource-assignment-generic.png new file mode 100644 index 000000000..3519a5087 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/resource-assignment-generic.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/resource-assignment-planning.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/resource-assignment-planning.png new file mode 100644 index 000000000..c4233780d Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/resource-assignment-planning.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/resource-assignment-search.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/resource-assignment-search.png new file mode 100644 index 000000000..cae142d81 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/resource-assignment-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/resource-assignment-specific.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/resource-assignment-specific.png new file mode 100644 index 000000000..8f7b1cba2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/resource-assignment-specific.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/resource-assignment.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/resource-assignment.png new file mode 100644 index 000000000..427d25b79 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/resource-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/resource-calendar.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/resource-calendar.png new file mode 100644 index 000000000..749c7b829 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/resource-load.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/resource-load.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/resource-load.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/resources_global.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/resources_global.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/resources_global.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/stretches.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/stretches.png new file mode 100644 index 000000000..d661a63f6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/stretches.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/tag-types-edition.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/tag-types-edition.png new file mode 100644 index 000000000..d366c09c2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/tag-types-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/tag-types-list.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/tag-types-list.png new file mode 100644 index 000000000..e7de5048c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/tag-types-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/tipos-avances.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/tipos-avances.png new file mode 100644 index 000000000..bb417f52c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/tipos-avances.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/virtual-resources.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/virtual-resources.png new file mode 100644 index 000000000..3a54f95d3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/virtual-resources.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/work-report-hours.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/work-report-hours.png new file mode 100644 index 000000000..568e9fed6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/work-report-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/work-report-type.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/work-report-type.png new file mode 100644 index 000000000..2549d8b5e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/work-report-type.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/work-report-types.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/work-report-types.png new file mode 100644 index 000000000..986f705aa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/work-report-types.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/worker-calendar.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/worker-calendar.png new file mode 100644 index 000000000..1227969b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/worker-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/worker-costcategory.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/worker-costcategory.png new file mode 100644 index 000000000..f330db68c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/worker-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/worker-criterions.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/worker-criterions.png new file mode 100644 index 000000000..a131a29fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/worker-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/images/worker-personal-data.png b/libreplan-webapp/src/main/webapp/help/fa_IR/images/worker-personal-data.png new file mode 100644 index 000000000..6a5033ba8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fa_IR/images/worker-personal-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/index.html b/libreplan-webapp/src/main/webapp/help/fa_IR/index.html new file mode 100644 index 000000000..7a9b74000 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/index.html @@ -0,0 +1,47 @@ + + + + + + +LibrePlan: User documentation + + + +
+

LibrePlan: User documentation

+ +images/logo.png +

Following document contains necessary help for using LibrePlan, the opensource web application for project planning.

+

This document is divided in three main sections:

+

First, global goals and behaviour.

+

Second, basic entities to understand the minimum concepts to use LibrePlan.

+

Finally, complete processes description to create orders, projects, project planning, resources assignment, advance assignment and result extraction.

+
    +
  1. Introduction
  2. +
  3. Criteria
  4. +
  5. Calendars
  6. +
  7. Progress
  8. +
  9. Resource Management
  10. +
  11. Orders and Order Elements
  12. +
  13. Task Planning
  14. +
  15. Resource Assignment
  16. +
  17. Work Reports
  18. +
  19. Labels
  20. +
  21. Materials Management
  22. +
  23. Quality Forms
  24. +
  25. User Management
  26. +
  27. Cost management
  28. +
  29. Reports
  30. +
  31. LDAP Configuration
  32. +
  33. Dashboards
  34. +
  35. Connectors
  36. +
  37. Scheduler
  38. +
  39. About
  40. +
  41. Subcontractor Work Description
  42. +
  43. PERT Chart
  44. +
  45. Task Subnets
  46. +
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fa_IR/lsr.css b/libreplan-webapp/src/main/webapp/help/fa_IR/lsr.css new file mode 100644 index 000000000..ced6c967a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fa_IR/lsr.css @@ -0,0 +1,250 @@ +/* +Author: Peter Parente +Date: 2008/01/22 +Version: 1.0 +Copyright: This stylesheet has been placed in the public domain - free to edit and use for all uses. +*/ + +body { + font: 0.8em Verdana, Tahoma, sans-serif; + background: #ffffff; + color: black; + margin: 2em; +} + +p.topic-title { + font-weight: bold; +} + +table.docinfo { + text-align: left; + margin: 2em 0; +} + +a[href] { + color: #436976; + background-color: transparent; +} + +a.toc-backref { + text-decoration: none; +} + +h1 a[href] { + color: #003a6b; + text-decoration: none; + background-color: transparent; +} + +a.strong { + font-weight: bold; +} + +img { + margin: 0; + border: 0; +} + +p { + margin: 0.5em 0 1em 0; + line-height: 1.5em; +} + +p a:visited { + color: purple; + background-color: transparent; +} + +p a:active { + color: red; + background-color: transparent; +} + +a:hover { + text-decoration: none; +} + +p img { + border: 0; + margin: 0; +} + +p.rubric { + font-weight: bold; + font-style: italic; +} + +h1.title { + color: #003a6b; + font-size: 250%; + margin-bottom: 0; +} + +h2.subtitle { + color: #003a6b; + border-bottom: 0; +} + +h1, h2, h3, h4, h5, h6 { + color: #555; + background-color: transparent; + margin: 0; + padding-top: 0.5em; +} + +h1 { + font-size: 160%; + margin-bottom: 0.5em; + border-bottom: 2px solid #aaa; +} + +h2 { + font-size: 140%; + margin-bottom: 0.5em; + border-bottom: 1px solid #aaa; +} + +h3 { + font-size: 130%; + margin-bottom: 0.5em; +} + +h4 { + font-size: 110%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h5 { + font-size: 105%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h6 { + font-size: 100%; + font-weight: bold; + margin-bottom: 0.5em; +} + +dt { + font-style: italic; +} + +dd { + margin-bottom: 1.5em; +} + +div.admonition, div.note, div.tip, div.caution, div.important, div.warning { + margin: 2em 2em; + padding: 0 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +div.important { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +div.caution { + background: transparent url('../images/caution.png') 10px 2px no-repeat; +} + +div.note { + background: transparent url('../images/note.png') 10px 2px no-repeat; +} + +div.tip { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-example { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-critical-example { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +p.admonition-title { + font-weight: bold; + border-bottom: 1px solid #aaa; + padding-left: 30px; +} + +table.docutils { + text-align: left; + border: 1px solid gray; + border-collapse: collapse; + width: 100%; + margin: 1.5em 0; +} + +table.docutils caption { + font-style: italic; +} + +table.docutils td, table.docutils th { + padding: 0.25em 0.5em; +} + +table.docutils th { + background-color: #dddddd; +} + +div.sidebar { + width: 33%; + float: right; + margin: 0 2em; + padding: 0 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +p.sidebar-title { + margin-bottom: 0; + color: #003a6b; + border-bottom: 1px solid #aaa; + font-weight: bold; +} + +p.sidebar-subtitle { + margin-top: 0; + font-style: italic; + color: #003a6b; +} + +div.figure { + text-align: center; +} + +div.figure img { + background: #f8f8f8; + padding: 0.25em; + border: 1px solid #888; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +div.figure img:hover { + background: #e0e0e0; +} + +div.figure p.caption { + text-align: center; + margin-top: 0.1em; + font-style: italic; + color: #444; +} + +pre.literal-block { + padding: 0.15em; + background: #f8f8f8; + border: 1px solid #dfdfdf; + border-left: 0.25em solid #dfdfdf +} diff --git a/libreplan-webapp/src/main/webapp/help/fr/01-introducion.html b/libreplan-webapp/src/main/webapp/help/fr/01-introducion.html new file mode 100644 index 000000000..6dce3a110 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/01-introducion.html @@ -0,0 +1,154 @@ + + + + + + +Introduction + + + +
+

Introduction

+ + +

L'objet de ce document est de décrire les fonctionnalités de LibrePlan et de fournir à l'utilisateur les informations nécessaires pour configurer et utiliser l'application.

+

LibrePlan est une application web Open Source destinée à la planification de projets. Son objet premier consiste à fournir une solution complète pour la gestion des projets d'une compagnie. +Pour tout renseignement plus spécifique dont vous pourriez avoir besoin sur ce logiciel, merci de contacter l'équipe de développement sur http://www.libreplan.com/contact/

+
+images/company_view.png +

Vue de la compagnie

+
+
+

Note

+

NdT : Dans la traduction de ce guide, on utilisera le terme de compagnie pour désigner aussi bien une entreprise qu'un organisme ayant à gérer des projets. De la même façon, on parlera de projet alors qu'on trouve dans la documentation en anglais alternativement les termes de projet et de commande, ce dernier terme ayant une connotation commerciale pas toujours applicable aux organismes tels que les administrations par exemple. C'est pour cela également que ce manuel utilisera systématiquement le terme de tâche alors qu'on trouve à certains endroits de la documentation anglaise ligne de commande. Pour résumer, nous nous intéressons à une compagnie, qu'il s'agisse d'un organisme ou d'une entreprise, planifiant des projets qui peuvent être des commandes commerciales provenant de clients, mais pas obligatoirement, eux-mêmes découpés en tâches qui peuvent correspondre à des lignes de commandes pour les entreprises.

+
+
+

Vue de la compagnie et perspectives

+

Comme on peut le voir dans la vue de la compagnie qui est l'écran principal de l'application (cf. capture d'écran ci-dessus), les utilisateurs peuvent accéder à la liste des projets planifiés, ce qui leur donne une vision globale des projets gérés et de l'utilisation des ressources de la compagnie. On peut changer de perspective en cliquant sur les icônes de la colonne de gauche :

+
    +
  • La perspective Planification des projets sur laquelle le programme s'ouvre et qui combine deux points de vue :

    +
    +
      +
    • Vue des projets et du temps consommé : en colonne de gauche, le nom de chaque projet suivi de ses dates de début et de fin. En face, à droite, les diagrammes de Gantt correspondant dans lesquels on retrouve ces dates ainsi qu'une comparaison entre le pourcentage d'avancement et le temps qui a été effectivement dédié à chaque projet. Ces informations donnent une image claire de ce que la compagnie fait à un moment donné.

      +
    • +
    • Graphiques : ce point de vue comporte à son tour deux onglets :

      +
      +
        +
      • Charge : graphique montrant l'utilisation faite par la compagnie de ses ressources. En utilisant les informations relatives à l'affectation des ressources aux projets, il en présente une synthèse. La ligne noire indique la capacité de ressources disponible chaque jour; le vert indique que l'affectation des ressources est inférieure à 100%, l'orange qu'elle est supérieure à 100%. À noter qu'il est possible que l'affectation soit inférieure à la capacité de ressources disponibles tout en étant en sur-affectation, ce qui signifie que certaines ressources sont sur-affectées alors que, globalement, on est en sous-affectation. La légende est rappelée en partie gauche.
      • +
      • Valeur gagnée : ce graphique s'affiche quand on clique sur l'onglet correspondant à gauche de la zone des graphiques. Il contient une courbe des indicateurs et métriques sélectionnés en partie gauche à l'aide des cases à cocher à la date choisie (date du jour par défaut).
      • +
      +
      +
    • +
    +
    +
  • +
+
+images/company_view_earned_value.png +

Graphique de la valeur gagnée

+
+
    +
  • La perspective Liste des projets : accessible en cliquant sur l'icône de même nom à gauche, elle présente la liste des projets assorties d'informations complémentaires : dates de début et de fin, client, budget total, heures dépensées et état. Les icônes en fin de ligne permettent de réaliser les opérations suivantes : modifier le projet, supprimer le projet, voir la planification détaillée de ce projet et créer un modèle de projet à partir de ce projet.
  • +
  • La perspective Charge des ressources : accessible en cliquant sur l'icône de même nom à gauche, elle affiche la liste des ressources de la compagnies (employés et machines) suivi de leur charge respective jour par jour en fonction de leurs affectations à des tâches spécifiques ou du fait d'une affectation générique quand les ressources satisfont la liste des critères correspondants. En-dessous, on retrouve le graphique de charge des ressources vu précédemment dans lequel on trouve un code couleur supplémentaire : jaune, quand les ressources sont affectées à exactement 100%.
  • +
  • La perspective Calendrier des ressources limitantes : accessible en cliquant sur l'icône de même nom à gauche, elle affiche la liste des ressources limitantes détenues par la compagnie et leur charge jour par jour.
  • +
+

On peut également accéder à ces perspectives en utilisant les sous-menus de même nom du menu "Vue de la compagnie".

+
+images/resources_global.png +

Vue d'ensemble des ressources

+
+
+images/order_list.png +

Structure de Découpage du Projet

+
+

La vue d'ensemble de la compagnie commentée précédemment est très semblable à la vue de planification d'un projet donné. On peut accéder à un projet de plusieurs façons :

+
    +
  • En faisant un clic droit sur le diagramme de Gantt du projet concerné puis en choisissant l'option de menu Planification
  • +
  • En accédant à la liste des projets et en cliquant sur l'icône des diagrammes de Gantt.
  • +
  • En créant un nouveau projet (icône avec un plus en haut à gauche) puis, une fois les informations saisies, en cliquant sur Valider.
  • +
+

Les perspectives suivantes sont disponibles pour un projet :

+
    +
  • Planification du projet: perspective dans laquelle l'utilisateur peut visualiser la planification des tâches, les dépendances, les jalons, etc. Voir la section Planification pour davantage d'informations.
  • +
  • Détails du projet : perspective dans laquelle un utilisateur peut modifier les détails d'un projet. Voir la section Projets pour davantage d'informations.
  • +
  • Charge des ressources : perspective dans laquelle l'utilisateur peut vérifier la charge des ressources affectées au projet. Le code couleur est le même que celui utilisé pour la vue d'ensemble de la compagnie : vert pour une charge inférieure à 100%, jaune pour une charge égale à 100% et rouge pour une charge supérieure à 100%. La charge peut provenir d'une tâche ou d'une liste de critères (affectation générique).
  • +
  • Affectation avancée : perspective dans laquelle l'utilisateur peut affecter des ressources au moyen d'options avancées : choix du nombre d'heures par jour ou utilisation de fonctions d'affectation. Voir la section Affectation de ressources pour davantage d'informations.
  • +
+

On accède à ces perspectives à l'aide des icônes de même nom à gauche de l'écran.

+
+
+

Qu'est-ce qui rend LibrePlan utile ?

+

LibrePlan a été développé pour être un outil de planification générique. Il s'appuie sur une série de principes déterminés grâce à l'analyse des problèmes rencontrés en planifiant des projets de l'industrie et pour lesquels les outils de planification existant n'apportaient pas de solution. Une autre motivation était d'offrir une alternative libre et complètement web aux outils de planification propriétaires existants.

+

Les principes les plus importants utilisé par LibrePlan sont :

+
    +
  • Vue d'ensemble multi-projets de la compagnie : LibrePlan est un programme qui a été développé spécifiquement pour fournir aux utilisateurs des informations sur les projets qui sont menés dans une compagnie, c'est pourquoi c'est un programme multi-projets. Il a été décidé que l'accent ne serait pas mis sur chaque projet individuellement. Toutefois, il existe de nombreuses vues spécifiques dont certaines ne concerne qu'un projet à la fois.
  • +
  • Gestion des vues : la vue d'ensemble de la compagnie ou la vue multi-projets amène les vues concernant les informations qui y sont stockées. Par exemple, la vue d'ensemble de la compagnie permet aux utilisateurs de voir les projets et de comparer leur état, de voir la charge globale des ressources de la compagnie et de conduire les projets. Les utilisateurs peuvent également voir la planification, la charge des ressources, la vue d'affectation avancée des ressources et la vue de modification des projets depuis la vue projet.
  • +
  • Critères : les critères sont des entités systèmes qui permettent de différencier les ressources (employés et machines) et les tâches. Les tâches imposent des critères que les ressources doivent remplir. C'est l'un des aspects les plus importants du programme car les critères sont à la base des affectations génériques et solutionnent l'un des problèmes les plus importants du secteur pour une compagnie : l'affectation de ressources et l'obtention d'estimations de charge sur le long terme.
  • +
  • Ressources : il en existe deux différentes sortes, les employés et les machines. L'affectation des employés aux tâches permet de planifier, de surveiller et de contrôler la charge de la compagnie. Les machines sont des ressources que l'on affecte de la même façon et qui répondent aux mêmes objectifs, à la nuance près qu'elles dépendent des employés qui les mettent en oeuvre.
  • +
  • Affectation de ressources : l'un des points clef du programme est d'avoir la possibilité d'effectuer deux sortes de désignation : spécifique ou générique. L'affectation générique repose sur des critères qui sont nécessaires pour réaliser une tâche et qui doivent être remplis par des ressources qui sont capables de les réaliser. Voici un exemple pour comprendre l'affectation générique : John Smith est un soudeur. Pour réaliser une tâche qui nécessite un soudeur, on pourra désigner John Smith mais on peut aussi laisser "LibrePlan" réaliser une affectation générique. Dans ce cas, il cherchera parmi tous les employés de la compagnie dotés du critère "soudeur" et disponibles, sans se soucier de savoir si c'est John Smith qui a été affecté à la tâche.
  • +
  • Contrôle de la charge de la compagnie : le programme offre la possibilité de contrôler facilement la charge des ressources de la compagnie. Ce contrôle est effectué au moyen et au long terme puisque les projets actuels et les futurs projets peuvent être gérés par le programme. "LibrePlan" possède des graphiques qui illustrent cette utilisation des ressources.
  • +
  • Étiquettes : ce sont des éléments qui sont utilisés pour qualifier les tâches du projet. Grâce à ces étiquettes, l'utilisateur peut regrouper les tâches par domaine pour pouvoir ensuite les contrôler domaine par domaine ou les retrouver plus facilement avec un filtre.
  • +
  • Filtres : comme on peut étiqueter ou attribuer des critères aux tâches et aux ressources, les filtres de critères ou d'étiquettes peuvent être utilisés. Ceci est très utile pour vérifier des informations catégorisées ou pour obtenir des rapports particuliers basés sur des critères ou des étiquettes.
  • +
  • Calendriers : les calendriers déterminent les heures de production disponibles pour les différentes ressources. L'utilisateur peut créer des calendriers généraux pour la compagnie ou entrer des caractéristiques pour des calendriers plus spécifiques, ce qui signifie que des calendriers peuvent être réalisés sur mesure pour des tâches ou des ressources particulières.
  • +
  • Projets et tâches : le travail demandé par les clients est traité par le programme comme un projet qui est organisé en tâches. Le projet et ses tâches sont attachés à une structure hiérarchique multi-niveaux. Cet arbre (SDP pour Structure de Découpage du Projet / WBS pour Work Breakdown Structure) est la base du travail de planification.
  • +
  • Avancement : le programment peut gérer plusieurs types d'avancement. Un projet peut être évalué avec un pourcentage qui indique son avancement, mais également en unités, selon le budget alloué, etc. Décider quel type d'avancement utiliser pour évaluer cet avancement de façon macroscopique est de la responsabilité de la personne qui gère la planification.
  • +
  • Tâches : les tâches sont les éléments de planification du programme. Elles sont utilisées pour programmer le travail qui doit être réalisé. Les caractéristiques les plus importantes des tâches sont qu'elles ont des dépendances entre elles et peuvent nécessiter que des critères soient remplis pour pouvoir y affecter des ressources.
  • +
  • Rapports de travail : ce sont les rapports des employés de la compagnie qui indiquent les heures travaillées mais également les tâches affectées aux heures durant lesquelles un employé a travaillé. Avec ces informations, le système peut calculer combien d'heures cela prendra pour finir une tâche et confronter ce nombre d'heures aux heures qui avaient été budgétisées. L'avancement peut être confronté au nombre d'heures déjà consommées.
  • +
+

En plus de ces fonctions, il existe d'autres fonctionnalités qui différencient LibrePlan des autres programmes du même type :

+
    +
  • Intégration avec les ERP : le programme peut importer directement depuis l'ERP de la compagnie les informations des projets, des employés, des comptes-rendus d'heures réalisées et des critères spécifiques.
  • +
  • Gestion de version : le programme peut gérer différentes versions de la planification tout en permettant aux utilisateurs d'accéder aux informations de chacune d'elles.
  • +
  • Gestion de l'historique : le programme ne supprime pas d'informations, il les rend simplement invalides de telle sorte que les utilisateurs peuvent retrouver ces informations plus anciennes en utilisant les filtres de dates.
  • +
+
+
+

Conventions d'utilisation

+
+

Information sur les formulaires

+

Avant de décrire les différentes fonctions associées aux modules les plus importants, nous devons donner une explication générale sur la façon de naviguer et sur les formulaires.

+

Essentiellement, il existe 3 types de formulaires :

+
    +
  • Formulaires avec un bouton Entrée. Ces formulaires font partie d'un ensemble plus grand et les modifications qui sont faites sont simplement mises en mémoire. Les changements ne sont appliqués qu'une fois que l'utilisateur enregistre explicitement tous les détails de l'écran auquel appartient le formulaire.
  • +
  • Formulaires avec les boutons Enregistrer et Annuler. Ces formulaires permettent la réalisation de 2 opérations distinctes. La première consiste à enregistrer les informations saisies ou modifiées puis à fermer la fenêtre actuelle tandis que la seconde se limite à fermer cette fenêtre sans enregistrer les modifications.
  • +
  • Formulaires avec les boutons Enregistrer et continuer, Enregistrer et Annuler. Ces formulaires permettent la réalisation de 3 opérations. La première enregistre et poursuit dans le formulaire actuel. La deuxième enregistre et ferme le formulaire. Enfin, la troisième ferme la fenêtre du formulaire sans enregistrer les modifications.
  • +
+
+
+

Icônes standards et boutons

+
    +
  • Modifier : en général, modifier un élément peut être réalisé en cliquant sur un icône représentant un crayon sur un bloc note.
  • +
  • Indenter à gauche : en général, ces opérations sont nécessaires pour des éléments d'un arbre qui doivent être déplacés dans des sous-niveaux. Cette opération peut être réalisée en cliquant sur l'icône représentant une flèche verte dirigée vers la droite.
  • +
  • Indenter à droite : en général, ces opérations sont nécessaires pour des éléments d'un arbre qui doivent être déplacés d'un niveau inférieur vers des niveaux supérieurs. Cette opération peut être réalisée en cliquant sur l'icône représentant une flèche verte dirigée vers la gauche.
  • +
  • Supprimer : les utilisateurs peuvent supprimer des informations en cliquant sur l'icône corbeille à papier.
  • +
  • Chercher : la loupe est l'icône qui indique que le texte entré à sa gauche est destiné à chercher des éléments.
  • +
+
+
+

Onglets

+

On trouve des formulaires de modification et d'administration qui sont représentés sous forme d'onglets. Cette méthode est utilisée pour organiser les informations d'une façon exhaustive en différentes sections qui peuvent être atteintes en cliquant sur le nom des différents onglets, les autres conservant leur état. Dans tous les cas, les options d'enregistrement et d'annulation affectent tous les sous-formulaires des différents onglets.

+
+
+

Raccourcis et aide contextuelle

+

Des informations complémentaires sont disponibles pour certains éléments. Elles apparaissent quand l'élément en question est survolé par le curseur de la souris pendant une seconde. +Les actions que l'utilisateur peut réaliser dans le programme sont indiquées sur les onglets boutons et dans les textes d'aide les concernant, les options du menu de navigation et les options des menus contextuels qui s'ouvrent quand on effectue un clic droit dans la zone de planification (diagrammes de Gantt). +Il existe également des raccourcis pour les principales opérations disponibles en double-cliquant sur les éléments des listes. Le curseur et la touche entrée peuvent également être utilisés, notamment dans les formulaires.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fr/02-criterios.html b/libreplan-webapp/src/main/webapp/help/fr/02-criterios.html new file mode 100644 index 000000000..c21034b33 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/02-criterios.html @@ -0,0 +1,70 @@ + + + + + + +Critères + + + +
+

Critères

+ + +

Les critères sont des éléments qui sont utilisés pour catégoriser les ressources et les tâches. Les tâches nécessitent des critères et les ressources les satisfont. Voici un exemple d'utilisation des critères : une ressource est dotée du critère "soudeur" (c'est-à-dire que la ressource satisfait à la catégorie "soudeur") et une tâche nécessite le critère "soudeur" pour être menée à bien. Au résultat, quand les ressources sont affectées aux tâches, les employés dotés du critère "soudeur" sont utilisés lorsqu'on procède à une affectation générique (ce n'est pas applicable pour une affectation spécifique). Voir le chapitre concernant l'affectation des ressources pour en savoir plus sur les différentes sortes d'affectation.

+

Plusieurs opérations peuvent être réalisées à l'aide des critères :

+
    +
  • Administration des critères
  • +
  • Affectation de critères à des ressources
  • +
  • Affectation de critères à des tâches
  • +
  • Filtrage d'entités selon les critères. Les tâches et les projets peuvent être filtrés selon des critères en vue de réaliser une opération.
  • +
+

Seule la première de ces opérations sera expliquée dans cette section. Les deux sortes d'affectations seront traitées ultérieurement, l'affectation de ressources dans le chapitre "gestion des ressources" et la fonction de filtrage dans le chapitre "planification des tâches".

+
+

Administration des critères

+

On accède à l'administration des critères depuis le menu Ressources, sous-menu Critères :

+
+images/menu.png +

Onglets du menu de premier niveau

+
+
+images/lista-criterios.png +

Liste des critères

+
+

On accède au formulaire de création/modification en cliquant sur le bouton Créer. Un critère peut être modifié en cliquant sur l'icône de modification.

+
+images/edicion_criterio.png +

Modifier un critère

+
+

Les opérations suivantes peuvent être réalisées en utilisant le formulaire de modification des critères montré dans l'image précédente :

+
    +
  • Modifier le nom du critère
  • +
  • Indiquer le type du critère :
      +
    • type générique : le critère peut être utilisé aussi bien pour les machines que pour les employés.
    • +
    • type employé : le critère ne peut être utilisé que pour les employés.
    • +
    • type machine : le critère ne peut être utilisé que pour les machines.
    • +
    +
  • +
  • Indiquer si, pour le type de critère sélectionné, plusieurs valeurs peuvent être affectées en même temps ou si on est limité à une seule. Par exemple, une ressource qui remplirait deux critères : soudeur et opérateur tourneur.
  • +
  • Indiquer si le critère est hiérarchique ou non. Si c'est le cas, un critère affecté à un élément est également affecté aux sous-éléments. Un bon exemple est le critère de localisation: un employé auquel on attribue le critère de localisation Paris possédera automatiquement le critère de localisation France.
  • +
  • Indiquer si le critère est activé ou ou pas. C'est de cette manière que l'on peut supprimer des critères. Étant donné qu'un critère ne peut pas être modifié une fois qu'il a été créé et qu'il est utilisé dans les données historisées, le critère doit rester dans le système. Il peut être désactivé pour éviter qu'il n'apparaisse dans les différents éléments de choix lors de nouvelles affectations.
  • +
  • Décrire le critère
  • +
  • Ajouter de nouvelles valeurs. Une entrée texte suivie du bouton Ajouter se trouve dans la seconde partie du formulaire.
  • +
+

Dans la liste qui suit, on peut :

+
    +
  • monter ou descendre un critère dans la liste des critères actuels avec les icônes flèches gauche et droite ou par drag'n'drop
  • +
  • décaler le critère vers un niveau supérieur ou inférieur si le type de critère est hiérarchique à l'aide des icônes flèches avec barre droite et gauche ou par drag'n'drop.
  • +
  • supprimer une valeur de critère de la liste.
  • +
+

Le formulaire de gestion des critères se comporte comme les formulaires dotés des 3 opérations (enregistrer, enregistrer et continuer, fermer) décrits dans l'introduction.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fr/03-calendarios.html b/libreplan-webapp/src/main/webapp/help/fr/03-calendarios.html new file mode 100644 index 000000000..3b3097401 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/03-calendarios.html @@ -0,0 +1,200 @@ + + + + + + +Calendriers + + + +
+

Calendriers

+ + +

Les calendriers sont des entités du programme qui définissent la capacité de charge des différentes ressources. Un calendrier comprend une série de jours de l'année, chaque jour étant divisé en heures de travail.

+

Par exemple, un jour férié peut avoir 0 heures de disponibles tandis que si le nombre d'heures de travail d'un jour ouvré est 8, ce sera ce nombre d'heures qui sera indiqué comme temps disponible pour ce jour-là.

+

Il existe deux façon d'informer le système du nombre d'heures disponibles pour un jour donné :

+
    +
  • Selon le jour de la semaine. Par exemple, le lundi, les gens travaillent généralement 8 heures.
  • +
  • Selon des exceptions. Par exemple, 10 heures de travail le lundi 30 janvier.
  • +
+
+

Gestion des calendriers

+

Le système de calendrier est hiérarchique, ce qui signifie que des calendriers de base ou des calendriers basés sur eux peuvent être créés, par le biais d'une structure hiérarchique. Un calendrier basé sur un calendrier de plus haut niveau dans l'arborescence prendra en compte les attendus journaliers et les exceptions sauf s'ils ont été explicitement modifiés pour ce calendrier. Les concepts suivants doivent être compris pour gérer les calendriers :

+
    +
  • chaque jour est indépendant et chaque année possède des jours différents. Par exemple, si le 8 décembre 2009 est férié, ceci ne signifie pas qu'en 2010, le 8 décembre sera signalé a priori comme jour férié.
  • +
  • les jours ouvrés sont basés sur les jours de la semaine. Par exemple, s'il est normal de travailler 8 heures le lundi, tous les lundis de toutes les semaines de toutes les années auront 8 heures de disponibles.
  • +
  • des exceptions ou des périodes d'exception peuvent être indiquées. Par exemple, il est possible d'affecter un nombre d'heures disponibles différent de la règle générale pour ce jour de la semaine à un ou plusieurs jours particuliers.
  • +
+
+images/calendar-administration.png +

Gestion des calendriers

+
+

On peut accéder à la gestion des calendriers via le menu Ressources, sous-menu Calendriers. On peut alors :

+
    +
  1. Créer un nouveau calendrier à partir de zéro.
  2. +
  3. Créer un calendrier basé sur un autre.
  4. +
  5. Créer un calendrier copie d'un autre.
  6. +
  7. Modifier un calendrier existant.
  8. +
+
+

Créer un nouveau calendrier

+

De façon à créer un nouveau calendrier, cliquer sur le bouton "Créer". Le système affiche alors un formulaire dans lequel on renseigne le nom de calendrier choisi puis on sélectionne l'onglet sur lequel on veut travailler :

+
    +
  • Exceptions : pour signaler des exceptions

    +
    +
      +
    • Choisir un jour du calendrier (Date de début) soit en saisissant la date, soit en cliquant dans le calendrier à gauche
    • +
    • Choisir la date de fin de la période d'exception (qui peut être identique à celle de la date de début si l'exception ne dure qu'un seul jour).
    • +
    • Indiquer le nombre d'heures et minutes travaillés (Réservation / Effort normal)
    • +
    • Indiquer le nombre d'heures supplémentaires autorisé si la case à cocher Illimitée n'est pas cochée
    • +
    • Choisir le type d'exception. Les types disponibles sont : vacances, maladie, grève, jour férié, demi-journée de vacances, jour de travail et jour non travaillé (RESOURCE_HOLIDAY, LEAVE, STRIKE, BANK_HOLIDAY, HALF_DAY_HOLIDAY, WORKING_DAY et NOT_WORKING_DAY). Le type NO_EXCEPTION ne peut pas être choisi.
    • +
    • Enregistrer en cliquant sur Créer une exception. Le calendrier à gauche et la liste en dessous sont mis à jour.
    • +
    • Supprimer jour par jour des exceptions existantes depuis la liste en cliquant sur l'icône poubelle. Le calendrier à gauche et la liste sont mis à jour.
    • +
    +
    +
  • +
  • Semaine de travail : pour choisir les heures travaillées par jour de la semaine

    +
    +
      +
    • Indiquer les heures et minutes disponibles pour chaque jour de la semaine (lundi, mardi, mercredi, jeudi, vendredi, samedi et dimanche).
    • +
    • Indiquer les heures et minutes d'heures supplémentaires disponibles pour chaque jour de la semaine (lundi, mardi, mercredi, jeudi, vendredi, samedi et dimanche) si la case Illimitée n'est pas cochée.
    • +
    • Enregistrer en cliquant sur Créer une nouvelle semaine de travail : renseigner au moins, soit la date de début d'applicabilité, soit la date de fin d'applicabilité puis cliquer sur Créer (ou Annuler éventuellement). La plage apparaît alors dans la liste en dessous.
    • +
    • Modifier les dates d'applicabilité dans les champs date de la liste.
    • +
    • Supprimer des listes de distributions d'heures existantes depuis la liste en cliquant sur l'icône poubelle.
    • +
    +
    +
  • +
+

De cette façon, il est possible de personnaliser totalement les calendriers selon ses besoins. Il faut cliquer sur le bouton Enregistrer ou Enregistrer et continuer pour conserver les modifications faites dans le formulaire.

+
+images/calendar-edition.png +

Modifier des calendriers

+
+
+images/calendar-exceptions.png +

Ajouter une exception aux calendriers

+
+
+
+

Créer des calendriers dérivés

+

Un calendrier dérivé est un calendrier créé à partir d'un calendrier existant. Cela signifie qu'il possède toutes les caractéristiques d'un original, mais qu'il peut ensuite être modifié de façon à en adapter certaines.

+

Par exemple, il est possible de créer un calendrier de base pour la France puis un calendrier dérivé pour inclure les jours fériés spécifiques de l'Alsace en plus de ceux définis dans le calendrier de base.

+

Il est important de signaler que toute modification faite dans le calendrier originel sera immédiatement répercutée sur les calendriers dérivés sauf si ces calendriers dérivés définissent eux-mêmes des exceptions qui surchargent ces modifications. Admettons que le calendrier France possède un jour de travail de 8 heures le 29 mars 2013 alors que le calendrier Alsace (calendrier dérivé) n'a pas d'heures de travail ce jour là car c'est un jour férié. Si le calendrier France était modifié pour n'avoir plus que 4 heures tous les jours de la semaine du 25 au 29 mars 2013, le calendrier Alsace serait également modifié de sorte de n'avoir plus que 4 heures de disponibles par jour pour cette semaine, sauf pour le 29 mars qui n'aurait aucune heure de travail pour la raison expliquée plus haut.

+
+images/calendar-create-derived.png +

Créer un calendrier dérivé

+
+

Pour créer un calendrier dérivé, il faut :

+
    +
  • Aller dans le menu Ressources
  • +
  • Cliquer le sous-menu Calendriers
  • +
  • Choisir un des calendriers comme étant la base d'un calendrier dérivé et cliquer sur l'icône Créer un calendrier dérivé : s'affiche un formulaire de modification similaire à celui de création d'un calendrier sauf qu'il contient des exceptions et des heures par jour de la semaine identiques à ceux du calendrier originel.
  • +
+
+
+

Créer un calendrier par copie

+

Un calendrier copié est un calendrier créé comme une copie exacte d'un autre calendrier existant. Il possède les mêmes données mais il est possible de les modifier ensuite.

+

La différence entre un calendrier copié et un calendrier dérivé tient aux modifications apportées à l'original. Si l'original est modifié, la copie n'est pas affectée. A l'inverse, les calendriers dérivés sont affectés par les modifications faites à l'original.

+

Pour créer un calendrier copié dans le programme, il faut faire ce qui suit :

+
    +
  • Aller dans le menu Ressources
  • +
  • Cliquer le sous-menu Calendriers
  • +
  • Choisir un des calendriers à copier cliquer sur l'icône Créer une copie : s'affiche un formulaire de modification similaire à celui de création d'un calendrier sauf qu'il contient des exceptions et des heures par jour de la semaine identiques à ceux du calendrier copié.
  • +
+
+
+

Calendrier par défaut

+

L'un des calendriers existants du système peut être défini comme le calendrier par défaut qui s'appliquera à toute entité faisant appel à des calendriers (ressources, projets et tâches).

+

Ce qui suit doit être fait pour configurer un calendrier par défaut :

+
    +
  • Aller au menu Configuration
  • +
  • Cliquer sur le sous-menu Réglages principaux
  • +
  • Renseigner le champ Calendrier par défaut en saisissant le nom du calendrier et en s'aidant de la liste déroulante qui apparaît (ou en la faisant apparaître en cliquant sur l'icône loupe).
  • +
  • Cliquer sur Enregistrer.
  • +
+
+images/default-calendar.png +

Créer un calendrier par défaut

+
+
+
+

Affecter un calendrier à des ressources

+

Les ressources ne peuvent être utilisées, c'est-à-dire disposer d'heures de travail disponibles, que si un calendrier activé sur la période considérée lui a été affecté. Si ce n'est pas fait explicitement, c'est le calendrier par défaut qui est affecté avec une période d'activation qui démarre à la création de la ressource et sans date d'expiration.

+
+images/resource-calendar.png +

Calendrier des ressources

+
+

Il reste cependant possible de supprimer le calendrier affecté par défaut et d'en choisir un autre, puis de le personnaliser totalement sous forme d'un calendrier dérivé.

+

Les étapes suivantes doivent être effectuées pour affecter un calendrier :

+
    +
  • Dans le menu Ressources, choisir le sous-menu correspondant à la ressource concernée (employés ou machines)

    +
  • +
  • Cliquer sur le nom de la ressource dans la liste ou cliquer sur l'icône Modifier.

    +
  • +
  • Choisir l'onglet "Calendrier"

    +
  • +
  • Un calendrier avec des onglets relatifs aux exceptions (onglet actif), à la semaine de travail et aux périodes d'activation va ensuite apparaître :

    +
    +
      +
    • exceptions : choisir le type d'exception et une période à laquelle elle s'applique de façon à inclure des vacances, des jours fériés, des jours de travail différents, etc.
    • +
    • semaine de travail : modifier les heures travaillées durant les différents jours de la semaine (lundi, mardi, etc.).
    • +
    • périodes d'activation : créer de nouvelles périodes d'activation qui reflètent les dates de début et de fin des contrats associés aux ressources. Voir l'image suivante.
    • +
    +
    +
  • +
  • Cliquer sur Enregistrer pour conserver les modifications.

    +
  • +
  • Cliquer sur Supprimer le calendrier pour changer le calendrier par défaut dont la ressource hérite. Apparaît alors la liste des calendriers disponibles. En choisir un et cliquer sur Enregistrer.

    +
  • +
+
+images/new-resource-calendar.png +

Affecter un nouveau calendrier à des ressources

+
+
+
+

Affecter des calendriers à des projets

+

Les projets peuvent avoir un calendrier différent du calendrier par défaut. Procéder comme suit :

+
+
    +
  • Accéder à la liste des projets dans la vue globale de la compagnie.
  • +
  • Modifier le projet en question (en cliquant dessus ou sur l'icône Modifier).
  • +
  • Accéder à l'onglet Informations générales, zone "Configuration du calendrier" en haut à droite.
  • +
  • Choisir le calendrier à affecter via le menu déroulant "Calendrier".
  • +
  • Cliquer sur l'icône en forme de disquette pour enregistrer la modification.
  • +
+
+
+
+

Affecter des calendriers à des tâches

+

De la même façon que des calendriers peuvent être affectés à des ressources ou des projets, ils peuvent également être affectés à des tâches planifiées. Ceci permet de définir des calendriers spécifiques pour des étapes particulières d'un projet. Pour ce faire, il est nécessaire de :

+
+
    +
  • Accéder à la planification d'un projet.
  • +
  • Faire un clic droit sur la tâche à laquelle un calendrier doit être affecté.
  • +
  • Choisir le menu "Affecter un calendrier".
  • +
  • Choisir le calendrier à affecter à la tâche.
  • +
  • Cliquer sur Valider.
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fr/04-avances.html b/libreplan-webapp/src/main/webapp/help/fr/04-avances.html new file mode 100644 index 000000000..015b29a1b --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/04-avances.html @@ -0,0 +1,101 @@ + + + + + + +Avancement + + + +
+

Avancement

+ + +

L'avancement d'un projet ou d'une tâche permet d'estimer la façon dont sera respectée la date d'achèvement estimée.

+

En général, l'avancement ne peut pas être mesuré automatiquement; le degré d'achèvement d'une tâche ou du projet pourra être déterminé en ayant recours à l'expertise d'un membre aguerri de l'équipe à l'aide d'une check-list.

+

Il faut noter qu'il existe une différence significative entre la consommation des heures affectées à une tâche ou un projet et le degré d'avancement de cette tâche ou de ce projet. Même si le nombre d'heures consommées peut correspondre peu ou prou à ce qu'il devrait être, le projet peut être en avance ou en retard par rapport au degré d'avancement prévu le jour où il est évalué. Plusieurs situations peuvent être rencontrées :

+
    +
  • Moins d'heures que prévu ont été consommées et, dans le même temps, le projet est en retard par rapport à ce qui avait été prévu parce que l'avancement est moindre que prévu au moment du contrôle.
  • +
  • Moins d'heures que prévu ont été consommées et, dans le même temps, le projet est en avance par rapport à ce qui avait été prévu parce que l'avancement est supérieur aux estimations au moment du contrôle.
  • +
  • Plus d'heures que prévu ont été consommées et, dans le même temps, le projet est en retard par rapport à ce qui avait été prévu au moment du contrôle.
  • +
  • Plus d'heures que prévu ont été consommées et, dans le même temps, le projet est en avance par rapport à ce qui avait été prévu au moment du contrôle.
  • +
+

Il est possible de détecter ces situations à partir de la planification et des informations relatives à l'avancement et à la consommation effective des heures. Ce chapitre a pour objet d'expliquer la façon de saisir ces informations afin de pouvoir contrôler l'avancement d'un projet.

+

Le contrôle de l'avancement repose sur la façon dont les utilisateurs veulent procéder et jusqu'à quel niveau de détail ils veulent aller. Si les utilisateurs ne veulent contrôler que l'avancement global du projet, ils ne saisiront que les informations relatives aux tâches de premier niveau. S'ils veulent une surveillance plus fine tenant compte des relations entre les tâches, ils devront saisir des informations d'avancement de granularité plus fine, charge au système de remonter ces informations aux niveaux supérieurs.

+
+

Gérer les types d'avancement

+

Toutes les compagnies ont des besoins différents au moment de surveiller l'avancement des projets, et plus encore quand il s'agit des tâches qui les composent. C'est la raison pour laquelle ont été introduits les "types d'avancement". Ils offrent la possibilité de mesurer l'avancement des tâches différentes façons. Par exemple, une tâche peut être mesurée en terme de pourcentage, mais dans le même temps, ce pourcentage d'avancement peut être converti en avancement en tonnes par rapport au poids sur lequel on s'est entendu avec le client.

+

Un type d'avancement reçoit un nom, une valeur maximum par défaut et une valeur de précision :

+
    +
  • Nom : c'est un nom significatif qui permet aux utilisateurs de faire leur choix en fonction de ce qu'ils veulent mesurer.
  • +
  • Valeur maximum : c'est la valeur maximum d'avancement qui peut être affectée à une tâche ou un projet. Par exemple, en travaillant avec des tonnes, si le nombre maximal nominal de tonnes à produire est 4000, et qu'aucune tâche n'aura besoin de plus de 4000 tonnes d'un quelconque matériau, la valeur maximum sera fixée à 4000.
  • +
  • Valeur de précision : la valeur des incréments autorisés pour le type d'avancement à créer. Par exemple, si l'avancement en tonnes doit être mesuré en valeurs arrondies, la valeur de précision devra être fixée à 1. A partir de ce moment, seules des mesures d'avancement avec des nombres entiers pourront être saisies, par exemple 1, 2, 300, etc.
  • +
+

Il existe 3 types d'avancement par défaut:

+
    +
  • Pourcentage : un type d'avancement général qui permet de mesurer l'avancement d'un projet ou d'une tâche sur la base d'un pourcentage d'achèvement estimé. Par exemple, une tâche est complétée à 30% sur les 100% estimés pour un jour donné.
  • +
  • Unité : un type d'avancement générique qui permet de mesurer l'avancement en unités sans avoir besoin de définir plus précisément ces unités. Par exemple, pour une tâche consistant à créer 3000 unités, l'avancement pourrait être de 500 unités sur un total de 3000.
  • +
  • Sous-traitant : mesure fournie par un sous-traitant.
  • +
+
+images/tipos-avances.png +

Gestion des types d'avancement

+
+

Il est possible de créer de nouveaux types d'avancement de la façon suivante :

+
    +
  • Cliquer sur le menu Ressources
  • +
  • Cliquer sur le sous-menu Types d'avancement
  • +
  • La liste des types d'avancement s'affiche. Cliquer sur le nom du type d'avancement ou sur l'icône Modifier pour effectuer une modification ou cliquer sur le bouton Créer pour en créer un nouveau.
  • +
  • Un formulaire contenant les informations suivantes apparaît :
      +
    • Nom du type d'avancement.
    • +
    • Case à cocher Activé qui permet de supprimer un type d'avancement si elle est décochée. Dans ce cas Ce type n'apparaît plus dans les choix proposés.
    • +
    • Valeur maximum par défaut acceptée par le type d'avancement.
    • +
    • Valeur de précision pour le type d'avancement.
    • +
    • Une information non modifiable précisant s'il s'agit d'un avancement prédéfini par LibrePlan (predefined) ou créé par l'utilisateur (user). Seuls les seconds sont modifiables.
    • +
    • Une case à cocher indiquant que l'avancement doit figurer en pourcentages.
    • +
    +
  • +
+
+
+

Saisir l'avancement à une date donnée

+

Comme indiqué plus haut, les mesures d'avancement peuvent être saisies au niveau du projet ou des tâches. Le choix est de la responsabilité des utilisateurs.

+

Avant de s'occuper des mesures d'avancement, il faut d'abord associer le type d'avancement choisi avec le projet considéré. Par exemple, un avancement en pourcentage pour mesurer les progrès faits sur la tâche entière ou un taux d'avancement entériné avec le client si les mesures d'avancement entérinées avec le client doivent être saisies dans le futur.

+
+images/avance.png +

Écran de saisie de l'avancement avec visualisation d'un graphique.

+
+

Ce qui suit doit être fait pour saisir des mesures d'avancement :

+
    +
  • Pour un projet, cliquer sur le projet depuis la liste des projets : menu Planification, sous-menu Projets. Cliquer sur le projet puis sur l'onglet Avancement.
  • +
  • Pour une tâche, faire un clic droit sur la tâche dans la perspective planification et choisir le sous-menu Affecter un avancement.
  • +
+

Ensuite, il faut :

+
    +
  • Si nécessaire, cliquer sur Ajouter un nouveau type d'avancement, choisir le type et adapter les réglages si nécessaire.
  • +
  • Sélectionner l'avancement choisi dans le tableau s'il y en a plusieurs.
  • +
  • Cliquer sur Ajouter une mesure
  • +
  • Renseigner la valeur et modifier éventuellement la date.
  • +
  • Le système enregistre automatiquement les données saisies.
  • +
+
+
+

Comparaison des avancement pour un projet

+

Il est possible de comparer visuellement les différents types d'avancement d'un projet sur la base des mesures prises. Cliquer sur le projet concerné depuis la liste des projets : menu Planification, sous-menu Projets. Puis aller dans l'onglet Avancement.

+

Tous les types d'avancements associés sont affichés dans le tableau. En cochant la case "Montrer" correspondante, la courbe de ce type d'avancement apparaît sur le graphique.

+
+images/contraste-avance.png +

Comparaison de plusieurs types d'avancement.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fr/05-recursos.html b/libreplan-webapp/src/main/webapp/help/fr/05-recursos.html new file mode 100644 index 000000000..092f0572c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/05-recursos.html @@ -0,0 +1,201 @@ + + + + + + +Gestion des ressources + + + +
+

Gestion des ressources

+ + +

Le programme gère deux types différents de ressources : les employés et les machines.

+

Les employés sont ceux de la compagnie qui réalisent des tâches. Leurs principales caractéristiques sont :

+
    +
  • Ils satisfont à un ou plusieurs critères génériques ou d'employés.
  • +
  • Ils peuvent être spécifiquement affectés à une tâche.
  • +
  • Ils peuvent être affectés, via une affectation générique, à une tâche qui requiert un critère de ressource qu'ils détiennent.
  • +
  • Ils peuvent avoir un calendrier par défaut ou spécifique si nécessaire.
  • +
+

Les ressources machines sont les machines de l'entreprise. Leurs principales caractéristiques sont :

+
    +
  • Elles satisfont à un ou plusieurs critères génériques ou de machine.
  • +
  • Elles peuvent être spécifiquement affectées à une tâche.
  • +
  • Elles peuvent être affectées, via une affectation générique, à une tâche qui requiert un critère de machine qu'elles détiennent.
  • +
  • Elles ont un calendrier par défaut ou spécifique si nécessaire.
  • +
  • Elles sont dotées d'une valeur alpha configurable qui représente le ratio machine/employé à appliquer pour les mettre en oeuvre.
      +
    • la valeur alpha représente le temps humain consommé pour faire fonctionner la machine. Par exemple, une valeur alpha de 0,5 signifie que 8 heures de fonctionnement de la machine nécessitent 4 heures du temps d'un employé.
    • +
    • il est possible d'affecter spécifiquement une valeur alpha à un employé, c'est-à-dire en sélectionnant l'employé qui sera affecté à la machine pour ce pourcentage de temps.
    • +
    • il est également possible d'effectuer une affectation générique via un critère, de telle façon que le pourcentage d'utilisation sera affecté à tout employé qui remplit le critère et est disponible. Cette affectation générique fonctionne de la même façon que l'affectation générique des tâches qui a déjà été expliquée.
    • +
    +
  • +
+

Il est possible de créer, modifier et désactiver (jamais supprimer définitivement) des employés ou des machines en allant dans l'onglet "Ressources". Cet onglet possède les sous-menus suivants :

+
    +
  • Employés : affiche la liste des employés à partir de laquelle il est possible de les créer ou de les modifier.
  • +
  • Machines : affiche la liste des machines à partir de laquelle il est possible de les créer ou de les modifier.
  • +
+
+

Gestion des employés

+

La gestion des employés est réalisée en allant dans l'onglet "Ressources", sous-menus "Employés". Il est alors possible de modifier chaque employé en cliquant sur l'icône "Modifier" correspondante de la liste qui s'affiche alors.

+

Ceci fait, les onglets suivants sont accessibles :

+
    +
  1. Onglet Données personnelles de l'employé. Cet onglet permet de modifier les détails de base identifiant l'employé.
      +
    • Code si la case à cocher "Générer le code" n'est pas activée
    • +
    • Prénom
    • +
    • Nom
    • +
    • Identifiant
    • +
    • Type de ressource (normale ou limitante) modifiable seulement lors de la création (voir la section correspondante).
    • +
    +
  2. +
+

Vient ensuite la possibilité de lier cet employé à un utilisateur existant ou à créer en modifiant les boutons radio. +Dans le premier cas, un filtre de recherche permettra d'identifier l'utilisateur concerné. Dans le second, il faudra saisir :

+
+
    +
  • le nom d'utilisateur à créer
  • +
  • son mot de passe et la confirmation associée
  • +
  • l'adresse de messagerie associée.
  • +
+
+
+images/worker-personal-data.png +

Modification des détails personnels de l'employé

+
+
    +
  1. Onglet Critère d'affectation. C'est là que les critères remplis par l'employé peuvent être affectés. Il est important que l'employé satisfasse vraiment les critères indiqués pour que le programme soit utilisé au mieux. Procéder comme suit pour affecter des critères :
      +
    1. Cliquer sur le bouton "Ajouter un critère".
    2. +
    3. Chercher le critère à ajouter et choisir le plus approprié.
    4. +
    5. Choisir la date de début du critère à laquelle il devient applicable.
    6. +
    7. Choisir la date de fin d'applicabilité du critère. Cette date n'est pas obligatoire.
    8. +
    9. Cliquer sur le bouton "Enregistrer et continuer".
    10. +
    +
  2. +
+

Cliquer sur l'icône "Supprimer" (poubelle) pour supprimer l'affectation du critère correspondant.

+

La case à cocher permet de limiter l'affichage des critères à ceux qui sont actuellement détenus.

+
+images/worker-criterions.png +

Associer des critères à des employés

+
+
    +
  1. Onglet Calendrier. Cet onglet peut être utilisé pour configurer un calendrier spécifique à l'employé. Tous les employés ont un calendrier affecté par défaut; cependant, il est possible d'affecter un calendrier spécifique à chacun en dérivant un calendrier existant puis en apportant les modifications nécessaires.
  2. +
+
+images/worker-calendar.png +

Onglet calendrier pour une ressource

+
+
    +
  1. Onglet Catégories de coût. Cet onglet peut être utilisé pour configurer la catégorie de coût à laquelle un employé correspond à un moment donné. Ces informations sont utilisés ensuite pour calculer les coûts relatifs à un employé dans un projet.
  2. +
+
+images/worker-costcategory.png +

Onglet catégorie de coût pour une ressource

+
+

L'affectation de ressource est expliquée dans la section affectation des ressources.

+
+
+

Gestion des machines

+

Les machines sont des ressources permettant de remplir tous types d'objectifs; de plus, comme pour les employés, les machines peuvent être gérées et affectées à des tâches. L'affectation de ressources est décrite dans la section affectation des ressources où les spécificités des machines sont expliquées.

+

Les machines sont gérées via l'entrée de menu "Ressources", sous-menu "Machines". S'affiche alors la liste des machines de la compagnie. À partir de cette liste, il est possible de créer, de modifier ou de supprimer une machine.

+

Quand on modifie des machines, s'affiche une série d'onglets qui peuvent être utilisés pour gérer différents aspects :

+
    +
  1. Onglet détails des machines. Cet onglet peut être utilisé pour modifier les détails d'identification des machines. Les détails qui peuvent être modifiés sur cet onglet sont :
      +
    • Code de la machine si la case à cocher "Générer le code" n'est pas activée
    • +
    • Nom de la machine
    • +
    • Description de la machine
    • +
    • Type de ressource (normale ou limitante) modifiable seulement lors de la création (voir la section correspondante).
    • +
    +
  2. +
+
+images/machine-data.png +

Modifier les détails de la machine

+
+
    +
  1. Onglet Critères d'affectation. Comme expliqué dans la section précédente relatives aux employés, cet onglet est utilisé pour ajouter des critères qui sont remplis par la machine. Il existe deux types de critères qui peuvent être affectés aux machines : machine ou générique. Les critères des employés ne peuvent pas être affectés aux machines. Procéder comme suit pour affecter des critères :
      +
    1. Cliquer sur le bouton "Ajouter".
    2. +
    3. Chercher le critère à ajouter et choisir le plus approprié.
    4. +
    5. Choisir une date de début d'application du critère.
    6. +
    7. Choisir une date de fin d'application du critère. Cette date n'est pas obligatoire.
    8. +
    9. Cliquer sur le bouton "Enregistrer et continuer".
    10. +
    +
  2. +
+

Cliquer sur l'icône "Supprimer" (poubelle) pour supprimer l'affectation du critère correspondant.

+

La case à cocher permet de limiter l'affichage des critères à ceux qui sont actuellement détenus.

+
+images/machine-criterions.png +

Affecter des critères aux machines

+
+
    +
  1. Onglet Calendrier. Cet onglet peut être utilisé pour affecter un calendrier spécifique à une ressource machine. Toutes les machines possèdent un calendrier par défaut; il est cependant possible d'affecter un calendrier spécifique à chacune en se basant sur un calendrier existant.
  2. +
+
+images/machine-calendar.png +

Affecter des calendriers à des machines

+
+
    +
  1. Onglet Configuration. Sur cet onglet, il est possible de configurer le ratio machine / employés. Une machine possède une valeur alpha qui indique le ratio machine/ressources impliquées. Comme cela a déjà été mentionné, une valeur alpha de 0,5 indique que 0,5 heures d'un employé sont utilisées pour chaque heure complète de fonctionnement d'une machine. Le système, en s'appuyant sur la valeur alpha, affecte automatiquement des employés qui sont en quelque sorte associés avec une machine une fois que celle-ci a été affectée à une tâche. Associer un employé à une machine peut être fait de 2 façons :
      +
    1. en affectant spécifiquement une plage de dates durant lesquelles un employé est affecté à cette machine. C'est une affectation spécifique qui fait que le système affecte automatiquement des heures à l'employé quand l'utilisation de la machine est planifiée.
    2. +
    3. en affectant spécifiquement des critères à remplir par les employés qui sont affectés aux machines. Ceci permet une affectation générique d'employés qui satisfont aux critères.
    4. +
    +
  2. +
+
+images/machine-configuration.png +

Configuration des machines

+
+
    +
  1. Onglet Catégories de coût. Cet onglet peut être utilisé pour configurer la catégorie de coûts à laquelle correspond la machine à un moment donné. Ces détails sont utilisés ensuite pour calculer les coûts liés à une machine dans un projet.
  2. +
+
+images/machine-costcategory.png +

Affecter des catégories de coûts à des machines

+
+
+
+

Groupes d'employés virtuels

+

Le programme permet de créer des ressources qui ne sont pas des employés réels mais des groupes d'employés virtuels qui permettent aux capacités de production d'être accrues à un moment donné en fonction des réglages effectués dans le calendrier.

+

Via ces groupes d'employés virtuels, il est possible de contrôler comment la planification du projet serait affectée en embauchant et en affectant des personnes qui remplissent les critères définis, facilitant ainsi le processus de prise de décision.

+

Les onglets pour créer des groupes d'employés virtuels sont accessibles via l'onglet Ressources, sous-menu Groupes d'employés virtuels et sont les mêmes que ceux utilisés pour configurer les employés :

+
+
    +
  • Données personnelles
  • +
  • Critères d'affectation
  • +
  • Calendrier
  • +
  • Catégories de coût
  • +
+
+

Les différences par rapport aux employés sont que :

+
+
    +
  • dans l'onglet Données personnelles, les groupes d'employés virtuels n'ont que les champs code et nom de groupe auxquels est ajouté un champ observations dans lequel des informations additionnelles peuvent être fournies, comme par exemple, le projet qui a besoin de faire appel à ce groupe d'employés virtuels.
  • +
  • dans l'onglet Calendrier, un champ capacité (valant 1 par défaut) qui fait référence au nombre de personnes dans le groupe.
  • +
+
+
+images/virtual-resources.png +

Ressources virtuelles

+
+
+
+

Ressources limitantes

+

Les ressources limitantes sont un type spécifique de ressources qui ne peuvent être à un moment donné que dans deux états possibles : non affectées ou affectées à 100%. Autrement dit, les ressources limitantes ne peuvent pas être affectées à plus d'une tâche au même moment ni être sur-affectées.

+

Pour chaque ressource limitante, une file est automatiquement créée de telle façon que les tâches qui ont été programmées peuvent être gérées d'une manière spécifique en utilisant les méthodes d'affectation fournies, en créant des affectations automatiques aux tâches depuis ces files conformément aux critères indiqués ou en déplaçant des tâches entre les files.

+

Le caractère limitant d'une ressource est indiqué lors de sa création.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fr/06-pedidos.html b/libreplan-webapp/src/main/webapp/help/fr/06-pedidos.html new file mode 100644 index 000000000..a46e28905 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/06-pedidos.html @@ -0,0 +1,351 @@ + + + + + + +Projets et tâches + + + +
+

Projets et tâches

+ + +

Les projets décrivent le travail à mener par les utilisateurs. +Chaque projet est une prestation délivrée par la compagnie à un client (qui peut être elle-même).

+

Un projet comporte une ou plusieurs tâches. Chaque tâche s'inscrit dans une planification de projet. Les tâches sont organisées de manière hiérarchique sans aucune limitation de profondeur. Le fait que les tâches soient organisées hiérarchiquement explique le comportement par héritage de plusieurs fonctionnalités telles que les étiquettes.

+

Les sections suivantes vont décrire les opérations que les utilisateurs peuvent effectuer sur les projets et les tâches.

+
+

Projet

+

Un projet est un travail qu'un client demande à une compagnie. Pour identifier ce projet au sein de la compagnie, on n'a besoin que de quelques informations :

+
    +
  • Nom du projet
  • +
  • Code du projet
  • +
  • Montant total du projet
  • +
  • Date estimée de début
  • +
  • Date de fin
  • +
  • Personne responsable
  • +
  • Description
  • +
  • Calendrier affecté
  • +
  • Génération automatique de code. Un champ utilisé pour indiquer au système de générer automatiquement les codes des tâches et des groupes horaires.
  • +
  • Préférence entre les dépendances et les restrictions. Les utilisateurs peuvent décider si ce sont les dépendances ou les restrictions qui seront prises en compte en priorité en cas de conflit.
  • +
+

Cependant, les vrais projets réels nécessitent d'autres entités pour être complets :

+
    +
  • Heures affectées au projet
  • +
  • Avancement attribué au projet
  • +
  • Étiquettes
  • +
  • Critères affectés au projet
  • +
  • Matériaux
  • +
  • Formulaires qualité
  • +
+

Modifier ou créer un projet peut être réalisé à partir de différents endroits du programme :

+
    +
  • À partir de la "liste des projets" dans la vue globale de la compagnie.
      +
    • Cliquer sur le nom du projet ou sur l'icône de modification correspondante pour modifier un projet.
    • +
    • Cliquer sur l'icône "Créer un nouveau projet" en haut à gauche pour créer un nouveau projet.
    • +
    +
  • +
  • À partir d'un projet dans le diagramme de Gantt et en allant dans la vue des détails du projet.
  • +
+

Ceci fait, on dispose alors de plusieurs onglets :

+
    +
  • SDP (tâches) : il s'agit de la liste arborescente des tâches du projet à partir de laquelle on peut :
      +
    • Créer ou modifier une tâche.
    • +
    • Remonter une tâche dans la hiérarchie d'un rang.
    • +
    • Descendre une tâche dans la hiérarchie d'un rang.
    • +
    • Indenter une tâche, ce qui est la même chose que de la descendre d'un niveau dans la hiérarchie.
    • +
    • Désindenter une tâche, ce qui est la même chose que de le monter d'un niveau dans la hiérarchie.
    • +
    • Filtrer les tâches.
    • +
    • Supprimer des tâches.
    • +
    • Déplacer en rang ou en niveau une tâche dans la hiérarchie par drag'n'drop (glisser-déposer).
    • +
    • Créer un modèle de tâche à partir d'une tâche.
    • +
    +
  • +
+
+images/order-elements-list.png +

Liste des tâches du projet

+
+
    +
  • Données générales : permet de modifier les détails du projet. Actuellement, il s'agit de :
      +
    • Nom
    • +
    • Code
    • +
    • Responsable
    • +
    • Description
    • +
    • État
    • +
    • Client et référence
    • +
    • Date de début
    • +
    • Échéance
    • +
    • Calendrier
    • +
    • Mode de planification : vers l'avant (depuis la date de début) ou à rebours (depuis la date d'échéance)
    • +
    • Choix donnant la priorité aux dépendances durant la planification
    • +
    • Le budget alloué au travail et aux matériaux
    • +
    +
  • +
+
+images/order-edition.png +

Modification du projet

+
+
    +
  • Coûts : écran qui présente les heures et les coûts imputés groupés par ressource et par type et les compare aux prévisions.
  • +
+
+images/order-assigned-hours.png +

Coûts constatés du projet

+
+
    +
  • Avancement : un écran où il est possible d'affecter des types d'avancement et de saisir des mesures d'avancements pour le projet. Voir la section "Avancement" pour voir comment cela fonctionne.
  • +
  • Étiquettes. Un écran où l'on peut affecter des étiquettes à un projet et identifier des étiquettes affectées précédemment de manière directe ou indirecte. Voir la section suivante relative à la modification des tâches pour une description en détail de la façon de procéder pour gérer ces étiquettes.
  • +
+
+images/order-labels.png +

Étiquettes du projet

+
+
    +
  • Critères : écran dans lequel il est possible d'affecter des critères à l'ensemble des tâches du projet. Ces critères vont s'appliquer automatiquement à toutes les tâches, à l'exception de celles où ils sont explicitement invalidés. Les heures des tâches, regroupées par critère, sont également affichées, ce qui permet d'identifier les critères requis pour un projet.
  • +
+
+images/order-criterions.png +

Critères du projet

+
+
    +
  • Matériaux : écran où il est possible d'indiquer les matériaux nécessaires au projet. Ces matériaux peuvent être choisis dans les catégories de matériaux disponibles. Les matériaux sont gérés de la façon suivante :

    +
    +
      +
    • Sélectionner un matériau dans la liste affichée à droite.
    • +
    • Pour retrouver plus facilement un matériel, on peut restreindre la liste à une catégorie à l'aide de l'arborescence de gauche. On peut aussi saisir une partie du nom dans le champ texte puis cliquer sur Chercher. La recherche se fera sur la catégorie sélectionnée.
    • +
    • Il est possible de sélectionner plusieurs matériaux en une fois en appuyant sur la touche "Ctrl" (Contrôle).
    • +
    • Cliquer ensuite sur Affecter.
    • +
    • Le système affiche alors la liste des matériaux qui ont déjà été affectés au projet. Dans l'écran précédent, cliquer sur Annuler pour arriver directement à cette liste.
    • +
    • Dans la liste des matériaux affectés, on peut alors indiquer la date de réception, le nombre d'unités et le prix unitaire.
    • +
    • Si un même matériau possède des lots ayant des caractéristiques différentes (livraison partielle par exemple), on peut cliquer sur "Différencier" pour créer deux lignes permettant de prendre en compte ces différences.
    • +
    • Cliquer sur Ajouter des matériaux pour revenir à l'écran précédent.
    • +
    +
    +
  • +
+
+images/order-material.png +

Matériaux associés au projet

+
+
    +
  • Formulaires qualité de tâche : écran qui permet d'affecter un formulaire qualité au projet, lequel devra ensuite être complété pour s'assurer que certaines activités associées au projet ont été réalisées. Voir la section suivante relative à la modification des tâches pour la façon de gérer ces formulaires qualité.
  • +
+
+images/order-quality.png +

Formulaires qualité associés au projet

+
+
    +
  • Autorisations : écran qui permet d'affecter des droits en lecture et/ou écriture aux utilisateurs et aux profils.
  • +
+
+
+

Modifier les tâches

+

La modification des tâches est réalisé à partir de l'onglet "SDP (tâches)" en cliquant sur l'icône de modification correspondant à la tâche, ou en double-cliquant sur la tâche. S'affiche alors un nouvel écran comportant plusieurs onglets à partir desquels on peut effectuer les actions suivantes :

+
    +
  • Modifier les informations concernant la tâche.
  • +
  • Voir les coûts associés à la tâche.
  • +
  • Gérer l'avancement de la tâche.
  • +
  • Gérer les étiquettes de la tâche.
  • +
  • Gérer les critères requis par la tâche et les groupes d'heures.
  • +
  • Gérer les matériaux requis par la tâche.
  • +
  • Gérer les formulaires qualité.
  • +
+

Les sous-sections suivantes décrivent chacune de ces opérations en détail.

+
+

Modifier les informations concernant la tâche

+

L'onglet Détails permet de modifier les informations concernant la tâche :

+
    +
  • Nom de la tâche
  • +
  • Code de la tâche (lecture seule)
  • +
  • Date de début de la tâche
  • +
  • Date d'échéance
  • +
  • Description
  • +
  • Budget pour la tâche
  • +
+
+images/order-element-edition.png +

Modifier une tâche

+
+
+
+

Voir les coûts affectés à la tâche

+

L'onglet "Coûts" permet de consulter les heures et les coûts dépensées pour la tâche, directement ou indirectement, par groupe et ressource et de les comparer aux prévisions.

+
+images/order-element-hours.png +

Coûts d'une tâche

+
+

L'écran est divisé en deux parties :

+
    +
  • Calcul des heures et des dépenses imputées regroupées respectivement par ressource et type d'heures d'une part et par catégorie et par ressource d'autre part.
  • +
  • Utilisation par rapport aux estimations : heures consommées par rapport aux heures budgétisées d'une part, et dépenses par rapport au budget financier d'autre part. On trouve également le coût horaire et le coût des dépenses. Ces informations sont également présentées sous forme de pourcentages.
  • +
+
+
+

Gérer l'avancement des tâches

+

La saisie des types d'avancement et la gestion des avancements des tâches a été décrit dans le chapitre "Avancement".

+
+
+

Gérer les étiquettes des projets

+

Les étiquettes, telles que décrites dans le chapitre sur les étiquettes, permettent de catégoriser les tâches. Ainsi, elles permettent de regrouper des informations de planification ou de projet.

+

Il est possible d'affecter des étiquettes à une tâche, soit directement, soit par héritage en les affectant à une tâche de plus haut niveau. Une fois cette affectation réalisée à l'aide de l'une ou l'autre de ces méthodes, la tâches et ses sous-tâches sont associées à cette étiquette qui peut alors être utilisée pour tout filtrage ultérieur.

+
+images/order-element-tags.png +

Affecter des étiquettes à une tâche

+
+

Comme on peut le voir dans l'image, il est possible de réaliser les actions suivantes dans l'onglet étiquettes :

+
    +
  • Voir la liste des étiquettes affectées à la tâche par héritage d'une tâche de plus haut niveau. Toute tâche associée à une tâche de plus haut niveau hérite des étiquettes de cette dernière.
  • +
  • Voir la liste des étiquettes affectée directement à la tâche via le formulaire situé juste en dessous. Ces étiquettes seront également affectées aux tâches de niveaux inférieurs.
  • +
  • Affecter des étiquettes existantes : il est possible d'affecter des étiquettes en en cherchant une parmi celles qui sont disponibles dans le formulaire qui est sous la liste des étiquettes affectées directement. Pour chercher une étiquette, cliquer sur l'icône loupe ou écrire les premières lettres du nom de l'étiquette dans le champ texte, les valeurs possibles vont alors être affichées. Une fois choisie, cliquer sur Affecter.
  • +
  • Créer et affecter de nouvelles étiquettes : il est également possible de créer de nouvelles étiquettes associées avec un type existant d'étiquettes à partir de ce formulaire. On commence par choisir un type d'étiquette à associer, puis il faut entrer le nom de l'étiquette à créer. Quand on clique sur Créer et affecter, l'étiquette est automatiquement créée et associée à la tâche.
  • +
  • Supprimer une étiquette affectée directement en cliquant sur l'icône supprimer (poubelle) de la ligne correspondante.
  • +
+
+
+

Gérer les critères requis pour les tâches et les groupes d'heures

+

Les projets et les tâches peuvent de la même façon se voir affecter des critères à remplir afin qu'ils puissent être menés à bien. Les critères peuvent être directs ou indirects :

+
    +
  • Critères directs : ceux-ci sont affectés directement à la tâche. Ce sont des critères qui sont requis par les groupes d'heures de la tâche.
  • +
  • Critères indirects : ceux-là sont affectés sur les tâches de plus haut niveau. La tâche que l'on modifie en hérite.
  • +
+

Il est alors possible :

+
    +
  • d'ajouter un critère direct à la tâche entière en cliquant sur le bouton Ajouter. Choisir alors le critère dans la liste qui apparaît.
  • +
  • de supprimer un critère direct en cliquant sur l'icône Supprimer présente à la fin de la ligne correspondante.
  • +
  • d'invalider un critère hérité en cliquant sur le bouton Invalider
  • +
  • de valider à nouveau un critère hérité précédemment invalidé en cliquant sur le bouton Valider
  • +
+

Se trouve ensuite le total des heures de la tâche. Ces heures peuvent être calculées à partir des groupes d'heures ajoutés ou saisies directement dans ce champ. Dans ce cas, les heures seront distribuées entre les groupes d'heures existant et, si les pourcentages ne coïncident pas, un nouveau groupe d'heures sera créé.

+

Enfin, il est possible, si la tâche ne possède pas de sous-tâches, de définir un ou plusieurs groupes d'heures faisant partie de la tâche. Ces groupes d'heures doivent être renseignés pour permettre une affectation générique. Si la tâche possède des sous-tâches, il ne sera possible que de consulter les informations relatives aux heures et aux groupes d'heures. À l'inverse, si la tâche n'a pas de sous-tâche, on procède comme suit :

+
    +
  • Par défaut, un groupe d'heures associé à la tâche est créé automatiquement en même temps que la tâche. Ce groupe d'heures possède les caractéristiques modifiables suivantes :

    +
    +
      +
    • Code pour le groupe d'heures s'il n'a pas été automatiquement généré.
    • +
    • Type de critère. Les utilisateurs peuvent choisir d'affecter un critère de machine ou d'employé.
    • +
    • Nombre d'heures dans le groupe d'heures si la case "% fixe" n'est pas cochée. La sommes des heures des différents groupes est répercutée dans le champ Total des heures de la tâche.
    • +
    • Pourcentage d'heures du groupe d'heures par rapport au total des heures de la tâche si la case "% fixe" est cochée.
    • +
    • Choix d'une saisie en pourcentage (cochée) ou en nombre d'heures (non cochée, état par défaut).
    • +
    • Liste des critères à appliquer au groupe d'heures. Pour ajouter un nouveau critère, cliquer sur "Ajouter un critère" et en choisir un à partir du moteur de recherche qui apparaît alors. Ce critère pourra être supprimé en cliquant sur l'icône 'Supprimer' (poubelle) situé en fin de ligne. Le critère aura le type 'Direct'.
    • +
    • Liste des exceptions à appliquer au groupe d'heures. Pour ajouter une nouvelle exception, cliquer sur "Ajouter une exception" et en choisir une à partir du moteur de recherche qui apparaît alors. Ce critère pourra être supprimé en cliquant sur l'icône 'Supprimer' (poubelle) situé en fin de ligne. L'exception aura le type 'Exception héritée'.
    • +
    +
    +
  • +
  • Il est possible d'ajouter d'autres groupes d'heures différents les uns des autres. Ceci peut être utile, par exemple, pour une tâche de 70 heures nécessitant 30h de travail d'un soudeur et 40h d'un peintre.

    +
  • +
+
+images/order-element-criterion.png +

Affecter des critères à la tâche

+
+
+
+

Gérer les matériaux

+

Les matériaux sont gérés sous forme d'une liste associée à chaque tâche du projet ou globalement au projet en général. Les matériaux comportent les caractéristiques suivantes :

+
    +
  • Code
  • +
  • Date de réception
  • +
  • Nom
  • +
  • Nombre d'unités requis (nombre ou quantité selon le type d'unité)
  • +
  • Type d'unité : le type d'unité utilisée pour mesurer le matériau
  • +
  • Prix unitaire
  • +
  • Prix total : le prix est calculé en multipliant le prix unitaire par le nombre d'unités
  • +
  • Unités: unités requises
  • +
  • État : reçu, commandé, en attente, en cours, annulé
  • +
  • Catégorie : la catégorie à laquelle le matériau appartient.
  • +
+

Travailler avec les matériaux se fait de la façon suivante :

+
    +
  • Choisir l'onglet "Matériaux" d'une tâche.
  • +
  • Apparaît alors le formulaire de recherche des matériaux avec la liste des catégories à gauche et celle des matériaux à droite.
  • +
+
+images/order-element-material-search.png +

Recherche d'un matériau

+
+
    +
  • Choisir une catégorie pour affiner les recherches de matériaux.
  • +
  • On peut aussi saisir le début du nom du matériau dans le champ texte puis cliquer sur le bouton Chercher.
  • +
  • Sélectionner un ou plusieurs matériaux (via la touche CTRL)
  • +
  • Cliquer sur Affecter.
  • +
+
+images/order-element-material-assign.png +

Affecter des matériaux à la tâche

+
+
    +
  • Renseigner alors la date de réception éventuelle, la quantité, le prix unitaire et l'état.
  • +
+

Pour le suivi ultérieur des matériaux, il est possible de ne modifier l'état que d'une partie du matériel reçu. Procéder comme suit :

+
    +
  • Cliquer sur le bouton "Répartir" dans la liste des matériaux à droite de chaque ligne.
  • +
  • Choisir le nombre d'unités qu'on veut traiter de manière différenciée.
  • +
  • On a maintenant deux lignes pour le matériau en question.
  • +
  • Modifier l'état de la ligne qui vient d'être ajoutée.
  • +
+

L'avantage d'utiliser cet outil de répartition est la possibilité de recevoir des livraisons partielles de matériau sans devoir attendre de tout recevoir pour l'indiquer. Ceci permet d'exécuter des tâches qui n'auraient pas besoin de la totalité du matériel commandé.

+
+
+

Gérer les formulaires qualité

+

Pour certaines tâches, il peut s'avérer nécessaire de devoir procéder à certaines vérifications avant de pouvoir les déclarer comme étant terminées. C'est la raison d'être des formulaires qualités qui sont en fait des listes de questions auxquelles on doit répondre positivement pour pouvoir déclarer les tâches associées comme étant terminées.

+

Avant de pouvoir affecter un formulaire qualité à une tâche, il faut le créer en utilisant le menu Ressources, sous-menu Formulaires qualité. Ceci ne peut pas être fait en même temps que l'affectation à la tâche.

+

Pour gérer des formulaires de qualité :

+
    +
  • Aller dans l'onglet "Formulaires qualité des tâches" de la tâche considérée.
  • +
+
+images/order-element-quality.png +

Affecter des formulaires qualité à une tâche

+
+
    +
  • Il existe deux types de formulaires qualité : par élément ou en pourcentage.

    +
    +
      +
    • Élément : chaque élément est indépendant.
    • +
    • Pourcentage : chaque question augmente l'avancement de la tâche d'un certain pourcentage pour finir par une question ayant 100% comme pourcentage, signalant que la tâche est achevée.
    • +
    +
    +
  • +
  • Utiliser le formulaire de recherche pour chercher le formulaire qualité souhaité, si besoin en saisissant le début de son nom.

    +
  • +
  • Une fois le formulaire sélectionné, cliquer sur Affecter.

    +
  • +
  • Le formulaire apparaît dans la liste affichée en dessous.

    +
  • +
  • Cliquer sur l'icône plus au début de la ligne pour afficher les questions du formulaire.

    +
  • +
  • +
    Renseigner alors au fur et à mesure les lignes réalisées :
    +
      +
    • Si le formulaire qualité est basé sur les pourcentages, les questions sont posées dans l'ordre. Cocher la case Contrôlé et renseigner la date. La ligne suivante devient accessible.
    • +
    • Si le formulaire qualité est basé sur les éléments, on peut répondre aux questions dans n'importe quel ordre. Cocher la case Contrôlé et renseigner la date.
    • +
    +
    +
    +
  • +
+

Pour supprimer un formulaire qualité, cliquer sur l'icône poubelle en fin de ligne correspondante.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fr/07-planificacion.html b/libreplan-webapp/src/main/webapp/help/fr/07-planificacion.html new file mode 100644 index 000000000..e921626d8 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/07-planificacion.html @@ -0,0 +1,175 @@ + + + + + + +Planification des tâches + + + +
+

Planification des tâches

+ + +
+

Planification des tâches

+

La planification dans "LibrePlan" est un processus qui a été décrit dans tous les chapitres de ce guide utilisateur, les chapitres sur les projets et l'affectation de ressources étant particulièrement importants à cet égard. Ce chapitre décrit les procédures de base de la planification une fois les projets et les diagrammes de Gantt correctement configurés.

+
+images/planning-view.png +

Vue de planification d'un projet

+
+

Comme pour la vue globale de la compagnie, la vue de planification de projet est divisée en plusieurs perspectives selon l'information analysée. Les perspectives pour un projet donné sont :

+
    +
  • planification du projet
  • +
  • détail du projet
  • +
  • utilisation des ressources
  • +
  • affectation avancée
  • +
  • tableau de bord
  • +
+
+

La perspective planification

+

La perspective de planification comporte trois parties différentes :

+
    +
  • La planification projet proprement dite. Présente dans la partie supérieure, c'est la plus grande. Elle représente la planification sous forme d'un diagramme de Gantt. Pour chaque ligne figure dans la partie gauche une ligne correspondante avec le nom de la tâche et ses dates de début et d'échéance. C'est ici qu'on pourra déplacer des tâches, créer des dépendances entre elles, définir des jalons et établir des restrictions.

    +
  • +
  • Le graphique d'utilisation des ressources (onglet Charge affiché par défaut). C'est l'image dans la partie inférieure droite qui montre la disponibilité des ressources en fonction de leurs éventuelles affectations à des tâches. Les informations affichées sont les suivantes :

    +
    +
      +
    • Zone violette : indique une charge de ressource inférieure à 100% de ses capacités.
    • +
    • Zone verte : indique une charge de ressource inférieure à 100% en tenant compte des affectations planifiées à des tâches d'autres projets
    • +
    • Zone orange : indique une charge de ressource supérieure à 100% du fait des affectations planifiées à des tâches de ce projet.
    • +
    • Zone rouge : indique une charge de ressource supérieure à 100% du fait d'autres projets.
    • +
    +
    +
  • +
  • Le graphique Valeur acquise. Il présente les courbes de différents indicateurs qui peuvent être consultés en cliquant sur l'onglet "Valeur gagnée". Le graphe généré est basé sur la méthode de la valeur acquise (Earned Value) et ses indicateurs qui sont calculés pour chaque jour travaillé du projet. Les indicateurs calculés pour une date donnée (la date du jour par défaut) modifiable en partie gauche sont :

    +
    +
      +
    • BCWS (Budgeted Cost Work Scheduled ou CBTP: Coût Budgétisé du Travail Planifié) : fonction cumulative du temps pour le nombre d'heures planifiées jusqu'à une certaine date. Il vaudra 0 au début planifié de la tâche et le nombre total d'heures planifiées à la fin. Comme avec toutes les graphiques cumulatifs, il augmentera toujours. La fonction associée effectue la somme des affectations journalières aux tâches jusqu'au jour du calcul. La fonction possède tout le temps des valeurs du moment que des ressources ont été affectées.
    • +
    • ACWP (Actual Cost Work Performed ou CRTE : Coût Réel du Travail Effectué) : fonction cumulative du temps pour les heures attribuées aux travaux jusqu'à une certaine date. Cette fonction aura une valeur nulle avant la date du premier rapport de travail de tâche et ses valeurs continueront à augmenter au fur et à mesure que le temps passe et que des heures de rapport de travail sont ajoutées. Elle n'aura pas de valeur après la date du dernier rapport de travail.
    • +
    • BCWP (Budget Cost Work Performed ou Earned Value ou Valeur acquise ou CBTE : Coût Budgétisé du Travail Effectué) : fonction cumulative du temps qui inclut la valeur résultat obtenue en multipliant l'avancement de la tâche par le volume de travail estimé pour achever cette tâche. Les valeurs de cette fonction augmentent au fur et à mesure que le temps passe. Les valeurs d'avancement augmentent aussi. L'avancement est multiplié par le nombre total d'heures estimées pour toutes les tâches. La valeur BCWP est la somme des valeurs des tâches qui sont calculées. L'avancement est totalisé quand il est indiqué.
    • +
    • CV (Cost Variation ou VC : variation de coût) : CV = BCWP - ACWP ou VC = CBTE - CRTE
    • +
    • SV (Schedule Variation ou VP : variation de prévision) : SV = BCWP - BCWS ou VP = CBTE - CBTP
    • +
    • BAC (Budget at completion ou BAA : Budget à l'achèvement) : BAC = max (BCWS) ou BAA = max (CBTP)
    • +
    • EAC (Estimate at completion, EAA : estimation à l'achèvement) : EAC = (ACWP/ BCWP) * BAC ou EAA = (CRTE/CBTE) * BAA
    • +
    • VAC (Variance at completion, VAA : variance à l'achèvement) : VAC = BAC - EAC ou VAA = BAA - EAA
    • +
    • ETC (Estimate to complete, EPA : estimation pour achèvement) : ETC = EAC - ACWP ou EPA = EAA - CRTE
    • +
    • CPI (Cost performance Index, ICP : indicateur coût performance, "ce que nous avons fait / ce que nous avons dépensé") : CPI = BCWP / ACWP ou ICP = CBTE / CRTE
    • +
    • SPI (Schedule performance Index, IPP : indicateur de performance par rapport aux prévisions, "ce que nous avons fait / ce que nous aurions du faire à cette date") : SPI = BCWP / BCWS ou IPP = CBTE / CBTP
    • +
    +
    +
  • +
+

Dans cette perspective Planification de projet, on peut réaliser les opérations suivantes :

+
+
    +
  • Affecter une dépendance à une tâche. Faire un clic droit sur la tâche et choisir "Ajouter une dépendance" puis tirer le curseur vers la tâche qui doit dépendre de la tâche sur laquelle on a cliqué.

    +
  • +
  • Faire un clic droit sur une dépendance (le curseur prend la forme d'une croix au moment du survol) permet de :

    +
    +
      +
    • supprimer la dépendance
    • +
    • ajuster le début de la tâche dépendante sur la fin de la tâche dont elle dépend
    • +
    • changer la valeur de début de la tâche dépendante pour qu'elle soit la même que celle de la tâche dont elle dépend
    • +
    • faire correspondre les achèvements des deux tâches
    • +
    +
    +
  • +
  • Créer un nouveau jalon. Faire un clic droit sur la tâche positionnée avant le jalon à créer puis choisir le menu "Ajouter un jalon".

    +
  • +
  • Déplacer des tâches (ou des jalons) sans modifier les dépendances. Faire un clic droit sur le corps de la tâche et tirez la à la position désirée. Si aucune restriction ou dépendance n'a été perturbée, le système va mettre à jour l'affectation journalière des ressources de la tâche et placer la tâche à la date choisie.

    +
  • +
  • Affecter une contrainte à la tâche. Cliquer sur la tâche concernée et choisir l'option "Propriétés de la tâche". Dans la fenêtre qui apparaît se trouve une liste déroulante "Contrainte" qui peut être modifiée. Les contraintes peuvent entrer en conflit avec les dépendances, c'est pourquoi il existe une option de configuration des projets permettant d'indiquer qui des dépendances ou des contraintes aura priorité en cas de conflit. Les types de contrainte proposés sont :

    +
    +
      +
    • démarre dès que possible
    • +
    • ne démarre pas avant le : indique que la tâche ne doit pas démarrer avant la date qu'il faut indiquer dans le champ date qui apparaît alors.
    • +
    • démarre le : indique que la tâche doit démarrer à la date qu'il faut indiquer dans le champ date qui apparaît alors.
    • +
    • démarre aussi tard que possible
    • +
    • ne finit pas plus tard que le : indique que la tâche ne doit pas finir après la date qu'il faut indiquer dans le champs date qui apparaît.
    • +
    +
    +
  • +
+
+

La perspective offre également plusieurs options de visualisation :

+
    +
  • Niveau de zoom : permet de choisir le niveau de zoom dont on a besoin : année, trimestre, mois, semaine et jour.

    +
  • +
  • Filtres de recherche : les utilisateurs peuvent filtrer les tâches en se basant sur :

    +
    +
      +
    • une partie de son nom à saisir dans le champ texte Tâche,
    • +
    • des critères ou des étiquettes séparés par des points virgules ou sélectionnés au fur et à mesure à l'aide l'outil de recherche (loupe)
    • +
    • en limitant les résultats aux tâches dans une plage de dates données ou ayant les critères et étiquettes cherchés directement affecté (sans héritage) par le biais du menu options.
    • +
    +
    +
  • +
+

Cliquer sur filtre (icône entonnoir) si nécessaire.

+
    +
  • Montrer / Cacher le chemin critique : affiche le chemin critique en entourant les tâches concernées en rouge. Il est obtenu par application de l'algorithme de Dijkstra.
  • +
  • Montrer / Cacher les étiquettes : permet de voir et les étiquettes affectées aux tâches du projet. Ces étiquettes apparaîtront également sur les impressions.
  • +
  • Montrer / Cacher les ressources : permet de voir les ressources affectées aux tâches du projet. Ces ressources apparaîtront également sur les impressions.
  • +
  • Déplier / Replier tout : permet d'afficher toutes les sous-tâches du projet.
  • +
  • Liste à plat / Arborescence : affiche les tâches sous forme d'une liste à plat en lieu et place de l'arborescence.
  • +
  • Montrer / Cacher l'avancement : permet d'afficher l'avancement des tâches sous forme d'une jauge directement sur chaque tâche.
  • +
  • Montrer / Cacher les heures comptabilisées.
  • +
  • Montrer / Cacher la barre de coût monétaire.
  • +
+

Il est également possible, via les icônes les plus à gauche de :

+
    +
  • Enregistrer les modifications réalisées
  • +
  • Annuler les dernières modifications
  • +
+

ainsi que de :

+
    +
  • Procéder à une réaffectation
  • +
  • Adapter la planification conformément aux relevés des heures de travail
  • +
  • Imprimer : permet d'imprimer le diagramme de Gantt en tenant compte des informations affichées à ce moment là, comme vu précédemment.
  • +
+
+
+

Perspective détail du projet

+

La perspective détail du projet permet d'accéder aux options de modification des caractéristiques du projet et des tâches associées. Voir le chapitre "Projets" pour davantage d'informations.

+
+
+

Perspective utilisation des ressources

+

La perspective utilisation des ressources affiche la liste des ressources du projet avec, en regard, un graphique de leur utilisation dans le temps. Les tâches et les critères qui sont la cause de cette utilisation sont affichés avec leurs dates de début et de fin, qu'ils appartiennent au projet ou à d'autres. Des couleurs différentes sont utilisées selon que la ressource possède une charge supérieure ou inférieure à 100% :

+
    +
  • Vert : charge inférieure à 100%
  • +
  • Orange : charge à 100%
  • +
  • Rouge : charge supérieure à 100%
  • +
+
+images/resource-load.png +

Vue de la charge des ressources pour un projet donné

+
+

Si le pointeur de la souris est placé sur le diagramme de Gantt des ressources, le pourcentage d'utilisation de la ressource sera affiché.

+

En dessus figure également le graphique récapitulatif de charge de l'ensemble des ressources en fonction du temps.

+
+
+

Perspective affectation avancée

+

La perspective affectation avancée est expliquée en détail dans le chapitre "Affectation des ressources".

+
+
+

Perspective tableau de bord

+

Cette perspective affiche des informations relatives au projet et à ses tâches selon 4 axes : avancement, coûts, ressources et temps.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fr/08-asignacion.html b/libreplan-webapp/src/main/webapp/help/fr/08-asignacion.html new file mode 100644 index 000000000..ec9e38096 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/08-asignacion.html @@ -0,0 +1,224 @@ + + + + + + +Affectation des ressources + + + +
+

Affectation des ressources

+ + + +

L'affectation des ressources est l'une des fonctionnalités les plus importantes du programme +et peut être réalisée de deux façons différentes :

+
    +
  • Affectation spécifique.
  • +
  • Affectation générique.
  • +
+

Ces deux types d'affectations sont expliqués dans les sections suivantes.

+

Pour réaliser l'un ou l'autre de ces deux types d'affectation de ressources, procéder comme suit :

+
    +
  • Aller sur la planification d'un projet.
  • +
  • Faire un clic droit sur la tâche à planifier et choisir le menu Affectation de ressources.
  • +
+
+images/resource-assignment-planning.png +

Menu d'affectation de ressources

+
+
    +
  • S'affiche un écran dans lequel figurent les blocs suivants :

    +
      +
    • Information de la tâche :

      +
      +
        +
      • Liste des critères que la tâche doit voir satisfaits avec le type et le nombre d'heures associés.
      • +
      • Affectation recommandée : cette option permet au programme de collecter les critères qui doivent être satisfaits et le nombre total d'heures de tous les groupes d'heures puis recommande une affectation générique. S'il existe une affectation antérieure, le système la supprime et la remplace avec la nouvelle.
      • +
      +
      +
    • +
    • Configuration d'affectation. Cet bloc contient :

      +
      +
        +
      • Date de début et de fin de la tâche,

        +
      • +
      • Nombre de jours ouvrés,

        +
      • +
      • Type de calcul : le système permet aux utilisateurs de choisir la stratégie à utiliser pour calculer les affectations :

        +
        +
          +
        • calculer les jours de travail
        • +
        • calculer le nombre d'heures : calcule le nombre d'heures nécessaires à dédier aux ressources affectées étant donné la date de fin et le nombre de ressources disponibles par jour.
        • +
        • Calculer le nombre de ressources par jour : calcule le nombre de ressources nécessaires pour finir la tâche à la date prévue et dédie à cette dernière le nombre d'heures correspondant.
        • +
        +
        +
      • +
      +
      +
    • +
    • Affectations, bloc contenant :

      +
      +
        +
      • Un champ de recherche des critères et des ressources, un bouton Ajouter et un bouton Recherche avancée décrits plus loin.
      • +
      • Case à cocher vue étendue. En cochant cette case, la liste des affectations décrite ci-dessous est enrichie d'informations complémentaires : heures à l'origine, au total et consolidées et nombre de ressources total et consolidé.
      • +
      • La liste des affectations qui ont été réalisées. Cette liste montre les affectations génériques avec le nombre non consolidé d'heures et de ressources par jour. Chaque affectation réalisée peut explicitement être retirée en cliquant sur le bouton supprimer correspondant.
      • +
      • Saisir tout ou partie du nom d'un critère ou d'une ressource
      • +
      • Cliquer sur Ajouter.
      • +
      • En mode Calculer les jours de travail, il est alors possible de modifier le nombre total d'heures non consolidées et chaque nombre de ressources non consolidées par jour.
      • +
      • En mode Calculer le nombre d'heures, seuls le nombre de ressources non consolidées est modifiable.
      • +
      • En mode Calculer le nombre de ressources par jour, seul le nombre d'heures non consolidé est modifiable.
      • +
      +
      +
    • +
    +
  • +
+
+images/resource-assignment.png +

Affectation de ressources

+
+

Pour réaliser une affectation en mode avancé, cliquer sur Recherche avancée.

+

En bas de l'écran, il est possible de choisir :

+
    +
  • affectation générique des employés (par défaut)
  • +
  • affectation générique des machines
  • +
  • affectation spécifique
  • +
+

Voir les sections "affectation générique" et "affectation spécifique" pour voir ce que ce choix implique.

+
    +
  • Le programme affiche un nouvel écran comportant à gauche l'arbre de critères et à droite la liste des employés (respectivement des machines ou des employés et des machines selon le type choisi précédemment) qui remplissent les critères sélectionnés (il est possible d'en sélectionner plusieurs à l'aide de la touche CTRL). La liste affiche également le taux de disponibilité et les dépassements de temps. Le taux d'utilisation est calculé entre les dates modifiables indiquées au-dessus.
  • +
+
+images/resource-assignment-search.png +

Recherche des affectations de ressource

+
+
    +
  • Cliquer alors sur Sélectionner. Dans le cas d'une affectation spécifique, il faut obligatoirement choisir un ou plusieurs employés ou machines, sinon aucune affectation ne sera réalisée.
  • +
  • Le programme affiche alors les ressources sélectionnées (par critère générique ou par valeurs spécifiques) dans la liste des affectations de l'écran originel d'affectation des ressources.
  • +
  • On peut alors choisir les heures ou le nombre de ressources par jour comme indiqué précédemment selon le mode de calcul choisi.
  • +
+
+

Affection spécifique

+

C'est l'affectation spécifique d'une ressource à une tâche projet, i.e. on décide quel "nom et prénom(s)" ou "machine" doit être affecté à une tâche.

+

L'affectation spécifique peut être réalisée sur l'écran affiché ci-après :

+
+images/asignacion-especifica.png +

Affectation de ressource spécifique

+
+

Quand une ressource est spécifiquement affectée, le programme crée des affectations journalières en relation avec le pourcentage de ressources journalières affectées choisies en les comparant au préalable avec le calendrier des ressources disponibles. Par exemple, une affectation de 0,5 ressource pour une tâche de 32 heures signifie que 4 heures par jour sont affectées à une ressource spécifique pour remplir la tâche (en supposant un calendrier de 8 heures par jour).

+
+

Affectation spécifique d'une machine

+

L'affectation spécifique d'une machine fonctionne de la même façon que celle d'un employé. Quand une machine est affectée à une tâche, le système enregistre une affectation spécifique d'heures pour la machine choisie. La principale différence est que le système recherche la liste des employés ou des critères affectés au moment où la machine est affectée :

+
    +
  • Si la machine possède une liste d'employés affectés, le programme choisit parmi eux ce qui est nécessaire pour la machine pour le calendrier affecté. Par exemple, si le calendrier de la machine est de 16 heures par jour et que le calendrier des ressources est de 8 heures par jour, deux ressources sont affectées depuis la liste des ressources disponibles.
  • +
  • Si la machine possède un ou plusieurs critères affectés, des affectations génériques sont réalisées parmi les ressources qui satisfont les critères affectés à la machine.
  • +
+
+
+
+

Affectation générique

+

L'affectation générique se produit quand on ne choisit pas les ressources spécifiquement, mais qu'on laisse la décision au programme qui distribue alors la charge entre les ressources de la compagnie qui sont disponibles.

+
+images/asignacion-xenerica.png +

Affectation générique de ressources

+
+

Le système d'affectation utilise les hypothèses suivantes :

+
    +
  • Les tâches ont des critères qui sont demandés aux ressources.
  • +
  • Les ressources sont configurées pour remplir ces critères.
  • +
+

Cependant, le système n'échoue pas quand les critères n'ont pas été affectés, mais quand toutes les ressources remplissent la non satisfaction de ces critères.

+

L'algorithme d'affectation générique fonctionne de la manière suivante :

+
    +
  • Toutes les ressources et les jours sont traités comme des conteneurs dans lesquels les affectations quotidiennes d'heures entrent, en se basant sur la capacité d'affectation maximum du calendrier des tâches.
  • +
  • Le système cherche les ressources qui remplissent le critère.
  • +
  • Le système analyse quelles affectations possèdent actuellement différentes ressources qui remplissent les critères.
  • +
  • Les ressources qui remplissent les critères sont choisies parmi celles qui possèdent une disponibilité suffisante.
  • +
  • Si des ressources libres ne sont pas disponibles, les affectations sont faites pour les ressources qui ont moins de disponibilité.
  • +
  • Une sur-affectation des ressources ne démarre que quand toutes les ressources qui remplissent les critères respectifs sont affectées à 100% et jusqu'à ce que le nombre total requis pour réaliser la tâche soit atteint.
  • +
+
+

Affectation générique de machine

+

L'affectation générique de machine fonctionne de la même façon que celle des employés. Par exemple, quand une machine est affectée à un tâche, le système enregistre une affectation générique d'heures pour toutes les machines qui remplissent les critères comme décrit pour les ressources en général. Cependant, le système réalise en plus la procédure suivante pour les machines :

+
    +
  • Pour toutes les machines choisies pour l'affectation générique :
      +
    • On collecte les informations de configuration des machines : valeur alpha, employés affectés et critères.
    • +
    • Si la machine possède une liste d'employés affectés, le programme choisit le nombre requis par la machine en fonction du calendrier affecté. Par exemple, si le calendrier de la machine est de 16 heures par jour et le calendrier des ressources est de 8 heures, le programme affecte deux ressources à partir de la liste des ressources disponibles.
    • +
    • Si la machine possède un ou plusieurs critères affectés, le programme fait des affectations génériques parmi les ressources qui remplissent ces critères affectés à la machine.
    • +
    +
  • +
+
+
+
+

Affectation avancée

+

Les affectations avancées permettent de personnaliser la façon dont les affectations automatiques sont réalisées. Cette procédure permet de choisir manuellement les heures d'un jour qui sont dédiées par les ressources aux tâches auxquelles elles sont affectées ou de définir une fonction qui est utilisée lors de cette affectation.

+

Les étapes à suivre pour gérer les affectations avancées sont :

+
    +
  • Aller à la fenêtre de l'affectation avancée. Il y a deux façon d'accéder aux affectations avancées :
      +
    • Aller sur un projet particulier et choisir la perspective affectation avancée. Dans ce cas, toutes les tâches du projet et toutes les ressources affectées (spécifiques et génériques) seront affichées.
    • +
    • Aller à la fenêtre d'affectation avancée en cliquant sur le bouton "Affectation avancée". Dans ce cas, seules les affectations impliquant les ressources (génériques et spécifiques) affectées à cette tâche seront affichées.
    • +
    +
  • +
+
+images/advance-assignment.png +

Affectation de ressource avancée

+
+
    +
  • Il est possible de choisir le niveau de zoom nécessaire :

    +
      +
    • Si le zoom choisi est supérieur à un jour, si on change la valeur horaire affectée à une semaine, un mois, un trimestre ou un semestre, le système distribue les heures linéairement sur tous les jours de la période choisie.
    • +
    • Si le zoom choisi est un jour, si on change la valeur horaire affectée à un jour, ces heures ne s'appliquent qu'à ce jour. En conséquence, il est possible de décider combien d'heures on veut affecter par jour aux ressources des tâches.
    • +
    +
  • +
  • On peut choisir de paramétrer une fonction d'affectation avancée. Pour ce faire, il faut :

    +
      +
    • Choisir la fonction dans la liste de choix qui apparaît à côté de chaque ressource et cliquer sur "Configurer" si la fonction le permet :

      +
      +
        +
      • linéaire
      • +
      • manuelle
      • +
      • par extension : configurable
      • +
      • par interpolations : configurable
      • +
      • sigmoïde
      • +
      +
      +
    • +
    • Dans le cas des fonctions par extension ou interpolations, s'affiche une nouvelle fenêtre quand on clique sur Configurer. On peut alors ajouter une extension via le bouton du même nom. La ligne ajoutée permet de configurer les éléments suivants :

      +
        +
      • Date : Date à laquelle le segment se termine. Si ce champ est modifié, la longueur (champ suivant) est automatiquement mis à jour, et vice-versa.
      • +
      • Longueur : Définir la longueur du segment, i.e. le pourcentage de la durée de la tâche pour ce segment. Si ce champ est modifié, la date de fin (champ précédent) est automatiquement mis à jour, et vice-versa.
      • +
      • Volume de travail : le pourcentage de charge devant être réalisé durant ce segment. Ce pourcentage doit être incrémental. Par exemple, s'il y a un segment à 10%, le suivant doit être plus grand (20% par exemple).
      • +
      • Dans cette fenêtre, à droite, on trouvera un graphique d'engagement et un graphique des heures cumulées correspondant aux réglages effectués.
      • +
      +
    • +
    • Cliquer sur "Accepter" : la fonction est enregistrée et appliquée aux affectations de ressources quotidiennes.

      +
    • +
    +
  • +
+
+images/stretches.png +

Configuration d'une fonction d'affectation avancée

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fr/09-partes.html b/libreplan-webapp/src/main/webapp/help/fr/09-partes.html new file mode 100644 index 000000000..ebd3e7ee6 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/09-partes.html @@ -0,0 +1,94 @@ + + + + + + +Relevés des heures de travail + + + +
+

Relevés des heures de travail

+ + +

Les relevés des heures de travail (Timesheet) permettent de suivre les heures de travail que les ressources ont consacrées aux tâches planifiées.

+

Le programme permet de configurer de nouveaux modèles de relevé des heures de travail en indiquant les champs qu'on veut voir apparaître afin de pouvoir y renseigner les relevés relatifs aux tâches qui sont réalisées par les employés dont on peut ainsi suivre l'activité.

+

Avant de pouvoir saisir un relevé d'heures de travail pour une ressource, il faut au minimum préciser le modèle de relevé des heures de travail qui en définit la structure qui contiendra toutes les lignes qui lui seront ajoutées. Il est possible de créer autant de relevés d'heures de travail que nécessaire.

+
+

Modèle de relevé des heures de travail

+

Un relevé des heures de travail possède une série de champs qui s'appliquent à l'ensemble du rapport et une série de lignes de relevé d'heures de travail possédant des valeurs spécifiques pour ces champs. Par exemple, les ressources et les tâches sont communes à tous les rapports mais on peut trouver de nouveaux champs tels que "incidents" que l'on ne retrouvera pas nécessairement dans tous les modèles.

+

Il est possible de définir différents modèles de relevés des heures de travail pour correspondre aux besoins de la compagnie.

+
+images/work-report-types.png +

Modèles de relevés des heures de travail

+
+

La gestion des modèles de relevés des heures de travail permet de configurer ces caractéristiques et d'ajouter de nouveaux champs texte ou des étiquettes additionnels. Dans le premier onglet de modification des modèles de relevé des heures de travail, accessible via le menu Coûts, sous-menu Modèles des relevés des heures de travail, il est possible de préciser le type des attributs obligatoires (c'est-à-dire s'ils s'appliquent à l'ensemble du relevé ou s'ils doivent être renseignés ligne par ligne). On peut également ajouter des champs et des étiquettes additionnels.

+

Les champs obligatoires qui doivent apparaître dans tous les relevés des heures de travail sont les suivants :

+
    +
  • Nom et code : Nom et code du modèle de relevé des heures de travail
  • +
  • Date : champ pour la date du relevé des heures de travail
  • +
  • Ressource : employé ou machine apparaissant dans le relevé ou la ligne du relevé des heures de travail.
  • +
  • Tâche : code de la tâche à laquelle le travail réalisé est attribué.
  • +
  • +
    Gestion des heures (détermine la politique d'attribution des heures réalisées) qui peut être :
    +
      +
    • selon le nombre d'heures effectuées.
    • +
    • selon les heures de début et de fin.
    • +
    • selon le nombre d'heures effectuées et les heures de début et de fin (les interruptions sont autorisées et le nombre d'heures l'emporte).
    • +
    +
    +
    +
  • +
+

Il est possible d'ajouter de nouveaux champs au relevé des heures de travail :

+
    +
  • Catégorie d'étiquettes : permet de demander de préciser une étiquette lors de la saisie d'un relevé ou d'une ligne de relevé des heures de travail. Par exemple, la catégorie "Client" pour permettre d'indiquer le client pour lequel le travail a été effectué.
  • +
  • Champs texte additionnels : champs dans lesquels du texte peut être saisi librement.
  • +
+
+images/work-report-type.png +

Créer un modèle de relevé des heures de travail avec des données personnalisées

+
+

On peut configurer les champs date, ressource et tâche de façon à ce qu'ils apparaissent dans l'en-tête du relevé des heures de travail, ce qui signifie qu'ils s'appliquent globalement au relevé entier, ou bien pour qu'ils doivent être renseignés pour chaque ligne du relevé des heures de travail.

+

De même, les champs texte et les étiquettes additionnels qui peuvent être ajoutés au relevé des heures de travail peuvent s'appliquer au relevé dans sa globalité ou devoir être renseignés pour chaque ligne. Il est également possible de configurer l'ordre dans lequel ils apparaissent via l'onglet "Ordre des champs texte et des étiquettes additionnels".

+

Un modèle ne peut plus être modifié à partir du moment où des relevés lui sont attachés.

+
+
+

Liste des relevés des heures de travail

+

Dès que le format des relevés des heures de travail a été configuré, il est possible de saisir des informations dans des formulaires correspondant à ce format de la façon suivante :

+
    +
  • Cliquer sur le bouton "Nouveau relevé des heures de travail" associé au modèle de relevé souhaité dans la liste accessible via le menu Coûts, sous-menu Modèles des relevés des heures de travail.
  • +
  • S'affiche alors un relevé conforme à la configuration du modèle dont il est issu. Voir l'image suivante :
  • +
+
+images/work-report-hours.png +

Structure du relevé des heures de travail conforme au modèle associé

+
+
    +
  • Renseigner tous les champs affichés pour le relevé :

    +
    +
      +
    • Ressource : si ce champ est configuré pour apparaître dans l'en-tête, la ressource n'est affichée qu'une fois. Dans le cas contraire, il faut sélectionner une valeur pour chaque ligne du relevé.
    • +
    • Date : date du relevé ou de chaque ligne, selon que la date est configurée pour apparaître dans l'en-tête ou sur chaque ligne.
    • +
    • nombre d'heures : le nombre d'heures de travail effectuées par la ressource à la date indiquée pour la tâche considérée (mode de calcul selon le nombre d'heures effectuées ou selon le nombre d'heures effectuées et les heures de début et de fin).
    • +
    • Heures de début et de fin : Les heures (heures et minutes) de début et de fin du travail de façon à calculer le nombre d'heures de travail effectuées. Ce champ n'apparaît que dans le cas des politiques d'affectation des heures "Selon les heures de début et de fin" et "Selon le nombre d'heures effectuées et les heures de début et de fin".
    • +
    • Type d'heures : permet aux utilisateurs de choisir le type d'heures, par exemple "par défaut", "heures supplémentaires", etc.
    • +
    • Terminée : si la case est cochée, signale que cette ligne de relevé des heures de travail marque l'achèvement de la tâche concernée.
    • +
    • Code de la tâche : est renseigné automatiquement quand la ressource est indiquée, soit une seule fois si le champ doit apparaître dans l'en-tête, soit à chaque ligne dans le cas contraire.
    • +
    +
    +
  • +
  • Cliquer sur "Enregistrer", "Enregistrer et continuer" ou "Enregistrer et créer un nouveau relevé des heures de travail".

    +
  • +
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fr/10-etiquetas.html b/libreplan-webapp/src/main/webapp/help/fr/10-etiquetas.html new file mode 100644 index 000000000..94733e032 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/10-etiquetas.html @@ -0,0 +1,67 @@ + + + + + + +Étiquettes + + + +
+

Étiquettes

+ + +

Les étiquettes sont des entités utilisées dans le programme pour organiser conceptuellement les tâches.

+

Les étiquettes sont organisées par catégorie. Une étiquette ne peut appartenir qu'à une seule catégorie d'étiquettes mais il est possible de créer des étiquettes de même nom dans deux catégories différentes.

+
+

Catégories d'étiquettes

+

Les catégories d'étiquettes sont utilisées pour grouper les étiquettes qu'on veut utiliser. Voici quelques exemples de catégories d'étiquettes possibles :

+

On peut vouloir étiqueter les tâches ou les projets :

+
    +
  1. Client : selon les clients à l'origine des travaux ou qui en seront les bénéficiaires.
  2. +
  3. Zone : selon les zones géographiques dans lesquelles ils sont réalisés.
  4. +
+

Les catégories d'étiquettes sont gérées via le menu Ressources, sous-menu Étiquettes. C'est à partir de là que l'on peut modifier les catégories d'étiquettes, en créer de nouvelles ou ajouter des étiquettes à ces catégories. Les étiquettes sont également accessibles à partir de cet écran.

+
+images/tag-types-list.png +

Liste des catégories d'étiquettes

+
+

À partir de la liste des catégories d'étiquettes, on peut :

+
    +
  1. Créer une nouvelle catégorie d'étiquettes.
  2. +
  3. Modifier une catégorie d'étiquettes existante.
  4. +
  5. Supprimer une catégorie d'étiquettes avec toutes les étiquettes qui lui sont associées.
  6. +
+

À partir de ce formulaire, il est possible de donner un nom au type d'étiquettes, créer ou supprimer des étiquettes et enregistrer les modifications. Procéder comme suit :

+
    +
  1. Choisir une catégorie d'étiquettes à modifier ou cliquer sur le bouton Créer pour en créer une nouvelle.
  2. +
  3. Le système affiche le formulaire avec un champ texte pour saisir le nom d'une nouvelle étiquette et une liste de lignes avec chacune un champ texte pour les étiquettes déjà existantes.
  4. +
  5. Pour ajouter une nouvelle étiquette, saisir son nom dans le champ Nouvelle étiquette et cliquer sur le bouton Ajouter.
  6. +
  7. Le système affiche une nouvelle ligne dans la liste avec une boîte de texte contenant le nom qui vient d'être saisi, ce qui permet de le modifier.
  8. +
  9. Cliquer sur "Enregistrer" ou "Enregistrer et continuer" pour continuer à modifier le formulaire.
  10. +
+
+images/tag-types-edition.png +

Modifier les types d'étiquettes

+
+
+
+

Étiquettes

+

Les étiquettes sont des entités qui sont rattachées à une catégorie d'étiquettes. Ces entités peuvent être affectées aux tâches. Affecter une étiquette à une tâche signifie que toutes les sous-tâches de cette tâche vont hériter de cette étiquette. Cette étiquette peut alors être utilisée pour filtrer les résultats des recherches de tâches suivantes :

+
    +
  1. Recherche de tâches dans le diagramme de Gantt.
  2. +
  3. Recherche de tâches depuis la liste des tâches.
  4. +
  5. Recherche dans les relevés des heures de travail et les rapports.
  6. +
+

L'affectation des étiquettes aux tâches est décrite dans le chapitre relatif aux projets.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fr/11-materiales.html b/libreplan-webapp/src/main/webapp/help/fr/11-materiales.html new file mode 100644 index 000000000..df9bb9545 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/11-materiales.html @@ -0,0 +1,60 @@ + + + + + + +Matériaux + + + +
+

Matériaux

+ +
+

Contents

+ +
+
+

Gestion des matériaux

+

On peut gérer une base de données rudimentaire de matériaux organisés par catégories.

+

Les catégories sont des conteneurs auxquels on peut affecter des matériaux spécifiques ainsi que d'autres catégories. Elles sont enregistrées dans une structure arborescente et les matériaux peuvent appartenir à une feuille ou à des catégories intermédiaires.

+

Procéder comme suit pour gérer les catégories :

+
    +
  • Utiliser le menu Ressources, sous-menu Matériaux.
  • +
  • Le programme affiche un arbre des catégories des matériaux.
  • +
  • Sélectionner éventuellement une catégorie dans l'arbre puis saisir un nom de catégorie dans le champs texte.
  • +
  • Cliquer sur le bouton Ajouter.
  • +
+

La catégorie est alors ajoutée dans l'arbre, comme sous-catégorie de la catégorie sélectionnée ou comme catégorie de premier niveau sinon. +Cliquer le bouton Désélectionner pour ne plus avoir de catégorie sélectionnée.

+
+images/material.png +

Écran de gestion des matériaux

+
+

Pour gérer les matériaux proprement dit, procéder comme suit :

+
    +
  • Choisir la catégorie dans laquelle inclure les matériaux puis cliquer sur "Nouveau" en haut de la seconde liste.

    +
  • +
  • Le programme ajoute une nouvelle ligne vide avec des champs pour saisir les détails relatifs à ce nouveau matériau :

    +
    +
      +
    • Code : code du type de matériau (qui peut être un code externe provenant d'un ERP ou un code généré automatiquement par le système; dans le premier cas, la case "Générer le code" est décochée dans l'arbre des catégories).
    • +
    • Description : description du matériau.
    • +
    • Prix de l'unité : prix unitaire de chaque unité de matériau.
    • +
    • Unité : unité qui est utilisée pour mesurer la quantité de matériau.
    • +
    • Catégorie : catégorie à laquelle il appartient (lecture seule).
    • +
    • Désactivé : si la case est cochée, le matériau ne sera pas disponible.
    • +
    +
    +
  • +
  • Cliquer sur Enregistrer une fois les champs renseignés.

    +
  • +
+

L'affectation des matériaux aux tâches est expliquée dans le chapitre "Projets".

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fr/12-formularios-calidad.html b/libreplan-webapp/src/main/webapp/help/fr/12-formularios-calidad.html new file mode 100644 index 000000000..d69a5b200 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/12-formularios-calidad.html @@ -0,0 +1,67 @@ + + + + + + +Formulaires qualité + + + +
+

Formulaires qualité

+ + +
+

Gestion des formulaires qualité

+

Les formulaires qualité sont composés d'une liste de questions destinées à vérifier que les différentes étapes nécessaires pour qu'une tâche puisse être considérée comme achevée par la compagnie ont été correctement réalisées. Ces formulaires comprennent les champs suivants :

+
    +
  • Nom

    +
  • +
  • Description

    +
  • +
  • Type de formulaire qualité. Le type peut prendre deux valeurs :

    +
    +
      +
    • pourcentage : indique que les questions doivent avoir un ordre logique et des réponses affirmatives aux questions indiquent que la tâche avance. Par exemple, une étape simple pour une tâche indique suggère que celle-ci est complétée à 15%. Il faut cocher la case correspondant à cette étape avant de pouvoir passer à la suivante.
    • +
    • Élément : indique que les questions ne nécessitent pas d'avoir un ordre logique et, de ce fait, il est possible d'y répondre dans l'ordre que l'on souhaite.
    • +
    +
    +
  • +
  • Case à cocher indiquant si l'avancement doit être rapporté.

    +
  • +
+

Suivre les étapes suivantes pour gérer les formulaires qualité :

+
    +
  • À partir du menu Ressources, accéder au sous-menu Formulaires qualité.

    +
  • +
  • Cliquer sur modifier pour modifier un formulaire existant sur le bouton "Créer" pour en créer un nouveau.

    +
  • +
  • Le programme affiche un formulaire avec un nom, une description, un type et la case à cocher pour rapporter l'avancement.

    +
  • +
  • Choisir le type.

    +
  • +
  • Cliquer sur Nouvelle étape du formulaire qualité : les champs requis pour le type choisi s'affichent :

    +
    +
      +
    • par pourcentage : question et pourcentage.
    • +
    • par élément : question.
    • +
    +
    +
  • +
  • Cliquer sur "Enregistrer" ou "Enregistrer et continuer".

    +
  • +
+
+images/quality.png +

Gestion des formulaires qualité

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fr/13-usuarios.html b/libreplan-webapp/src/main/webapp/help/fr/13-usuarios.html new file mode 100644 index 000000000..8570bdf68 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/13-usuarios.html @@ -0,0 +1,95 @@ + + + + + + +Utilisateurs + + + +
+

Utilisateurs

+ + +
+

Gestion des utilisateurs

+

"LibrePlan" permet de gérer des profils, des autorisations et des utilisateurs. Les utilisateurs appartiennent à des profils utilisateurs qui peuvent disposer d'une série de rôles prédéfinis pour accéder aux fonctions du programme. Les rôles sont des autorisations définies dans "LibrePlan". Exemples de rôles :

+
    +
  • Administration : un rôle auxquels les administrateurs doivent être affectés de façon à pouvoir réaliser des opérations d'administration.
  • +
  • Lecteur de web service : un rôle pour les utilisateurs qui ont besoin de pouvoir consulter des informations via les web services du programme.
  • +
  • Rédacteur de web service : un rôle pour les utilisateurs qui ont besoin d'écrire des informations dans LibrePlan via les web services du programme.
  • +
+

Les rôles sont prédéfinis dans le système. Le profil d'un utilisateur comporte un ou plusieurs rôles. Les utilisateurs doivent avoir certains rôles pour réaliser certaines opérations.

+

Les utilisateurs ont un ou plusieurs profils ou directement un ou plusieurs rôles de sorte que des autorisations spécifiques ou génériques peuvent être affectées.

+

Il est nécessaire de réaliser les étapes suivantes pour gérer les utilisateurs :

+
    +
  • Aller à "Comptes utilisateurs" dans le menu "Configuration".

    +
  • +
  • Le programme affiche un formulaire avec la liste des utilisateurs.

    +
  • +
  • Cliquer sur le bouton "Modifier" pour modifier un utilisateur choisi ou cliquer sur le bouton "Créer".

    +
  • +
  • Un formulaire va apparaître avec les champs suivants :

    +
    +
      +
    • Nom d'utilisateur : l'identifiant de connexion
    • +
    • Prénom
    • +
    • Nom
    • +
    • Mot de passe et confirmation du mot de passe
    • +
    • Désactivé : si la case est cochée, le compte utilisateur correspondant est bloqué
    • +
    • Adresse de messagerie
    • +
    • Type d'authentification: choisir entre "Base de données" pour une gestion par LibrePlan et "LDAP" pour déléguer cette fonction à un annuaire LDAP (cf. le chapitre LDAP).
    • +
    • Ressource liée : nom d'employé éventuellement associé à cet utilisateur
    • +
    • Liste des rôles associés : chercher l'un des rôles affichés dans la liste déroulante et cliquer sur "Ajouter un rôle" pour associer ce rôle à l'utilisateur.
    • +
    • Liste des profils associés : chercher l'un des profils affichés dans la liste déroulante et cliquer sur "Ajouter un profil" pour ajouter un nouveau profil.
    • +
    +
    +
  • +
+
+images/manage-user.png +

Gestion des utilisateurs

+
+
    +
  • Cliquer sur "Enregistrer" ou "Enregistrer et continuer".
  • +
+
+

Gérer les profils

+

Suivre les étapes suivantes pour gérer les profils du programme.

+
    +
  • Utiliser le menu Configuration, sous-menu Profils : s'affiche la liste des profils.

    +
  • +
  • Le programme affiche une liste de profils.

    +
  • +
  • Cliquer sur le bouton modifier pour modifier le profil correspondant ou cliquer sur "Créer".

    +
  • +
  • Un formulaire apparaît avec les champs suivants :

    +
    +
      +
    • Nom : le nom du profil
    • +
    • Liste des rôles (autorisations) associés au profil. Choisir un rôle dans la liste des rôles et cliquer sur "Ajouter un rôle" pour ajouter ce rôle au profil.
    • +
    +
    +
  • +
+
+images/manage-user-profile.png +

Gérer les profils utilisateur

+
+
    +
  • Cliquer sur "Enregistrer" ou "Enregistrer et continuer".
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fr/14-custos.html b/libreplan-webapp/src/main/webapp/help/fr/14-custos.html new file mode 100644 index 000000000..c013cf51c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/14-custos.html @@ -0,0 +1,131 @@ + + + + + + +Gestion des coûts + + + +
+

Gestion des coûts

+ + +
+

Coûts

+

La gestion des coûts permet aux utilisateurs d'estimer les coûts des ressources utilisées dans un projet. De façon à gérer ces coûts, les entités suivantes doivent être indiquées :

+
    +
  • type d'heures de travail : ceci indique le type d'heures de travail pour la ressource. On peut ajouter des types d'heures pour les machines et les employés. Un exemple de type d'heures pourrait être : heures supplémentaires, payées généralement 20€. Les champs suivant définissent les types d'heures de travail :

    +
    +
      +
    • Code : code pour le type d'heures, modifiable s'il n'est pas généré automatiquement
    • +
    • Nom : nom du type d'heures. Par exemple, "supplémentaire".
    • +
    • Prix par défaut : prix par défaut pour le type d'heures.
    • +
    • Activé : indique si le type d'heures est activé ou pas.
    • +
    +
    +
  • +
  • Catégories de coûts : indiquent les catégories de coûts à utiliser pour calculer les coûts en fonction du type d'heures et de la période (ces périodes peuvent ne pas être limitées dans le temps). Par exemple, le coûts des heures supplémentaires pour des employés de première catégorie de qualification pour l'année à venir est de 24€ par heure. Les catégories de coûts comportent les informations suivantes :

    +
    +
      +
    • Nom : nom de la catégorie de coûts.
    • +
    • Activé : indique si la catégorie de coûts est activée ou non.
    • +
    • Liste des types d'heures affectés aux catégories de coûts. Elle contient plusieurs périodes et le prix associé pour ces types d'heures. Par exemple, comme les prix changent, on pourra trouver une période couvrant chaque année associée à un type d'heures et un prix horaire différent pour chacune (qui pourra être différent du prix par défaut associé au type d'heures concerné).
    • +
    +
    +
  • +
+
+

Gestion des types d'heures de travail

+

Pour gérer les types d'heures de travail, procéder comme suit :

+
    +
  • Choisir le menu Coûts, sous-menu Types d'heures de travail.
  • +
  • Le programme affiche une liste des types d'heures existants.
  • +
+
+images/hour-type-list.png +

Liste des types d'heures de travail

+
+
    +
  • Cliquer sur "Modifier" ou "Créer".
  • +
  • Le programme affiche un formulaire de modification du type d'heures de travail.
  • +
+
+images/hour-type-edit.png +

Modifier les types d'heures de travail

+
+
    +
  • Saisir ou modifier :

    +
    +
      +
    • le nom du type d'heures de travail.
    • +
    • le code du type d'heures si ce code n'est pas généré automatiquement.
    • +
    • le prix par défaut.
    • +
    • l'activation/désactivation du type d'heures de travail.
    • +
    +
    +
  • +
  • Cliquer sur "Enregistrer" ou "Enregistrer et continuer".

    +
  • +
+
+
+

Catégories de coûts

+

Procéder comme suit pour créer ou modifier une catégorie de coûts :

+
    +
  • Choisir le menu Coûts, sous-menu Catégories de coûts.
  • +
  • Le programme affiche une liste des catégories de coûts existantes.
  • +
+
+images/category-cost-list.png +

Liste des catégories de coûts

+
+
    +
  • Cliquer sur le bouton "Modifier" ou "Créer".
  • +
  • Le programme affiche un formulaire de modification d'une catégorie de coûts.
  • +
+
+images/category-cost-edit.png +

Modifier une catégorie de coûts

+
+
    +
  • Saisir ou modifier :

    +
    +
      +
    • Le code s'il n'est pas généré automatiquement.

      +
    • +
    • Le nom de la catégorie de coûts.

      +
    • +
    • L'activation/désactivation de la catégorie de coût.

      +
    • +
    • La liste des types d'heures inclus dans la catégorie. Tous les types d'heures possèdent les champs suivants :

      +
      +
        +
      • Type d'heures : choisir l'un des types d'heures existant dans le système. Il doit exister au moins un type avant de procéder (la création des types d'heures est expliquée dans la sous-section précédente).
      • +
      • Prix horaire associé.
      • +
      • Date de début et de fin (cette dernière est facultative) pour la période durant laquelle s'applique la catégorie de coûts.
      • +
      +
      +
    • +
    +
    +
  • +
  • Cliquer sur "Enregistrer" ou "Enregistrer et continuer".

    +
  • +
+

L'affectation des catégories de coûts aux ressources est décrite dans le chapitre "Ressources".

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fr/15-1-report-hours-worked-by-resource.html b/libreplan-webapp/src/main/webapp/help/fr/15-1-report-hours-worked-by-resource.html new file mode 100644 index 000000000..ce0d19f33 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/15-1-report-hours-worked-by-resource.html @@ -0,0 +1,124 @@ + + + + + + +Rapport des heures travaillées par ressources + + + +
+

Rapport des heures travaillées par ressources

+ + +
+

Objet

+

Ce rapport permet d'extraire la liste des tâches et le temps qui leur a été consacré par les ressources sur une période de temps. Il existe plusieurs filtres qui permettent d'ajuster la requête pour obtenir les informations souhaitées et éviter les données superflues.

+
+
+

Paramètres en entrée et filtres

+
+
    +
  • +
    Dates.
    +
      +
    • Date de début. C'est la date minimum des rapports de travail qui sont demandés. Les rapports avec des dates antérieures à la date de début sont ignorés. Si le paramètre n'est pas renseigné, il n'y a pas de date de filtrage d'antériorité.
    • +
    • Date de fin. C'est la date maximum des rapports de travail qui seront inclus dans les résultats. Les rapports de travail avec une date postérieure à la date de fin seront sautés. Si le paramètre n'est pas renseigné, il n'y a pas de limite supérieure de filtrage des rapports de travail.
    • +
    +
    +
    +
  • +
  • +
    Filtrer par ressources
    +
      +
    • Vous pouvez choisir un ou plusieurs employés (ou machines) pour restreindre les rapports de travail au suivi des heures de travail de ces employés et/ou machines. Si vous laissez ce filtre vide, les rapports de travail sont récupérés indépendemment des employés et des machines.
    • +
    +
    +
    +
  • +
  • +
    Filtrer par étiquettes
    +
      +
    • Vous pouvez ajouter une ou plusieurs étiquettes en les cherchant dans le sélecteur et en appuyant sur le bouton Ajouter. Il faut choisir si on ne retient que les relevés des heures de travail ayant ces étiquettes, ou que les tâches, ou les relevés et les tâches associés ayant en commun ces étiquettes ou n'importe lequel des deux (valeur par défaut).
    • +
    +
    +
    +
  • +
  • +
    Filtrer par critères
    +
      +
    • Vous pouvez choisir un ou plusieurs critères en les cherchant dans le sélecteur et, ensuite, en cliquant sur le bouton Ajouter. Ces critères sont utilisés pour choisir les ressources qui satisfont au moins l'un d'eux. Le rapport affichera le cumul du temps consacré par les ressources satisfaisant l'un des critères du filtrage.
    • +
    +
    +
    +
  • +
  • +
    Format de sortie
    +
      +
    • Peut être HTML, ODT ou PDF.
    • +
    +
    +
    +
  • +
+
+
+
+

Résultats

+
+

En-tête

+

Dans l'en-tête du rapport, les filtres appliqués lors de l'extraction des données utilisées pour le rapport sont rappelés.

+
+
+

Pied de page

+

La date à laquelle le rapport a été généré est indiquée.

+
+
+

Corps

+

Le corps du rapport comporte plusieurs groupes d'informations.

+
    +
  • On trouve d'abord une première agrégation des informations par ressource et par jour, pour chaque tâche. Chaque ressource est identifiée par :

    +
    +
      +
    • Employé : Nom, Prénom
    • +
    • Machine : Nom.
    • +
    +
    +
  • +
+

Suit une ligne récapitulant le nombre total d'heures travaillées par jour par la ressource.

+
    +
  • Il y a un deuxième niveau de regroupement selon la date. Tous les relevés d'heures de travail provenant d'une ressource concrète à la même date sont regroupés ensembles.
  • +
+

Il y a une ligne de récapitulation avec le nombre total d'heures travaillées par ressource sur l'ensemble de la période.

+
    +
  • il y a un dernier niveau où sont listés les relevés des heures de travail appartenant au même jour pour l'employé. Les informations qui sont affichées dans les colonnes de chaque ligne du rapport sont :

    +
    +
      +
    • Code/nom de la tâche l'imputation des heures comptabilisées.
    • +
    • Heure de début Elle n'est pas obligatoire. C'est l'heure de début de travail pour la ressource sur la tâche considérée.
    • +
    • Heure de fin. Elle n'est pas obligatoire. C'est l'heure de fin de travail pour la ressource sur la tâche considérée.
    • +
    • Champs texte. Il est facultatif. Si les lignes de rapport de travail ont des champs textes renseignés, ils sont affichés ici. Le format est : <nom du champ texte>:<valeur>
    • +
    • Étiquettes. Cette colonne est présente si le relevé d'heures travaillées possède un champ étiquette dans sa définition. S'il y a plusieurs étiquettes, elles sont affichées dans la même colonne. Le format est <nom du type d'étiquette>:<valeur de l'étiquette>.
    • +
    +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fr/15-2-total-hours-by-resource-month.html b/libreplan-webapp/src/main/webapp/help/fr/15-2-total-hours-by-resource-month.html new file mode 100644 index 000000000..1140967e8 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/15-2-total-hours-by-resource-month.html @@ -0,0 +1,67 @@ + + + + + + +Rapport du total des heures travaillées par ressources et par mois + + + +
+

Rapport du total des heures travaillées par ressources et par mois

+ + +
+

Objet

+

Ce rapport permet d'obtenir le nombre total d'heures travaillées par les ressources dans un mois. Ceci peut être utile pour connaître les dépassements de temps d'un employé, ou, selon la compagnie, la quantité d'heures à payer pour chaque ressource.

+

L'application permet de suivre les relevés d'heures travaillées des employés et des machines. En conséquence, le rapport dans le cas des machines fait la somme du nombre des heures durant lesquelles elles ont fonctionné durant le mois.

+
+
+

Paramètres d'entrée et filtres

+

Il faut indiquer l'année et le mois pour obtenir le nombre total d'heure travaillées par les ressources.

+
+
+

Sortie

+

Le format de sortie est le suivant :

+
+

En-tête

+

Dans l'en-tête du rapport, sont affichés :

+
+
    +
  • L' année à laquelle se rapportent les données du rapport.
  • +
  • Le mois auquel se rapportent les données du rapport.
  • +
+
+
+
+

Pied de page

+

La date pour laquelle le rapport a été demandé.

+
+
+

Corps

+

La zone des données du rapport comporte juste une section dans laquelle une table à 2 colonnes est affichée :

+
+
    +
  • une colonne appelée Nom pour le nom de la ressource.
  • +
  • une colonne appelée Heures avec la somme de toutes les heures travaillées par cette ressource.
  • +
+
+

Il y a une ligne finale agrégeant le total des heures consacrées par toutes les ressources dans le mois de l'année pour lequel le rapport a été fait.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fr/15-3-work-progress-per-project.html b/libreplan-webapp/src/main/webapp/help/fr/15-3-work-progress-per-project.html new file mode 100644 index 000000000..7449d35c7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/15-3-work-progress-per-project.html @@ -0,0 +1,126 @@ + + + + + + +Rapport de travail et d'avancement par projet + + + +
+

Rapport de travail et d'avancement par projet

+ + +
+

Objet

+

Ce rapport vous permet de voir l'état global des projets en tenant compte de deux variables : l'avancement et le coût.

+

L'état courant de l'avancement du projet est analysé en le comparant avec la prévision selon la planification et selon le travail consacré.

+

Sont également affichés plusieurs taux liés aux coûts des projets en comparant les performances actuelles avec les performances théoriques.

+
+
+

Paramètres d'entrée et filtres

+

Il y a plusieurs paramètres obligatoires. Ce sont :

+
+
    +
  • Date de référence. C'est la date à prendre comme référence pour faire la comparaison avec l'état planifié anticipé du projet à cette date avec la performance réelle du projet à cette même date. La valeur par défaut pour ce champ est la date actuelle.
  • +
  • Type d'avancement. C'est le type d'avancement qui est souhaité pour être utilisé pour mesurer les progrès des projets. Dans l'application un projet peut être mesuré simultanément avec différents types d'avancement et celui sélectionné par le composant déroulant par l'utilisateur est celui utilisé pour calculer les données du rapport. La valeur par défaut pour le type d'avancement est étendu qui est un type d'avancement spécial consistant à utiliser la façon préférée de mesurer l'avancement configuré dans chaque élément de la structure hiérarchique arborescente.
  • +
+
+

Quant aux champs facultatifs, ce sont :

+
+
    +
  • Date de début. C'est la date minimum de démarrage des projets à inclure dans le rapport. Il est facultatif. Si aucune date de début n'est renseignée, il n'y a pas de date minimum pour les projets.
  • +
  • Date de fin. C'est la date maximum de fin des projets à inclure dans le rapport. Tous les projets qui finissent après la Date de fin seront exclus.
  • +
  • Filtre par projet. Ce filtre permet de choisir les projets pour lesquels l'utilisateur veut limiter les données du rapport à extraire. Si aucun projet n'est ajouté au filtre, le rapport est affiché pour tous les projets dans la base de données. Il existe une liste déroulante pour trouver le projet désiré. Ils sont ajoutés au filtre en appuyant au bouton Ajouter.
  • +
+
+
+
+

Sortie

+

Le format de sortie est le suivant :

+
+

En-tête

+

Dans l'en-tête de rapport les champs suivants sont affichés :

+
+
    +
  • Type d'avancement. Le type d'avancement utilisé pour le rapport.
  • +
  • Projets. Les projets pour lequel le rapport a été obtenu. Il affichera Tous quand ce filtre n'est pas utilisé.
  • +
  • Date de début. La date de début de filtrage. Ne sera pas affichée si ce filtre n'a pas été renseigné.
  • +
  • Date de fin. La date de fin de filtrage. Ne sera pas affichée si ce filtre n'a pas été renseigné.
  • +
  • Date de référence. La date de référence d'entrée obligatoire choisie pour extraire le rapport.
  • +
+
+
+
+

Pied de page

+

La date à laquelle le rapport a été généré est affichée.

+
+
+

Corps

+

Le corps contient une liste de tableaux relatifs à chacun des projets qui ont été retenus par les filtres d'entrée.

+

Les filtres fonctionnent en ajoutant des conditions à l'exception des filtres de date (Date de début, Date de fin) pris ensemble et du filtre par projets. Dans ce cas, si l'un ou les deux filtres date sont renseignés et qu'en même temps le filtre par projets est renseigné avec une liste de projets, c'est ce dernier filtre qui a la priorité. Ceci signifie que les projets qui sont inclus dans le rapport sont ceux fournis par le filtre par projets sans tenir compte des filtres de date.

+

Une autre chose importante est que les avancements présents dans le rapport généré sont calculés en fraction d'unité. Leurs valeurs seront donc comprises entre 0 et 1.

+

Pour chaque projet retenu pour faire partie du rapport généré, les informations suivantes sont affichées :

+
+
    +
  • Le nom du projet.

    +
  • +
  • Total des heures.

    +
    +

    Le total des heures du projet est affiché en ajoutant les heures de chaque tâche. Deux types de totaux d'heures sont affichés :

    +
      +
    • Estimées (TE). Cette quantité est l'addition de toutes les heures dans la structure hiérarchique arborescente. C'est le nombre total d'heures estimé nécessaire pour achever le projet.
    • +
    • Planifiées (TP). Dans LibrePlan, il est possible d'avoir deux valeurs différentes. Le nombre estimé à l'avance des heures nécessaires pour réaliser une tâche et les heures planifiées qui sont les heures affectées dans la planification pour réaliser la tâche. Les heures planifiées peuvent être égales, inférieures ou supérieures aux heures estimées et sont déterminées dans une phase ultérieure, l'opération d'affectation. Ainsi, le total des heures planifiées d'un projet est l'addition de toutes les heures affectées aux tâches.
    • +
    +
    +
  • +
  • Avancement.

    +
    +

    Trois mesures liées à l'avancement au moment de la date de référence et en fonction du type d'avancement indiqué dans le filtre sont affichées :

    +
      +
    • Mesuré (AM) ou Mesured Progress (PM). C'est l'avancement global établi en additionnant toutes les mesures d'avancement ayant une date inférieure à la date de référence indiquée. En parallèle, toutes les tâches sont prises en compte et l'addition est pondérée par le nombre d'heures de toutes ces tâches.
    • +
    • Imputé (AI) ou Progress Imputed (PI). C'est l'avancement calculé en considérant que le travail avancera sur le même rythme que celui des heures consacrées pour la tâche. Si X heures sur Y d'une tâche ont été faites, on considère que l'avancement global imputé est de X/Y.
    • +
    • Planifié (AP) ou Planned Progress (PP). C'est l'avancement global du projet conformément à la planification théorique à la date de référence. Si les choses se passent exactement comme planifié, l'avancement mesuré doit être le même que celui planifié.
    • +
    +
    +
  • +
  • Heures à ce jour.

    +
    +

    Il existe deux champs qui affichent le nombre d'heures jusqu'à la date de référence selon deux points de vue :

    +
      +
    • Planifiées (HP). Ce nombre est l'addition des heures affectées à toutes les tâches du projet qui ont une date inférieure ou égale à la date de référence.
    • +
    • Réelles (HR). Ce nombre est l'addition des heures rapportées dans les relevés d'heures de travail de toutes les tâches du projet ayant une date inférieure ou égale à la date de référence.
    • +
    +
    +
  • +
  • Différence.

    +
    +

    Sous ce titre il y a plusieurs métriques liées au coûts :

    +
      +
    • Coût. C'est la différence en heures entre le nombre d'heures dépensées en prenant en compte l'avancement mesuré et les heures consacrées jusqu'à la date de référence. La formule est AM*TP - HR (PM*TP - HR).
    • +
    • Planifiée. C'est la différence entre les heures dépensées selon la mesure globale du projet global et le nombre d'heures planifiées jusqu'à la date de référence. Cela mesure l'avance ou le retard en temps.
    • +
    • Ratio de coût. Il est calculé en divisant AM / AI (PM / PI). S'il est supérieur à 1, cela signifie que le projet est bénéficiaire à ce point et s'il est inférieur à 1, cela signifie que le projet perd de l'argent.
    • +
    • Ratio planifié. Il est calculé en divisant AM / AP (PM / PP). S'il est supérieur à 1, cela signifie que le projet est en avance et s'il est inférieur à 1, que le projet est en retard
    • +
    +
    +
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fr/15-4-work-progress-per-task.html b/libreplan-webapp/src/main/webapp/help/fr/15-4-work-progress-per-task.html new file mode 100644 index 000000000..baf7c808b --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/15-4-work-progress-per-task.html @@ -0,0 +1,121 @@ + + + + + + +Rapport de travail et d'avancement par tâches + + + +
+

Rapport de travail et d'avancement par tâches

+ + +
+

Objet

+

Ce rapport vous permet de voir l'état des tâches d'un projet en tenant compte de deux variables : l'avancement et le coût.

+

L'état courant de l'avancement des tâches est analysé en le comparant avec la prévision selon la planification et selon le travail consacré.

+

Sont également affichés plusieurs taux liés aux coûts des tâches en comparant les performances actuelles avec les performances théoriques.

+
+
+

Paramètres d'entrée et filtres

+

Il y a plusieurs paramètres obligatoires. Ce sont :

+
+
    +
  • Date de référence. C'est la date à prendre comme référence pour faire la comparaison avec l'état planifié anticipé de la tâche à cette date avec la performance réelle de cette tâche à cette même date. La valeur par défaut pour ce champ est la date actuelle.
  • +
  • Filtrer par projet. C'est le projet pour les tâches duquel on veut générer le rapport.
  • +
+
+

Quant aux champs facultatifs, ce sont :

+
+
    +
  • Filtrer par critères. Permet de ne retenir que les tâches disposant du ou des critères indiqués. Choisir un critère et cliquer sur le bouton Ajouter.
  • +
  • Filtrer par étiquettes. Permet de ne retenir que les tâches disposant de la ou des étiquettes indiquées. Choisir une étiquette et cliquer sur le bouton Ajouter.
  • +
+
+
+
+

Sortie

+

Le format de sortie est le suivant :

+
+

En-tête

+

Dans l'en-tête de rapport les champs suivants sont affichés :

+
+
    +
  • Projet. Le projet pour lequel le rapport a été obtenu.
  • +
  • Date de référence. La date de référence d'entrée obligatoire choisie pour extraire le rapport.
  • +
+
+
+
+

Pied de page

+

La date à laquelle le rapport a été généré est affichée.

+
+
+

Corps

+

Le corps contient une liste de tableaux relatifs à chacune des tâches du projet qui ont été retenues par les filtres d'entrée.

+

Une autre chose importante est que les avancements présents dans le rapport généré sont calculés en fraction d'unité. Leurs valeurs seront donc comprises entre 0 et 1.

+

Pour chaque tâche retenue pour faire partie du rapport généré, les informations suivantes sont affichées :

+
+
    +
  • Le nom de la tâche.

    +
  • +
  • Total des heures.

    +
    +

    Le total des heures de la tâche est affiché. Deux types de totaux d'heures sont affichés :

    +
      +
    • Estimées (TE). Cette quantité est l'addition de toutes les heures dans la structure hiérarchique arborescente. C'est le nombre total d'heures estimé nécessaire pour achever la tâche.
    • +
    • Planifiées (TP). Dans LibrePlan, il est possible d'avoir deux valeurs différentes. Le nombre estimé à l'avance des heures nécessaires pour réaliser une tâche et les heures planifiées qui sont les heures affectées dans la planification pour réaliser la tâche. Les heures planifiées peuvent être égales, inférieures ou supérieures aux heures estimées et sont déterminées dans une phase ultérieure, l'opération d'affectation. Ainsi, le total des heures planifiées d'un projet est l'addition de toutes les heures affectées aux tâches.
    • +
    +
    +
  • +
  • Avancement.

    +
    +

    Trois mesures liées à l'avancement au moment de la date de référence et en fonction du type d'avancement indiqué dans le filtre sont affichées :

    +
      +
    • Mesuré (AM) ou Mesured Progress (PM). C'est l'avancement global établi en additionnant toutes les mesures d'avancement ayant une date inférieure à la date de référence indiquée.
    • +
    • Imputé (AI) ou Progress Imputed (PI). C'est l'avancement calculé en considérant que le travail avancera sur le même rythme que celui des heures consacrées pour la tâche. Si X heures sur Y d'une tâche ont été faites, on considère que l'avancement global imputé est de X/Y.
    • +
    • Planifié (AP) ou Planned Progress (PP). C'est l'avancement global de la tâche conformément à la planification théorique à la date de référence. Si les choses se passent exactement comme planifié, l'avancement mesuré doit être le même que celui planifié.
    • +
    +
    +
  • +
  • Heures à ce jour.

    +
    +

    Il existe deux champs qui affichent le nombre d'heures jusqu'à la date de référence selon deux points de vue :

    +
      +
    • Planifiées (HP). Ce nombre est l'addition des heures affectées à la tâche.
    • +
    • Réelles (HR). Ce nombre est l'addition des heures rapportées dans les relevés d'heures de travail pour cette tâche ayant une date inférieure ou égale à la date de référence.
    • +
    +
    +
  • +
  • Différence.

    +
    +

    Sous ce titre il y a plusieurs métriques liées au coûts :

    +
      +
    • Coût. C'est la différence en heures entre le nombre d'heures dépensées en prenant en compte l'avancement mesuré et les heures consacrées jusqu'à la date de référence. La formule est AM*TP - HR (PM*TP - HR).
    • +
    • Planifiée. C'est la différence entre les heures dépensées et le nombre d'heures planifiées jusqu'à la date de référence. Cela mesure l'avance ou le retard en temps.
    • +
    • Ratio de coût. Il est calculé en divisant AM / AI (PM / PI). S'il est supérieur à 1, cela signifie que la tâche est bénéficiaire à ce point et s'il est inférieur à 1, cela signifie que la tâche perd de l'argent.
    • +
    • Ratio planifié. Il est calculé en divisant AM / AP (PM / PP). S'il est supérieur à 1, cela signifie que la tâche est en avance et s'il est inférieur à 1, que la tâche est en retard
    • +
    +
    +
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fr/15-5-completed-estimated-hours-per-task.html b/libreplan-webapp/src/main/webapp/help/fr/15-5-completed-estimated-hours-per-task.html new file mode 100644 index 000000000..56d6e1632 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/15-5-completed-estimated-hours-per-task.html @@ -0,0 +1,102 @@ + + + + + + +Rapport des heures estimées/planifiées par tâche + + + +
+

Rapport des heures estimées/planifiées par tâche

+ + +
+

Objet

+

Ce rapport vous permet de voir un récapitulatif des heures estimées et planifiées pour les tâches d'un projet.

+
+
+

Paramètres d'entrée et filtres

+

Il faut qu'au moins le paramètre suivant soit renseigné :

+
+
    +
  • Filtrer par projet. C'est le projet pour les tâches duquel on veut générer le rapport.
  • +
+
+

Autre paramètre obligatoire :

+
+
    +
  • Date de référence. C'est la date de référence qui servira pour afficher les heures estimées et planifiées en cours de projet. Par défaut, il s'agira de la date du jour.
  • +
+
+

Il est possible de restreindre le rapport en utilisant les paramètres facultatifs suivants :

+
+
    +
  • Filtrer par étiquettes. Permet de ne retenir que les tâches disposant de la ou des étiquettes indiquées. Choisir une étiquette et cliquer sur le bouton Ajouter.
  • +
  • Filtrer par critères. Permet de ne retenir que les tâches disposant du ou des critères indiqués. Choisir un critère et cliquer sur le bouton Ajouter.
  • +
+
+
+
+

Sortie

+

Le format de sortie est le suivant :

+
+

En-tête

+

Dans l'en-tête de rapport les champs suivants sont affichés :

+
+
    +
  • Projet. Le projet pour lequel le rapport a été obtenu s'il a été indiqué.
  • +
  • Date de référence. La date de référence utilisée pour le rapport.
  • +
  • Critères. Les critères restreignant les tâches si certains ont été indiqués.
  • +
  • Étiquettes. Les étiquettes restreignant les tâches si certaines ont été indiquées.
  • +
+
+
+
+

Pied de page

+

La date à laquelle le rapport a été généré est affichée.

+
+
+

Corps

+

Le corps contient un tableau contenant les colonnes suivantes:

+
+
    +
  • Nom de tâche
  • +
  • +
    Heures totales, les heures totales de la tâche détaillant :
    +
      +
    • Estimées : total des heures prévues
    • +
    • Planifiées : total des heures déjà planifiées
    • +
    +
    +
    +
  • +
  • +
    Heures à ce jour, les heures comptabilisées jusqu'à la date de référence détaillant :
    +
      +
    • Estimées : total des heures prévues
    • +
    • Planifiées : total des heures déjà planifiées
    • +
    +
    +
    +
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fr/15-6-order-cost-per-resource.html b/libreplan-webapp/src/main/webapp/help/fr/15-6-order-cost-per-resource.html new file mode 100644 index 000000000..7c58b275b --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/15-6-order-cost-per-resource.html @@ -0,0 +1,124 @@ + + + + + + +Rapport des coûts de projets + + + +
+

Rapport des coûts de projets

+ + +
+

Objet

+

Ce rapport vous permet de voir le coût d'un ou plusieurs projets, qu'il s'agisse des coûts horaires des ressources ou des dépenses effectuées.

+
+
+

Paramètres d'entrée et filtres

+

Il y a plusieurs paramètres facultatifs disponibles. Ce sont :

+
+
    +
  • Filtrer par projet. C'est le ou les projets pour les tâches duquel ou desquels on veut générer le rapport. Si aucun projet n'est renseigné, les coûts de tous les projets seront successivement indiqués.
  • +
  • +
    Dates.
    +
      +
    • Travail effectué depuis. C'est la date minimum des rapports de travail qui sont demandés. Les rapports avec des dates antérieures à cette date de début sont ignorés. Si le paramètre n'est pas renseigné, il n'y a pas de date de filtrage d'antériorité.
    • +
    • Travail effectué jusqu'au. C'est la date maximum des rapports de travail qui seront inclus dans les résultats. Les rapports de travail avec une date postérieure à cette date ne seront pas pris en compte. Si le paramètre n'est pas renseigné, il n'y a pas de limite supérieure de filtrage des rapports de travail.
    • +
    +
    +
    +
  • +
  • Filtrer par critères. Permet de ne retenir que les tâches disposant du ou des critères indiqués. Choisir un critère et cliquer sur le bouton Ajouter.
  • +
  • Filtrer par étiquettes. Permet de ne retenir que les tâches disposant de la ou des étiquettes indiquées. Choisir une étiquette et cliquer sur le bouton Ajouter.
  • +
+
+
+
+

Sortie

+

Le format de sortie est le suivant :

+
+

En-tête

+

Dans l'en-tête de rapport les champs suivants sont affichés :

+
+
    +
  • Les dates de début et/ou de fin si elles ont été renseignées.
  • +
  • Projet. Les projets pour lesquels le rapport est généré. Si aucun n'est indiqué, Tous les projets sera indiqué.
  • +
  • Étiquettes. Les étiquettes si certaines ont été indiquées.
  • +
  • Critères. Les critères si certains ont été indiqués.
  • +
+
+
+
+

Pied de page

+

La date à laquelle le rapport a été généré est affichée.

+
+
+

Corps

+

Le corps contient une liste de sections et de sous-sections. +On trouve d'abord une section par projet indiquant le nom et le code du projet. Dans chacune, on trouve des sous-sections concernant chacune des tâches du projet ayant fait l'objet de relevés d'heures de travail. Figurent le nom et le code de la tâche. +Enfin, dans chacune de ces sous-sections, on trouve un tableau par ressource indiquant:

+
+
    +
  • les noms et prénoms des employés ou le nom des machines.

    +
  • +
  • un tableau comportant les colonnes suivantes :

    +
    +
      +
    • Date. La date du relevé des heures de travail
    • +
    • Type d'heures. Le type d'heures concerné (par exemple: par défaut, heures supplémentaires ...).
    • +
    • Salaire. Le prix horaire de ce type d'heures.
    • +
    • Heures. Le nombre d'heures réalisées.
    • +
    • Coûts. Le coût de ces heures obtenu en multipliant les deux colonnes précédentes.
    • +
    +
    +
  • +
+
+

Sous chaque tableau on trouve le total des heures et des coûts de la ressource concernée.

+

On trouve ensuite un tableau avec pour chaque relevé de dépenses les colonnes suivantes :

+
+
    +
  • Date. La date de la dépense.
  • +
  • Catégorie. La catégorie de la dépense.
  • +
  • Ressource. La ressource à l'origine de la dépense.
  • +
  • Coûts. Les coûts de la dépense.
  • +
+
+

Sous ce tableau, on trouve le total des dépenses pour la tâche.

+

En fin de chaque section, on trouve le total des heures et des coûts de toutes les ressources ayant travaillé sur la tâche concernée.

+

En fin de chaque section de projet, on trouve le Total projet comportant :

+
+
    +
  • Le temps passé. Somme des heures effectuées pour l'ensemble des tâches par toutes les ressources impliquées

    +
  • +
  • L'argent dépensé qui présente successivement :

    +
    +
      +
    • le coût des heures
    • +
    • le coût des dépenses
    • +
    • le total des 2 coûts précédents
    • +
    +
    +
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fr/15-7-working-arrangements-per-order.html b/libreplan-webapp/src/main/webapp/help/fr/15-7-working-arrangements-per-order.html new file mode 100644 index 000000000..58a328066 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/15-7-working-arrangements-per-order.html @@ -0,0 +1,106 @@ + + + + + + +Rapport d'état de planification des tâches d'un projet + + + +
+

Rapport d'état de planification des tâches d'un projet

+ + +
+

Objet

+

Ce rapport vous permet de voir l'état d'avancement et de prévision des tâches d'un projet.

+
+
+

Paramètres d'entrée et filtres

+

Le projet est le seul paramètre obligatoire. Il existe d'autres paramètres facultatifs :

+
+
    +
  • Filtre par état des tâches. Tous par défaut. Il est possible de se limiter à un état particulier parmi les états suivants: Bloquée, Finie, En cours, En attente ou Prête à démarrer.
  • +
  • Montrer les dépendances. Cocher cette case pour afficher les dépendances des tâches dans le rapport.
  • +
  • Filtrer par étiquettes. Permet de ne retenir que les tâches disposant de la ou des étiquettes indiquées. Choisir une étiquette et cliquer sur le bouton Ajouter.
  • +
  • Filtrer par critères. Permet de ne retenir que les tâches disposant du ou des critères indiqués. Choisir un critère et cliquer sur le bouton Ajouter.
  • +
+
+
+
+

Sortie

+

Le format de sortie est le suivant :

+
+

En-tête

+

Dans l'en-tête de rapport les champs suivants sont affichés :

+
+
    +
  • Projet. Le projet pour lequel le rapport a été obtenu.
  • +
  • État. L'état des tâches objet du rapport. Toutes par défaut.
  • +
  • Étiquettes. Les étiquettes choisies s'il y en a.
  • +
  • Critères. Les critères choisis s'il y en a.
  • +
+
+
+
+

Pied de page

+

La date à laquelle le rapport a été généré est affichée.

+
+
+

Corps

+

Le corps contient une liste de tableaux relatifs à chacune des tâches du projet qui ont été retenues par les filtres d'entrée.

+

Sont d'abord affichés le nom et le code de la tâche puis un tableau comportant les colonnes suivantes :

+
+
    +
  • Date de début. Comporte à son tour deux sous-colonnes :

    +
    +
      +
    • Estimée : la date de début estimée
    • +
    • Premier relevé : date du premier relevé d'heures de travail
    • +
    +
    +
  • +
  • Date de fin. Comporte à son tour trois sous-colonnes :

    +
    +
      +
    • Estimée : la date de fin estimée
    • +
    • Dernier relevé : date du dernier relevé d'heures de travail
    • +
    • Date limite : date limite pour terminer la tâche
    • +
    +
    +
  • +
  • Avancement : le pourcentage d'avancement de la tâche

    +
  • +
  • État : l'état de la tâche parmi ceux mentionnés plus hauts

    +
  • +
  • Date limite : date d'échéance de la tâche

    +
  • +
+
+

Si la case Montrer les dépendances a été cochée, un second tableau suit le premier. Il comporte une ligne par dépendance comprenant les colonnes suivantes :

+
+
    +
  • Nom : nom de la tâche dont dépend la tâche courante
  • +
  • Code : le code de cette tâche
  • +
  • Type : le type de la dépendance
  • +
  • Avancement : avancement de la tâche, sous forme fractionnaire (de 0 à 1).
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fr/15-8-timeline-material.html b/libreplan-webapp/src/main/webapp/help/fr/15-8-timeline-material.html new file mode 100644 index 000000000..9be8123a4 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/15-8-timeline-material.html @@ -0,0 +1,86 @@ + + + + + + +Rapport des besoins en matériaux à une date donnée + + + +
+

Rapport des besoins en matériaux à une date donnée

+ + +
+

Objet

+

Ce rapport vous permet de voir la liste des matériaux dont les projets auront besoins pendant une certaine période de temps.

+
+
+

Paramètres d'entrée et filtres

+

Il y a plusieurs paramètres obligatoires. Ce sont :

+
+
    +
  • Date de début. C'est la date de début de la période objet du rapport. Par défaut, c'est la date du jour.
  • +
  • Date de fin. C'est la date de fin de la période objet du rapport. Par défaut, c'est 1 mois après la date actuelle.
  • +
  • État. C'est une liste qui permet de restreindre le rapport aux matériaux dans un état de disponibilité donné : REÇU, EN ATTENTE, COMMANDÉ, EN TRAITEMENT, ANNULÉ ou Tous qui est la valeur par défaut.
  • +
+
+

Quant aux champs facultatifs, ce sont :

+
+
    +
  • Filtrer par projet. Ce filtre permet de choisir le ou les projets pour lesquels on veut limiter les données du rapport à extraire. Si aucun projet n'est ajouté au filtre, le rapport est affiché pour tous les projets dans la base de données. Il existe une liste déroulante pour trouver le projet désiré. Ils sont ajoutés au filtre en appuyant au bouton Ajouter.
  • +
  • Filtrer par catégories ou matériaux. Ce filtre permet de restreindre le rapport à un ou plusieurs matériaux ou catégories de matériaux. Pour sélectionner plusieurs éléments, utiliser la touche CTRL.
  • +
+
+
+
+

Sortie

+

Le format de sortie est le suivant :

+
+

En-tête

+

Dans l'en-tête de rapport les champs suivants sont affichés :

+
+
    +
  • Date de début. La date de début de filtrage.
  • +
  • Date de fin. La date de fin de filtrage.
  • +
  • État. État des matériaux pour lequel le rapport a été limité.
  • +
+
+
+
+

Pied de page

+

La date à laquelle le rapport a été généré est affichée.

+
+
+

Corps

+

Le corps contient une liste de tableaux, un par jour pour lequel un ou plusieurs matériaux sont nécessaires. Ce tableau comporte les lignes suivantes :

+
+
    +
  • Matériau. Le matériau concerné.
  • +
  • Projet - tâche. Le projet (nom et code) et la tâche concernée.
  • +
  • Disponibilité. Disponibilité du matériau.
  • +
  • Unité. Nombre ou quantité nécessaire.
  • +
  • Prix unitaire. Prix unitaire du matériau.
  • +
  • Prix. Prix du nombre ou de la quantité de matériau.
  • +
  • État. État de la commande de matériau.
  • +
+
+

Sous chaque tableau, on trouve le prix total des matériaux.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fr/15-9-project-status.html b/libreplan-webapp/src/main/webapp/help/fr/15-9-project-status.html new file mode 100644 index 000000000..bfac717c4 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/15-9-project-status.html @@ -0,0 +1,77 @@ + + + + + + +Rapport d'état des projets + + + +
+

Rapport d'état des projets

+ + +
+

Objet

+

Ce rapport vous permet de voir l'état des tâches d'un projet et/ou ayant certains critères et/ou étiquettes.

+
+
+

Paramètres d'entrée et filtres

+

Il faut qu'au moins un des paramètres suivants soit renseigné :

+
+
    +
  • Filtrer par projet. C'est le projet pour les tâches duquel ou desquels on veut générer le rapport. Si aucun projet n'est renseigné, les tâches de tous les projets répondant aux critères ou aux étiquettes choisis seront successivement indiqués.
  • +
  • Filtrer par étiquettes. Permet de ne retenir que les tâches disposant de la ou des étiquettes indiquées. Choisir une étiquette et cliquer sur le bouton Ajouter.
  • +
  • Filtrer par critères. Permet de ne retenir que les tâches disposant du ou des critères indiqués. Choisir un critère et cliquer sur le bouton Ajouter.
  • +
+
+
+
+

Sortie

+

Le format de sortie est le suivant :

+
+

En-tête

+

Dans l'en-tête de rapport les champs suivants sont affichés :

+
+
    +
  • Projet. Le projet pour lequel le rapport a été obtenu s'il a été indiqué.
  • +
+
+

Viennent ensuite le total des valeurs suivantes :

+
+
    +
  • Heures estimées
  • +
  • Heures planifiées
  • +
  • Heures imputées
  • +
  • Budget
  • +
  • Coût horaire
  • +
  • Coût des dépenses
  • +
  • Coût total
  • +
+
+
+
+

Pied de page

+

La date à laquelle le rapport a été généré est affichée.

+
+
+

Corps

+

Le corps contient un tableau contenant les colonnes détaillant tâche par tâche l'ensemble des valeurs indiquées précédemment. Chaque tâche est caractérisée par son code et son nom. L'arborescence des tâches est reproduite au moyen d'autant de décalages que nécessaire.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fr/15-informes.html b/libreplan-webapp/src/main/webapp/help/fr/15-informes.html new file mode 100644 index 000000000..235cc34ee --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/15-informes.html @@ -0,0 +1,39 @@ + + + + + + +Rapports + + + + + + diff --git a/libreplan-webapp/src/main/webapp/help/fr/16-ldap-authentication.html b/libreplan-webapp/src/main/webapp/help/fr/16-ldap-authentication.html new file mode 100644 index 000000000..76f92553a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/16-ldap-authentication.html @@ -0,0 +1,217 @@ + + + + + + +Configuration LDAP + + + +
+

Configuration LDAP

+ + +

Cet écran permet d'établir une connexion avec un annuaire LDAP pour lui déléguer l'authentification et/ou l'identification. +Il est accessible via le menu Configuration, sous-menu Réglages principaux, onglet Configuration LDAP.

+

Il est divisé en quatre sections différentes comme expliqué ci-dessous :

+
+

Activation

+

Cette section est utilisée pour régler les propriétés concernant la façon dont LibrePlan utilise le LDAP.

+

Si la case Activer l'authentification LDAP est cochée, LibrePlan ira interroger le LDAP à chaque fois qu'un utilisateur essaiera de se connecter dans l'application.

+

La case Utiliser les rôles LDAP, quand elle est cochée, indique qu'un lien entre les rôles LDAP et les rôles LibrePlan est établi de telle sorte que les permissions d'un utilisateur dans LibrePlan dépendront des rôles que possède cet utilisateur dans LDAP.

+
+
+

Configuration

+

Cette section contient les valeurs des paramètres pour accéder à LDAP. D'abord le nom ou l'adresse IP de l'hôte fournissant le service LDAP puis le Port à utiliser. Base, UserDN et Mot de passe sont les paramètres utilisés pour se connecter au LDAP et chercher des utilisateurs, donc il faut utiliser un compte ayant la permission de faire cette opération dans LDAP. Dans la partie basse de cette section, il y a un bouton pour vérifier que la connexion LDAP est possible avec les paramètres indiqués. C'est une bonne idée de l'essayer avant de continuer la configuration.

+
+

Note

+

Si votre LDAP est configuré pour fonctionner avec l'authentification anonyme, vous n'êtes pas tenu de renseigner les attributs UserDN et Mot de passe.

+
+
+

Tip

+

Concernant la configuration Active Directory (AD), le champ Base doit correspondre exactement à l'emplacement où se trouve l'utilisateur lié dans l'AD.

+

Exemple : ou=organizational_unit,dc=exemple,dc=org

+
+
+
+

Authentification

+

Ici peut être configurée la propriété du LDAP où l'on doit trouver le nom d'utilisateur (given username). La propriété UserID doit être renseignée avec le nom de la propriété dans laquelle le nom d'utilisateur est enregistré dans le LDAP.

+

La case à cocher Sauvegarder les mots de passe en base de données quand elle est cochée signifie que le mot de passe sera également enregistré dans la base de données de LibrePlan. De cette façon, si le LDAP est déconnecté ou injoignable, les utilisateurs LDAP pourront quand même s'authentifier en utilisant la base de données de LibrePlan. Si la case n'est pas cochée, les utilisateurs LDAP ne pourront être authentifiés que via le LDAP.

+
+
+

Permissions

+

Cette section permet de définir une stratégie pour faire correspondre les rôles LDAP avec les rôles LibrePlan. De fait, le premier choix à faire est celui de la stratégie à utiliser en fonction de l'implémentation LDAP.

+
+

Stratégie de groupe

+

Quand cette stratégie est utilisée, cela signifie que le LDAP possède une stratégie groupe-rôle. Cela signifie que les utilisateurs dans LDAP sont des éléments appartenant directement à une branche qui représente le groupe.

+

L'exemple suivant représente une structure valide pour utiliser la stratégie de groupe.

+
    +
  • structure LDAP

    +
    +dc=exemple,dc=org
    +|- ou=groupes
    +   |- cn=admins
    +   |- cn=itpeople
    +   |- cn=employés
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=employés1
    +   |- uid=employés2
    +   |- uid=employés3
    +
    +
  • +
+

Dans ce cas, chaque groupe aura un attribut, appelé par exemple membres avec la liste des utilisateurs appartenant au groupe :

+
    +
  • cn=admins:
      +
    • membres: uid=admin1,ou=people,dc=exemple,dc=org
    • +
    • membres: uid=it1,ou=people,dc=exemple,dc=org
    • +
    +
  • +
  • cn=itpeople:
      +
    • membres: uid=it1,ou=people,dc=exemple,dc=org
    • +
    • membres: uid=it2,ou=people,dc=exemple,dc=org
    • +
    +
  • +
  • cn=employés:
      +
    • membres: uid=employés1,ou=people,dc=exemple,dc=org
    • +
    • membres: uid=employés2,ou=people,dc=exemple,dc=org
    • +
    • membres: uid=employés3,ou=people,dc=exemple,dc=org
    • +
    +
  • +
+

La configuration pour ce cas est la suivante :

+
    +
  • Stratégie de recherche du rôle : Stratégie de groupe
  • +
  • Chemin du groupe : ou=groupes
  • +
  • Propriété du rôle : membres
  • +
  • Requête de recherche de rôle : uid=[USER_ID],ou=people,dc=exemple,dc=org
  • +
+

Et, par exemple, si vous voulez faire correspondre certains rôles :

+
    +
  • Administration: cn=admins;cn=itpeople
  • +
  • Web service reader: cn=itpeople
  • +
  • Web service writer: cn=itpeople
  • +
  • All projects read allowed: cn=admins
  • +
  • All projects edition allowed: cn=admins
  • +
  • Project creation allowed: cn=employés
  • +
+
+
+

Stratégie de la propriété

+

Quand l'administrateur décide d'utiliser cette stratégie, cela signifie que chaque utilisateur est un noeud LDAP et que dans ce noeud existe une propriété qui représente le(s) groupe(s) de l'utilisateur. Dans ce cas, la configuration n'a pas besoin du paramètre Chemin du groupe :

+

L'exemple suivant représente une structure LDAP valide à utiliser avec la stratégie de propriété d'utilisateur.

+
    +
  • Structure LDAP:

    +
    +dc=exemple,dc=org
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=employés1
    +   |- uid=employés2
    +   |- uid=employés3
    +
    +
  • +
+

Avec attribut

+

Dans ce cas, chaque utilisateur aura un attribut, appelé par exemple groupe avec le nom du groupe auquel il appartient :

+
    +
  • uid=admin1:
      +
    • groupe: admins
    • +
    +
  • +
  • uid=it1:
      +
    • groupe: itpeople
    • +
    +
  • +
  • uid=it2:
      +
    • groupe: itpeople
    • +
    +
  • +
  • uid=employé1:
      +
    • groupe: employés
    • +
    +
  • +
  • uid=employé2:
      +
    • groupe: employés
    • +
    +
  • +
  • uid=employé3:
      +
    • groupe: employés
    • +
    +
  • +
+
+

Warning

+

Cette stratégie impose une restriction: chaque utilisateur ne peut appartenir qu'à un seul groupe.

+
+

La configuration dans ce cas est la suivante :

+
    +
  • Stratégie de recherche du rôle : Stratégie de la propriété
  • +
  • Chemin du groupe :
  • +
  • Propriété du rôle : groupe
  • +
  • Requête de recherche de rôle : [USER_ID]
  • +
+

Et par exemple si vous voulez faire correspondre certains rôles :

+
    +
  • Administration: admins;itpeople
  • +
  • Web service reader: itpeople
  • +
  • Web service writer: itpeople
  • +
  • All projects read allowed: admins
  • +
  • All projects edition allowed: admins
  • +
  • Project creation allowed: employés
  • +
+

Par identifiant utilisateur

+

Il existe également un moyen d'affecter des rôles LibrePlan directement aux utilisateurs sans avoir d'attribut pour chaque utilisateur LDAP.

+

Dans ce cas, vous indiquerez quels utilisateurs ont différents rôles LibrePlan via les uid.

+

La configuration dans ce cas est la suivante :

+
    +
  • Stratégie de recherche du rôle : Stratégie de la propriété
  • +
  • Chemin du groupe :
  • +
  • Propriété du rôle : uid
  • +
  • Requête de recherche de rôle : [USER_ID]
  • +
+

Et par exemple si vous voulez faire correspondre certains rôles :

+
    +
  • Administration: admin1;it1
  • +
  • Web service reader: it1;it2
  • +
  • Web service writer: it1;it2
  • +
  • All projects read allowed: admin1
  • +
  • All projects edition allowed: admin1
  • +
  • Project creation allowed: employé1;employé2;employé3
  • +
+
+
+

Correspondance des rôles

+

En bas de cette section, il y a une table avec tous les rôles LibrePlan et un champ texte à côté de chacun. C'est pour la correspondance des rôles. Par exemple, si l'administrateur décide que le rôle LibrePlan Administration correspond aux rôles LDAP admin et administrators, dans le champ texte doit apparaître : +"admin;administrators". Le caractère pour séparer les rôles est ";".

+
+

Note

+

Si vous voulez indiquer que tous les utilisateurs ou tous les groupes ont une permission, vous pouvez utiliser une astérisque (*) comme joker pour y faire référence. Par exemple, si vous voulez que tout le monde ait le rôle Project creation allowed, vous configurerez la correspondance de rôle comme suit :

+
    +
  • Project creation allowed: *
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fr/17-project-dashboard.html b/libreplan-webapp/src/main/webapp/help/fr/17-project-dashboard.html new file mode 100644 index 000000000..02121c877 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/17-project-dashboard.html @@ -0,0 +1,163 @@ + + + + + + +Tableau de bord projet + + + +
+

Tableau de bord projet

+ + +

Le tableau de bord projet est une perspective LibrePlan pour un projet donné qui contient une série d' indicateurs clefs de performance ou KPI (Key Performance Indicators) qui aident à connaître ses performances en fonction :

+
+
    +
  • de comment le travail avance
  • +
  • de combien il coûte
  • +
  • de l'état des ressources affectées
  • +
  • des contraintes de temps.
  • +
+
+
+

Indicateurs de performance d'avancement

+

Il existe deux indicateurs calculés : le pourcentage d'avancement projet et l'état des tâches.

+
+

Pourcentage d'avancement projet

+

Il s'agit d'un graphique où l'avancement global d'un projet est calculé et comparé aux valeurs attendues d'avancement que le projet devrait avoir selon le diagramme de Gantt.

+

L'avancement est représenté avec deux barres :

+
+
    +
  • Avancement actuel. C'est l'avancement tel qu'il est réellement au moment où la mesure est faite.
  • +
  • Avancement attendu. C'est l'avancement que le projet devrait avoir en ce moment selon la planification qui a été réalisée.
  • +
+
+

L'avancement global du projet est estimé de différentes façons car il n'y a pas qu'une seule bonne méthode pour le faire :

+
+
    +
  • Avancement étendu. C'est le type d'avancement positionné comme avancement étendu au niveau projet. Dans ce cas, il n'y a aucun moyen de calculer une valeur attendue et seule la barre de la valeur actuelle est affichée.
  • +
  • Par heures de toutes les tâches. L'avancement de toutes les tâches du projet est moyenné pour calculer la valeur globale. C'est une moyenne pondérée prenant en compte le nombre d'heures affecté à chaque tâche.
  • +
  • Par heures du chemin critique. L'avancement des tâches appartenant à un quelconque chemin critique du projet est moyenné pour obtenir la valeur globale. On réalise une moyenne pondérée prenant en compte les heures totales allouées à chacune des tâches impliquées.
  • +
  • Par durée des chemins critiques. L'avancement des tâches appartenant à un quelconque chemin critique est moyenné pour obtenir une moyenne pondérée mais cette fois en prenant en compte la durée de chaque tâche impliquée au lieu des heures allouées.
  • +
+
+
+
+

État des tâches

+

Un diagramme camembert montrant le pourcentage des tâches du projet étant dans différents états. Les états définis sont les suivants :

+
+
    +
  • Finies. Ce sont les tâches achevées, détectées par une valeur d'avancement mesurée de 100%.
  • +
  • En cours. Ce sont les tâches qui sont en cours. Elles ont une valeur d'avancement différente de 0% et de 100% et ayant du temps de travail enregistré.
  • +
  • Prêtes à démarrer. Elles ont un avancement de 0%, n'ont pas de temps de travail enregistré et toutes les tâches avec lesquelles elles ont une dépendance FINI_POUR_DÉMARRER sont finies et toutes les tâches avec lesquelles elles ont une dépendance DÉMARRÉE_POUR_DÉMARRER sont finies ou en cours.
  • +
  • Bloquées. Ce sont les tâches avec un avancement à 0%, sans temps de travail enregistré et avec des tâches dont elles dépendent ni dans l'état en cours ni prête à démarrer.
  • +
+
+
+
+
+

Indicateurs de coût

+

Il existe plusieurs indicateurs de coûts de gestion de la valeur acquise qui sont calculés :

+
+
    +
  • VC (Variance du coût) ou CV (Cost Variance). Différence entre la courbe de la valeur acquise et la courbe du coût actuel à un instant donné. Les valeurs positives indiquent un bénéfice et les négatives une perte.
  • +
  • CRTR (Coût réel du travail réalisé) ou ACWP (Actual Cost Work Performed). C'est le nombre total d'heures suivies dans le projet à un instant donné.
  • +
  • ICP (Indice de Coût Performance) ou CPI (Cost Performance Index). C'est le rapport Valeur acquise / Coût actuel.
      +
    • > 100 est bon, signifie être sous le budget.
    • +
    • = 100 est également bon, signifie que le coût est exactement conforme au coût planifié.
    • +
    • < 100 est mauvais, signifie que le coût pour achever le travail est plus élevé que planifié.
    • +
    +
  • +
  • TEA (Temps estimé d'achèvement) ou ETC (Estimate To Complete). C'est le temps qu'il reste à consacrer au projet pour le terminer.
  • +
  • BAC (Budget à l'achèvement / Budget At Completion). C'est le volume total de travail alloué dans le plan projet.
  • +
  • EAA (Estimation à l'achèvement) ou EAC (Estimate At Completion). C'est la projection du gestionnaire du coût total au moment de l'achèvement du projet selon l'ICP.
  • +
  • VAA (Variance à l'achèvement) ou VAC (Variance At Completion). C'est la différence entre le BAC et le TEA.
      +
    • < 0 est inférieur au budget.
    • +
    • > 0 est supérieur au budget.
    • +
    +
  • +
+
+
+
+

Ressources

+

Pour analyser le projet du point de vue des ressources, deux taux et un histogramme sont fournis.

+
+

Histogramme de dérive d'estimation sur les tâches achevées

+

Il s'agit de la dérive calculée entre le nombre d'heures allouées aux tâches du projet et du nombre éventuel d'heures qui lui ont été consacrées.

+

La dérive est calculée en pourcentage pour toutes les tâches terminées et les dérives calculées sont représentées dans un histogramme. Sur l'axe vertical, le nombre de tâches qui se trouvent dans un intervalle de dérive est affiché. Six intervalles de dérivations sont calculés dynamiquement.

+
+
+

Taux de dépassement de temps

+

Il résume la surcharge des ressources qui sont affectées aux tâches du projet. +Il est calculé selon la formule : taux de dépassement = surcharge / (charge + surcharge).

+
+
    +
  • = 0 est bon, signifie que les ressources ne sont pas surchargées.
  • +
  • > 0 est mauvais, signifie que les ressources sont surchargées.
  • +
+
+
+
+

Taux de disponibilité

+

Il résume la capacité encore libre des ressources actuellement affectées au projet. C'est donc une mesure de la disponibilité des ressources pour recevoir d'autres affectations sans être surchargées. +Il est calculé par : taux de disponibilité = (1 - charge / capacité)*100.

+
+
    +
  • Les valeurs possibles sont entre 0% (totalement affectées) et 100% (non affectées).
  • +
+
+
+
+
+

Temps

+

Sont inclus deux graphiques : un histogramme pour la dérive en temps dans le temps d'achèvement des tâches du projet et un diagramme camembert pour les violations de date d'échéance.

+
+

Avance ou retard d'achèvement des tâches

+

Est calculée la différence en jours entre la date planifiée d'achèvement des tâches du projet et leur date de fin réelle. La date d'achèvement planifiée est tirée du Gantt et la date de fin réelle du dernier temps suivi pour la tâche.

+

Le retard ou l'avance dans l'achèvement des tâches est représenté dans un histogramme. Sur l'axe vertical le nombre de tâches avec une différence de jours d'avance ou de retard correspondant aux intervalles de jours représentés en abscisse. Six intervalles dynamiques de dérive d'achèvement de tâches sont calculés.

+
+
    +
  • Des valeurs négatives indiquent un achèvement en avance.
  • +
  • Des valeurs positives indiquent un achèvement en retard.
  • +
+
+
+
+

Violation des échéances

+

D'un coté est calculé l'écart avec l'échéance du projet, si elle est renseignée. De l'autre, un diagramme camembert avec le pourcentage de tâches atteignant l'échéance est dessiné. Trois types de valeurs sont inclus dans le diagramme :

+
+
    +
  • Pourcentage des tâches sans échéance indiquée.
  • +
  • pourcentage des tâches complétées avec une date de fin réelle plus tardive que leur échéance. La date de fin réelle est obtenu à partir du dernier relevé de temps pour la tâche.
  • +
  • Pourcentage des tâches achevées avec une date de fin réelle anticipée par rapport à l'échéance.
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fr/18-connectors.html b/libreplan-webapp/src/main/webapp/help/fr/18-connectors.html new file mode 100644 index 000000000..3da70fcf1 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/18-connectors.html @@ -0,0 +1,196 @@ + + + + + + +Connecteurs + + + +
+

Connecteurs

+ + +

Les connecteurs sont des applications clientes de LibrePlan qui peuvent être utilisées pour communiquer avec des serveurs (web) pour obtenir des données, les traiter et les enregistrer. Actuellement, il existe deux connecteurs, le connecteur JIRA et le connecteur Tim Enterprise.

+
+

Configuration

+

Les connecteurs doivent être configurés de manière appropriée avant d'être utilisés. Ils peuvent être configurés à partir de l'écran de configuration Réglages principaux, onglet Connecteurs.

+

L'écran des connecteurs comporte :

+
    +
  • une liste déroulante : une liste des connecteurs disponibles
  • +
  • un écran de modification des propriétés : un formulaire de modification des propriétés pour le connecteur choisi
  • +
  • un bouton de test de la connexion : pour tester la connexion avec les connecteurs
  • +
+

Choisir le connecteur que vous voulez configurer à partir de la liste déroulante des connecteurs. Un formulaire de modification des propriétés pour le connecteur choisi va apparaître. Dans ce formulaire de modification des propriétés vous pouvez modifier les valeurs des propriétés que vous souhaitez et tester votre configuration en utilisant le bouton Tester la connexion.

+
+

Note

+

Les propriétés sont configurées avec des valeurs par défaut. La plus importante est la propriété Activé. Par défaut, elle est positionné à N. Ceci indique que le connecteur ne sera pas utilisé à moins de changer sa valeur à Y et d'enregistrer les modifications.

+
+
+
+

Connecteur JIRA

+

JIRA est un système de suivi d'incidents et de projets.

+

Le connecteur JIRA est une application qui peut être utilisée pour récupérer depuis le serveur web JIRA des incidents et traiter les réponses. +La requête est basée sur les étiquettes JIRA (JIRA labels). Dans JIRA, les étiquettes peuvent être utilisées pour catégoriser les incidents. +Aussi, la requête est aussi simple que : obtenir tous les incidents qui sont catégorisés par ce nom-d-etiquette.

+

Le connecteur obtient la réponse, dans ce cas les incidents puis les convertit en tâches et relevés des heures de travail de LibrePlan.

+

Le connecteur JIRA doit être configuré correctement avant de pouvoir être utilisé.

+
+

Configuration

+

À partir de l'écran de configuration principal, choisir l'onglet Connecteurs. +Dans l'écran des connecteurs, choisir le connecteur JIRA dans la liste déroulante. Un écran de modification des propriétés est alors affiché.

+

Dans cet écran, vous pouvez configurer les valeurs des propriétés suivantes :

+
    +
  • Activé: Y/N, selon que vous voulez utiliser le connecteur JIRA ou pas. La valeur par défaut est N.
  • +
  • URL du serveur: le chemin absolu vers le serveur web JIRA.
  • +
  • Nom d'utilisateur et Mot de passe: les informations de connexion de l'utilisateur pour l'autorisation
  • +
  • Étiquettes JIRA : liste séparée par des virgules des étiquettes ou des URL: Soit vous entrez l'URL de l'étiquette ou des étiquettes séparées par des virgules.
  • +
  • Type d'heures: type des heures de travail. La valeur par défaut est Default
  • +
+
+

Note

+

Étiquettes JIRA : actuellement, le serveur web JIRA ne gère pas la fourniture d'une liste de toutes les étiquettes disponibles. Comme contournement, nous avons développé un simple script PHP qui effectue une requête SQL simple dans la base de données pour récupérer toutes les différentes étiquettes. Vous pouvez soit utiliser ce script comme URL des étiquettes JIRA soit saisir les étiquettes que vous souhaitez séparées par des virgules dans le champ des étiquettes JIRA.

+
+

Enfin, cliquer sur le bouton Tester la connexion pour tester si vous arrivez à vous connecter au serveur web JIRA et que votre configuration est correcte.

+
+
+

Synchronisation

+

À partir de la vue Détails du projet, onglet Données générales, vous pouvez lancer la synchronisation des tâches avec les incidents JIRA.

+

Cliquer sur le bouton Synchroniser avec JIRA pour lancer la synchronisation.

+
    +
  • Si c'est la première fois, une fenêtre surgissante s'affiche (avec la liste auto-complétée des étiquettes). Dans cette fenêtre, vous pouvez choisir une étiquette avec laquelle effectuer la synchronisation puis cliquer sur le bouton Démarrer la synchronisation pour lancer le processus de synchronisation, ou cliquer sur le bouton Annuler pour l'annuler.
  • +
  • Si l'étiquette est déjà synchronisée, la date de dernière synchronisation et l' étiquette sont affichées dans l'écran JIRA. Dans ce cas, aucune fenêtre surgissante de sélection des étiquettes ne sera affichée. À la place, le processus de synchronisation va démarrer directement pour l'étiquette (déjà synchronisée) affichée.
  • +
+
+

Note

+

La relation entre projet et étiquette est de un pour un. Une Seule étiquette est autorisée à se synchroniser avec un Projet.

+
+
+

Note

+

Pour une (re)synchronisation réussie, les informations seront écrites en base de données et l'écran JIRA sera mis à jour avec les dernières dates et étiquettes synchronisées.

+
+

Le processus de (re)synchronisation est réalisé en deux phases :

+
    +
  • phase-1: Synchronisation des tâches dont les affectations d'avancement et les mesures.
  • +
  • phase-2: Synchronisation des relevés des heures de travail.
  • +
+
+

Note

+

Si la phase-1 échoue, la phase-2 ne sera pas réalisée et aucune information ne sera écrite en base de données.

+
+
+

Note

+

Les informations de réussite ou d'échec seront affichées dans la fenêtre surgissante.

+
+

Après l'achèvement avec succès d'une synchronisation, le résultat sera affiché dans l'onglet SDP (Tâches) de l'écran Détails du projet. Dans cette IHM, il y a deux modifications par rapport à la structure hiérarchique arborescente habituelle des tâches (SDP) :

+
    +
  • La colonne total des heures de la tâche n'est pas modifiable (lecture seule) du fait que la synchronisation ne fonctionne que dans un sens. Les heures des tâches ne peuvent être mises à jour que depuis le serveur web JIRA.
  • +
  • La colonne Code affiche les clefs des incidents JIRA qui sont en même temps des liens hypertexte vers ces incidents JIRA. Cliquer sur la clef souhaitée si vous voulez accéder au document de cette clef (incident JIRA).
  • +
+
+
+

Programmation

+

La re-synchronisation des incidents JIRA peut également se faire via l'ordonnanceur. Allez à l'écran Ordonnancement des tâches. Dans cet écran, vous pouvez configurer une tâche (job) JIRA pour faire la synchronisation. La tâche recherche les dernières étiquettes synchronisées dans la base de données et les resynchronise en conséquence. Voir également la section relative à l'ordonnanceur.

+
+
+
+

Connecteur Tim Enterprise

+

Tim Enterprise est un projet hollandais de Aénova. C'est une application web pour la gestion du temps passé sur les projets et les tâches.

+

Le connecteur TIM est une application qui peut être utilisée pour communiquer avec le serveur Tim Enterprise pour :

+
    +
  • exporter toutes les heures passées par l'employé (utilisateur) sur un projet qui peut être enregistré dans Tim Enterprise.
  • +
  • importer toutes les contraintes de l'employé (utilisateur) de façon à planifier l'utilisation des ressources efficacement.
  • +
+

Le connecteur Tim doit être configuré correctement avant d'être utilisé.

+
+

Configuration

+

Depuis l'écran de configuration des Réglages principaux, choisir l'onglet Connecteurs. +Dans l'écran des connecteurs, choisir le connecteur Tim dans la liste déroulante. Un écran de modification des propriétés est maintenant affiché.

+

Dans cet écran, vous pouvez configurer les valeurs des propriétés suivantes :

+
    +
  • Activé: Y/N, selon que vous voulez utiliser le connecteur Tim ou non. La valeur par défaut est N.
  • +
  • URL du serveur: le chemin d'accès absolu au serveur Tim Enterprise
  • +
  • Nom d'utilisateur et mot de passe : les informations de l'utilisateur pour se connecter
  • +
  • Nombre de relevés journaliers des heures de travail pour Tim: le nombre de jours écoulés pour lesquels vous voulez exporter les relevés des heures de travail
  • +
  • Nombre de listes de jours provenant de Tim: le nombre de jours à venir pour lesquels vous voulez importer les feuilles de service
  • +
  • Facteur de productivité : Heures de travail efficaces en pourcentage. La valeur par défaut est 100%
  • +
  • Liste des ID de département à importer: identifiants des départements séparés par des virgules.
  • +
+

Enfin, cliquez sur le bouton Tester la connexion pour vérifier que vous pouvez vous connecter au serveur Tim Enterprise et que votre configuration est correcte.

+
+
+

Export

+

Depuis la fenêtre projet, onglet Données générales, vous pouvez lancer l'exportation des relevés des heures de travail vers le serveur Tim Enterprise.

+

Saisir le code produit Tim et cliquer sur le bouton Exporter vers Tim pour lancer l'export.

+

Le connecteur Tim ajoute les champs suivants avec le code produit :

+
    +
  • le nom complet de l'employé/utilisateur
  • +
  • la date à laquelle l'employé a travaillé sur une tâche
  • +
  • l'effort, les heures passées sur la tâche
  • +
  • et une option indiquant si Tim Enterprise doit mettre à jour l'enregistrement ou en insérer un nouveau
  • +
+

La réponse de Tim Enterprise ne contient qu'une liste d' identifiants d'enregistrement (entiers). Du coup, il est difficile de voir ce qui n'a pas fonctionné car la liste de réponse ne contient que des nombres qui ne sont pas reliés aux champs de la requête. +La requête d' export a échoué pour les entrées qui contiennent des valeurs 0. Aussi vous ne pouvez pas voir ici quelle requête a échoué car les entrées de la liste ne contiennent que la valeur 0. La seule façon de comprendre est de regarder le fichier journal du serveur Tim Enterprise.

+
+

Note

+

Pour un export réussi, les informations seront écrites dans la base de données et l'écran Tim sera mis à jour avec les dernières date - code produit exportés.

+
+
+

Note

+

Les information de réussite ou d'échec seront affichées dans une fenêtre surgissante.

+
+
+
+

Export programmé

+

Le processus d'export peut également se faire via l'ordonnanceur. Aller à l'écran Ordonnanceur de tâches. Dans cet écran, vous pouvez configurer une tâche système d'export vers Tim. La tâche système recherche les derniers relevés des heures de travail exportés dans la base de données et les réexporte en conséquence. Voir également la section relative à l'ordonnanceur.

+
+
+

Import

+

L'import des listes de service ne fonctionne qu'avec l'aide de l'ordonnanceur. Il n'y a pas d'interface utilisateur dédiée étant donné qu'aucune saisie de l'utilisateur n'est nécessaire. Aller à l'écran Ordonnancement des tâches et configurer la tâche d'import Tim. La tâche boucle sur tous les départements configurés dans la propriété des connecteurs et importe toutes les feuilles de service de chaque département. Voir également la section relative à l'ordonnanceur.

+

Pour l'import, le connecteur Tim ajoute les champs suivants dans la requête :

+
    +
  • Période : la période (date à partir du - date jusqu'au) pour laquelle vous voulez importer les feuilles de service. Ceci peut être fourni sous forme de critères de filtrage.
  • +
  • Département : pour quel département vous voulez importer la feuille de services. Les départements sont configurables.
  • +
  • Les champs qui vous intéressent (telles que informations personnelles, catégorie de feuilles de service, etc.) et que le serveur Tim doit inclure dans sa réponse.
  • +
+

La réponse d'import contient les champs suivants qui sont suffisants pour gérer les jours exceptionnels dans LibrePlan :

+
    +
  • Information personnelles : nom et nom du réseau
  • +
  • Département : le département dans lequel l'employé travaille
  • +
  • Catégorie de feuilles de service : information sur la présence/l'absence de l'employé et le motif (type d'exception LibrePlan) dans le cas où l'employé est absent
  • +
  • Date: la date à laquelle l'employé est présent/absent
  • +
  • Temps : l'heure de début d'absence/présence, par exemple 08:00
  • +
  • Durée : nombre d'heures pendant lesquelles l'employé est présent / absent
  • +
+

En convertissant la réponse d'import en jours exceptionnels de LibrePlan, les transformations suivantes sont prises en compte :

+
    +
  • Si la catégorie de feuilles de service contient le nom Vakantie elle sera traduite en RESOURCE VACANCY (VACANCES DES RESSOURCES).
  • +
  • La catégorie Feestdag sera traduite en BANK HOLIDAY (jour férié)
  • +
  • Toutes les autres comme Jus uren, PLB uren, etc. doivent être ajoutées manuellement aux jours exceptionnels du calendrier.
  • +
+

Après la réponse d'import, la feuille de service est divisée en deux ou trois parties par jour : par exemple, roster-morning, roster-afternoon et roster-evening. Mais LibrePlan n'autorise qu'un seul type d'exception par jour. Le connecteur Tim est alors responsable de fusionner ces parties en un seul type d'exception. Cela signifie que la catégorie de feuilles de service avec la durée la plus longue est supposée être un type d'exception valide mais la durée totale est la somme de toutes les durées de ces parties de catégorie.

+

Contrairement à LibrePlan, dans Tim Enterprise, la durée totale dans le cas où l'employé est en vacances signifie que l'employé n'est pas disponible pour cette durée totale. Dans LibrePlan au contraire, si l'employé est en vacances, la durée totale sera Zéro. Le connecteur Tim prend également en charge de cette transformation.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fr/19-scheduler.html b/libreplan-webapp/src/main/webapp/help/fr/19-scheduler.html new file mode 100644 index 000000000..60fc663fe --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/19-scheduler.html @@ -0,0 +1,106 @@ + + + + + + +Ordonnanceur + + + +
+

Ordonnanceur

+ + +

L'ordonnanceur est conçu pour programmer des tâches système dynamiquement. Il a été implémenté avec l'aide de l'ordonnanceur Quartz du framework Spring.

+

De façon à utiliser cet ordonnanceur efficacement, les tâches système (jobs Quartz) qui doivent être programmées doivent être créées au préalable. Ensuite, ces tâches système pourront être ajoutées à la base de données puisque toutes les tâches système à programmer sont enregistrées en base de données.

+

Quand l'ordonnanceur démarre la première fois, il lit les tâches système à programmer/déprogrammer dans la base de données et les programme/supprime en conséquence. Après cela, des tâches système peuvent être ajoutées/mises à jour ou supprimées dynamiquement en utilisant l'interface utilisateur Ordonnancement de tâches système.

+
+

Note

+

L'ordonnanceur démarre quand l'application web LibrePlan démarre et s'arrête quand l'application s'arrête.

+
+
+

Note

+

Cet ordonnanceur ne gère que les expressions cron pour programmer les tâches système.

+
+

Les critères que l'ordonnanceur utilise pour programmer/supprimer des tâches système quand il démarre la première fois :

+

Pour toutes les tâches système :

+
    +
  • Programmer
      +
    • La tâche système possède un Connecteur et le Connecteur est activé et une tâche système est autorisée à être programmée
    • +
    • La tâche système n'a pas de Connecteur et est autorisée à être programmée
    • +
    +
  • +
  • Supprimer
      +
    • La tâche système a un Connecteur et le Connecteur n'est pas activé
    • +
    • La tâche système a un Connecteur et le Connecteur est activé mais la tâche système n'est pas autorisée à être programmé
    • +
    • La tâche système n'a pas de Connecteur et n'est pas autorisée à être programmée
    • +
    +
  • +
+
+

Note

+

Les tâches système ne peuvent pas être reprogrammées/déprogrammées si elles sont en cours d'exécution

+
+
+

Vue de la liste de programmation des tâches systèmes

+

La vue liste de programmation des tâches système permet aux utilisateurs de :

+
    +
  • ajouter une nouvelle tâche système
  • +
  • modifier une tâche système existante
  • +
  • supprimer une tâche système
  • +
  • démarrer manuellement un processus
  • +
+
+
+

Ajouter ou modifier une tâche système

+

À partir de la vue liste de programmation des tâches système, cliquer sur :

+
    +
  • le bouton Créer pour ajouter une nouvelle tâche système, ou
  • +
  • le bouton Modifier pour modifier la tâche système choisie.
  • +
+

Ces deux actions vous conduiront à un formulaire création/modification de tâches système. Le formulaire affiche les propriétés suivantes :

+
    +
  • Champs :
      +
    • Groupe de tâches système : le nom du groupe de tâches système
    • +
    • Nom de tâche système : le nom de la tâche système
    • +
    • Expression cron : champ en lecture seule avec un bouton Modifier pour ouvrir une fenêtre de saisie d'une expression cron
    • +
    • Nom de classe de la tâche système : liste déroulante pour choisir un connecteur. Ce n'est pas obligatoire.
    • +
    • Programmation: case à cocher pour indiquer si vous voulez programmer la tâche système ou non
    • +
    +
  • +
  • Boutons :
      +
    • Enregistrer : pour enregistrer/mettre à jour une tâche système à la fois en base de données et dans l'ordonnanceur. L'utilisateur est alors ramené à la vue de la liste de programmation des tâches système
    • +
    • Enregistrer et continuer : la même chose que ci-dessus à la différence que l'utilisateur n'est pas ramené à la vue de la liste de programmation des tâches système.
    • +
    • Annuler : ne rien enregistrer et l'utilisateur est ramené à la vue de la liste de programmation des tâches système
    • +
    +
  • +
  • Et une aide concernant la syntaxe des expressions cron
  • +
+
+

Fenêtre surgissante des expressions cron

+

De façon à saisir correctement l' expression cron, un formulaire surgissant d'expression cron est utilisé. Dans ce formulaire, vous pouvez saisir l'expression cron souhaitée. Voir également l'astuce concernant l'expression cron. Dans le cas où vous saisiriez une expression cron incorrecte, vous seriez immédiatement averti que l'expression cron saisie n'est pas conforme.

+
+
+
+

Supprimer une tâche système

+

Cliquer sur le bouton Supprimer pour supprimer la tâche système à la fois dans la base de données et dans l'ordonnanceur. L'information de réussite/d'échec de cette action sera affichée.

+
+
+

Démarrer la tâche système manuellement

+

Au lieu d'attendre jusqu'à ce que la tâche système soit exécutée comme planifié par l'ordonnanceur, vous pouvez cliquer ce bouton pour lancer le processus directement. A l'issue, l'information de réussite/d'échec sera affichée dans une fenêtre surgissante.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fr/20-acerca-de.html b/libreplan-webapp/src/main/webapp/help/fr/20-acerca-de.html new file mode 100644 index 000000000..02a4c34df --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/20-acerca-de.html @@ -0,0 +1,124 @@ + + + + + + +À propos + + + +
+

À propos

+ + + +
+

Licence

+

Ce programme est un logiciel libre : vous pouvez le redistribuer et/ou le modifier selon les termes de la licence GNU Affero General Public telle que publiée par la Free Software Foundation, soit la version 3 de la licence, soit à votre convenance, toute version ultérieure.

+

Ce programme est distribué dans l'espoir qu'il sera utile mais SANS AUCUNE GARANTIE; y compris sans la garantie MARCHANDE ou D'ADÉQUATION A UN OBJECTIF PARTICULIER. Voir la licence GNU Affero General Public License pour davantage de détails.

+

Vous devriez avoir reçu une copie de la licence GNU Affero General Public avec ce programme. Si tel n'était pas le cas, voir <http://www.gnu.org/licenses/>.

+
+
+

Écrit par

+
+

Équipe LibrePlan

+ +
+
+

Anciens membres de l'équipe

+ +
+
+

Traducteurs

+ +
+
+

Contributeurs

+ +
+
+
+

Financements publics

+

LibrePlan ayant été conçu pour répondre aux problèmes relatifs à la gestion de projet d'un point de vue global, un projet a du être lancé pour résoudre certains problèmes courants de planification. Ce projet est partiellement financé par Xunta de Galicia, Ministerio de Industria, Turismo e Comercio et par l'Union européenne, fond européen de développement régional.

+
+images/logos.png +
+

Ce projet fait partie du Plan Avanza :

+
+images/avanza.png +
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/advance-assignment.png b/libreplan-webapp/src/main/webapp/help/fr/images/advance-assignment.png new file mode 100644 index 000000000..9276cb368 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/advance-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/asignacion-especifica.png b/libreplan-webapp/src/main/webapp/help/fr/images/asignacion-especifica.png new file mode 100644 index 000000000..290a62253 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/asignacion-especifica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/asignacion-xenerica.png b/libreplan-webapp/src/main/webapp/help/fr/images/asignacion-xenerica.png new file mode 100644 index 000000000..d12033f61 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/asignacion-xenerica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/avance.png b/libreplan-webapp/src/main/webapp/help/fr/images/avance.png new file mode 100644 index 000000000..678106536 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/avanza.png b/libreplan-webapp/src/main/webapp/help/fr/images/avanza.png new file mode 100644 index 000000000..a51893f80 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/avanza.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/calendar-administration.png b/libreplan-webapp/src/main/webapp/help/fr/images/calendar-administration.png new file mode 100644 index 000000000..05c0630f2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/calendar-administration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/calendar-create-derived.png b/libreplan-webapp/src/main/webapp/help/fr/images/calendar-create-derived.png new file mode 100644 index 000000000..30da8ab2f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/calendar-create-derived.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/calendar-edition.png b/libreplan-webapp/src/main/webapp/help/fr/images/calendar-edition.png new file mode 100644 index 000000000..7480857bb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/calendar-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/calendar-exceptions.png b/libreplan-webapp/src/main/webapp/help/fr/images/calendar-exceptions.png new file mode 100644 index 000000000..707dfdf3f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/calendar-exceptions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/category-cost-edit.png b/libreplan-webapp/src/main/webapp/help/fr/images/category-cost-edit.png new file mode 100644 index 000000000..c62dbb9ef Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/category-cost-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/category-cost-list.png b/libreplan-webapp/src/main/webapp/help/fr/images/category-cost-list.png new file mode 100644 index 000000000..f428f4fa7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/category-cost-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/company_view.png b/libreplan-webapp/src/main/webapp/help/fr/images/company_view.png new file mode 100644 index 000000000..0b601d9b7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/company_view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/company_view_earned_value.png b/libreplan-webapp/src/main/webapp/help/fr/images/company_view_earned_value.png new file mode 100644 index 000000000..23c790c9a Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/company_view_earned_value.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/contraste-avance.png b/libreplan-webapp/src/main/webapp/help/fr/images/contraste-avance.png new file mode 100644 index 000000000..32bf4f194 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/contraste-avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/default-calendar.png b/libreplan-webapp/src/main/webapp/help/fr/images/default-calendar.png new file mode 100644 index 000000000..682656214 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/default-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/edicion_criterio.png b/libreplan-webapp/src/main/webapp/help/fr/images/edicion_criterio.png new file mode 100644 index 000000000..84b89d907 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/edicion_criterio.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/hour-type-edit.png b/libreplan-webapp/src/main/webapp/help/fr/images/hour-type-edit.png new file mode 100644 index 000000000..82641693f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/hour-type-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/hour-type-list.png b/libreplan-webapp/src/main/webapp/help/fr/images/hour-type-list.png new file mode 100644 index 000000000..03744d1f2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/hour-type-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/lista-criterios.png b/libreplan-webapp/src/main/webapp/help/fr/images/lista-criterios.png new file mode 100644 index 000000000..bd0e0be49 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/lista-criterios.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/logo.png b/libreplan-webapp/src/main/webapp/help/fr/images/logo.png new file mode 100644 index 000000000..4e7d02651 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/logo.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/logos.png b/libreplan-webapp/src/main/webapp/help/fr/images/logos.png new file mode 100644 index 000000000..7314a0759 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/logos.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/machine-calendar.png b/libreplan-webapp/src/main/webapp/help/fr/images/machine-calendar.png new file mode 100644 index 000000000..f37c76ebe Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/machine-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/machine-configuration.png b/libreplan-webapp/src/main/webapp/help/fr/images/machine-configuration.png new file mode 100644 index 000000000..354fe16d7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/machine-configuration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/machine-costcategory.png b/libreplan-webapp/src/main/webapp/help/fr/images/machine-costcategory.png new file mode 100644 index 000000000..bba098b87 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/machine-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/machine-criterions.png b/libreplan-webapp/src/main/webapp/help/fr/images/machine-criterions.png new file mode 100644 index 000000000..c575881fe Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/machine-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/machine-data.png b/libreplan-webapp/src/main/webapp/help/fr/images/machine-data.png new file mode 100644 index 000000000..b2334952a Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/machine-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/manage-user-profile.png b/libreplan-webapp/src/main/webapp/help/fr/images/manage-user-profile.png new file mode 100644 index 000000000..637037033 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/manage-user-profile.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/manage-user.png b/libreplan-webapp/src/main/webapp/help/fr/images/manage-user.png new file mode 100644 index 000000000..1d3881c30 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/manage-user.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/material.png b/libreplan-webapp/src/main/webapp/help/fr/images/material.png new file mode 100644 index 000000000..f21413f00 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/menu.png b/libreplan-webapp/src/main/webapp/help/fr/images/menu.png new file mode 100644 index 000000000..ae97c750b Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/menu.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/new-resource-calendar.png b/libreplan-webapp/src/main/webapp/help/fr/images/new-resource-calendar.png new file mode 100644 index 000000000..b319e0094 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/new-resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/order-assigned-hours.png b/libreplan-webapp/src/main/webapp/help/fr/images/order-assigned-hours.png new file mode 100644 index 000000000..79ead6beb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/order-assigned-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/order-criterions.png b/libreplan-webapp/src/main/webapp/help/fr/images/order-criterions.png new file mode 100644 index 000000000..62b319091 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/order-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/order-edition.png b/libreplan-webapp/src/main/webapp/help/fr/images/order-edition.png new file mode 100644 index 000000000..75ef4653f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/order-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/order-element-criterion.png b/libreplan-webapp/src/main/webapp/help/fr/images/order-element-criterion.png new file mode 100644 index 000000000..a2f6d2b36 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/order-element-criterion.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/order-element-edition.png b/libreplan-webapp/src/main/webapp/help/fr/images/order-element-edition.png new file mode 100644 index 000000000..f91ca1bcc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/order-element-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/order-element-hours.png b/libreplan-webapp/src/main/webapp/help/fr/images/order-element-hours.png new file mode 100644 index 000000000..c500785af Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/order-element-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/order-element-material-assign.png b/libreplan-webapp/src/main/webapp/help/fr/images/order-element-material-assign.png new file mode 100644 index 000000000..1a775fd92 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/order-element-material-assign.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/order-element-material-search.png b/libreplan-webapp/src/main/webapp/help/fr/images/order-element-material-search.png new file mode 100644 index 000000000..e16c5634c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/order-element-material-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/order-element-quality.png b/libreplan-webapp/src/main/webapp/help/fr/images/order-element-quality.png new file mode 100644 index 000000000..b5222f31d Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/order-element-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/order-element-tags.png b/libreplan-webapp/src/main/webapp/help/fr/images/order-element-tags.png new file mode 100644 index 000000000..19096fc24 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/order-element-tags.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/order-elements-list.png b/libreplan-webapp/src/main/webapp/help/fr/images/order-elements-list.png new file mode 100644 index 000000000..ac99d3926 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/order-elements-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/order-labels.png b/libreplan-webapp/src/main/webapp/help/fr/images/order-labels.png new file mode 100644 index 000000000..325a2f255 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/order-labels.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/order-material.png b/libreplan-webapp/src/main/webapp/help/fr/images/order-material.png new file mode 100644 index 000000000..ca41f674a Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/order-material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/order-quality.png b/libreplan-webapp/src/main/webapp/help/fr/images/order-quality.png new file mode 100644 index 000000000..25df243d1 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/order-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/order_list.png b/libreplan-webapp/src/main/webapp/help/fr/images/order_list.png new file mode 100644 index 000000000..5ca5e98fb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/order_list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/planning-view.png b/libreplan-webapp/src/main/webapp/help/fr/images/planning-view.png new file mode 100644 index 000000000..52fa180d0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/planning-view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/quality.png b/libreplan-webapp/src/main/webapp/help/fr/images/quality.png new file mode 100644 index 000000000..2f6e7f518 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/resource-assignment-planning.png b/libreplan-webapp/src/main/webapp/help/fr/images/resource-assignment-planning.png new file mode 100644 index 000000000..ed097d889 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/resource-assignment-planning.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/resource-assignment-search.png b/libreplan-webapp/src/main/webapp/help/fr/images/resource-assignment-search.png new file mode 100644 index 000000000..a83284824 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/resource-assignment-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/resource-assignment.png b/libreplan-webapp/src/main/webapp/help/fr/images/resource-assignment.png new file mode 100644 index 000000000..166a04557 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/resource-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/resource-calendar.png b/libreplan-webapp/src/main/webapp/help/fr/images/resource-calendar.png new file mode 100644 index 000000000..dee1793bf Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/resource-load.png b/libreplan-webapp/src/main/webapp/help/fr/images/resource-load.png new file mode 100644 index 000000000..f114e5973 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/resource-load.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/resources_global.png b/libreplan-webapp/src/main/webapp/help/fr/images/resources_global.png new file mode 100644 index 000000000..29c5e3feb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/resources_global.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/stretches.png b/libreplan-webapp/src/main/webapp/help/fr/images/stretches.png new file mode 100644 index 000000000..a782b6f42 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/stretches.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/tag-types-edition.png b/libreplan-webapp/src/main/webapp/help/fr/images/tag-types-edition.png new file mode 100644 index 000000000..03c76417d Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/tag-types-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/tag-types-list.png b/libreplan-webapp/src/main/webapp/help/fr/images/tag-types-list.png new file mode 100644 index 000000000..4ea3dd325 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/tag-types-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/tipos-avances.png b/libreplan-webapp/src/main/webapp/help/fr/images/tipos-avances.png new file mode 100644 index 000000000..4b489006e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/tipos-avances.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/virtual-resources.png b/libreplan-webapp/src/main/webapp/help/fr/images/virtual-resources.png new file mode 100644 index 000000000..fffbc390c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/virtual-resources.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/work-report-hours.png b/libreplan-webapp/src/main/webapp/help/fr/images/work-report-hours.png new file mode 100644 index 000000000..219fda15a Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/work-report-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/work-report-type.png b/libreplan-webapp/src/main/webapp/help/fr/images/work-report-type.png new file mode 100644 index 000000000..f19be35c7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/work-report-type.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/work-report-types.png b/libreplan-webapp/src/main/webapp/help/fr/images/work-report-types.png new file mode 100644 index 000000000..6b9a67b5e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/work-report-types.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/worker-calendar.png b/libreplan-webapp/src/main/webapp/help/fr/images/worker-calendar.png new file mode 100644 index 000000000..162ffb405 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/worker-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/worker-costcategory.png b/libreplan-webapp/src/main/webapp/help/fr/images/worker-costcategory.png new file mode 100644 index 000000000..0f61efd60 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/worker-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/worker-criterions.png b/libreplan-webapp/src/main/webapp/help/fr/images/worker-criterions.png new file mode 100644 index 000000000..edb8ede75 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/worker-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/images/worker-personal-data.png b/libreplan-webapp/src/main/webapp/help/fr/images/worker-personal-data.png new file mode 100644 index 000000000..72c020786 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/fr/images/worker-personal-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/fr/index.html b/libreplan-webapp/src/main/webapp/help/fr/index.html new file mode 100644 index 000000000..1bdebfc34 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/index.html @@ -0,0 +1,46 @@ + + + + + + +LibrePlan: documentation utilisateur + + + +
+

LibrePlan: documentation utilisateur

+ +images/logo.png +

Ce document a pour objet de fournir l'aide nécessaire pour utiliser LibrePlan, application web open source de planification de projets.

+

Il comporte trois parties principales :

+
    +
  • les objectifs et le mode de fonctionnement générique;
  • +
  • les informations principales des concepts de base nécessaires pour utiliser LibrePlan;
  • +
  • le mode d'emploi complet permettant de créer des projets, de les planifier, de leur affecter des ressources, y compris de manière avancée et de produire des rapports.
  • +
+
    +
  1. Introduction
  2. +
  3. Critères
  4. +
  5. Calendriers
  6. +
  7. Avancement
  8. +
  9. Gestion des ressources
  10. +
  11. Projets et tâches
  12. +
  13. Planification des tâches
  14. +
  15. Affectation des ressources
  16. +
  17. Relevés des heures de travail
  18. +
  19. Étiquettes
  20. +
  21. Matériaux
  22. +
  23. Formulaires qualité
  24. +
  25. Utilisateurs
  26. +
  27. Gestion des coûts
  28. +
  29. Rapports
  30. +
  31. Configuration LDAP
  32. +
  33. Tableau de bord projet
  34. +
  35. Connecteurs
  36. +
  37. Ordonnanceur
  38. +
  39. À propos
  40. +
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/fr/lsr.css b/libreplan-webapp/src/main/webapp/help/fr/lsr.css new file mode 100644 index 000000000..81e4c1669 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/fr/lsr.css @@ -0,0 +1,251 @@ +/* +Author: Peter Parente +Date: 2008/01/22 +Version: 1.0 +Copyright: This stylesheet has been placed in the public domain - free to edit and use for all uses. +*/ + +body { + font: 0.8em Verdana, Tahoma, sans-serif; + background: #ffffff; + color: black; + margin: 2em; +/* padding: 0em 2em; */ +} + +p.topic-title { + font-weight: bold; +} + +table.docinfo { + text-align: left; + margin: 2em 0em; +} + +a[href] { + color: #436976; + background-color: transparent; +} + +a.toc-backref { + text-decoration: none; +} + +h1 a[href] { + color: #003a6b; + text-decoration: none; + background-color: transparent; +} + +a.strong { + font-weight: bold; +} + +img { + margin: 0; + border: 0; +} + +p { + margin: 0.5em 0 1em 0; + line-height: 1.5em; +} + +p a:visited { + color: purple; + background-color: transparent; +} + +p a:active { + color: red; + background-color: transparent; +} + +a:hover { + text-decoration: none; +} + +p img { + border: 0; + margin: 0; +} + +p.rubric { + font-weight: bold; + font-style: italic; +} + +h1.title { + color: #003a6b; + font-size: 250%; + margin-bottom: 0em; +} + +h2.subtitle { + color: #003a6b; + border-bottom: 0px; +} + +h1, h2, h3, h4, h5, h6 { + color: #555; + background-color: transparent; + margin: 0em; + padding-top: 0.5em; +} + +h1 { + font-size: 160%; + margin-bottom: 0.5em; + border-bottom: 2px solid #aaa; +} + +h2 { + font-size: 140%; + margin-bottom: 0.5em; + border-bottom: 1px solid #aaa; +} + +h3 { + font-size: 130%; + margin-bottom: 0.5em; +} + +h4 { + font-size: 110%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h5 { + font-size: 105%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h6 { + font-size: 100%; + font-weight: bold; + margin-bottom: 0.5em; +} + +dt { + font-style: italic; +} + +dd { + margin-bottom: 1.5em; +} + +div.admonition, div.note, div.tip, div.caution, div.important, div.warning { + margin: 2em 2em; + padding: 0em 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +div.important { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +div.caution { + background: transparent url('../images/caution.png') 10px 2px no-repeat; +} + +div.note { + background: transparent url('../images/note.png') 10px 2px no-repeat; +} + +div.tip { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-example { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-critical-example { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +p.admonition-title { + font-weight: bold; + border-bottom: 1px solid #aaa; + padding-left: 30px; +} + +table.docutils { + text-align: left; + border: 1px solid gray; + border-collapse: collapse; + width: 100%; + margin: 1.5em 0em; +} + +table.docutils caption { + font-style: italic; +} + +table.docutils td, table.docutils th { + padding: 0.25em 0.5em; +} + +table.docutils th { + background-color: #dddddd; +} + +div.sidebar { + width: 33%; + float: right; + margin: 0em 2em; + padding: 0em 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +p.sidebar-title { + margin-bottom: 0em; + color: #003a6b; + border-bottom: 1px solid #aaa; + font-weight: bold; +} + +p.sidebar-subtitle { + margin-top: 0em; + font-style: italic; + color: #003a6b; +} + +div.figure { + text-align: center; +} + +div.figure img { + background: #f8f8f8; + padding: 0.25em; + border: 1px solid #888; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +div.figure img:hover { + background: #e0e0e0; +} + +div.figure p.caption { + text-align: center; + margin-top: 0.1em; + font-style: italic; + color: #444; +} + +pre.literal-block { + padding: 0.15em; + background: #f8f8f8; + border: 1px solid #dfdfdf; + border-left: 0.25em solid #dfdfdf +} diff --git a/libreplan-webapp/src/main/webapp/help/gl/01-introducion.html b/libreplan-webapp/src/main/webapp/help/gl/01-introducion.html new file mode 100644 index 000000000..b8799d7a1 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/gl/01-introducion.html @@ -0,0 +1,147 @@ + + + + + + +Introdución + + + +
+

Introdución

+ + +

O propósito deste documento é describir as características de LibrePlan e +proporcionar información ós usuarios sobre como configurar e utilizar a +aplicación.

+

LibrePlan é unha aplicación web de código aberto para a planificación de +proxectos. O seu obxectivo principal é proporcionar unha solución completa para a +xestión dos proxectos da empresa. +Para calquera información específica que necesites sobre este software, por +favor ponte en contacto co equipo de desenvolvemento en +http://www.libreplan.com/contact/

+
+images/company_view.png +

Vista global de empresa

+
+
+

Vista global da empresa e xestión de perspectivas

+

Tal e como se visualiza na anterior captura, a principal pantalla da aplicación e a vista global da empresa, unha vista na que o usuario poderá visualizar a lista de proxectos planificados para coñecer o estado global da empresa, tanto a nivel de pedidos, como de uso de recursos. A vista global de empresa está, asimesmo, formada por 3 perspectivas:

+
    +
  • Vista de planificación: Vista que conxuga dous puntos de vista:

    +
    +
      +
    • Vista dos pedidos e a sua temporalidade: Cada proxecto é unha caixa de diagramas de Gantt indicando a data de comezo e de fin do proxecto. Ademais, combínase dita información co amosado da data acordada de finalización (deadline) e con un contraste entre porcentaxe de avance e horas adicadas realmente a cada proxecto. Esta información da unha visión clara de como se atopa a empresa nun momento dado. Esta vista é a portada da aplicación.
    • +
    • Gráfica de uso dos recursos da empresa: Gráfica que busca a información de asignacións dos recursos ós proxectos e que ofrece un resumo de como está o uso dos recursos de toda a empresa: a cor verde indica asignacións de recursos por debaixo do 100%, a liña negra indica a carga dispoñible de recursos e a cor amarela indica as asignacións a recursos que están por enriba do 100%. É posible dispor de menos asignacións que recursos dispoñibles e ó mesmo tempo contar con sobreasignacións en recursos concretos.
    • +
    +
    +
  • +
  • Vista de carga de recursos: Pantalla que amosa o listado de traballadores da empresa e a carga debido a asignacións específicas a tarefas ou asignacións xenéricas debido a que o recurso satisfai unha lista de criterios. Ver a seguinte imaxe. Para acceder a esta vista é necesario premer en Carga global de recursos.

    +
  • +
  • Vista de administración de pedidos. Pantalla que amosa o listado de pedidos da empresa onde o usuario poderá realizar as seguintes operacións: filtrar, editar, borrar, visualizar en planificación ou crear novo pedido. Para acceder a esta vista é necesario premer en Lista de pedidos.

    +
  • +
+
+images/resources_global.png +

Vista global de recursos

+
+
+images/order_list.png +

Estructura de Descomposición de Traballo

+
+

A xestión de perspectivas que se comentou para a vista global de empresa é moi similar á prantexada para un só proxecto. O acceso a un proxecto pódese realizar de varias formas:

+
    +
  • Premendo no botón dereito sobre a caixa de diagrama de Gantt do pedido e seleccionando en Planificar.
  • +
  • Accedendo ó listado de pedidos e premendo na icona simbolizando os diagramas de Gantt.
  • +
  • Creando un novo pedido e cambiar de perspectiva sobre o pedido sendo visualizado.
  • +
+

Sobre un pedido, a aplicación amosa as seguintes perspectivas:

+
    +
  • Vista de planificación. Vista na que o usuario pode visualizar a planificación das tarefas, dependencias, fitos, etc. Ver sección de Planificación para máis información.
  • +
  • Vista de carga de recursos. Vista na que o usuario pode comprobar a carga dos recursos asignados ó proxecto. O código de cores é o mesmo que na vista global de empresa: verde para carga menor ó 100%, amarelo para carga igual a 100% e vermello para carga maior a 100%. A carga pode vir dada por unha tarefa ou por unha lista de criterios (asignación xenérica).
  • +
  • Vista de edición de pedido. Vista na que o usuario pode administrar os datos do pedido. Ver sección de Pedidos para máis información..
  • +
  • Vista de asignación avanzada de recursos. Vista na que o usuario pode asignar os recursos de xeito avanzado, seleccionando as horas por día ou as funcións de asignación que desexa aplicar. Ver sección de Asignación de recursos para máis información.
  • +
+
+
+

¿Por que me é útil LibrePlan?

+

LibrePlan é unha aplicación desenvolvida como unha ferramenta de +planificación de propósito xeral. Baséase nunha serie de conceptos +descubertos mediante o análisis de problemas na planificación de proxectos +industriais que non estaban completamente cubertos por ningunha ferramenta de +planificación existente. Outras das motivacións para o desenvolvemento de +LibrePlan se baseaban en proporcionar unha alternativa de software libre, e +completamente web, ás ferramentas de planficación privativas existentes.

+

Os conceptos esenciais que se utilizan para o programa son os seguintes:

+
    +
  • Vista global de empresa e multiproxecto: LibrePlan é unha aplicación orientada especificamente a dotar de información ós usuarios dos proxectos que se levan a cabo nunha empresa, polo que a base é multiproxecto. Non se determinou que o enfoque do proxecto sexa orientado individualmente a cada proxecto. Sen embargo, tamén será posible dispoñer de varias vistas específicas, entre elas a de proxectos individuais.
  • +
  • Xestión de perspectivas: A vista global de empresa ou vista multiproxecto vese complementada coas perspectivas sobre a información que se almacena. Por exemplo, a vista global de empresa permite visualizar os pedidos e contrastar o estado dos mesmos, visualizar a carga xeral de recursos da empresa e administrar os pedidos. Por outro lado, na vista de proxecto, é posible visualizar a planificación, a carga de recursos, a vista de asignación de recursos avanzada e a edición do pedido relacionado.
  • +
  • Criterios: Os criterios son unha entidade do sistema que permitirán clasificar os recursos (tanto humanos como máquinas) e as tarefas. Dende o punto de vista dos recursos, estes satisfarán criterios e, dende o punto de vista das tarefas, estas requirirán criterios a ser satisfeitos. Correspóndense con un dos aspectos máis importantes da aplicación, xa que os criterios formarán parte da base das asignacións xenéricas na aplicación, resolvendo un dos problemas máis importantes para o sector, a alta temporalidade dos recursos humanos e a dificultade para ter estimacións de carga da empresa a longo prazo.
  • +
  • Recursos: Son de dous tipos diferentes: humanos e máquinas. Os recursos humanos son os traballadores da empresa que se utilizan para planificar, monitorizar e controlar a carga da empresa. E por outro lado, as máquinas, dependentes das persoas que as xestionan, son outros recursos que actúan de xeito similar ós recursos humanos.
  • +
  • Asignación de recursos: Unha das claves é o feito de ofrecer a posibilidade de dous tipos diferentes de asignación: asignación específica e asignación xenérica. A xenérica é unha asignación baseada nos criterios que se requiren para realizar a unha tarefa, e que deben ser satisfeitos polos recursos que teñen a capacidade de realizala. Para entender a asignación xenérica, é necesario, imaxinarse o seguinte caso: Jonh Smith é soldador, xeralmente o propio Jonh Smith é asignado á tarefa planificada, pero "LibrePlan" ofrece a posibilidade de elixir un recurso en xeral entre os soldadores da empresa, sen preocuparse de se Jonh Smith é o asignado á tarefa.
  • +
  • Control de carga da empresa: a aplicación da a posibilidade de ter un control sinxelo da carga dos recursos da empresa. Este control realízase a medio e longo prazo xa que se poden controlar tanto os proxectos presentes como os potenciais proxectos. "LibrePlan" ofrece gráficos de uso de recursos.
  • +
  • Etiquetas: Son elementos que se usan para o etiquetado das tarefas dos proxectos. Con estas etiquetas o usuario da aplicación pode realizar agrupacións conceptuais das tarefas para posteriormente poder consultalas de xeito agrupado e filtrado.
  • +
  • Filtrados: Dado que o sistema dispón de xeito natural de elementos que etiquetan ou caracterízan tarefas e recursos, é posible utilizar filtrado de criterios ou etiquetas, o cal dota de unha gran potencia para poder consultar información categorizada ou extraer informes específicos en base a criterios ou etiquetas.
  • +
  • Calendarios: Os calendarios determinan as horas produtivas dispoñibles dos diferentes recursos. O usuario pode crear calendarios xerais da empresa e derivar as características para calendarios máis concretos, chegando ata a nivel de calendario por recurso ou tarefa.
  • +
  • Pedido e elementos de pedido: Os traballos solicitados polos clientes teñen un reflexo na aplicación en forma de pedido, que se estrutura en elementos de pedido. O pedido cos seus elementos conforman unha estrutura xerárquica en n niveis. Esta árbore de elementos é sobre a que se traballe á hora de planificar traballos.
  • +
  • Avances: A aplicación permite xestionar diversos tipos de avances. Un proxecto pode ser medido en porcentaxe de avance, sen embargo, pode querer ser medido en unidades, presuposto acordado, etc. É responsabilidade da persoa que xestiona a planificación decidir que tipo de avance é utilizado para contrastar avances a niveis superiores de proxecto.
  • +
  • Tarefas: As tarefas son los elementos de planificación da aplicación. Son utilizadas para temporalizar os traballos a realizar. As características máis importantes das tarefas son: teñen dependencias entre si e poden requirir criterios a ser satisfeitos para asignar recursos.
  • +
  • Partes de traballo: Son os partes dos traballadores das empresas, indicando as horas traballadas e por outro lado as tarefas asignadas ás horas que un traballador realizou. Con esta información, o sistema é capaz de calcular cantas horas foron consumidas dunha tarefa con respecto ó total de horas presupostadas, permitindo contrastar os avances respecto do consumo de horas real.
  • +
+

A maiores das funcionalidades que ofrece a aplicación caben destacar outras características que o distinguen de aplicacións similares:

+
    +
  • Integración con ERP: A aplicación importará información directamente dos ERP das empresas para os pedidos, recursos humanos, partes de traballo e certos criterios.
  • +
  • Xestión de versións: A aplicación permitirá a xestión de diversas versións de planificacións e ó mesmo tempo a posibilidade de consultar a información de cada unha delas.
  • +
  • Xestión de históricos: A aplicación non borra información, solo a invalida, polo que é posible consultar mediante filtrados por datas a información antiga.
  • +
+
+
+

Convencións de usabilidade

+
+

Comportamento dos formularios

+

Antes de realizar unha exposición das distintas funcionalidades asociadas ós módulos máis importantes, é necesario facer unha explicación xeral da filosofía de navegación e formularios.

+

Existen fundamentalmente 3 tipos de formularios de edición:

+
    +
  • Formularios con botón de Voltar. Estes formularios forman parte de unha navegación máis completa, e os cambios que se van realizando vanse almacenando en memoria. Os cambios só se aplican cando o usuario almacena explicitamente toda pantalla dende a que chegou a dito formulario.
  • +
  • Formularios con botón de Gardar e Pechar. Estes formularios permiten realizar 2 operacións. A primeira delas almacena e pecha a ventá actual e a segunda delas pecha sen almacenar os cambios.
  • +
  • Formularios con botón de Gardar e Continuar, "Gardar" e "Pechar". Permiten realizar 3 operacións. A primeira delas almacena pero continúa no formulario actual. A segunda almacena e pecha o formulario. E a terceira pecha a ventá sen almacenar os cambios.
  • +
+
+
+

Iconas e botóns estándar

+
    +
  • Edición: A edición dos rexistros da aplicación pode ser realizada xeralmente a través dunha icona formada por un lápis sobre unha libreta branca.
  • +
  • Indentado esquerda: Xeralmente estas operacións son necesarias para elementos dunha árbore que se desexan mover cara niveis internos. Esta operación pode ser feita coa icona formada por unha frecha cara a dereita de cor verde.
  • +
  • Indentado dereita: Xeralmente estas operacións son necesarias para elementos dunha árbore que se desexan mover desde niveis internos cara externos. Esta operación pode ser feita coa icona formada por unha frecha cara a esquerda de cor verde.
  • +
  • Borrado: Os borrados poden ser realizados coa icona da papeleira.
  • +
  • Procura: A lupa é unha icona que indica que a entrada de texto á esquerda da mesma está pensada para a procura de elementos.
  • +
+
+
+

Pestanas

+

Existen formularios de edición e administración de contidos que se atopan representados mediante compoñentes gráficos baseados en pestanas. Dita presentación é un mecanismo para organizar a información de un formulario global en diferentes seccións que poden ser accedidas premendo nos títulos das diferentes pestanas, mantendo o estado no que se atopaban as demáis. En todos estes casos, as operacións de gardar ou cancelar que se executen afectan ó conxunto de subformularios das diferentes pestanas.

+
+
+

Accións explícitas e axuda contextual

+

Están implementados na aplicación compoñentes que proporcionan un texto descritivo adicional do elemento sobre que se atopa enfocado o transcorrer un segundo sobre os mesmos. +As accións que o usuario pode executar na aplicación están explicitadas tanto nas etiquetas dos botóns e nos textos de axuda que aparecen sobre os mesmos, nas opcións do menú de navegación ou nas opcións dos menús contextuais que se despregan o premer co botón dereito na área do planificador. +Asimesmo, tamén se proporcionan atallos ás operacións principais facendo dobre click nos elementos que se listan, ou asociando os eventos de teclado cos cursores e a tecla de retorno ó desprazamento polos formularios é á acción de engadir elementos, respectivamente.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/gl/02-criterios.html b/libreplan-webapp/src/main/webapp/help/gl/02-criterios.html new file mode 100644 index 000000000..c8039fe12 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/gl/02-criterios.html @@ -0,0 +1,68 @@ + + + + + + +Criterios + + + +
+

Criterios

+ + +

Os criterios son as entidades que se utilizan na aplicación para categorizar os recursos e as tarefas. As tarefas requiren criterios e os recursos satisfán criterios. Un exemplo de utilización de criterios é a seguinte secuencia: un recurso é asignado co criterio "soldador" (é dicir, satisfai o criterio "soldador") e unha tarefa require o criterio "soldador" para ser realizada, en consecuencia ante unha asignación de recursos a tarefas os traballadores con criterio "soldador" son os que se utilicen á hora de asignar xenéricamente (non aplica nas asignacións específicas).

+

No proxecto, existen varias operacións que se poden realizar con criterios:

+
    +
  • Administración de criterios
  • +
  • Asignación de criterios a recursos.
  • +
  • Asignación de criterios a tarefas.
  • +
  • Filtrado de entidades por criterios. É posible filtrar tarefas e elementos de pedido por criterios para realizar operacións na aplicación. Asimesmo, os informes e gráficos de cargas de recursos son filtrables por criterios.
  • +
+

Das tres funcionalidades anteriores só se explica a primeira delas nesta sección deixando para seccións posteriores os dous tipos de asignación, a de recursos no capitulo "Xestión de recursos" e a de tarefas no capítulo "Planificación de tarefas".

+
+

Administración de criterios

+

A administración de criterios é accesible dende o menú de administración:

+
+images/menu.png +

Pestanas de menú de primeiro nivel

+
+

A operación específica para administrar criterios é Xestionar Criterios. A partir de dita operación é posible listar os criterios dispoñibles no sistema.

+
+images/lista-criterios.png +

Listado de criterios

+
+

Premendo no botón Crear poderase acceder ó formulario de creación/edición de un criterio. A edición de un criterio farase premendo na icona de edición do mesmo.

+
+images/edicion-criterio.png +

Edición de criterios

+
+

No formulario de edición de criterios que se amosa na imaxe anterior poderanse realizar as seguintes operacións:

+
    +
  • Edición do nome do criterio
  • +
  • Indicar se é posible asignar varios valores simultaneamente ó mesmo elemento para o tipo de criterio seleccionado. Por exemplo, un recurso que satisfai dous criterios, soldador e torneiro.
  • +
  • Indicar o tipo do criterio:
      +
    • Tipo xenérico: Criterio que pode satisfacer indistintamente unha máquina ou un traballador.
    • +
    • Tipo traballador: Criterio que pode satisfacer un traballador exclusivamente.
    • +
    • Tipo máquina: Criterio que pode satisfacer unha máquina exclusivamente.
    • +
    +
  • +
  • Indicar se o criterio é xerárquico ou non. Existen casos nos que os criterios deben ser tratados xerarquicamente, é dicir, que o feito de ser un criterio asignado a un elemento non folla faga que este criterio estea asignado automaticamente ós fillos. Un exemplo claro de xerarquización de criterios é o criterio localización, unha persoa que teña asignado Galicia como localización pertence á localización España por ser xerárquico.
  • +
  • Indicar se o criterio está habilitado e deshabilitado. Esta é a forma de borrar criterios. Debido a que unha vez creado un criterio, e utilizado en datos históricos, estes non poden ser borrados, o criterio debe existir no sistema. Para evitar que este criterio saia en diferentes elementos de selección, pode ser invalidado.
  • +
  • Realizar unha descrición do criterio.
  • +
  • Engadir novos valores. Na segunda parte do formulario aparece unha entrada de texto con un botón Novo Criterio.
  • +
  • Editar o nome dos criterios existentes.
  • +
  • Desprazar verticalmente os criterios na lista dos existentes.
  • +
  • Eliminar un valor de criterio da lista.
  • +
+

O formulario de administración de criterios é un formulario que responde ás características dos formularios comentados na introdución como de 3 operacións (gardar, gardar e pechar e pechar).

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/gl/03-calendarios.html b/libreplan-webapp/src/main/webapp/help/gl/03-calendarios.html new file mode 100644 index 000000000..e73475952 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/gl/03-calendarios.html @@ -0,0 +1,210 @@ + + + + + + +Calendarios + + + +
+

Calendarios

+ + +

Os calendarios son as entidades da aplicación que determinan as capacidade de carga dos distintos recursos. Un calendario está formado por unha serie de días anuais, onde cada día dispón de horas dispoñibles para traballar.

+

Por exemplo, un festivo pode ter 0 horas dispoñibles e, se as horas de traballo dentro dun día laboral son 8, é este número que se asigna como tempo dispoñible para ese día.

+

Existen dous modos de indicarlle ó sistema cantas horas de traballo ten un día:

+
    +
  • Por día da semana. Por exemplo, os luns trabállanse 8 horas xeralmente.
  • +
  • Por excepcións. Por exemplo, o luns 30 de Xaneiro trabállanse 10 horas.
  • +
+
+

Administración de calendarios

+

O sistema de calendarios é xerárquico, de modo que se poden crear calendarios base o calendarios que herdan destes calendarios, mantendo unha estrutura arbórea. Un calendario que herda dun calendario de nivel superior da árbore, herda as adicacións diarias e as excepcións, sempre e cando non sexan modificadas explicitamente para o calendario fillo. Ademais, é necesario entender os seguintes conceptos para administrar calendarios:

+
    +
  • Cada día é independente entre si e cada ano ten días diferentes, é dicir, se se marca o 8 de Decembro de 2009 como festivo iso non quere dicir que o ano 2010 xa teña o día 8 de Decembro como festivo.
  • +
  • Os días laborais márcanse en base a días da semana, é dicir, se se determina que o normal é traballar 8 horas os luns, quedan todos os luns de todas as semanas dos diferentes anos marcados como 8 horas dispoñibles.
  • +
  • É posible marcar excepcións ou intervalos de excepción, é dicir, elixir un día concreto ou grupo de días nos que as horas dispoñibles sexan diferentes á regra xeral para ditos días da semana.
  • +
+
+images/calendar-administration.png +

Administración de calendarios

+
+

A administración de calendarios es accesible dende as operacións da pestana de "Administración". Desde dito punto o usuario pode realizar as seguintes operacións:

+
    +
  1. Crear un novo calendario dende cero.
  2. +
  3. Crear un calendario derivado de outro calendario.
  4. +
  5. Crear un calendario como copia de outro calendario.
  6. +
  7. Editar un calendario existente.
  8. +
+
+

Creación dun novo calendario

+

Para a creación dun novo calendario é necesario premer no botón "Crear". O sistema amosa un formulario no que o usuario pode realizar as seguintes operacións:

+
    +
  • Elixir a pestana na que desexa traballar:

    +
    +
      +
    • Marcado de excepcións
    • +
    • Selección de horas traballadas por día.
    • +
    +
    +
  • +
  • +
    Se o usuario selecciona o marcado de excepcións:
    +
      +
    • Seleccionar un día específico do calendario.
    • +
    • Marcar o tipo de excepción. Os tipos dispoñibles son: vacacións, baixa, folga, festivo, festivo traballable.
    • +
    • Seleccionar a data de fin do intervalo de excepción (para marcar excepcións de 1 día de duración non se necesita modificar este campo).
    • +
    • Marcar o número de horas traballadas durante os días excepcionais.
    • +
    • Borrar excepcións previas.
    • +
    +
    +
    +
  • +
  • Se o usuario elixe a selección de horas traballadas por día:

    +
    +
      +
    • Marcar as horas dispoñibles para cada día da semana (luns, martes, mércores, xoves, venres, sábados e domingos).
    • +
    • Crear novas distribucións de horas semanais aplicables no futuro.
    • +
    • Borrar distribucións de horas realizadas previamente.
    • +
    +
    +
  • +
+

Con estas operacións un usuario da aplicación ten a capacidade de personalizar os calendarios completamente ás súas necesidades. Para almacenar os cambios no formulario é necesario premer no botón "Gardar".

+
+images/calendar-edition.png +

Edición de calendario

+
+
+images/calendar-exceptions.png +

Inclusión de excepción en calendario

+
+
+
+

Creación dun calendario derivado

+

Un calendario derivado é un calendario que se crea como fillo dun existente, é dicir, herda todas as características do orixinal e ó mesmo tempo é posible modificalo para que conteña as súas particularidades.

+

Un exemplo de uso de calendarios derivados é a existencia dun calendario xeral para España e a creación dun derivado para só incluir os festivos galegos engadidos sobre os que xa estaban definidos no xeral.

+

É importante destacar que ante calquera modificación realizada sobre o calendario orixinal o calendario derivado é directamente afectado, sempre e cando, non se definira unha actuación concreta sobre el mesmo. Por exemplo, no calendario de España inclúese un día laboral no 17 de Maio con 8 horas de traballo e no calendario galego, que se creou como derivación, o día 17 de Maio é considerado un día de 0 horas de traballo por ser festivo. Se sobre o calendario español se cambian os días da semana do 17 Maio para que as horas dispoñibles sexan 4 diarias, no galego o que sucede é que todos os días da semana do 17 de Maio ten 4 horas dispoñibles excepto o mesmo día 17 que ten 0 horas, tal e como explicitamente se establecera antes.

+
+images/calendar-create-derived.png +

Creación de calendario derivado

+
+

Para crear un calendario derivado na aplicación, é necesario facer o seguinte:

+
    +
  • Acceder ó menú de Administración.
  • +
  • Premer na operación de administración de calendarios.
  • +
  • Elixir un dos calendarios sobre o que se desexa realizar un derivado e premer no botón "Crear".
  • +
  • Unha vez realizada esta operación o sistema amosa un formulario de edición coas mesmas características que os formularios para crear calendarios dende cero, coa diferencia de que as excepcións e as horas por día da semana se propoñen en base ó calendario orixinal.
  • +
+
+
+

Creación dun calendario por copia

+

Un calendario copiado é un calendario que se crea como copia exacta de outro existente, é dicir, que recibe todas as características do orixinal e ó mesmo tempo é posible modificalo para que conteña as súas particularidades.

+

A diferencia entre copiar e derivar un calendario radica nos cambios no orixinal. No caso de copias, se o orixinal é modificado, non afecta á copia, sen embargo, cando se deriva, si afecta ó fillo.

+

Un exemplo de uso de calendario por copia é o dispor de un calendario para Pontevedra e necesitar un calendario para A Coruña onde a maioría das características son as mesmas, sen embargo, non se espera que os cambios nun afecten ó outro.

+

Para crear un calendario copiado na aplicación, é necesario facer o seguinte:

+
    +
  • Acceder ó menú de Administración.
  • +
  • Premer na operación de administración de calendarios.
  • +
  • Elixir un dos calendarios sobre o que se desexa realizar un derivado e premer no botón "Crear".
  • +
  • Unha vez realizada esta operación o sistema amosa un formulario de edición coas mesmas características que os formularios para crear calendarios dende cero, coa diferencia de que as excepcións e as horas por día da semana se propoñen en base ó calendario orixinal.
  • +
+
+
+

Calendario por defecto

+

Un dos calendarios existentes no sistema pode ser dado de alta como por defecto. Este calendario é o que se asigna a calquera entidade que no sistema sexa xestionado con calendarios.

+

Para configurar o calendario por defecto débese realizar o seguinte:

+
    +
  • Acceder ó menú de Administración.
  • +
  • Premer na operación Configuración.
  • +
  • Onde aparece o texto Calendario por defecto, seleccionar o que se desexe establecer como calendario por defecto da aplicación.
  • +
  • Premer en Gardar.
  • +
+
+images/default-calendar.png +

Creación de calendario por defecto

+
+
+
+

Asignación de calendario a recursos

+

Os recursos só teñen activación, é dicir, horas dispoñibles para traballar, se dispoñen de un calendario asignado con un período válido de activación. Se non se lle asignou ningún calendario ós recursos, os recursos teñen asignado o calendario por defecto con un período de activación que comeza na data de alta e sen data de caducidade.

+
+images/resource-calendar.png +

Calendario de recursos

+
+

Sen embargo, é posible eliminar o calendario asignado previamente a un recurso e crear un calendario novo a partir de un existente. Deste xeito hai recursos que poidan ser completamente personalizados a nivel de calendario.

+

Para asignar un calendario a un recurso é necesario dar os seguintes pasos:

+
    +
  • Acceder á edición de recursos.

    +
  • +
  • Elixir un recurso e premer en editar.

    +
  • +
  • Seleccionar a pestana de "Calendario".

    +
  • +
  • A partir da pestana anterior aparece un calendario coas excepcións, as horas traballables por día e os períodos de activación.

    +
  • +
  • Para cada pestana:

    +
    +
      +
    • Excepcións: É posible elixir o tipo de excepción e un período no que se aplica para poder incluír as vacacións, días festivos, laborables diferentes, etc.
    • +
    • Semana de traballo: É posible modificar as horas traballadas durante os distintos días da semana (luns, martes, etc.).
    • +
    • Períodos de activación: É posible crear novos períodos de activación que reflicte as datas de inicio e fin dos contratos asociados ó recurso. Ver a seguinte imaxe.
    • +
    +
    +
  • +
  • Para almacenar é necesario premer en Gardar.

    +
  • +
  • O usuario pode premer en Borrar se desexa cambiar o calendario asignado ó recurso.

    +
  • +
+
+images/new-resource-calendar.png +

Asignación de novo calendario a recurso

+
+
+
+

Asignación de calendario a pedidos

+

Os proxectos poden dispor de un calendario diferente do calendario por defecto. Para cambiar o calendario do pedido é necesario:

+
+
    +
  • Acceder ó listado de pedidos dentro da vista global de empresa.
  • +
  • Editar o pedido en cuestión.
  • +
  • Acceder á pestana de "Datos xerais".
  • +
  • Seleccionar no despregable de selección o calendario que se desexa asignar.
  • +
  • Premer en "Gardar" ou "Gardar e Continuar".
  • +
+
+
+
+

Asignación de calendario a tarefas

+

Do mesmo xeito que se permite asignar calendarios a recursos ou pedidos, é posible realizar a mesma operación para tarefas planificadas. Esta operación permite definir calendarios específicos para momentos concretos dun proxecto. Para realizar esta operación é necesario:

+
+
    +
  • Acceder á planificación de un proxecto.
  • +
  • Premer no botón dereito sobre a tarefa á que se desexa asignar calendario.
  • +
  • Seleccionar a operación "Asignación de calendario".
  • +
  • Elixir o que se desexa asignar á tarefa.
  • +
  • Premer en "Aceptar".
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/gl/04-avances.html b/libreplan-webapp/src/main/webapp/help/gl/04-avances.html new file mode 100644 index 000000000..f7fc99e2f --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/gl/04-avances.html @@ -0,0 +1,99 @@ + + + + + + +Avances + + + +
+

Avances

+ + +

O avance dun proxecto marca o grao no que se está cumprindo co alcance estimado para a realización do mesmo, ademais, o avance dunha tarefa indica ese mesmo grao para o alcance estimado para dita tarefa.

+

Xeralmente os avances non teñen un modo automático de ser medidos, e é unha persoa quen en base á experiencia ou á realización de unha lista de chequeo determina o grao de compleción de unha tarefa ou un proxecto.

+

Cabe destacar que hai unha diferencia importante entre a uso de horas asignadas a unha tarefa ou proxecto, co grao de avance nesa mesma tarefa ou proxecto. Mentres que o uso de horas pode estar en desvío ou non, o proxecto pode estar nun grao de avance inferior ou superior ó estimado para o día no que se está controlando. Prodúcense, debido a estas dúas medidas, varias posibles situacións:

+
    +
  • Consumíronse menos horas das estimadas para o elemento a medir e ó mesmo tempo o proxecto está indo máis lento do estimado, porque o avance é inferior ó estimado para o día de control.
  • +
  • Consumíronse menos horas das estimadas para o elemento a medir e ó mesmo tempo o proxecto está indo máis rápido do estimado, porque o avance é inferior ó estimado para o día de control.
  • +
  • Consumíronse máis horas das estimadas e ó mesmo tempo o proxecto está indo máis lento do estimado, porque o avance é inferior ó estimado para o día de control.
  • +
  • Consumíronse máis horas das estimadas e ó mesmo tempo o proxecto está indo máis rápido do estimado, porque o avance é inferior ó estimado para o día de control.
  • +
+

O contraste de estas posibles situacións é posible realizalo dende a propia planificación, utilizando información do grao de avance e por outro lado do grao de uso de horas. Neste capítulo tratarase a introdución da información para poder levar un control do avance.

+

A filosofía implantada no proxecto para o control do avance está baseada en que o usuario divida ata o punto no que desexa o control de avances dos seus proxectos. En consecuencia, se o usuario desexa controlar a nivel de pedido, só debe introducir información nos elementos de nivel 1, cando se desexa poder dispoñer de un control máis fino sobre as tarefas, debe introducir información de avances en niveis inferiores, sendo o sistema que propaga cara arriba na xerarquía todos os datos.

+
+

Xestión de tipos de avance

+

Cada empresa pode ter unhas necesidades diferentes de control do avance dos seus proxectos, e concretamente das tarefas que os compoñen. Por esta razón, foi necesario contemplar a existencia dunhas entidades no sistema chamadas "tipos de avance". Os tipos de avance son diferentes tipoloxías que cada usuario pode dar de alta no sistema para medir o avance dunha tarefa. Por exemplo, unha tarefa pode ser medida porcentualmente, pero ó mesmo tempo ese avance porcentual se traduce en un avance en Toneladas sobre o acordado co cliente.

+

Un tipo de avance está caracterizado por un nome, un valor máximo e unha precisión:

+
    +
  • Nome: Será un nome representativo que o usuario debe recordar para cando seleccione a asignación de avances sexa capaz de entender que tipo de avance está medindo.
  • +
  • Valor máximo: É o valor máximo que se lle permite a unha tarefa ou proxecto establecer como medida total de avance. Por exemplo, traballando con Toneladas, se se considera que o máximo normal en toneladas é de 4000 e nunca vai a haber tarefas que requiran realizar máis de 4000 toneladas de algún material, ese debería ser o valor máximo establecido.
  • +
  • Precisión: É o valor dos incrementos que se permiten para o tipo de avance creado. Por exemplo, se o avance en Toneladas se vai a medir en valores redondeados, podería ser 1 a precisión. Dende ese momento, só se poderían introducir medidas de avance con números enteiros, por exemplo, 1, 2, 300, etc.
  • +
+

O sistema conta con dous tipos de avance creados por defecto:

+
    +
  • Porcentual: Tipo de avance xeral que permite medir o avance dun proxecto ou tarefa en base ó porcentaxe que se estima de compleción do mesmo, por exemplo, unha tarefa está ó 30% respecto ó 100% estimado nun día concreto.
  • +
  • Unidades: Tipo de avance xeral que permite medir o avance en unidades sen necesidade de especificar as unidades concretas. A tarefa comprendía a creación de 3000 unidades e o avance son 500 unidades sobre as 3000 estimadas.
  • +
+
+images/tipos-avances.png +

Administración de tipos de avances

+
+

O usuario pode crear novos tipos de avance do seguinte xeito:

+
    +
  • O usuario accede á sección de "Administración".
  • +
  • Preme na opción do menú de segundo nivel "Xestionar tipos de avance".
  • +
  • O sistema amosa un listado de tipos de avance existentes.
  • +
  • Con cada tipo de avance o usuario pode:
      +
    • Editar
    • +
    • Borrar
    • +
    +
  • +
  • A maiores, o usuario pode crear un tipo de avance novo.
  • +
  • Coa edición ou a creación, o sistema amosa un formulario coa seguinte información:
      +
    • Nome do tipo de avance.
    • +
    • Valor máximo que acepta o tipo de avance.
    • +
    • Precisión do tipo de avance.
    • +
    +
  • +
+
+
+

Introdución de avances en base a tipo

+

A introdución dos avances realízase sobre os elementos de pedido, sen embargo, é posible facelo con un atallo dende as tarefas de planificación. É responsabilidade do usuario da aplicación a decisión sobre que tipos de avance desexa asociar a cada elemento de pedido.

+

É posible introducir un tipo de avance único e defectivo para todo un pedido.

+

Antes de poder realizar medidas de avance, é necesario asociar o tipo elixido ó pedido, por exemplo, un avance de tipo porcentaxe para medir porcentualmente os avances realizados sobre o total da tarefa, ou un avance de tipo pactado por se se queren introducir a futuro medicións de avances pactadas co cliente.

+
+images/avance.png +

Pantalla de introdución de avances con visualización gráfica.

+
+

Para introducir medicións de avance é necesario realizar o seguinte:

+
    +
  • Seleccionar o tipo de avance para o que desexa introducir o avance.
      +
    • Se non existe ningún tipo de avance é necesario engadir un tipo de avance.
    • +
    +
  • +
  • No formulario que aparece debaixo cos campos "Valor" e "Data" introducir o valor absoluto da medida e a data que se lle desexa asignar á medida tomada.
  • +
  • O sistema almacena automaticamente os datos introducidos.
  • +
+
+
+

Contraste de avances sobre un elemento do pedido

+

É posible contrastar graficamente as evolucións dos avances dos pedidos en base ás medicións realizadas. Cada tipo de avance dispón dunha columna con botóns de chequeo (de título "Amosar") o cal ó ser marcado se amosa a gráfica de evolucións de medidas realizadas sobre o elemento de pedido.

+
+images/contraste-avance.png +

Contraste de varios avances.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/gl/05-recursos.html b/libreplan-webapp/src/main/webapp/help/gl/05-recursos.html new file mode 100644 index 000000000..d1e9dad86 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/gl/05-recursos.html @@ -0,0 +1,177 @@ + + + + + + +Xestión de recursos + + + +
+

Xestión de recursos

+ + +

A aplicación xestiona dous tipos de recursos diferentes: recursos traballadores e recursos máquinas.

+

Os recursos traballadores representan os traballadores das empresas. As características principais son:

+
    +
  • Satisfarán un ou varios criterios de tipo xenérico ou tipo traballador.
  • +
  • Son asignables específicamente a unha tarefa.
  • +
  • Son asignables como parte da asignación xenérica a unha tarefa que requira un criterio de tipo máquina ou xenérico.
  • +
  • Disporán de un calendario por defecto ou específico se así o decide o usuario.
  • +
+

Os recursos máquina representan as máquinas das empresas. As características principais son:

+
    +
  • Satisfarán un ou varios criterios de tipo xenérico ou tipo máquina.
  • +
  • Son asignables específicamente a unha tarefa.
  • +
  • Son asignables como parte da asignación xenérica a unha tarefa que requira un criterio de tipo máquina ou xenérico.
  • +
  • Disporán de un calendario por defecto ou específico se así o decide o usuario.
  • +
  • Contará con unha pantalla de configuración na que se poderá establecer un valor alfa que represente a relación entre máquina e traballador.
      +
    • O alfa representa canto tempo dun traballador é necesario para que a máquina funcione. Por exemplo, un alfa de 0.5 indica que de cada 8 horas de máquina son necesarias 4 de un traballador.
    • +
    • É posible asignar un alfa de xeito específico a un traballador, é dicir, elíxese o traballador que estará ocupado esa porcentaxe do seu tempo coa máquina.
    • +
    • Ou ben, é posible facer unha asignación xenérica en base a un criterio, de xeito que se asigna unha porcentaxe do uso a todos os criterios que satisfán ese criterio e teñen tempo dispoñible. O funcionamento da asignación xenérica é a mesma que a explicada para asignacións xenéricas a tarefas.
    • +
    +
  • +
+

O usuario pode crear, editar e invalidar (nunca borrar definitivamente) traballadores da empresa dende a pestana de "Recursos". Dende dita pestana existen as seguintes operacións:

+
    +
  • Listado de traballadores: Os traballadores amosaranse listados e paxinados, dende onde poden xestionar os seus datos.
  • +
  • Listado de máquinas: As máquinas amosaranse listados e paxinados, dende onde poden xestionar os seus datos.
  • +
+
+

Xestión de traballadores

+

A xestión de traballadores realizarase dende a pestana de "Recursos" e a operación de "Lista de traballadores". Dende a lista de recursos é posible editar cada un dos traballadores premendo na icona estándar de edición.

+

Unha vez na edición dun recurso, o usuario pode acceder ás seguintes pestanas:

+
    +
  1. Pestana de datos de traballador. Esta pestana permite editar os datos básicos de identificación do traballador.
      +
    • Nome
    • +
    • Apelidos
    • +
    • DNI
    • +
    • Recursos limitantes (ver sección)
    • +
    +
  2. +
+
+images/worker-personal-data.png +

Edición de datos persoais de traballador

+
+
    +
  1. Pestana de criterios. Dende este punto poderase configurar os criterios que un traballador satisfai. O usuario pode asignar calquera valor de criterio de tipo traballador ou xenérico que así considere a un traballador. É importante, para que a aplicación sexa utilizada en todo o seu valor, que os traballadores satisfagan criterios. Para asignar criterios o usuario debe:
      +
    1. Premer no botón "Engadir criterio".
    2. +
    3. Buscar o criterio que desexa engadir e seleccionar o que encaixe coa súa procura.
    4. +
    5. Premer no botón de engadir.
    6. +
    7. Seleccionar data de inicio do criterio dende o momento que deba aplicarse.
    8. +
    9. Seleccionar a data de fin de aplicación do criterio ó recurso. Dita data non é obrigatoria indicando que o criterio é indefinido.
    10. +
    +
  2. +
+
+images/worker-criterions.png +

Asociación de criterios a traballador

+
+
    +
  1. Pestana de calendario. Pestana dende a que se pode configurar un calendario específico para o recurso traballador. Cada traballador dispón de un calendario por defecto asignado, sen embargo, é posible asignar un calendario específico para cada un a partir dun existente.
  2. +
+
+images/worker-calendar.png +

Pestana de calendario para un recurso

+
+
    +
  1. Pestana de categoría de custo. Pestana dende a que se pode configurar a categoría de custo que satisfai un recurso nun período dado. Estes datos son utilizados para posteriormente calcular os custos asociados ó traballador nun proxecto.
  2. +
+
+images/worker-costcategory.png +

Pestana de categoría de custo para recurso

+
+

A asignación de recursos explícase na sección de asignación de recursos.

+
+
+

Xestión de máquinas

+

As máquinas son recursos a todos os efectos, polo cal, tal e como sucede cos traballadores, as máquinas son administrables e asignables a tarefas. A asignación de recursos tratarase na sección de asignación. Neste punto explicaranse as características específicas das máquinas.

+

As máquinas son administradas dende a entrada de menú "Recursos". En dita sección existe unha operación chamada "Listado de máquinas" que permite a visualización das máquinas que dispoñen nunha empresa. A partir deste listado poderase editar ou borrar unha máquina.

+

Na edición dunha máquina o sistema amosa unha serie de pestanas dende as cales se permite administrar diferentes datos:

+
    +
  1. Pestana de datos da máquina. Pestana para a edición de datos identificativos das máquinas. Os datos modificables nesta pestana son:

    +

    i Nome.

    +

    ii Código da máquina.

    +

    iii Descrición da máquina.

    +
  2. +
+
+images/machine-data.png +

Edición de datos de máquina

+
+
    +
  1. Pestana de criterios. Tal e como se comentou na anterior sección de recursos traballadores, esta é a pestana na que se poden engadir criterios que satisfán as diversas máquinas do sistema. Os criterios que son asignables ás máquinas son os de criterios de tipo máquina ou xenéricos. Non se poden asignar criterios de traballadores. Para asignar criterios, o usuario debe:
      +
    1. Premer no botón "Engadir criterio".
    2. +
    3. Buscar o criterio que desexa engadir e seleccionar o que encaixe coa súa procura.
    4. +
    5. Seleccionar data de inicio do criterio dende o momento que deba aplicarse.
    6. +
    7. Seleccionar a data de fin de aplicación do criterio ó recurso. Dita data non é obrigatoria indicando que o criterio é indefinido.
    8. +
    9. Premer no botón de "Gardar e Continuar".
    10. +
    +
  2. +
+
+images/machine-criterions.png +

Asignación de criterios a máquinas

+
+
    +
  1. Pestana de calendario. Pestana dende a que se pode configurar un calendario específico para o recurso máquina. Cada traballador dispón de un calendario por defecto asignado, sen embargo, é posible asignar un calendario específico para cada un a partir dun existente.
  2. +
+
+images/machine-calendar.png +

Asignación de calendario a máquina

+
+
    +
  1. Pestana de configuración de máquinas: Dende esta pestana é posible configurar a relación das máquinas cos recursos traballadores existentes. Unha máquina dispón de un alfa que indica a relación entre a máquina e os recursos implicados, tal e como xa se comentou, un alfa de 0.5 indica que se consume traballo de 0.5 persoas para cada xornada completa de máquina. O sistema, a partir dun alfa, crea automaticamente asignacións á traballadores que estean dalgún xeito relacionados coa máquina unha vez se asigna unha máquina a unha tarefa. A forma de relacionar un traballador con unha máquina pódese facer de dous xeitos:

    +

    i Asignando especificamente un rango de datas nas que o traballador se desexa asignar a unha máquina. É unha asignación específica de modo que o sistema asigna automaticamente horas ó traballador cando se planifique a máquina.

    +

    ii Asignando especificamente criterios que se desexa satisfagan os traballadores que sexan asignados ás máquinas. Deste xeito farase unha asignación xenérica ós traballadores que satisfán os criterios.

    +
  2. +
+
+images/machine-configuration.png +

Configuración de máquina

+
+
    +
  1. Pestana de categoría de custo. Pestana dende a que se pode configurar a categoría de custo que satisfai unha máquina nun período dado. Estes datos son utilizados para posteriormente calcular os custos asociados ó traballador nun proxecto.
  2. +
+
+images/machine-costcategory.png +

Asignación de categoría de custo a máquina

+
+
+
+

Grupos de traballadores virtuais

+

A aplicación permite a creación de recursos no sistema os cales non son traballadores reais, senón que son persoal simulado que permite aumentar a capacidade produtiva nun momento determinado segundo as configuracións que se definan do seu calendario.

+

Mediante os grupos de traballadores virtuais é posible comprobar como se vería afectada a planificación dos proxectos contratando e asignando persoal que satisfaga os criterios que se definan, axudando deste modo no proceso de toma de decisións

+

As pestanas das que consta o formulario de creación de grupos de traballadores virtuais son as mesmas que as que permiten configurar os traballadores, e dicir:

+
+
    +
  • Datos xerais
  • +
  • Criterios asignados
  • +
  • Calendarios
  • +
  • Horas asociadas
  • +
+
+

A diferencia con respecto ós traballadores, é que nos grupos de traballadores virtuais especifícase un nome para o grupo e unha cantidade que se corresponde co número de persoas reais que forman este grupo. Adicionalmente existe un campo de observacións no que se pode aportar información adicional como por exemplo para que proxecto estaría prevista a contratación do equivalente do grupo de recursos virtuais, etc.

+
+images/virtual-resources.png +

Recursos virtuais

+
+
+
+

Recursos limitantes

+

Os recursos limitantes son un tipo especial de elementos productivos que só poden atoparse non asignados ou con un 100% de dedicación. Ou o que é o mesmo, non poden ter mais de unha tarefa asignada ó mesmo tempo ou atoparse sobreplanificados.

+

Por cada elemento limitante créase automáticamente unha cola para que as tarefas que ten planficadas poidan ser xestionadas de forma específica mediante os métidos de asignación proporcionados, realizando asignacións automáticas das tarefas ás colas que cumplan os criterios que requiren ou movendo tarefas entre colas.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/gl/06-pedidos.html b/libreplan-webapp/src/main/webapp/help/gl/06-pedidos.html new file mode 100644 index 000000000..544f9bd46 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/gl/06-pedidos.html @@ -0,0 +1,337 @@ + + + + + + +Pedidos e elementos de pedidos + + + +
+

Pedidos e elementos de pedidos

+ + +

Os pedidos son as entidades que describen os traballos a realizar por parte dos usuarios que utilicen a aplicación. +Cada pedido correspóndese cos proxectos que as empresas van a ofrecerlles ós seus clientes.

+

Un pedido está formado por unha ou varias liñas de pedido. Cada liña de pedido correspóndese coa estruturación que se desexe realizar sobre os traballos dentro dese pedido. As liñas de pedido organízanse de xeito xerárquico sen limitacións de profundidade. O feito de que as liñas de pedido se organicen de xeito xerárquico marca o funcionamento de diversas características herdables, tal como as etiquetas.

+

Nas seguintes seccións describiranse as operacións que un usuario pode realizar cos pedidos e as liñas de pedidos.

+
+

Pedido

+

Un pedido é un proxecto ou traballo que un cliente lle solicita a unha empresa. O pedido para o planificador identifica a entidade de proxecto dentro da empresa. A diferencia das aplicacións de xestión globais, "LibrePlan" só necesita utilizar certos datos dos pedidos. Estes datos son:

+
    +
  • Nome do pedido
  • +
  • Código do pedido.
  • +
  • Importe total do pedido
  • +
  • Data de comezo estimada
  • +
  • Data de finalización
  • +
  • Responsable
  • +
  • Descrición
  • +
  • Calendario asignado.
  • +
  • Autoxeneración de códigos. Campo para indicarlle ó sistema que autoxenere os códigos dos elementos de pedido e dos grupos de horas.
  • +
  • Preferencia entre dependencias e restricións. O usuario pode elixir dependencias ou restricións como prioritarios á hora de ser aplicados cando entren en conflito.
  • +
+

Sen embargo, o propio pedido está relacionado con outras entidades que finalmente o dotan de unha maior riqueza:

+
    +
  • Horas asignadas ó pedido.
  • +
  • Avances imputados ó pedido.
  • +
  • Etiquetas.
  • +
  • Criterios asignados ó pedido.
  • +
  • Materiais
  • +
  • Formularios de calidade
  • +
+

Para editar ou crear un pedido é posible realizalo dende varios puntos da aplicación:

+
    +
  • Accedendo á perspectiva de "Lista de pedidos" dentro da vista global de empresa.

    +
    +
      +
    • A edición realízase premendo no botón de editar sobre o pedido elixido.
    • +
    • A creación realízase premendo en "Novo pedido".
    • +
    +
    +
  • +
  • Accedendo a un pedido no diagrama de Gantt e cambiando de perspectiva á de detalles de pedido.

    +
  • +
+

Dende a edición de pedido é posible acceder ás seguintes pestanas:

+
    +
  • Edición dos datos de pedidos. Dende dita pantalla é posible editar os datos básicos do pedido. Actualmente:
      +
    • Nome
    • +
    • Código
    • +
    • Data de comezo estimada
    • +
    • Data de finalización
    • +
    • Responsable
    • +
    • Cliente
    • +
    • Descrición
    • +
    +
  • +
+
+images/order-edition.png +

Edición de pedido

+
+
    +
  • Listado de elementos de pedido. Dende o listado de elenentos de pedido é posible realizar varias operacións:
      +
    • Crear novos elementos de pedido.
    • +
    • Subir nun mesmo nivel da xerarquía un elemento de pedido.
    • +
    • Baixar nun mesmo nivel da xerarquía un elemento de pedido.
    • +
    • Indentar un elemento de pedido, ou o que é o mesmo mover cara abaixo na xerarquía, cambiando de nivel o elemento.
    • +
    • Des-indentar un elemento de pedido, ou o que é o mesmo mover cara arriba na xerarquía, cambiando de nivel o elemento.
    • +
    • Filtrar os elementos de pedido.
    • +
    • Borrar elementos de pedido.
    • +
    • Mover arrastrando e soltando un elemento de pedido na xerarquía.
    • +
    +
  • +
+
+images/order-elements-list.png +

Listado de elementos de pedido

+
+
    +
  • Horas asignadas. Pantalla na que se amosan as horas totais imputadas ó proxecto, tratándose de unha pantalla de visualización onde se agrupan as horas imputadas ós elementos de pedido.
  • +
+
+images/order-assigned-hours.png +

Asignación de horas imputadas ó pedido polos traballadores

+
+
    +
  • Avances. Pantalla na que se permiten imputar tipos de avances e medidas de avances ó pedido. Ver sección de "Avances" para o funcionamento da mesma.
  • +
  • Etiquetas. Pantalla na que se permite asignar etiquetas a un pedido e coñecer as etiquetas directas e indirectas que xa foron asignadas. Ver a seguinte sección de edición de elementos de pedido máis en profundidade para coñecer o procedemento de xestionar as etiquetas.
  • +
+
+images/order-labels.png +

Etiquetas de pedido

+
+
    +
  • Criterios. Pantalla na que se poden asignar os criterios que se desexan aplicar globalmente a todas as tarefas de un pedido. Estes criterios serían aplicados de xeito automático a todos os elementos de pedido, excepto que estes fosen invalidados explicitamente. Asimesmo, pódense visualizar os grupos de horas dos elementos de pedidos agrupados por criterios, o cal permite coñecer os criterios que se esixen ó longo de un pedido.
  • +
+
+images/order-criterions.png +

Criterios de pedido

+
+
    +
  • Materiais. Pantalla na que se pode asignar o material dispoñible ó pedido. O material é seleccionable de entre as categorías de material que existen na aplicación. Os materiais son xestionados do seguinte modo:

    +
    +
      +
    • O usuario selecciona a pestana que se amosa na zona inferior da pantalla chamada "Procura de materiais".
    • +
    • O usuario pode introducir un texto para a procura de materiais ou seleccionar as categorías para as que se desexa amosar materiais.
    • +
    • O sistema filtra os resultados.
    • +
    • O usuario selecciona os materiais que desexa (para seleccionar máis de un material o usuario pode premer no botón "Ctrl" que permite a selección múltiple no listado.
    • +
    • O usuario preme en "Asignar".
    • +
    • O sistema amosa o listado de materiais xa asignado ó pedido.
    • +
    • O usuario selecciona as unidades e o estado que desexa asignarlle ó pedido.
    • +
    • O usuario preme en "Gardar" ou "Gardar e Continuar".
    • +
    • Se o usuario desexa xestionar a recepción de material, o sistema permite premer en "Dividir" para cambiar o estado dunha cantidade parcial de materiais.
    • +
    +
    +
  • +
+
+images/order-material.png +

Material asociado a un pedido

+
+
    +
  • Calidade. É posible asignar un formulario de calidade ó pedido co obxectivo de ser cumprimentado para asegurar a realización de certas actividades asociadas ó pedido. Ver a seguinte sección de edición de elementos de pedido máis en profundidade para coñecer o procedemento de xestionar o formulario de calidade.
  • +
+
+images/order-quality.png +

Formulario de calidade asociado ó pedido

+
+
+
+

Edición de elementos de pedido

+

A edición de elementos de pedido realizase dende a pestana de listado de elementos de pedido a partir da icona de edición. Se o usuario preme na icona de edición, o sistema amosa unha nova pantalla dende a que o usuario pode realizar o seguinte:

+
    +
  • Editar a información do elemento de pedido.
  • +
  • Visualización de horas imputadas a elemento de pedido.
  • +
  • Xestionar os avances dos elementos de pedido.
  • +
  • Xestionar as etiquetas do pedido.
  • +
  • Xestionar os criterios esixidos polo elemento de pedido.
  • +
  • Xestionar os materiais.
  • +
  • Xestionar os formularios de calidade.
  • +
+

As seguintes subseccións tratan cada un das operacións en profundidade.

+
+

Edición da información do elemento de pedido

+

A edición de información de elemento de pedido inclúe a edición dos seguintes datos:

+
    +
  • Nome do elemento de pedido.
  • +
  • Código do elemento de pedido.
  • +
  • Data de inicio do elemento de pedido.
  • +
  • Data estimada de fin do elemento de pedido.
  • +
  • Horas totais do elemento de pedido. Estas horas poden ser calculadas a partir dos grupos de horas engadidas ou introducidas directamente neste punto que se repartiran entre os grupos de horas, creando algún novo se as porcentaxes non coinciden coas porcentaxes iniciais.
  • +
  • Grupos de horas: É posible engadir un ou varios grupos de horas ó elemento de pedido. O significado destes grupos de horas é o establecemento dos requirimentos que se lle esixen ós recursos que vaian a ser asignados para realizalas.
  • +
  • Criterios: É posible engadir criterios que se deben satisfacer para poder se asignado xenericamente para realizar dito elemento de pedido.
  • +
+
+images/order-element-edition.png +

Edición de elemento de pedido

+
+
+
+

Visualización de horas imputadas a elementos de pedido

+

A pestana de "Horas asignadas" permite visualizar os partes de traballo asociados a un elemento de pedido e ó mesmo tempo permite visualizar cantas horas das presupostadas están xa realizadas.

+
+images/order-element-hours.png +

Horas asignadas a elementos de pedido

+
+

A pantalla está dividida en dúas partes:

+
    +
  • Listado de partes de traballo: O usuario ve o listado de partes de traballo que están asociados ó elemento de pedido podendo comprobar a data e hora, recurso e número de horas adicadas á tarefa.
  • +
  • Uso das horas presupostadas: O sistema calcula o total de horas adicadas á tarefa e as contrasta coas que estaban presupostadas.
  • +
+
+
+

Xestión de avances dos elementos de pedido

+

A introdución de tipos de avances e xestión dos avances dos elementos de pedido foi descrita no capítulo de "Avances".

+
+
+

Xestión de etiquetas do pedido

+

As etiquetas, tal e como se describen no capítulo adicado ás mesmas, son entidades que permiten categorizar os elementos de pedido. Deste xeito, o usuario pode agrupar información de planificación ou pedidos en base a elas.

+

Un usuario pode asignar etiquetas directamente a un elemento de pedido ou ben a un antecesor na xerarquía dese elemento de pedido. A partir do momento no que se asigna unha etiqueta dun dos dous xeitos anteriores, tanto o elemento de pedido como a tarefa de planificación asociada estan asociadas a dita etiqueta, sendo utilizadas para posteriores filtrados.

+
+images/order-element-tags.png +

Asignación de etiquetas para elementos de pedido

+
+

Tal e como se pode ver na imaxe, dende a pestana de etiquetas, o usuario pode realizar as seguintes operacións:

+
    +
  • Visualización das etiquetas que un elemento do pedido ten asociadas por herdanza dun elemento de pedido superior na xerarquía á que lle foi asignada directamente. A tarefa de planificación asociada a cada elemento de pedido ten as mesmas etiquetas asociadas.
  • +
  • Visualización das etiquetas que un elemento do pedido ten asociadas directamente a través do seguinte formulario de asignación de etiquetas inferior.
  • +
  • Asignar etiquetas existentes: Un usuario pode asignar etiquetas a partir da procura dunha entre as existentes no formulario inferior ó listado de etiquetas directas. Para buscar unha etiqueta chega con premer na icona coa lupa ou escribir o inicio da etiqueta na entrada de texto para que o sistema amose as opcións dispoñibles.
  • +
  • Crear e asignar etiquetas novas: Un usuario pode crear novas etiquetas asociadas a un tipo de etiquetas existente dende dito formulario. Para realizar a operación é necesario que seleccione un tipo de etiqueta á que se asocia e se introduza o valor da etiqueta para o tipo seleccionado. Premendo en "Crear e asignar" o sistema xa a crea automáticamente e a asigna ó elemento de pedido.
  • +
+
+
+

Xestionar os criterios esixidos polo elemento de pedido e os grupos de horas

+

Tanto un pedido como un elemento de pedido poden ter asignados os criterios que se esixen para ser realizados. Os criterios poden afectar de xeito directo ou de xeito indirecto:

+
    +
  • Criterios directos: Son os que se asignan directamente ó elemento de pedido. Son os criterios que se van a esixir ós grupos de horas que forman parte do elemento de pedido.
  • +
  • Criterios indirectos: Son os criterios que se asignan en elementos de pedido superiores na xerarquía e son herdados polo elemento en edición.
  • +
+

A maiores do criterio esixido, é posible definir un ou varios grupos de horas que forman parte do elemento de pedido. Dependendo de se o elemento de pedido contén outros elementos de pedido como fillos ou é un nodo folla. No primeiro dos casos os datos de horas e grupos de horas son solo visualizables e no caso de nodos folla son editables. O funcionamento neste segundo caso é o seguinte:

+
    +
  • Por defecto, o sistema crea un grupo de horas asociado ó elemento de pedido. Os datos modificables para un grupo de horas son:

    +
    +
      +
    • Código do grupo de horas, se non é autoxenerado.
    • +
    • Tipo de criterio. O usuario pode elixir se desexa asignar un criterio de tipo máquina ou traballador.
    • +
    • Número de horas do grupo de horas.
    • +
    • Lista de criterios que se aplican ó grupo de horas. Para engadir novos criterios o usuario debe premer en "Engadir criterio" e seleccionar un no buscador que aparece tras premer no botón.
    • +
    +
    +
  • +
  • O usuario pode engadir novos grupos de horas con características diferentes que os grupos de horas anteriores. Exemplo disto sería que un elemento de pedido debe ser feito por un soldador (30h) e por un pintor (40h).

    +
  • +
+
+images/order-element-criterion.png +

Asignación de criterios a elementos de pedidos

+
+
+
+

Xestionar os materiais

+

Os materiais son xestionados nos proxectos como un listado asociado a cada liña de pedido ou a un pedido globalmente. O listado de materiais está formado polos seguintes campos:

+
    +
  • Código
  • +
  • Data
  • +
  • Unidades: Unidades necesarias.
  • +
  • Tipo de unidade: Tipo de unidade no que se mide o material.
  • +
  • Prezo da unidade: Prezo unitario.
  • +
  • Prezo total: Prezo resultante de multiplicar o prezo unitario polas unidades.
  • +
  • Categoría: Categoría de material á que pertence.
  • +
  • Estado: Recibido, Solicitado, Pendente, Procesando, Cancelado.
  • +
+

O modo de traballar cos materiais é o seguinte:

+
    +
  • O usuario selecciona a pestana de "Materiais" dun elemento de pedido.
  • +
  • O sistema amosa dúas subpestanas: "Materiais" e "Procura de materiais".
  • +
  • Se o elemento de pedido non tiña materiais asignados, a primeira pestana amosa un listado baleiro.
  • +
  • O usuario preme en "Procura de materiais" na zona inferior esquerda da ventana.
  • +
  • O sistema amosa o listado de categorías dispoñibles e os materiais asociados.
  • +
+
+images/order-element-material-search.png +

Procura de material

+
+
    +
  • O usuario selecciona categorías nas que buscar para afinar a procura de materiais.
  • +
  • O sistema amosa os materiais pertencentes ás categorías seleccionadas.
  • +
  • O usuario selecciona no listado de materiais aqueles que desexa asignar ó elemento de pedido.
  • +
  • O usuario preme en "Asignar".
  • +
  • O sistema amosa o listado seleccionado de materiais na pestana de "Materiais" con novos campos por cubrir.
  • +
+
+images/order-element-material-assign.png +

Asignación de material a elemento de pedido

+
+
    +
  • O usuario selecciona as unidades, estado e data dos materiais asignados.
  • +
+

Para control posterior dos materiais é posible cambiar o estado dun grupo de unidades do material recibido. Esta operación realízase do seguinte modo:

+
    +
  • O usuario preme no botón "Dividir" que se amosa no listado de materiais á dereita de cada fila.
  • +
  • O usuario selecciona o número de unidades para os que desexa dividir a fila.
  • +
  • A aplicación amosa dúas filas co material dividido.
  • +
  • O usuario cambia o estado da fila de material que desexa.
  • +
+

A utilidade desta operación de división é a de poder recibir entregas parciais de material sin necesidade de esperar a recibilo todo para marcalo como recibido.

+
+
+

Xestionar os formularios de calidade

+

Existen elementos de pedido que deben certificar que certas tarefas foron realizados para poder ser marcadas como completadas. É por iso que xurden os formularios de calidade, os cales están formados por unha lista de preguntas que poden ter asignado un peso segundo sexa contestada positivamente.

+

É importante destacar que un formulario de calidade debe ser creado previamente para poder ser asignado ó elemento de pedido.

+

Para xestionar os formulario de calidade:

+
    +
  • O usuario accede á pestana de "Formularios de calidade".
  • +
+
+images/order-element-quality.png +

Asignación de formulario de calidade a elemento de pedido

+
+
    +
  • A aplicación amosa un buscador de formularios de calidade. Existen dous tipos de formularios de calidade: por elementos ou porcentaxe.

    +
    +
      +
    • Por elementos: Cada elemento é independente.
    • +
    • Por porcentaxe: Cada pregunta incrementa o avance no elemento de pedido en un porcentaxe. As porcentaxes deben ser incrementales ata o 100%.
    • +
    +
    +
  • +
  • O usuario selecciona un dos formularios dados de alta dende a interface de administración e preme en "Asignar".

    +
  • +
  • A aplicación asigna o formulario elixido no listado de formularios asignados ó elemento de pedido.

    +
  • +
  • O usuario preme no botón "Editar" do elemento de pedido.

    +
  • +
  • A aplicación desprega as preguntas do formulario de calidade no listado inferior.

    +
  • +
  • +
    O usuario marca como acadadas as preguntas que son realizadas.
    +
      +
    • Se o tipo de formulario de calidade é por porcentaxe, as preguntas son contestadas por orde.
    • +
    • Se o tipo de formulario de calidade é por elementos, as preguntas son contestadas en calquera orde.
    • +
    +
    +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/gl/07-planificacion.html b/libreplan-webapp/src/main/webapp/help/gl/07-planificacion.html new file mode 100644 index 000000000..6603295a0 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/gl/07-planificacion.html @@ -0,0 +1,134 @@ + + + + + + +Planificación de tarefas + + + +
+

Planificación de tarefas

+ + +
+

Planificación de tarefas

+

A planificación en "LibrePlan" é un proceso que se describe ó longo de todos os capítulos do documento de usuario, entre os cales destacan os capítulos de pedidos e asignación de recursos. Neste capítulo trátanse as operacións básicas de planificación, unha vez o pedido está correctamente configurado e á interacción cos diagramas de Gantt.

+
+images/planning-view.png +

Vista de planificación de un traballo

+
+

Tal e como sucede coa vista global de empresa, a vista de planificación dun proxecto divídese en varias perspectivas que se amosan en base á información que se está analizando do mesmo. As perspectivas dun proxecto concreto son:

+
    +
  • Vista de planificación
  • +
  • Vista de carga de recursos
  • +
  • Vista de listado de pedidos
  • +
  • Vista de asignación avanzada
  • +
+
+

Vista de planificación

+

A perspectiva de planificación combina tres vistas diferentes:

+
    +
  • Planificación do proxecto. A planificación do proxecto visualizase na zona superior dereita da aplicación. Representase a planificación en diagramación de Gantt. E a vista na que se permite mover temporalmente as tarefas, asignar dependencias entre elas, definir fitos ou establecer restricións.

    +
  • +
  • Vista de carga de recursos. A vista de carga de recursos é o gráfico inferior dereito no que se amosa a dispoñibilidade de recursos segundo as asignacións que se realizaron, contrastada coas asignacións realizadas a tarefas. A información que se amosa no gráfico é:

    +
    +
      +
    • Zona lila: Indica a carga de recursos por debaixo do 100% da súa capacidade.
    • +
    • Zona verde: Indica a carga de recursos por debaixo do 100% derivado de que o recurso está planificado en outro proxecto.
    • +
    • Zona laranxa: Indica a carga de recursos por enriba do seu 100% debido a o proxecto actual.
    • +
    • Zona amarela: Indica a carga de recursos por enriba do seu 100% debido a outros proxectos.
    • +
    +
    +
  • +
  • Vista de gráfico e indicadores do valor gañado. Visible dende a pestana de "Valor Gañado". Gráfico que se xera en base á técnica do valor gañado e os indicadores calculados cada un dos días de traballo do proxecto. Os indicadores calculados son:

    +
    +
      +
    • BCWS: función acumulativa no tempo do número de horas planificadas ata unha data. No inicio planificado da tarefa é 0 e o final é o total de horas planificadas. Coma toda gráfica acumulativa, esta sempre é crecente. A función para unha tarefa é a suma das asignacións de día ata o día de cálculo. Esta función ten valores para tódolos momentos no tempo sempre que teñamos asignación de recursos.
    • +
    • ACWP: función acumulativa no tempo das horas imputadas nos parte de traballo ata unha data. Esta función so terá valores iguais a 0 antes da data do primeiro parte de traballo da tarefa e irá incrementado o seu valor a medida que avanza o tempo e se incorporan horas de partes de traballo. Non terá valor despois da data do último parte de traballo.
    • +
    • BCWP: función acumulativa no tempo que incorpora o valor resultante de multiplicar o avance das tarefas pola cantidade de traballo que se estimaba que levaría a tarefa. Esta función ten valores incrementales a medida que se incrementa o tempo e temos valores de avance que se van incrementando. O avance se multiplica polo total de horas estimadas de cada unha das tarefas. E o valor de BCWP é a suma destes valores para as tarefas que es está a calcular. Un avance se suma no instante de tempo no que se configurou.
    • +
    • CV: Variación en custo CV = BCWP - ACWP
    • +
    • SV: Desviación en planificación SV = BCWP - BCWS
    • +
    • BAC: Total custo planificado BAC = max (BCWS)
    • +
    • EAC: Estimación de custo total actual EAC = (ACWP/ BCWP) * BAC
    • +
    • VAC: Desviación ó custo final VAC = BAC - EAC
    • +
    • ETC: Estimado do custo pendente ETC = EAC - ACWP
    • +
    • CPI: Índice de eficiencia de custo CPI = BCWP / ACWP
    • +
    • SPI: Índice de eficiencia da planificación SPI = BCWP / BCWS
    • +
    +
    +
  • +
+

Dentro da planificación do proxecto o usuario pode realizar as seguintes operacións:

+
+
    +
  • Asignar dependencias. Para realizar dita operación é necesario premer co botón dereito e elixir "Engadir dependencia", arrastrar o punteiro do rato para a tarefa destinataria da dependencia.

    +
    +
      +
    • Para cambiar o tipo de dependencia, premer co botón dereito sobre a dependencia e elixir o tipo que se desexa asignar.
    • +
    +
    +
  • +
  • Crear novo fito. Premer sobre a tarefa anterior ó fito que se desexa engadir e seleccionar a operación "Engadir fito". Os fitos poden ser movidos seleccionando co punteiro sobre a tarefa e arrastrando co rato o fito á posición desexada.

    +
  • +
  • Mover tarefas sen violar dependencias. Premer co rato sobre o corpo da tarefa e sen soltar o rato, arrastrar a tarefa cara a posición na que se desexa colocar. Se non se violan restricións ou dependencias o sistema actualiza as asignacións á tarefa e coloca a tarefa na data seleccionada.

    +
  • +
  • Asignar restricións. Premer sobre a tarefa en cuestión e seleccionar a operación "Propiedades da tarefa". Aparecerá un pop-up con un campo modificable que é "Restricións". As restricións poden entrar en conflito coas dependencias, polo que será en cada pedido onde se indique se as dependencias teñen prioridade ou non sobre as restricións. As que se poden establecer son:

    +
    +
      +
    • Tan pronto como sexa posible: Indica que a tarefa debe comezar tan pronto como sexa posible.
    • +
    • Non antes de. Indica que a tarefa non debe comezar antes de unha data.
    • +
    • Comezar en data fixa. Indica que a tarefa debe comezar en data fixa.
    • +
    +
    +
  • +
+
+

A maiores, dentro da perspectiva de planificación ofrécense varias operacións, que finalmente actuarán como opcións de visualización:

+
    +
  • Nivel de zoom: É posible seleccionar o nivel de zoom que lle interese ó usuario. Existen varios niveis de zoom: por ano, cuadrimestres, mensuais, semanais e diarios.
  • +
  • Filtros de procura: É posible filtrar tarefas en base a etiquetas ou criterios.
  • +
  • Camiño crítico. Utilizando o algoritmo de Dijkstra para cálculo de camiños en grafos implementouse o camiño crítico que se visualiza se se preme no botón "Camiño crítico" das opcións de visualización.
  • +
  • Amosar etiquetas: Permite amosar as etiquetas asignadas ás tarefas do proxecto en visualización e impresión.
  • +
  • Amosar recursos: Permite amosar os recursos asignados ás tarefas do proxecto en visualización e impresión.
  • +
  • Imprimir: Permite imprimir o diagrama de Gantt que se está visualizando no momento.
  • +
+
+
+

Vista de carga de recursos

+

A vista de carga de recursos ofrece unha lista de recursos que contén unha lista de tarefas ou criterios que lle xeran carga de traballo. Cada tarefa ou criterio é amosado en modo diagrama de Gantt para dar visibilidade á data de comezo e final de dita carga. Segundo un recurso ten unha carga superior ou inferior ó 100% é amosada unha cor:

+
    +
  • Cor verde: carga inferior ó 100%
  • +
  • Cor laranxa: carga do 100%
  • +
  • Cor vermella: carga superior ó 100%
  • +
+
+images/resource-load.png +

Vista de carga de recursos para un pedido concreto

+
+

Se se coloca o rato sobre unha zona do diagrama de Gantt dun recurso amosarase o porcentaxe de carga do traballador nese momento dado.

+
+
+

Vista de listado de pedidos

+

A vista de listado de pedidos permite acceder á edición e borrado de pedidos. Ver o capítulo de "Pedidos".

+
+
+

Vista de asignación avanzada

+

A vista de asignación avanzada explícase en profundidade no capítulo de "Asignación de recursos".

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/gl/08-asignacion.html b/libreplan-webapp/src/main/webapp/help/gl/08-asignacion.html new file mode 100644 index 000000000..e94e4d7a5 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/gl/08-asignacion.html @@ -0,0 +1,209 @@ + + + + + + +Asignación de recursos + + + +
+

Asignación de recursos

+ + + +

A asignación de recursos é unha das partes máis importantes da aplicación. A asignación de recursos pode realizarse de dous xeitos diferentes:

+
    +
  • Asignacións específicas.
  • +
  • Asignacións xenéricas.
  • +
+

Cada unha das asignacións é explicada nas seguintes seccións.

+

Para realizar calquera das dúas asignacións de recursos é necesario dar os seguintes pasos:

+
    +
  • Acceder á planificación dun pedido.
  • +
  • Premer co botón dereito sobre a tarefa que se desexa planificar.
  • +
+
+images/resource-assignment-planning.png +

Menú de asignación de recursos

+
+
    +
  • A aplicación amosa unha pantalla na que se pode visualizar a seguinte información.

    +
    +
      +
    • Listado de criterios que deben ser satisfeitos. Por cada grupo de horas, amósase un listado de grupos de horas e cada grupo de horas esixe o seu listado de criterios.

      +
    • +
    • Información da tarefa: data de inicio e data de fin da tarefa.

      +
    • +
    • Tipo de cálculo: O sistema permite elixir a estratexia que se desexa levar a cabo para calcular as asignacións:

      +
      +
        +
      • Calcular número de horas: Calcula o número de horas que faría falla que adicasen os recursos asignados dados unha data de fin e un número de recursos por día.
      • +
      • Calcular data fin: Calcula a data de fin da tarefa a partir dos número de recursos da tarefa e das horas totais adicar para rematar a tarefa.
      • +
      • Calcular número de recursos: Calcula o número de recursos necesarios para rematar a tarefa en unha data específica e adicando unha serie de horas coñecidas.
      • +
      +
      +
    • +
    • Asignación recomendada: Opción que lle permite á aplicación recoller os criterios que deben ser satisfeitos e as horas totais de cada grupo de horas e fai unha proposta de asignación xenérica recomendada. Se había unha asignación previa, o sistema elimina dita asignación substituíndoa pola nova.

      +
    • +
    • Asignacións: Listado de asignacións realizadas. Neste listado poderanse ver as asignacións xenéricas (o nome sería a lista de criterios satisfeita, horas e número de recursos por día). Cada asignación realizada pode ser borrada explicitamente premendo no botón de borrar.

      +
    • +
    +
    +
  • +
+
+images/resource-assignment.png +

Asignación de recursos

+
+
    +
  • O usuario selecciona "Procura de recursos".
  • +
  • A aplicación amosa unha nova pantalla formada por unha árbore de criterios e un listado á dereita dos traballadores que cumpren os criterios seleccionados:
  • +
+
+images/resource-assignment-search.png +

Procura de asignación de recursos

+
+
    +
  • O usuario pode seleccionar:

    +
    +
      +
    • Asignación específica. Ver sección "Asignación específica" para coñecer que significa elixir esta opción.
    • +
    • Asignación xenérica. Ver sección "Asignación xenérica para coñecer que significa elixir esta opción.
    • +
    +
    +
  • +
  • O usuario selecciona unha lista de criterios (xenérica) ou unha lista de traballadores (específica). A elección múltiple realízase premendo no botón "Crtl" á hora de pulsar en cada traballador ou criterio.

    +
  • +
  • O usuario preme no botón "Seleccionar". É importante ter en conta que, se non se marca asignación xenérica, é necesario escoller un traballador ou máquina para poder realizar unha asignación, en caso contrario chega con elixir un ou varios criterios.

    +
  • +
  • A aplicación amosa no listado de asignacións da pantalla orixinal de asignación de recursos a lista de criterios ou recursos seleccionados.

    +
  • +
  • O usuario debe encher as horas ou os recursos por día dependendo da estratexia de asignación que lle solicitou levar a cabo á aplicación.

    +
  • +
+
+

Asignación específica

+

A asignación específica é aquela asignación de un recurso de xeito concreto e específico a unha tarefa de un proxecto, é dicir, o usuario da aplicación está decidindo que "nome e apelidos" ou qué "máquina" concreta debe ser asignada a unha tarefa.

+

A asignación específica é realizable dende a pantalla que se pode ver na imaxe:

+
+images/asignacion-especifica.png +

Asignación específica de recursos

+
+

A aplicación, cando un recurso é asignado específicamente, crea asignacións diarias en relación á porcentaxe de recurso diario que se elixiu para asignación, contrastando previamente co calendario dispoñible do recurso. Exemplo: unha asignación de 0.5 recursos para unha tarefa de 32 horas fai que se asignen ó recurso específico (supoñendo un calendario laboral de 8 horas diarias) 4 horas diarias para realizar a tarefa.

+
+

Asignación específica de máquinas

+

A asignación específica de máquinas actúa do mesmo xeito que a de traballadores, é dicir, cando se asigna unha máquina a unha tarefa, o sistema almacena unha asignación de horas específica á máquina elixida. A diferencia principal é que no momento de asignar unha máquina, o sistema busca o listado de traballadores ou criterios asignados á máquina:

+
    +
  • Se a máquina tiña un listado de traballadores asignados, elixe entre o número deles que requira a máquina para o calendario asignado. Por exemplo, se o calendario da máquina é de 16 horas diarias e dos recursos de 8, asigna dous recursos da lista de recursos dispoñibles.
  • +
  • Se a máquina tiña un criterio ou varios asignados, realiza asignacións xenéricas entre os recursos que satisfán os criterios asignados á máquina.
  • +
+
+
+
+

Asignación xenérica

+

A asignación xenérica é aquela asignación onde o usuario non elixe os recursos concretamente, deixando a decisión á aplicación de como reparte as cargas entre os recursos dispoñibles da empresa.

+
+images/asignacion-xenerica.png +

Asignación xenérica de recursos

+
+

O sistema de asignación utiliza como base os seguintes supostos:

+
    +
  • As tarefas contan con criterios requeridos ós recursos.
  • +
  • Os recursos están configurados para que satisfagan os criterios.
  • +
+

Sen embargo, o sistema non falla naqueles casos nos que non se asignen criterios senón que todos os recursos satisfán o non requirimento de criterios.

+

O algoritmo de asignación xenérica actúa do seguinte xeito:

+
    +
  • Cada recurso e día é tratado como un contedor onde caben asignacións diarias de horas, baseándose a capacidade máxima de asignación no calendario da tarefa.
  • +
  • O sistema busca os recursos que satisfán o criterio.
  • +
  • O sistema analiza qué asignacións teñen actualmente os diferentes recursos que cumpren os criterios.
  • +
  • De entre os que satisfán os criterios escóllense os recursos que teñen dispoñibilidade suficiente.
  • +
  • Se os recursos máis libres van sendo ocupados, séguense realizando asignacións nos recursos que tiñan menor dispoñibilidade.
  • +
  • Só cando todos os recursos que satisfán os criterios correspondentes están asignados ó 100% se comeza coa sobreasignación de recursos ata completar o total necesario para realizar a tarefa.
  • +
+
+

Asignación xenérica de máquinas

+

A asignación xenérica de máquinas actúa do mesmo xeito que a de traballadores, é dicir, cando se asigna unha máquina a unha tarefa, o sistema almacena unha asignación de horas xenérica a cada unha das máquinas que satisfán os criterios, tal e como se describiu xenericamente para os recursos en xeral. Sen embargo, tratándose de máquinas o sistema realiza a seguinte operación a maiores:

+
    +
  • Para cada máquina elixida para a asignación xenérica:
      +
    • Recolle a información de configuración da máquina, é dicir, alfa, traballadores e criterios asignados.
    • +
    • Se a máquina tiña un listado de traballadores asignados, elixe entre o número deles que requira a máquina dependendo do calendario asignado. Por exemplo, se o calendario da máquina é de 16 horas diarias e dos recursos de 8, asigna dous recursos da lista de recursos dispoñibles.
    • +
    • Se a máquina tiña un criterio ou varios asignados, realiza asignacións xenéricas entre os recursos que satisfán os criterios asignados á máquina.
    • +
    +
  • +
+
+
+
+

Asignación avanzada

+

A asignación avanzada permite deseñar as asignacións que se realizan automaticamente pola aplicación de xeito máis personalizado. Esta operación permite elixir manualmente as horas diarias que adican os recursos ás tarefas que están asignadas ou definir unha función que se lle aplica a ditas asignacións.

+

Para xestionar a asignación avanzada os pasos a dar son os seguintes:

+
    +
  • Acceder á ventá de asignación avanzada. Existen dous modos de acceder á asignación avanzada:

    +
    +
      +
    • Accedendo a un pedido concreto e cambiar de perspectiva para asignación avanzada. Neste caso amosaranse todas as tarefas do pedido e os recursos asignados (tanto específicos como xenéricos).
    • +
    • Accedendo á asignación de recursos e premendo no botón "Asignación avanzada". Neste caso amosaranse as asignacións da tarefa para a que se está asignando recursos (amósanse tanto as xenéricas como as específicas).
    • +
    +
    +
  • +
+
+images/advance-assignment.png +

Asignación avanzada de recursos

+
+
    +
  • O usuario pode acceder ó zoom que desexe:

    +
    +
      +
    • Se o zoom elixido é un zoom superior a día. Se o usuario modifica o valor de horas asignado á semana, mes, cuadrimestre ou semestre, o sistema reparte as horas de xeito lineal durante todos os días do período elixido.
    • +
    • Se o zoom elixido é un zoom de día. Se o usuario modifica o valor de horas asignado ó día, estas horas só aplican ó día. Deste xeito o usuario pode decidir cantas horas se asignan diariamente ós recursos da tarefa.
    • +
    +
    +
  • +
  • O usuario pode elixir deseñar unha función de asignación avanzada. Para realizalo:

    +
    +
      +
    • Elixir a función na lista de selección que aparece ó lado de cada recurso e premer en "Configurar".

      +
    • +
    • O sistema amosa unha nova ventá se a función elixida require de configuración específica. As funcións soportadas son e a por Tramos. Esta función permite definir tramos nos que se aplica unha función polinómica. A función por tramos configúrase do seguinte xeito:

      +
      +
        +
      • Data. Data na que finaliza o tramo. Se se establece o seguinte valor (lonxitude) a data é calculada, en caso contrario, calcúlase a lonxitude.
      • +
      • Definición da lonxitude de cada tramo. Indica que porcentaxe de duración da tarefa compre ese tramo.
      • +
      • Definición da cantidade de traballo. Indica que porcentaxe de carga de traballo se espera ter feito nese tramo. A cantidade de traballo debe ser incremental, de xeito que se hai un tramo de 10% o seguinte tramo debe ser superior (por exemplo, 20%).
      • +
      • Gráficas de tramos e carga acumulada.
      • +
      +
      +
    • +
    • O usuario preme en "Aceptar".

      +
    • +
    • A aplicación almacena a función e aplícaa nas asignacións diarias do recurso.

      +
    • +
    +
    +
  • +
+
+images/stretches.png +

Configuración de función por tramos

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/gl/09-partes.html b/libreplan-webapp/src/main/webapp/help/gl/09-partes.html new file mode 100644 index 000000000..d51cc9158 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/gl/09-partes.html @@ -0,0 +1,92 @@ + + + + + + +Partes de traballo + + + +
+

Partes de traballo

+ + +

Os partes de traballo permiten o seguimento das horas que dedican os recursos existentes ás tarefas nas que están planificados.

+

A aplicación permite configurar novos formularios de introdución de horas dedicadas, especificando os campos que se desexa que figuren nestes modelos, así como incorporar os partes das tarefas que son realizadas polos traballadores e facer un seguimento dos mesmos.

+

Antes de poder engadir entradas con dedicación dos recursos, é necesario especificar como mínimo un tipo de parte de traballo o cal define a estrutura que teñen todas as filas que se engadan no mesmo. Poden crearse tantos tipos de partes de traballo no sistema como sexa necesario.

+
+

Tipos de partes de traballo

+

Un parte de traballo consta dunha serie de campos comúns para todo o parte, e un conxunto de liñas de parte de traballo con valores específicos para os campos definidos en cada unha das filas. Por exemplo, o recurso e a tarefa son comúns para todos os partes, sen embargo, pode haber campos novos como "incidencias", que non se desexen en todos os tipos.

+

É posible configurar diferentes tipos de partes de traballo para que unha empresa diseñe os seus partes dependendo das necesidades para cada caso:

+
+images/work-report-types.png +

Tipos de partes de traballo

+
+

A administración dos tipos de partes de traballo permite configurar este tipo de características, así como engadir novos campos de texto ou de etiquetas opcionais. Dentro da primeira das pestanas da edición dos tipos de partes de traballo pódese configurar o tipo para os atributos obrigatorios (se son globais para todo o parte, ou se especifican a nivel de liña), e engadir novos campos opcionais.

+

Os campos obrigatorios que deben figurar en todos os partes de traballo son os seguintes:

+
    +
  • Nome e código: Campos identificativos do nome do tipo de parte de traballo e código do mesmo.
  • +
  • Data: Campo de data á que corresponde o parte
  • +
  • Recurso: Traballador ou máquina que figura no parte ou liña de parte de traballo.
  • +
  • Elemento de pedido: Código do elemento de pedido ó que imputar as horas do traballo realizado
  • +
  • +
    Xestión de horas: Determina a política de imputación de horas a levar a cabo, a cal pode ser:
    +
      +
    • Por número de horas asignadas
    • +
    • Por horas de comezo e fin
    • +
    • Por número de horas e rango de comezo e fin (permite diverxencia e ten prioridade o número de horas)
    • +
    +
    +
    +
  • +
+

Existe a posibilidade de engadir novos campos ós partes:

+
    +
  • Tipo de etiqueta: É posible solicitar que se indique unha etiqueta do sistema á hora de encher o parte de traballo. Por exemplo, o tipo de etiqueta cliente se desexamos que en cada parte se introduza o cliente para o que se traballou.
  • +
  • Campos libres: Campos de tipo entrada de texto libre que se poden introducir no parte de traballo.
  • +
+
+images/work-report-type.png +

Creación de tipo de parte de traballo con campos personalizados

+
+

Para os campos de data, recurso e elemento de pedido, poden configurarse se figuran na cabeceira do parte e polo tanto son globais ó mesmo, ou se son engadidos en cada unha das filas.

+

Finalmente, poden engadirse novos campos de texto adicionais ou etiquetas ás existentes no sistema, tanto para a cabeceira dos partes de traballo como en cada unha das liñas, mediante os campos de Texto Complementario e Tipos de etiquetas, respectivamente. Na pestana de Xestión de campos adicionais e etiquetas, o usuario pode configurar a orde na que introducir ditos elementos nos partes de traballo.

+
+
+

Listado de partes de traballo

+

Unha vez configurados os formatos dos partes a incorporar ó sistema, pódense introducir os datos no formulario creado segundo a estrutura definida no tipo de parte de traballo correspondente. Para facelo, é necesario seguir os seguintes pasos:

+
    +
  • Premer no botón 'Novo parte de traballo' asociado o tipo de parte que se desexe do listado de tipos de partes de traballo.
  • +
  • A aplicación amosa o parte construído a partir da configuración dada para o tipo. Ver seguinte imaxe.
  • +
+
+images/work-report-type.png +

Estrutura do parte de traballo a partir do tipo

+
+
    +
  • Seleccionar cada un dos campos que se amosa para o parte:

    +
    +
      +
    • Recurso: Se se elixiu a cabeceira, só se indica o recurso unha vez. En caso contrario, para cada liña do parte é necesario elixir un recurso.
    • +
    • Código da tarefa: Código da tarefa á que se está asignando o parte de traballo. Do mesmo xeito que o resto de campos, se o campo é de cabeceira introducirase o valor unha vez ou tantas veces como liñas do parte.
    • +
    • Data: Data do parte ou de cada liña dependendo de se a configuración é por cabeceira ou liña.
    • +
    • Número de horas. O número de horas de traballo do proxecto.
    • +
    • Horas de inicio e fin. Horas de comezo e fin de traballo para calcular as horas de traballo definitivas. Este campo só aparece nos casos de políticas de imputación de horas de "Por horas de comezo e fin" e "Por número de horas e rango de comezo e fin".
    • +
    • Tipo de horas: Permite elixir entre tipos de horas "Normais", "Extraordinarias", etc.
    • +
    +
    +
  • +
  • Premer en "Gardar" ou "Gardar e Continuar".

    +
  • +
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/gl/10-etiquetas.html b/libreplan-webapp/src/main/webapp/help/gl/10-etiquetas.html new file mode 100644 index 000000000..ee7403b4e --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/gl/10-etiquetas.html @@ -0,0 +1,68 @@ + + + + + + +Etiquetas + + + +
+

Etiquetas

+ +
+

Contents

+ +
+

As etiquetas son entidades que se utilizan na aplicación para a organización conceptualmente de tarefas ou elementos de pedido.

+

As etiquetas categorizanse segundo os tipos de etiquetas. Unha etiqueta só pertence a un tipo de etiqueta, sen embargo, nada impide crear tantas etiquetas similares que pertenzan a tipos de etiquetas diferentes.

+
+

Tipos de etiquetas

+

Os tipos de etiquetas utilízanse para agrupar tipoloxías de etiquetas que os usuarios desexen xestionar na aplicación. Exemplos de tipos de etiquetas posibles:

+
    +
  1. Cliente: O usuario podería estar interesado en etiquetar as tarefas, pedidos ou elementos de pedido en base ó cliente que os solicitou.
  2. +
  3. Zona: O usuario podería estar interesado en etiquetar as tarefas, pedidos ou elementos de pedido en base á zona na que se realizan.
  4. +
+

A administración de tipos de etiquetas xestionarase dende a opción de menú de "Administración". É dende esta opción, dende a que o usuario pode editar tipos de etiqueta, crear novos tipos de etiqueta ou engadir etiquetas a tipos de etiquetas. Dende dita operación pode accederse ó listado de etiquetas.

+
+images/tag-types-list.png +

Lista de tipos de etiquetas

+
+

Dende o listado de tipos de etiquetas é posible:

+
    +
  1. Crear novo tipo de etiquetas.
  2. +
  3. Editar un tipo de etiquetas existente.
  4. +
  5. Borrar un tipo de etiquetas con todas as súas etiquetas.
  6. +
+

Tanto a edición como a creación de etiquetas comparten formulario. Dende dito formulario o usuario pode asignar un nome ó tipo de etiquetas, crear ou borrar etiquetas e almacenar os cambios. Para realizar isto:

+
    +
  1. O usuario debería seleccionar unha etiqueta a editar ou premer no botón de creación de unha nova.
  2. +
  3. O sistema amosa un formulario con unha entrada de texto para o nome e un listado de entradas de texto coas etiquetas existentes e asignadas.
  4. +
  5. Se o usuario desexa engadir unha nova etiqueta debe premer no botón "Etiqueta nova".
  6. +
  7. O sistema amosa unha nova fila ó listado con unha entrada de texto baleira que o usuario debe editar.
  8. +
  9. O usuario introduce un nome para a etiqueta.
  10. +
  11. O sistema engade o nome ó listado.
  12. +
  13. O usuario preme en "Gardar" para gardar e saír ou "Gardar e Continuar" para gardar e continuar editando o formulario.
  14. +
+
+images/tag-types-edition.png +

Edición de tipos de etiquetas

+
+
+
+

Etiquetas

+

As etiquetas son entidades que pertencen a un tipo de etiqueta. Estas entidades poden ser asignadas a elementos de pedido. O feito de asignar unha etiqueta a un elemento de pedido fai que todos os elementos descendentes dese elemento herden a etiqueta á que pertencen. O feito de contar con unha etiqueta asignada permite que eses elementos saian filtrados nos puntos nos que se ofrece a posibilidade de procura:

+
    +
  1. Procura de tarefas no diagrama de Gantt.
  2. +
  3. Procura de elementos de pedido no listado de elementos de pedido.
  4. +
  5. Filtrados para informes.
  6. +
+

A asignación de etiquetas a elementos de pedido é cuberta no capítulo de pedidos.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/gl/11-materiales.html b/libreplan-webapp/src/main/webapp/help/gl/11-materiales.html new file mode 100644 index 000000000..5ce446da9 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/gl/11-materiales.html @@ -0,0 +1,59 @@ + + + + + + +Materiais + + + +
+

Materiais

+ + +
+

Administración de materiais

+

É posible xestionar unha base de datos de materiais básica organizados por categorías.

+

As categorías son contedores ós que se poden asignar materiais concretos e ó mesmo tempo máis categorías. Almacénanse en modo arbóreo de xeito que os materiais poden pertencer a categorías folla ou categorías intermedias.

+

Para administrar categorías:

+
    +
  • O usuario accede á operación de "Administración->Materiais".
  • +
  • A aplicación amosa unha árbore de categorías.
  • +
  • O usuario introduce un nome de categoría dentro da entrada de texto con un botón "Engadir" e preme no botón.
  • +
  • A aplicación engade a categoría na árbore de categorías.
  • +
+

Se o usuario desexa posicionar unha categoría dentro da árbore de categorías debe seleccionar previamente a categoría pai en dita árbore para despois premer en "Engadir".

+
+images/material.png +

Pantalla de administración de materiais

+
+

Para administrar materiais:

+
    +
  • O usuario selecciona a categoría para a que desexa incluír materiais e preme no botón "Engadir" na zona dereita de "Materiais".

    +
  • +
  • A aplicación engade unha nova fila baleira con campos para introducir os datos do material:

    +
    +
      +
    • Código: Código do tipo de material (pode ser o código externo provinte dun ERP).
    • +
    • Descrición: Descrición do material.
    • +
    • Prezo da unidade: Prezo unitario de cada elemento de material.
    • +
    • Unidade: Unidade na que se desexa medir cada unidade de material.
    • +
    • Categoría: Categoría á que pertence.
    • +
    • Deshabilitado: Se o material está borrado ou non.
    • +
    +
    +
  • +
  • O usuario enche os campos e preme no botón "Gardar".

    +
  • +
+

A asignación de materiais a elementos de pedidos explícase no capítulo de "Pedidos".

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/gl/12-formularios-calidad.html b/libreplan-webapp/src/main/webapp/help/gl/12-formularios-calidad.html new file mode 100644 index 000000000..371eb21f6 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/gl/12-formularios-calidad.html @@ -0,0 +1,65 @@ + + + + + + +Formularios de calidade + + + +
+

Formularios de calidade

+ + +
+

Administración de formularios de calidade

+

Os formularios de calidade son unha lista de preguntas ou frases que indican tarefas ou procesos que deben estar completados para que unha tarefa se poida dar por completada por parte da empresa usuaria. Estes formularios están formados polos seguintes campos:

+
    +
  • Nome

    +
  • +
  • Descrición

    +
  • +
  • Tipo de formulario de calidade. O tipo pode tomar dous valores:

    +
    +
      +
    • Por porcentaxe: Indica que as preguntas deben levar unha orde lóxica e que a contestación positiva das preguntas indica un avance respecto da tarefa. Por exemplo, que un proceso básico para unha tarefa implica que a tarefa está ó 15%. É necesario contestar unha pregunta previa para poder pasar á seguinte.
    • +
    • Por item: Indica que as preguntas non teñen por que levar unha orde lóxica e en consecuencia poden ser contestadas segundo se desexe.
    • +
    +
    +
  • +
+

Para administrar estes formularios de calidade é necesario realizar os seguintes pasos:

+
    +
  • Acceder no menú de "Administración" á operación "Formularios de calidade".

    +
  • +
  • Premer en editar un existente ou no botón de "Crear".

    +
  • +
  • A aplicación amosa un formulario con nome, descrición e tipo.

    +
  • +
  • Seleccionar o tipo.

    +
  • +
  • A aplicación amosa os campos permitidos para cada tipo:

    +
    +
      +
    • Por porcentaxe: pregunta e porcentaxe.
    • +
    • Por item: pregunta.
    • +
    +
    +
  • +
  • Premer en "Gardar" ou "Gardar e Continuar".

    +
  • +
+
+images/quality.png +

Pantalla de administración de materiais

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/gl/13-usuarios.html b/libreplan-webapp/src/main/webapp/help/gl/13-usuarios.html new file mode 100644 index 000000000..3d3596567 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/gl/13-usuarios.html @@ -0,0 +1,91 @@ + + + + + + +Usuarios + + + +
+

Usuarios

+ + +
+

Administración de usuarios

+

O sistema de usuarios de "LibrePlan" permite xestionar perfiles, permisos e usuarios. Un usuario pertence a un perfil de usuario e por outro lado os perfiles poden ter unha serie de roles predefinidos para o acceso á aplicación. Os roles son os permisos definidos sobre "LibrePlan". Exemplos de roles:

+
    +
  • Administración: Rol que os usuarios administradores deben ter asignados para poder realizar operacións de administración.
  • +
  • Lector de servizos web: Rol que os usuarios necesitan para poder consultar servizos web da aplicación.
  • +
  • Escritor de servizos web: Rol que os usuarios necesitan para poder escribir utilizando os servizos web da aplicación.
  • +
+

Os roles están predefinidos no sistema. Un perfil de usuario está composto por un ou varios roles, de modo que se comproban roles ós que pertencen os usuarios para realizar certas operacións.

+

Os usuarios pertencen a un ou varios perfiles ou directamente a un ou varios roles, de modo que se pode asignar permisos específicos ou un grupo de permisos xenérico.

+

Para administrar usuarios é necesario realizar os seguintes pasos:

+
    +
  • Acceder á operación de "Xestionar usuarios" do menú de "Administración".

    +
  • +
  • A aplicación amosa un formulario co listado de usuarios.

    +
  • +
  • Premer o botón de edición do usuario elixido ou premer no botón "Crear".

    +
  • +
  • Amosase un formulario cos seguintes campos:

    +
    +
      +
    • Nome de usuario.
    • +
    • Contrasinal
    • +
    • Habilitado/Deshabilitado.
    • +
    • E-mail
    • +
    • Lista de roles asociados. Para engadir un novo rol é necesario buscar un dos roles amosados na lista de selección e premer en "Asignar".
    • +
    • Lista de perfiles asociados. Para engadir un novo perfil é necesario buscar un dos perfiles amosados na lista de selección e premer en "Asignar".
    • +
    +
    +
  • +
+
+images/manage-user.png +

Administración de usuarios

+
+
    +
  • Premer en "Gardar" ou "Gardar e Continuar".
  • +
+
+

Administración de perfiles

+

Para administrar os perfiles da aplicación é necesario dar os seguintes pasos:

+
    +
  • Acceder á operación de "Xestionar perfiles de usuario" do menú de "Administración".

    +
  • +
  • A aplicación amosa un listado de perfiles.

    +
  • +
  • Premer o botón de edición do perfil elixido ou premer no botón "Crear".

    +
  • +
  • A aplicación amosa un formulario cos seguintes campos:

    +
    +
      +
    • Nome
    • +
    • Lista de roles (permisos) asociados ó perfil. Para engadir un rol asociado ó perfil deberase seleccionar un da lista de roles e premer en "Engadir".
    • +
    +
    +
  • +
+
+images/manage-user-profile.png +

Xestión de perfiles de usuarios

+
+
    +
  • Premer en "Gardar" ou "Gardar e Continuar" e o sistema almacena o perfil creado ou modificado.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/gl/14-custos.html b/libreplan-webapp/src/main/webapp/help/gl/14-custos.html new file mode 100644 index 000000000..6b67f688a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/gl/14-custos.html @@ -0,0 +1,129 @@ + + + + + + +Xestión de custos + + + +
+

Xestión de custos

+ + +
+

Custos

+

A xestión de custos está prantexada para poder realizar unha previsión estimativa dos custos dos recursos de un proxecto. Para a xestión de custos determinouse a existencia das seguintes entidades:

+
    +
  • Tipos de horas traballadas: Indican os tipos de horas de traballo dos recursos. É posible incluír como tipos tanto os tipos de horas para máquinas como para traballadores. Exemplos de tipos de horas serían: Extraordinarias pagadas a 20 euros de xeito xenérico. Os campos que se poden incluír nos tipos de horas traballadas:

    +
    +
      +
    • Código: Código externo do tipo de horas.
    • +
    • Nome: Nome do tipo de hora. Por exemplo, extraordinaria.
    • +
    • Prezo por defecto: Prezo base por defecto para o tipo de horas.
    • +
    • Activado: Indica se o tipo de hora está activado.
    • +
    +
    +
  • +
  • Categorías de custo. As categorías de custo indican categorías que se utilizan para definir custos dependendo dos tipos de horas durante uns períodos (estes períodos poden ser indefinidos). Por exemplo, o custo das horas extraordinarias dos oficiais de 1ª durante o seguinte ano é de 24 euros hora. As categorías de custo están formadas por:

    +
    +
      +
    • Nome: Nome da categoría de custo.
    • +
    • Activado: Indica se a categoría está activada ou non.
    • +
    • Listado de tipos de hora asignados á categoría de custo. Indican diversos períodos e prezos para os tipos de hora. Por exemplo, cada ano con cambio de prezos incluese como un período de tipo de hora neste listado. Por outro lado, para cada tipo de horas mantense un prezo por hora (que pode ser diferente do prezo por hora por defecto que se incluiu para o tipo de hora).
    • +
    +
    +
  • +
+
+

Administración de tipos de horas traballadas

+

Para dar de alta tipos de horas traballadas é necesario dar os seguintes pasos:

+
    +
  • Seleccionar a operación "Administrar tipos de hora de traballo" no menú de "Administración".
  • +
  • A aplicación amosa o listado de tipos de hora existentes.
  • +
+
+images/hour-type-list.png +

Lista de tipos de horas

+
+
    +
  • O usuario preme na icona de "Editar" ou preme no botón "Crear".
  • +
  • A aplicación amosa un formulario de edición do tipo de hora.
  • +
+
+images/hour-type-edit.png +

Edición de tipos de horas

+
+
    +
  • O usuario introduce ou modifica:

    +
    +
      +
    • O nome do tipo de hora.
    • +
    • O código do tipo de hora.
    • +
    • O prezo por defecto.
    • +
    • Activación/Desactivación do tipo de hora.
    • +
    +
    +
  • +
  • O usuario preme en "Gardar" ou "Gardar e Continuar".

    +
  • +
+
+
+

Categorías de custo

+

Para dar de alta categorías de custo é necesario dar os seguintes pasos:

+
    +
  • Seleccionar a operación "Administrar categorías de custo" no menú de "Administración".
  • +
  • A aplicación amosa o listado de categorías existentes.
  • +
+
+images/category-cost-list.png +

Lista de categorías de custo

+
+
    +
  • O usuario preme na icona de "Editar" ou preme no botón "Crear".
  • +
  • A aplicación amosa un formulario de edición da categoría de custo.
  • +
+
+images/category-cost-edit.png +

Edición de categorías de custo

+
+
    +
  • O usuario introduce ou modifica:

    +
    +
      +
    • O nome da categoría de custo.

      +
    • +
    • Activación/Desactivación do tipo de hora.

      +
    • +
    • Listado de tipos de hora que forman parte da categoría. Para cada tipo de hora:

      +
      +
        +
      • Tipo de hora: Elixir un dos tipos de hora existentes no sistema. Se non existen ningún é necesario crealo (explícase na subsección anterior).
      • +
      • Data de inicio e data fin (opcional esta segunda) do período no que afecta a categoría de custo.
      • +
      • Prezo por hora para esta categoría especificamente.
      • +
      +
      +
    • +
    +
    +
  • +
  • O usuario preme en "Gardar" ou "Gardar e Continuar".

    +
  • +
+

A asignación de categorías de custo a recursos pode verse no capítulo de recursos. Acceder á sección de "Recursos".

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/gl/15-1-report-hours-worked-by-resource.html b/libreplan-webapp/src/main/webapp/help/gl/15-1-report-hours-worked-by-resource.html new file mode 100644 index 000000000..370624fe2 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/gl/15-1-report-hours-worked-by-resource.html @@ -0,0 +1,128 @@ + + + + + + +Informe de horas traballadas por recurso + + + +
+

Informe de horas traballadas por recurso

+ + +
+

Propósito

+

Este informe permite extraer unha lista de tarefas e tempo dedicado por parte dos recursos da organización nun período de tempo. Hai varios filtros que permiten configurar a consulta para obter a información desexada e evitar datos superfluos.

+
+
+

Datos de entrada e filtros

+
+
    +
  • +
    Datas.
    +
      +
    • Tipo: Opcional.
    • +
    • +
      Dous campos de data:
      +
        +
      • Data de inicio. É a data mínima dos partes de traballo que se desexan. Os partes de traballo con data inferior á data de inicio ignóranse. Se non se especifica este parámetro, non hai data inferior de filtrado.
      • +
      • Data de fin. É a data máxima de partir de traballo que se incorporarán nos resultados do informe. Os partes de traballo cunha data posterior que a data de fin óbvianse. Se non se cobre o parámetro, non existe data tope para os partes de traballo a seleccionar.
      • +
      +
      +
      +
    • +
    +
    +
    +
  • +
  • +
    Filtrado por traballadores
    +
      +
    • Tipo: Opcional.
    • +
    • Como funciona: Pódese seleccionar un traballador para restrinxir o conxunto de partes de traballo a aqueles correspondentes ao traballador seleccionado. Se se deixa en branco, selecciónanse os partes de traballo de forma independente ao traballador ao que pertencen.
    • +
    +
    +
    +
  • +
  • +
    Filtrado por etiquetas
    +
      +
    • Tipo: Opcional.
    • +
    • Como funciona: Pódese seleccionar unha ou varias etiquetas a través do compoñente de interfaz para a súa procura e pulsando no botón Engadir para incorporalas ao filtro. Úsanse para seleccionar as tarefas que serán incluídas nos resultados do informe.
    • +
    +
    +
    +
  • +
  • +
    Filtrado por criterio
    +
      +
    • Tipo: Opcional.
    • +
    • Como funciona: Pódese seleccionar un ou varios criterios a través do compoñente de procura e, despois, mediante o pulsado do botón de Engadir. Estes criterios úsanse para seleccionar os recursos que satisfagan polo menos un deles. O informe terá en conta o tempo dedicado dos recursos que satisfagan polo menos un dos criterios engadidos en leste filtro.
    • +
    +
    +
    +
  • +
+
+
+
+

Saída

+
+

Cabeceira

+

Na cabeceira do informe indícase que filtros foi configurados e aplicados para a extracción do informe á que corresponde unha cabeceira concreta.

+
+
+

Pé de páxina

+

Include a data na que o reporte sacouse.

+
+
+

Corpo

+

O corpo do informe contén os seguintes grupos de información:

+
    +
  • Hai un primeiro nivel de agregación de información por recurso. Todo o tempo dedicado por un recurso móstrase xunto debaixo da cabeceira. Cada recurso identifícase por:

    +
    +
      +
    • Traballador: Apelidos, Nomee
    • +
    • Máquina: Nome.
    • +
    +
    +
  • +
+

Móstrase unha liña de resumo co total das horas traballadas por un recurso.

+
    +
  • Hai un segundo nivel de agrupamiento consistente na data. Todos os partes de traballo dun recurso concreto no mesmo día móstrase de forma conxunta.
  • +
+

Hai unha liña de resumo co total das horas traballadas por recurso.

+
    +
  • Hai un terceiro e último nivel no cal se listan os partes de traballo do mesmo día dun traballador. A información que se mostra para cada liña de parte de traballo desta agrupación é:

    +
    +
      +
    • Código de tarefa ao que as horas reportadas imputan tempo.
    • +
    • Nome da tarefa ao que as horas reportadas imputan.
    • +
    • Hora de inicio. Non é obrigatorio. É a hora de inicio á que o recurso empezou a realizar o traballo da tarefa.
    • +
    • Hora de fin- É opcional. É a hora de fin até a cal o recurso traballou na tarefa na data especificada.
    • +
    • Campos de texto. É opcional. Se o tipo de parte de traballo ten campos de texto enchidos con valores, estes valores se muestrann nesta columna segundo o formato: <Nome do campo de texto>:<Valor>
    • +
    • Etiquetas. Contén valor dependendo de se o tipo de parte de traballo contén polo menos un campo de etiquetas na súa definición. Se hai varias etiquetas móstranse na mesma columna. O formato é: <Nome do tipo de etiqueta>.<Valor da etiqueta asociada>.
    • +
    +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/gl/15-2-total-hours-by-resource-month.html b/libreplan-webapp/src/main/webapp/help/gl/15-2-total-hours-by-resource-month.html new file mode 100644 index 000000000..6540e13a9 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/gl/15-2-total-hours-by-resource-month.html @@ -0,0 +1,67 @@ + + + + + + +Informe de horas totais traballadas por recurso nun mes + + + +
+

Informe de horas totais traballadas por recurso nun mes

+ + +
+

Propósito

+

Este informe permite obter o número total de horas traballadas polos recursos nun mes. Isto pode ser útil para calcular as horas extras feitas ou, dependendiendo da organización, a cantidade de horas que ten que ser pagadas por recurso nun mes.

+

A aplicación permite rexistrar partes de traballo tanto para os traballadores como para as máquinas. E, de acordo con isto, o informe no caso das máquinas indica as horas totais que as máquinas estiveron funcionando nun determinado mes.

+
+
+

Parámetros de entrada e filtro

+

No informe debe ser especificado o ano e o mes para obter o total de horas por recurso que traballaron.

+
+
+

Saída

+

O formato de saída do informe é o seguinte:

+
+

Cabeceira

+

Na cabeceira do informe móstrase;

+
+
    +
  • O ano ao que pertence o informe que se está extraendo.
  • +
  • O mes ao cal pertene os datos do informe mostrado.
  • +
+
+
+
+

Pé de páxina

+

No pé de páxina móstrase a data na que cúal o informe sacouse.

+
+
+

Corpo

+

A área de datos do informe consiste nunha única sección na que se inclúe unha tabal con dúas columnas:

+
+
    +
  • Unha columna denominada Nome para o nome do recurso.
  • +
  • Unha columna chamada Horas coa suma de todas as horas dedicadas polo recurso ao que corresponde unha fila.
  • +
+
+

Hai unha final total agregadora do total de horas dedicadas por calquera dos recursos no mes, anos ao que corresponde o informe.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/gl/15-3-work-progress-per-project.html b/libreplan-webapp/src/main/webapp/help/gl/15-3-work-progress-per-project.html new file mode 100644 index 000000000..a154c1663 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/gl/15-3-work-progress-per-project.html @@ -0,0 +1,125 @@ + + + + + + +Informe de traballo e progres por proxecto + + + +
+

Informe de traballo e progres por proxecto

+ + +
+

Propósito

+

Este informe permite mostrar cal é o estado global dos proxectos tendo en conta dúas variables: o progreso e o custo.

+

Analízase o estado actual de progreso dun proxecto comparándoo co previsto de acordo á planificación e ao traballo dedicado.

+

Tamén se mostran varios indicadores relacionados ao custo do proxecto comparándoo o rendemento actual co teórico.

+
+
+

Parámetros de entrada e filtros

+

Hai varios parámetros obrigatorios. Estes son:

+
+
    +
  • Data de referencia. É a data de referencia para facer a comparación do estado previsto de planificación do proxecto nesa data co rendemento real do proxecto nesa citada data.
  • +
  • Tipo de progreso. É o tipo de progreso que se quere usar para medir o progreso global. Na aplicación un proxecto pode ser medido simultaneamente con diferentes tipos de progresos, e o seleccionado polo usuario no combo de selección é o usado para calcular o informe. O valor por defecto para o tipo de progreso a usar é propagado, que é un tipo especial de progreso consistente no uso en cada elemento do WBS do valor alí configurado como que propaga.
  • +
+
+

Con respecto aos campos opcións, son os seguintes:

+
+
    +
  • Data de inicio. A data de inicio mínima dos proxectos que se queren incluír no informe. É opcional. Se non se especifica data de inicio, non existe data mínima para os proxectos a incluír.
  • +
  • Data de fin. É a data máxima de fin dos proxectos para que estes sexan incluídos no informe. Todos os proxectos que terminan tras a data de fin son descartados.
  • +
  • Filtro por proxectos. Este filtro permite seleccionar un conxunto de proxectos aos que limitar os resultados do informe. Se non se engade ningún proxecto ao filtro, móstrase o informe para todos os proxectos da base de datos. Hai un selector autcompletable para atopar os proxectos requiridos. Engádense ao filtro mediante a pulsación no botón Engadir.
  • +
+
+
+
+

Saída

+

O formato de saída é a seguinte:

+
+

Cabeceira

+

Na cabeceira do informe inclúense os seguintes parámetros de entrada:

+
+
    +
  • Data de inicio. É o filtro por data de inicio. Non se mostra se o informe non é filtrado por este campo.
  • +
  • Data de fin. É o filtro por data fin. Non se mostra se o usuario non o enche.
  • +
  • Tipo de progreso. É o tipo de progreso usado por este informe.
  • +
  • Proxectos. É un campo que informa acerca dos proxectos filtrados para os que se obtén o proxecto. Consiste na cadea de texto Todos cando o informe obtense para todos os proxectos que satisfán o resto dos filtros.
  • +
  • Data de referencia. Mostra o campo de entrada obrigatorio data de referencia utilizado na extracción do informe.
  • +
+
+
+
+

Pé de páxina

+

Móstrase a data na que o informe foi extraído.

+
+
+

Corpo

+

O corpo do informe consiste na lista de proxectos que foron seleccionados como resultado dos filtros de entrada.

+

Outra cousa importante é que o progreso no informe é calculado en tantos por un. Son valores entre o 0 e o 1.

+

Os filtros funcionan engadindo condicións que se aplican en cadea a excepción do conxunto formado polos filtros de data (data de inicio, data de fin) e o filtro por proxectos. Neste caso, se un dos filtros de data contén algún valor e tamén o filtro por proxectos ten algun proxecto configurado ao mesmo tempo, entón este último filtro é o que manda na selección. Isto significa que os proxectos que se inclúen no informe son os proporcionados polo filtro por proxectos independentemente do que haxa nos filtros de datas

+
+
Para cada proxecto seleccionado a ser incluído na saída do informe, móstrase a seguinte información:
+
    +
  • O nome do proxecto.
  • +
  • +
    As horas totais. As horas totais do proxecto móstranse mediante a adición das horas de cada tarefa. Calcúlanse dous tipos de horas totais:
    +
      +
    • Estimadas (HE). Esta cantidade é a suma de todas as horas do WBS do proxecto. É o número total de horas nas que un proxecto está estimado para ser completado.
    • +
    • Planificadas (TP). En LibrePlan é posible ter dúas cantidades diferentes. As horas estimadas dunha tarefa, que son o número de horas que a priori se pensa que son necesaras para terminar unha tarefa, e as horas planificadas, que son as horas asignadas no plan para facer a tarefa. As horas planificadas poden ser igual, menos ou máis que as horas estimadas e decídense nunha fase posterior, na operación de asignación. Por tanto, as horas totais planificadas dun proxecto é a suma de todas as horas asignadas das súas tarefas.
    • +
    +
    +
    +
  • +
  • +
    Progreso. Móstranse tres medidas relacionadas co tipo de progreso especificado no filtro de entrada na data de referencia:
    +
      +
    • Medidas (PM). É o progreso global considerando as medidas de progreso cunha data menor ou igual á data de referencia nos campos de entrada para o informe. Ademais, tense en conta a todas as tarefas e a suma pondérase polo número de horas de cada tarefa.
    • +
    • Imputado (PI). Este é o progreso considerando que o traballo realizado vai á mesma velocidade que as horas dedicadas nas tarefas. Se se fan X horas de E totais dunha tarefa, considérase que o progreso imputado global é X/E.
    • +
    +
    +
    +
  • +
  • +
    Horas até a data. Son dous campos que mostran o número de horas até a data de referencia desde dous puntos de vista:
    +
      +
    • Planeadas (HP). Este número é a adición das horas asignadas en calquera tarefa cunha data inferior á data de referencia.
    • +
    • Reais (HR).. Este número é a adición das horas imputadas nos partes de traballo a calquera das tarefas dun proxecto cunha data os partes de traballo igual ou inferior á data de referencia.
    • +
    +
    +
    +
  • +
  • +
    Diferenza. Englobadas nesta sección atópanse varias maneiras de medir o custo:
    +
      +
    • En custo. É a diferenza en horas entre o número de horas gastadas tendo en conta o progreso medido e as horas dedicadas até a data de referencia. A fórmula é: PM*TP - HR.
    • +
    • En planificación. É a diferenza entre as horas gastadas de acordo ao progreso medido global e o número de horas planificadas até a data de referencia. Mide o adianto ou o atraso. A fórmula é: PM*TP - HR.
    • +
    • Cociente de custo. Calcúlase dividindo PM/PI. Se é maior que 1, significa que o proxecto vai en beneficios e se é menor que 1, que se está perdendo diñeiro
    • +
    • Cociente en planificación. Se calcula dividindo PM/PP. Se é maior que 1, significa que o proxecto vai adiantado e se é menor que 1 que vai con atraso.
    • +
    +
    +
    +
  • +
+
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/gl/15-informes.html b/libreplan-webapp/src/main/webapp/help/gl/15-informes.html new file mode 100644 index 000000000..8a21511f4 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/gl/15-informes.html @@ -0,0 +1,32 @@ + + + + + + +Informes + + + +
+

Informes

+ +
+

Contents

+ +
+
+

Informes

+

"LibrePlan" está integrado con JasperReports para a xestión de informes o cal permite implantar diversos informes que analiza datos existentes na aplicación.

+

Os informes definidos son:

+
    +
  1. Informe sobre as horas traballadas por recurso
  2. +
  3. Informe sobre o total de horas adicadas por recurso nun mes
  4. +
  5. Informe sobre o traballo e progreso por tarefa
  6. +
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/gl/16-ldap-authentication.html b/libreplan-webapp/src/main/webapp/help/gl/16-ldap-authentication.html new file mode 100644 index 000000000..c23da6f68 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/gl/16-ldap-authentication.html @@ -0,0 +1,255 @@ + + + + + + +Configuracion LDAP + + + +
+

Configuracion LDAP

+ + +

Esta pantalla permite establecer unha conexión LDAP para delegar autenticación +e/ou autorización.

+

Está dividida en catro áreas diferentes relacionadas que se explican debaixo:

+
+

Activación

+

Esta área úsase para establecer as propiedades que configuran como LibrePlan +usa LDAP.

+

Se o campo Habilita autenticación LDAP está marcado, LibrePlan utiliza o +LDAP para autenticar cada vez que o usuario tenta entrar na aplicación.

+

O campo Usar LDAP roles marcado significa que o mapping entre os roles LDAP +e os roles de LibrePlan está establecido, de maneira que os permisos en +LibrePlan dependen dos roles que o usuario ten no LDAP.

+
+
+

Configuración

+

Esta sección ten os parámentros para o acceso ao LDAP. Os parámetros +Base, UserDN e Contrasinal son os parámetros para conectar ao LDAP e +buscar aos usuarios. O usuario configurado debe ter permiso no LDAP. Na última +parte desta sección hai un botón para comprobar que a conexión co LDAP é posible +cos parámetros configurados. É unha boa idea probar a conexión antes de +continuar coa configuración.

+
+

Note

+

Se o seu LDAP está configurado para traballar con autenticación anónima pode +deixar baleiros oos atributos UserDN e Contrasinal.

+
+
+

Tip

+

Sobre a configuración de Active Directory (AD), o campo Base debe ser +a localización exacta onde reside o usuario vinculado no AD.

+

Exemplo: ou=organizational_unit,dc=example,dc=org

+
+
+
+

Autenticación

+

Nesta sección configúranse a propiedade dos nodos de LDAP onde se atopa +almacenada o login do usuario. A propiedade UserId debe ser +enchido co nome da propiedade onde o login está almacenado no +LDAP.

+

O checkbox Almacenar contrasinais na base de datos cando se atopa +marcado, indica que a contrasinal se almacena tamén na base de datos +LibrePlan. Desta forma, se o LDAP está offline ou non existe conectividad, os +usuarios do LDAP poden autenticarse contra a base de datos de LibrePlan. Se +non está marcado, o usuario de LDAP só poden ser autenticados contro o +LDAP.

+
+
+

Autorización

+

Esta sección permite definir a estratexia para asociar os roles de LDAP cos +roles de LibrePlan.

+
+

Estratexia de grupo

+

Cando se usa esta estratexia, implica que o LDAP está a usar unha estratexia de +grupo de rol. Significa que os usuarios no LDAP son nodos que colgan +directamente dunha rama que representa o grupo.

+

O seguiente exemplo representa unha estrutura de LDAP válida para usar a +estratexia de grupo.

+
    +
  • Estrutura do LDAP:

    +
    +dc=example,dc=org
    +|- ou=groups
    +   |- cn=admins
    +   |- cn=itpeople
    +   |- cn=workers
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

Neste caso, cada grupo tenrá un atributo, por exemplo chamado member, +coa lista de usuarios que pertencen ao grupo:

+
    +
  • cn=admins:
      +
    • member: uid=admin1,ou=people,dc=example,dc=org
    • +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=itpeople:
      +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    • member: uid=it2,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=workers:
      +
    • member: uid=worker1,ou=people,dc=example,dc=org
    • +
    • member: uid=worker2,ou=people,dc=example,dc=org
    • +
    • member: uid=worker3,ou=people,dc=example,dc=org
    • +
    +
  • +
+

A configuración para este caso é a seguinte:

+
    +
  • Estratexia para a búsqueda de roles: Estratexia de grupo
  • +
  • Path do grupo: ou=groups
  • +
  • Propiedade do rol: member
  • +
  • Consulta para a búsqueda de roles: uid=[USER_ID],ou=people,dc=example,dc=org
  • +
+

E por exemplo se quere facer algunha correspondencia de roles:

+
    +
  • Administration: cn=admins;cn=itpeople
  • +
  • Web service reader: cn=itpeople
  • +
  • Web service writer: cn=itpeople
  • +
  • All projects read allowed: cn=admins
  • +
  • All projects edition allowed: cn=admins
  • +
  • Project creation allowed: cn=workers
  • +
+
+
+

Estratexia de propiedade

+

Cando o administrador decide usar esta estratexia, implica que cada usuario é +un nodo de LDAP e que no nodo existe unha propiedade que representa o grupo ou +grupos ao que pertence o usuairo. Neste caso, a configuración non necesita +o parámetro Path do grupo:

+

O seguiente exemplo representa unha estrutura de LDAP válida para usar a +estratexia de propiedade.

+
    +
  • Estrutura do LDAP:

    +
    +dc=example,dc=org
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

Con atributo

+

Neste caso, cada usuario tenrá un atributo, por exemplo chamado group` +co nome do grupo ao que pertence:

+
    +
  • uid=admin1:
      +
    • group: admins
    • +
    +
  • +
  • uid=it1:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=it2:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=worker1:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker2:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker3:
      +
    • group: workers
    • +
    +
  • +
+
+

Warning

+

Esta estratexia ten unha restricción, cada usuario pode pertencer só a un +grupo.

+
+

A configuración para este caso é a seguinte:

+
    +
  • Estratexia para a búsqueda de roles: Estratexia de propiedade
  • +
  • Path do grupo:
  • +
  • Propiedade do rol: group
  • +
  • Consulta para a búsqueda de roles: [USER_ID]
  • +
+

E por exemplo se quere facer algunha correspondencia de roles:

+
    +
  • Administration: admins;itpeople
  • +
  • Web service reader: itpeople
  • +
  • Web service writer: itpeople
  • +
  • All projects read allowed: admins
  • +
  • All projects edition allowed: admins
  • +
  • Project creation allowed: workers
  • +
+

Por identificador de usuario

+

Incluso pode ter unha solución para especificar os roles de LibrePlan +directamente aos usuarios, sen ter un atributo en cada usuario de LDAP.

+

Neste caso, especificará que usuarios teñen os diferentes roles por uid.

+

A configuración para este caso é a seguinte:

+
    +
  • Estratexia para a búsqueda de roles: Estratexia de propiedade
  • +
  • Path do grupo:
  • +
  • Propiedade do rol: uid
  • +
  • Consulta para a búsqueda de roles: [USER_ID]
  • +
+

E por exemplo se quere facer algunha correspondencia de roles:

+
    +
  • Administration: admin1;it1
  • +
  • Web service reader: it1;it2
  • +
  • Web service writer: it1;it2
  • +
  • All projects read allowed: admin1
  • +
  • All projects edition allowed: admin1
  • +
  • Project creation allowed: worker1;worker2;worker3
  • +
+
+
+

Correspondencia de roles

+

No fondo da pantalla desta sección hai unha táboa con todos os roles de +LibrePlan e un campo de texto anexo a cada un deles. Esta área é para a +asociación dos roles. Por exemplo, se un usuario administrador de LibrePlan +decide que rol de LibrePlan Administración correspóndese cos roles +admin e administrators do LDAP no campo de texto hai que configurar: +"admin;administrators". O carácter de separación de roles é ";".

+
+

Note

+

Se quere especificar que todos os usuarios ou todos os roles teñan un +permiso pode usar un asterisco (*) coma comodín para referirse a eles. +Por exemplo, se quere que todo o mundo teña o rol Project creation +allowed configurará a correspondica de roles coma segue:

+
    +
  • Project creation allowed: *
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/gl/17-panel-indicadores.html b/libreplan-webapp/src/main/webapp/help/gl/17-panel-indicadores.html new file mode 100644 index 000000000..c5f238a97 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/gl/17-panel-indicadores.html @@ -0,0 +1,224 @@ + + + + + + +Panel de indicadores + + + +
+

Panel de indicadores

+ + +

O panel de indicadores é unha perspectiva de LibrePlan que contén un +conxunto de indicadores de rendemento que axudan a coñecer como está +a resultar un proxecto de acordo a:

+
+
    +
  • como está a progresar o traballo que hai que realizar para levalo a cabo.
  • +
  • canto está a custar.
  • +
  • o estado dos recursos asignados.
  • +
  • as restricións de tempo.
  • +
+
+
+

Indicadores de rendemento de proxecto

+

Calculáronse dous indicadores: a porcentaxe de progreso de proxecto e o +estado das tarefas.

+
+

Porcentaxe de progreso de proxecto

+

É unha gráfica onde o progreso global dun proxecto calcúlase e contrástase +co valor esperado de progreso que o proxecto debería ter de acordo ao +Gantt

+

O progreso represéntase a través de dúas barras:

+
+
    +
  • Progreso actual. É o progreso existente no momento presente de acordo +ás medicións realizadas.
  • +
  • Progreso esperado. É o progreso que o proxecto debería ter no +momento actual de acordo á planificación creada.
  • +
+
+

O progreso global de proxecto estímase de varias maneiras diferentes, xa que non +existe unha maneira única correcta de facelo:

+
+
    +
  • Progreso propagado. É o tipo de progreso marcado para propagar a nivel +do proxecto. Neste caso, ademais, non existe maneira de calcular un +valor de progreso esperado e, en consecuencia, unicamente móstrase a barra de progreso +actual.
  • +
  • Por horas de todas as tarefas. O progreso de todas as tarefas do +proxecto é promediado para calcular o valor global. É unha media +ponderada que toma en conta o número de horas asignado a cada tarefa.
  • +
  • Por horas do camiño crítico. O progreso de todas as tarefas +pertencentes a algún dos camiños críticos do proxecto é promediado +para obter o valor global. Faise unha media ponderada que toma en conta +as horas asignadas totais a cada unha das tarefas implicadas.
  • +
  • Por duración do camiño crítico. O progreso das tarefas +pertencentes a algún dos camiños críticos se promedia a través dunha +media ponderada pero, nesta ocasión, tendo en conta a duración das +tarefas implicadas en lugar das horas asignadas.
  • +
+
+
+
+

Estado das tarefas

+

O estado das tarefas represéntase a través dun gráfico de torta que recolle a porcentaxe das tarefas +do proxecto nos diferentes estados posibles. Estes estados posibles son os +seguintes:

+
+
    +
  • Finalizadas. Son as tarefas completadas, detectadas por un valor de progreso +do 100% medido.
  • +
  • En curso. Son as tarefas que se atopan empezadas. Teñen un valor de progreso +diferente de 0% e de 100% ou, tamén, algún tempo dedicado.
  • +
  • Preparadas para comezar. Teñen un valor de progreso do 0%, non teñen +tempo traballado imputado, todas as tarefas dependentes FIN_A_INICIO +están finalizadas e todas as tarefas dependentes INICIO_A_INICIO están +finalizadas ou en curso.
  • +
  • Bloqueadas. Son tarefas que teñen un 0% de progreso, sen tempo +imputado e coas tarefas das que se depende previas nun estado +diferente a en curso e a preparadas para comezar.
  • +
+
+
+
+
+

Indicadores de custo

+

Hai varios indicadores de Valor Gañado calculados no panel:

+
+
    +
  • CV (Varianza de custo). É a diferenza entre a Curva de Valor +Gañado e a Curva de Custo Real no momento presente. Valores +positivos indican beneficio, mentres que valores negativos perda.

    +
  • +
  • ACWP (Custo real do traballo realizado). É o número total de horas +imputadas no proxecto até o momento actual.

    +
  • +
  • CPI (Indice de rendemento en custo). É o cociente Valor Gañado/ Custo +real.

    +
    +
      +
    • > 100 é bo, significa que se está baixo orzamento.
    • +
    • = 100 é bo igualmente, significa está cun custo exactamente igual +ao plan trazado.
    • +
    • < 100 é malo, significa que o custo de completar o traballo é máis +alto que o planificado.
    • +
    +
    +
  • +
  • ETC (Estimación para compleción). É o tempo que está pendente de realizar +para finalizar o proxecto.

    +
  • +
  • BAC (Orzamento en compleción). É o tempo total asignado no plan +de proxecto.

    +
  • +
  • VAC (Varianza en compleción). É a diferenza entre o BAC e o +ETC.

    +
    +
      +
    • < 0 é estar sobre orzamento.
    • +
    • > 0 é estar baixo orzamento.
    • +
    +
    +
  • +
+
+
+
+

Recursos

+

Para analizar o proxecto desde o punto de vista dos recursos proporciónanse 2 cocientes e 1 histograma.

+
+

Histograma de desvío estimado en tarefas completadas

+

Calcúlase o desvío entre o número de horas asignadas ás tarefas do +proxecto e o número final de horas dedicadas ás mesmas.

+

O desvío calcúlase en porcentaxe para todas para todas as tarefas terminadas e +os desvíos calculados represéntanse nun histograma. No eixo vertical móstranse o número de tarefas que están nun determinado intervalo de desvío. +Seis intervalos de desvío calcúlanse dinámicamente.

+
+
+

Cociente de sobrecarga

+

Resume a sobrecarga dos recursos que se asignan nas tarefas do proxecto. +Calcúlase de acordo á fórmula: cociente de sobrecarga = sobrecarga / (carga + sobrecarga).

+
+
    +
  • = 0 é bo, significa que os recursos non están sobrecargados.
  • +
  • > 0 é malo, significa que os recursos están sobrecargados.
  • +
+
+
+
+

Cociente de dispoñibilidade

+

Resume a capacidade que está dispoñible para asignar nos recursos do +proxecto. Por tanto é unha medida da dispoñibilidade dos recursos para +recibir máis asignacións sen ser sobrecargados. Calcúlase como: cociente de dispoñibilidade += (1 - carga/capacidade)*100

+
+
    +
  • Os valores posibles están entre 0% (completamente asignados) e 100% (non +asignados)
  • +
+
+
+
+
+

Tempo

+

Inclúense dúas gráficas de tempo: un histograma para a desviación de tempo +á finalización das tarefas dos proxectos e un gráfico de torta +para as violacións de data de entrega.

+
+

Adianto ou atraso na compleción das tarefas

+

Calcúlase a diferenza en días entre a data de finalización planificada +para as tarefas do proxecto e o seu tempo de finalización real. A data de terminación +prevista obtense do Gantt e a data de terminación real obtense a partir da data do traballo imputado á tarefa máis recente.

+

O atraso ou adianto na compleción das tarefas represéntase a través dun +histograma. No eixo vertical represéntanse o número de tarefas cun +número de días de adianto ou atraso incluídas no intervalo indicado +na abcisa. Calcúlase seis intervalos de desvío na compleción de tarefas de forma dinámica.

+
+
    +
  • Valores negativos indican terminación antes de tempo.
  • +
  • Valores positivos indican terminación con atraso.
  • +
+
+
+
+

Violacións de data de entrega

+

Por unha banda calcúlase a marxe coa data de entrega de proxecto, se esta é configúrada. Doutra banda píntase un gráfico de sectores coa porcentaxe de tarefas +que cumpren a data de entrega. Inclúense tres tipos de valores:

+
+
    +
  • Porcentaxe de tarefas sen data de entrega configurada.
  • +
  • Porcentaxe de tares finalizadas cunha data de terminación real posterior +á data de entrega configurada. A data de finalización real obtense +o último traballo rexistrado na tarefa.
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/gl/20-acerca-de.html b/libreplan-webapp/src/main/webapp/help/gl/20-acerca-de.html new file mode 100644 index 000000000..806ad74a4 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/gl/20-acerca-de.html @@ -0,0 +1,131 @@ + + + + + + +Acerca de + + + +
+

Acerca de

+ + + +
+

Licenza

+

Este programa é software libre; pode redistribuílo ou modificalo baixo as +condicións da Licenza Pública Xeral Affero GNU tal como a publica a Free +Software Foundation; tanto na versión 3 da Licenza como (segundo o seu +criterio) en calquera versión posterior.

+

Este programa distribúese esperando que sexa útil, mais SEN NINGUNHA GARANTÍA; +mesmo sen a garantía implícita de VALOR COMERCIAL ou IDONEIDADE PARA UN +PROPÓSITO PARTICULAR. Para máis detalles vexa a Licenza Pública Xeral Affero +GNU.

+

Debeu recibir unha copia da Licenza Pública Xeral Affero GNU xunto con este +programa. En caso contrario, visite <http://www.gnu.org/licenses/>.

+
+
+

Escrito por

+
+

Equipo de LibrePlan

+ +
+
+

Anteriores membros do equipo

+ +
+
+

Traductores

+ +
+
+

Contribuidores

+ +
+
+
+

Financiación pública

+

Dentro do marco global de LibrePlan e a xestión da planificación, desenvolveuse un proxecto que pretende resolver unha serie de problemas comúns de planificación. Este proxecto foi cofinanciado pola Xunta de Galicia, o Ministerio de Industria, Turismo e Comercio, e pola Unión Europea, Fondo Europeo de Desenvolvemento Rexional.

+
+images/logos.png +
+

Así mesmo o proxecto formou parte do Plan Avanza:

+
+images/avanza.gif +
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/advance-assignment.png b/libreplan-webapp/src/main/webapp/help/gl/images/advance-assignment.png new file mode 100644 index 000000000..aeb55b2b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/advance-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/asignacion-especifica.png b/libreplan-webapp/src/main/webapp/help/gl/images/asignacion-especifica.png new file mode 100644 index 000000000..9ee94d9c6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/asignacion-especifica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/asignacion-xenerica.png b/libreplan-webapp/src/main/webapp/help/gl/images/asignacion-xenerica.png new file mode 100644 index 000000000..d2a16597f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/asignacion-xenerica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/avance.png b/libreplan-webapp/src/main/webapp/help/gl/images/avance.png new file mode 100644 index 000000000..ee289e19c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/avanza.gif b/libreplan-webapp/src/main/webapp/help/gl/images/avanza.gif new file mode 100644 index 000000000..cd959cf3a Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/avanza.gif differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/calendar-administration.png b/libreplan-webapp/src/main/webapp/help/gl/images/calendar-administration.png new file mode 100644 index 000000000..bb4e17032 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/calendar-administration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/calendar-create-derived.png b/libreplan-webapp/src/main/webapp/help/gl/images/calendar-create-derived.png new file mode 100644 index 000000000..9f01f2c33 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/calendar-create-derived.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/calendar-edition.png b/libreplan-webapp/src/main/webapp/help/gl/images/calendar-edition.png new file mode 100644 index 000000000..a98cc4454 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/calendar-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/calendar-exceptions.png b/libreplan-webapp/src/main/webapp/help/gl/images/calendar-exceptions.png new file mode 100644 index 000000000..c2a53a684 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/calendar-exceptions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/category-cost-edit.png b/libreplan-webapp/src/main/webapp/help/gl/images/category-cost-edit.png new file mode 100644 index 000000000..1755ee79e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/category-cost-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/category-cost-list.png b/libreplan-webapp/src/main/webapp/help/gl/images/category-cost-list.png new file mode 100644 index 000000000..1d7ff838c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/category-cost-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/company_view.png b/libreplan-webapp/src/main/webapp/help/gl/images/company_view.png new file mode 100644 index 000000000..c3a7631e6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/company_view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/contraste-avance.png b/libreplan-webapp/src/main/webapp/help/gl/images/contraste-avance.png new file mode 100644 index 000000000..831cceac3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/contraste-avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/default-calendar.png b/libreplan-webapp/src/main/webapp/help/gl/images/default-calendar.png new file mode 100644 index 000000000..6fd379d08 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/default-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/edicion-criterio.png b/libreplan-webapp/src/main/webapp/help/gl/images/edicion-criterio.png new file mode 100644 index 000000000..2b879ced5 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/edicion-criterio.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/hour-type-edit.png b/libreplan-webapp/src/main/webapp/help/gl/images/hour-type-edit.png new file mode 100644 index 000000000..4917b08a8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/hour-type-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/hour-type-list.png b/libreplan-webapp/src/main/webapp/help/gl/images/hour-type-list.png new file mode 100644 index 000000000..1872eb4f7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/hour-type-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/lista-criterios.png b/libreplan-webapp/src/main/webapp/help/gl/images/lista-criterios.png new file mode 100644 index 000000000..a2e7d03cb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/lista-criterios.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/logo.png b/libreplan-webapp/src/main/webapp/help/gl/images/logo.png new file mode 100644 index 000000000..4e7d02651 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/logo.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/logos.png b/libreplan-webapp/src/main/webapp/help/gl/images/logos.png new file mode 100644 index 000000000..7314a0759 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/logos.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/machine-calendar.png b/libreplan-webapp/src/main/webapp/help/gl/images/machine-calendar.png new file mode 100644 index 000000000..a725f67a2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/machine-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/machine-configuration.png b/libreplan-webapp/src/main/webapp/help/gl/images/machine-configuration.png new file mode 100644 index 000000000..0777473fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/machine-configuration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/machine-costcategory.png b/libreplan-webapp/src/main/webapp/help/gl/images/machine-costcategory.png new file mode 100644 index 000000000..b8414eac6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/machine-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/machine-criterions.png b/libreplan-webapp/src/main/webapp/help/gl/images/machine-criterions.png new file mode 100644 index 000000000..7c270bf35 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/machine-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/machine-data.png b/libreplan-webapp/src/main/webapp/help/gl/images/machine-data.png new file mode 100644 index 000000000..5edb47d12 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/machine-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/manage-user-profile.png b/libreplan-webapp/src/main/webapp/help/gl/images/manage-user-profile.png new file mode 100644 index 000000000..6a86064e2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/manage-user-profile.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/manage-user.png b/libreplan-webapp/src/main/webapp/help/gl/images/manage-user.png new file mode 100644 index 000000000..df59f1b7c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/manage-user.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/material.png b/libreplan-webapp/src/main/webapp/help/gl/images/material.png new file mode 100644 index 000000000..a77b5aa41 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/menu.png b/libreplan-webapp/src/main/webapp/help/gl/images/menu.png new file mode 100644 index 000000000..f4eec5250 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/menu.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/new-resource-calendar.png b/libreplan-webapp/src/main/webapp/help/gl/images/new-resource-calendar.png new file mode 100644 index 000000000..9040e0bc0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/new-resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/order-assigned-hours.png b/libreplan-webapp/src/main/webapp/help/gl/images/order-assigned-hours.png new file mode 100644 index 000000000..4fd629386 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/order-assigned-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/order-criterions.png b/libreplan-webapp/src/main/webapp/help/gl/images/order-criterions.png new file mode 100644 index 000000000..e59bd833f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/order-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/order-edition.png b/libreplan-webapp/src/main/webapp/help/gl/images/order-edition.png new file mode 100644 index 000000000..ff67134db Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/order-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/order-element-criterion.png b/libreplan-webapp/src/main/webapp/help/gl/images/order-element-criterion.png new file mode 100644 index 000000000..f167979b0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/order-element-criterion.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/order-element-edition.png b/libreplan-webapp/src/main/webapp/help/gl/images/order-element-edition.png new file mode 100644 index 000000000..66e5e8602 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/order-element-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/order-element-hours.png b/libreplan-webapp/src/main/webapp/help/gl/images/order-element-hours.png new file mode 100644 index 000000000..06cc1dc37 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/order-element-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/order-element-material-assign.png b/libreplan-webapp/src/main/webapp/help/gl/images/order-element-material-assign.png new file mode 100644 index 000000000..90f973766 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/order-element-material-assign.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/order-element-material-search.png b/libreplan-webapp/src/main/webapp/help/gl/images/order-element-material-search.png new file mode 100644 index 000000000..550f1d7fa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/order-element-material-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/order-element-quality.png b/libreplan-webapp/src/main/webapp/help/gl/images/order-element-quality.png new file mode 100644 index 000000000..3272ce70e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/order-element-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/order-element-tags.png b/libreplan-webapp/src/main/webapp/help/gl/images/order-element-tags.png new file mode 100644 index 000000000..e43a7d795 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/order-element-tags.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/order-elements-list.png b/libreplan-webapp/src/main/webapp/help/gl/images/order-elements-list.png new file mode 100644 index 000000000..271ac9bf6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/order-elements-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/order-labels.png b/libreplan-webapp/src/main/webapp/help/gl/images/order-labels.png new file mode 100644 index 000000000..076e0a745 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/order-labels.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/order-material.png b/libreplan-webapp/src/main/webapp/help/gl/images/order-material.png new file mode 100644 index 000000000..9197679e7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/order-material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/order-quality.png b/libreplan-webapp/src/main/webapp/help/gl/images/order-quality.png new file mode 100644 index 000000000..ee9e9027e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/order-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/order_list.png b/libreplan-webapp/src/main/webapp/help/gl/images/order_list.png new file mode 100644 index 000000000..72e70f3b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/order_list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/planning-view.png b/libreplan-webapp/src/main/webapp/help/gl/images/planning-view.png new file mode 100644 index 000000000..de74811eb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/planning-view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/quality.png b/libreplan-webapp/src/main/webapp/help/gl/images/quality.png new file mode 100644 index 000000000..1850f51b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/resource-assignment-generic.png b/libreplan-webapp/src/main/webapp/help/gl/images/resource-assignment-generic.png new file mode 100644 index 000000000..3519a5087 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/resource-assignment-generic.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/resource-assignment-planning.png b/libreplan-webapp/src/main/webapp/help/gl/images/resource-assignment-planning.png new file mode 100644 index 000000000..c4233780d Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/resource-assignment-planning.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/resource-assignment-search.png b/libreplan-webapp/src/main/webapp/help/gl/images/resource-assignment-search.png new file mode 100644 index 000000000..cae142d81 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/resource-assignment-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/resource-assignment-specific.png b/libreplan-webapp/src/main/webapp/help/gl/images/resource-assignment-specific.png new file mode 100644 index 000000000..8f7b1cba2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/resource-assignment-specific.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/resource-assignment.png b/libreplan-webapp/src/main/webapp/help/gl/images/resource-assignment.png new file mode 100644 index 000000000..427d25b79 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/resource-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/resource-calendar.png b/libreplan-webapp/src/main/webapp/help/gl/images/resource-calendar.png new file mode 100644 index 000000000..749c7b829 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/resource-load.png b/libreplan-webapp/src/main/webapp/help/gl/images/resource-load.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/resource-load.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/resources_global.png b/libreplan-webapp/src/main/webapp/help/gl/images/resources_global.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/resources_global.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/stretches.png b/libreplan-webapp/src/main/webapp/help/gl/images/stretches.png new file mode 100644 index 000000000..d661a63f6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/stretches.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/tag-types-edition.png b/libreplan-webapp/src/main/webapp/help/gl/images/tag-types-edition.png new file mode 100644 index 000000000..d366c09c2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/tag-types-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/tag-types-list.png b/libreplan-webapp/src/main/webapp/help/gl/images/tag-types-list.png new file mode 100644 index 000000000..e7de5048c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/tag-types-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/tipos-avances.png b/libreplan-webapp/src/main/webapp/help/gl/images/tipos-avances.png new file mode 100644 index 000000000..bb417f52c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/tipos-avances.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/virtual-resources.png b/libreplan-webapp/src/main/webapp/help/gl/images/virtual-resources.png new file mode 100644 index 000000000..3a54f95d3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/virtual-resources.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/work-report-hours.png b/libreplan-webapp/src/main/webapp/help/gl/images/work-report-hours.png new file mode 100644 index 000000000..568e9fed6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/work-report-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/work-report-type.png b/libreplan-webapp/src/main/webapp/help/gl/images/work-report-type.png new file mode 100644 index 000000000..2549d8b5e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/work-report-type.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/work-report-types.png b/libreplan-webapp/src/main/webapp/help/gl/images/work-report-types.png new file mode 100644 index 000000000..986f705aa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/work-report-types.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/worker-calendar.png b/libreplan-webapp/src/main/webapp/help/gl/images/worker-calendar.png new file mode 100644 index 000000000..1227969b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/worker-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/worker-costcategory.png b/libreplan-webapp/src/main/webapp/help/gl/images/worker-costcategory.png new file mode 100644 index 000000000..f330db68c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/worker-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/worker-criterions.png b/libreplan-webapp/src/main/webapp/help/gl/images/worker-criterions.png new file mode 100644 index 000000000..a131a29fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/worker-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/images/worker-personal-data.png b/libreplan-webapp/src/main/webapp/help/gl/images/worker-personal-data.png new file mode 100644 index 000000000..6a5033ba8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/gl/images/worker-personal-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/gl/index.html b/libreplan-webapp/src/main/webapp/help/gl/index.html new file mode 100644 index 000000000..e80a49798 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/gl/index.html @@ -0,0 +1,44 @@ + + + + + + +Documentación de usuario da aplicación + + + +
+

Documentación de usuario da aplicación

+ +images/logo.png +

No seguinte documento proporciónase a documentación de axuda necesaria para utilizar LibrePlan, a aplicación web de código aberto para a planificación de proxectos.

+

Esta documentación está organizada do seguinte modo:

+

En primeiro lugar descrébense os obxectivos fundamentais da aplicación e o comportamento global da mesma a modo introductorio e como contextualización xeral do uso da mesma.

+

A continuación introdúcense as entidades básicas que será necesario administrar para poder empregar todas as funcionalidades de LibrePlan e que se mencionarán nas seguintes seccións da documentación.

+

Posteriormente, detállanse os procesos completos de creación de pedidos e proxectos, planificación, asignación de recursos, imputación de avances e extración de resultados.

+

Este manual de usuario ten copyright da Fundación para o Fomento da Calidade Industrial e Desenvolvemento Tecnolóxico de Galicia publicase cunha Licencia Creative Commons Recoñecemento-CompartirIgual 3.0 España.

+

http://creativecommons.org/licenses/by-sa/3.0/es/

+
    +
  1. Introdución
  2. +
  3. Criterios
  4. +
  5. Calendarios
  6. +
  7. Avances
  8. +
  9. Xestión de recursos
  10. +
  11. Pedidos e elementos de pedidos
  12. +
  13. Planificación de tarefas
  14. +
  15. Asignación de recursos
  16. +
  17. Partes de traballo
  18. +
  19. Etiquetas
  20. +
  21. Materiais
  22. +
  23. Formularios de calidade
  24. +
  25. Usuarios
  26. +
  27. Xestión de custos
  28. +
  29. Informes
  30. +
  31. Configuracion LDAP
  32. +
  33. Panel de indicadores
  34. +
  35. Acerca de
  36. +
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/gl/lsr.css b/libreplan-webapp/src/main/webapp/help/gl/lsr.css new file mode 100644 index 000000000..81e4c1669 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/gl/lsr.css @@ -0,0 +1,251 @@ +/* +Author: Peter Parente +Date: 2008/01/22 +Version: 1.0 +Copyright: This stylesheet has been placed in the public domain - free to edit and use for all uses. +*/ + +body { + font: 0.8em Verdana, Tahoma, sans-serif; + background: #ffffff; + color: black; + margin: 2em; +/* padding: 0em 2em; */ +} + +p.topic-title { + font-weight: bold; +} + +table.docinfo { + text-align: left; + margin: 2em 0em; +} + +a[href] { + color: #436976; + background-color: transparent; +} + +a.toc-backref { + text-decoration: none; +} + +h1 a[href] { + color: #003a6b; + text-decoration: none; + background-color: transparent; +} + +a.strong { + font-weight: bold; +} + +img { + margin: 0; + border: 0; +} + +p { + margin: 0.5em 0 1em 0; + line-height: 1.5em; +} + +p a:visited { + color: purple; + background-color: transparent; +} + +p a:active { + color: red; + background-color: transparent; +} + +a:hover { + text-decoration: none; +} + +p img { + border: 0; + margin: 0; +} + +p.rubric { + font-weight: bold; + font-style: italic; +} + +h1.title { + color: #003a6b; + font-size: 250%; + margin-bottom: 0em; +} + +h2.subtitle { + color: #003a6b; + border-bottom: 0px; +} + +h1, h2, h3, h4, h5, h6 { + color: #555; + background-color: transparent; + margin: 0em; + padding-top: 0.5em; +} + +h1 { + font-size: 160%; + margin-bottom: 0.5em; + border-bottom: 2px solid #aaa; +} + +h2 { + font-size: 140%; + margin-bottom: 0.5em; + border-bottom: 1px solid #aaa; +} + +h3 { + font-size: 130%; + margin-bottom: 0.5em; +} + +h4 { + font-size: 110%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h5 { + font-size: 105%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h6 { + font-size: 100%; + font-weight: bold; + margin-bottom: 0.5em; +} + +dt { + font-style: italic; +} + +dd { + margin-bottom: 1.5em; +} + +div.admonition, div.note, div.tip, div.caution, div.important, div.warning { + margin: 2em 2em; + padding: 0em 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +div.important { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +div.caution { + background: transparent url('../images/caution.png') 10px 2px no-repeat; +} + +div.note { + background: transparent url('../images/note.png') 10px 2px no-repeat; +} + +div.tip { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-example { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-critical-example { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +p.admonition-title { + font-weight: bold; + border-bottom: 1px solid #aaa; + padding-left: 30px; +} + +table.docutils { + text-align: left; + border: 1px solid gray; + border-collapse: collapse; + width: 100%; + margin: 1.5em 0em; +} + +table.docutils caption { + font-style: italic; +} + +table.docutils td, table.docutils th { + padding: 0.25em 0.5em; +} + +table.docutils th { + background-color: #dddddd; +} + +div.sidebar { + width: 33%; + float: right; + margin: 0em 2em; + padding: 0em 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +p.sidebar-title { + margin-bottom: 0em; + color: #003a6b; + border-bottom: 1px solid #aaa; + font-weight: bold; +} + +p.sidebar-subtitle { + margin-top: 0em; + font-style: italic; + color: #003a6b; +} + +div.figure { + text-align: center; +} + +div.figure img { + background: #f8f8f8; + padding: 0.25em; + border: 1px solid #888; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +div.figure img:hover { + background: #e0e0e0; +} + +div.figure p.caption { + text-align: center; + margin-top: 0.1em; + font-style: italic; + color: #444; +} + +pre.literal-block { + padding: 0.15em; + background: #f8f8f8; + border: 1px solid #dfdfdf; + border-left: 0.25em solid #dfdfdf +} diff --git a/libreplan-webapp/src/main/webapp/help/it/01-introducion.html b/libreplan-webapp/src/main/webapp/help/it/01-introducion.html new file mode 100644 index 000000000..51e520ad7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/01-introducion.html @@ -0,0 +1,132 @@ + + + + + + +Introduction + + + +
+

Introduction

+ + +

This document describes the features of TASKPM and provides user information on how to configure and use the application.

+

TASKPM is an open-source web application for project planning. Its primary goal is to provide a comprehensive solution for company project management. For any specific information you may need about this software, please contact the development team at http://www.libreplan.com/contact/

+
+images/company_view.png +

Company Overview

+
+
+

Company Overview and View Management

+

As shown in the program's main screen (see the previous screenshot) and the company overview, users can view a list of planned projects. This allows them to understand the company's overall status regarding orders and resource utilization. The company overview offers three distinct views:

+
    +
  • Planning View: This view combines two perspectives:

    +
    +
      +
    • Order and Time Tracking: Each project is represented by a Gantt chart, indicating the project's start and end dates. This information is displayed alongside the agreed-upon deadline. A comparison is then made between the percentage of progress achieved and the actual time dedicated to each project. This provides a clear picture of the company's performance at any given time. This view is the program's default landing page.
    • +
    • Company Resource Utilization Graph: This graph displays information on resource allocation across projects, providing a summary of the entire company's resource usage. Green indicates that resource allocation is below 100% of capacity. The black line represents the total available resource capacity. Yellow indicates that resource allocation exceeds 100%. It's possible to have under-allocation overall while simultaneously experiencing over-allocation for specific resources.
    • +
    +
    +
  • +
  • Resource Load View: This screen displays a list of the company's workers and their specific task allocations, or generic allocations based on defined criteria. To access this view, click on Overall load of resources. See the following image for an example.

    +
  • +
  • Orders Administration View: This screen displays a list of company orders, allowing users to perform the following actions: filter, edit, delete, visualize planning, or create a new order. To access this view, click on Order list.

    +
  • +
+
+images/resources_global.png +

Resource Overview

+
+
+images/order_list.png +

Work Breakdown Structure

+
+

The view management described above for the company overview is very similar to the management available for a single project. A project can be accessed in several ways:

+
    +
  • Right-click on the Gantt chart for the order and select Plan.
  • +
  • Access the order list and click on the Gantt diagram icon.
  • +
  • Create a new order and change the current order view.
  • +
+

The program offers the following views for an order:

+
    +
  • Planning View: This view allows users to visualize task planning, dependencies, milestones, and more. See the Planning section for further details.
  • +
  • Resource Load View: This view allows users to check the designated resource load for a project. The color code is consistent with the company overview: green for a load less than 100%, yellow for a load equal to 100%, and red for a load over 100%. The load may originate from a specific task or a set of criteria (generic allocation).
  • +
  • Editing Order View: This view allows users to modify the details of the order. See the Orders section for more information.
  • +
  • Advanced Resource Allocation View: This view allows users to allocate resources with advanced options, such as specifying hours per day or the allocated functions to be performed. See the Resource allocation section for more information.
  • +
+
+
+

What Makes TASKPM Useful?

+

TASKPM is a general-purpose planning tool developed to address challenges in industrial project planning that were not adequately covered by existing tools. The development of TASKPM was also motivated by the desire to provide a free, open-source, and entirely web-based alternative to proprietary planning tools.

+

The core concepts underpinning the program are as follows:

+
    +
  • Company and Multi-Project Overview: TASKPM is specifically designed to provide users with information about multiple projects being carried out within a company. Therefore, it is inherently a multi-project program. The program's focus is not limited to individual projects, although specific views for individual projects are also available.
  • +
  • View Management: The company overview, or multi-project view, is accompanied by various views of the stored information. For example, the company overview allows users to view orders and compare their status, view the company's overall resource load, and manage orders. Users can also access the planning view, resource load view, advanced resource allocation view, and editing order view for individual projects.
  • +
  • Criteria: Criteria are a system entity that enables the classification of both resources (human and machine) and tasks. Resources must meet certain criteria, and tasks require specific criteria to be fulfilled. This is one of the program's most important features, as criteria form the basis of generic allocation and address a significant challenge in the industry: the time-consuming nature of human resource management and the difficulty of long-term company load estimations.
  • +
  • Resources: There are two types of resources: human and machine. Human resources are the company's workers, used for planning, monitoring, and controlling the company's workload. Machine resources, dependent on the people who operate them, function similarly to human resources.
  • +
  • Resource Allocation: A key feature of the program is the ability to designate resources in two ways: specifically and generically. Generic allocation is based on the criteria required to complete a task and must be fulfilled by resources capable of meeting those criteria. To understand generic allocation, consider this example: John Smith is a welder. Typically, John Smith would be specifically assigned to a planned task. However, TASKPM offers the option of selecting any welder within the company, without needing to specify that John Smith is the assigned person.
  • +
  • Company Load Control: The program allows for easy control of the company's resource load. This control extends to both the mid-term and long-term, as current and future projects can be managed within the program. TASKPM provides graphs that visually represent resource utilization.
  • +
  • Labels: Labels are used to categorize project tasks. With these labels, users can group tasks by concept, allowing for later review as a group or after filtering.
  • +
  • Filters: Because the system naturally includes elements that label or characterize tasks and resources, criteria filters or labels can be used. This is very useful for reviewing categorized information or generating specific reports based on criteria or labels.
  • +
  • Calendars: Calendars define the available productive hours for different resources. Users can create general company calendars or define more specific calendars, allowing for the creation of calendars for individual resources and tasks.
  • +
  • Orders and Order Elements: Work requested by clients is treated as an order within the application, structured into order elements. The order and its elements follow a hierarchical structure with x levels. This element tree forms the basis for work planning.
  • +
  • Progress: The program can manage various types of progress. A project's progress can be measured as a percentage, in units, against the agreed budget, and more. The responsibility for determining which type of progress to use for comparison at higher project levels lies with the planning manager.
  • +
  • Tasks: Tasks are the fundamental planning elements within the program. They are used to schedule work to be carried out. Key characteristics of tasks include: dependencies between tasks, and the potential requirement for specific criteria to be met before resources can be allocated.
  • +
  • Work Reports: These reports, submitted by the company's workers, detail the hours worked and the tasks associated with those hours. This information allows the system to calculate the actual time taken to complete a task compared to the budgeted time. Progress can then be compared against the actual hours used.
  • +
+

In addition to the core functions, TASKPM offers other features that distinguish it from similar programs:

+
    +
  • Integration with ERP: The program can directly import information from company ERP systems, including orders, human resources, work reports, and specific criteria.
  • +
  • Version Management: The program can manage multiple planning versions, while still allowing users to review the information from each version.
  • +
  • History Management: The program does not delete information; it only marks it as invalid. This allows users to review historical information using date filters.
  • +
+
+
+

Usability Conventions

+
+

Information About Forms

+

Before describing the various functions associated with the most important modules, we need to explain the general navigation and form behavior.

+

There are essentially three types of editing forms:

+
    +
  • Forms with a *Return* button: These forms are part of a larger context, and the changes made are stored in memory. The changes are only applied when the user explicitly saves all the details on the screen from which the form originated.
  • +
  • Forms with *Save* and *Close* buttons: These forms allow for two actions. The first saves the changes and closes the current window. The second closes the window without saving any changes.
  • +
  • Forms with *Save and continue*, *Save*, and *Close* buttons: These forms allow for three actions. The first saves the changes and keeps the current form open. The second saves the changes and closes the form. The third closes the window without saving any changes.
  • +
+
+
+

Standard Icons and Buttons

+
    +
  • Editing: In general, records in the program can be edited by clicking on an icon that looks like a pencil on a white notebook.
  • +
  • Left Indent: These operations are generally used for elements within a tree structure that need to be moved to a deeper level. This is done by clicking on the icon that looks like a green arrow pointing to the right.
  • +
  • Right Indent: These operations are generally used for elements within a tree structure that need to be moved to a higher level. This is done by clicking on the icon that looks like a green arrow pointing to the left.
  • +
  • Deleting: Users can delete information by clicking on the trash can icon.
  • +
  • Search: The magnifying glass icon indicates that the text field to its left is used for searching for elements.
  • +
+
+
+

Tabs

+

The program uses tabs to organize content editing and administration forms. This method is used to divide a comprehensive form into different sections, accessible by clicking on the tab names. The other tabs retain their current status. In all cases, the save and cancel options apply to all sub-forms within the different tabs.

+
+
+

Explicit Actions and Context Help

+

The program includes components that provide additional descriptions of elements when the mouse hovers over them for one second. The actions that the user can perform are indicated on the button labels, in the help texts associated with them, in the browsing menu options, and in the context menus that appear when right-clicking in the planner area. Furthermore, shortcuts are provided for the main operations, such as double-clicking on listed elements or using key events with the cursor and the Enter key to add elements when navigating through forms.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/it/02-criterios.html b/libreplan-webapp/src/main/webapp/help/it/02-criterios.html new file mode 100644 index 000000000..42fad10d3 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/02-criterios.html @@ -0,0 +1,69 @@ + + + + + + +Criteria + + + +
+

Criteria

+ +
+

Contents

+ +
+

Criteria are elements used within the program to categorize both resources and tasks. Tasks require specific criteria, and resources must meet those criteria.

+

Here's an example of how criteria are used: A resource is assigned the criterion "welder" (meaning the resource fulfills the "welder" category), and a task requires the "welder" criterion to be completed. Consequently, when resources are allocated to tasks using generic allocation (as opposed to specific allocation), workers with the "welder" criterion will be considered. For more information on the different types of allocation, refer to the chapter on resource allocation.

+

The program allows for several operations involving criteria:

+
    +
  • Criteria administration
  • +
  • Assigning criteria to resources
  • +
  • Assigning criteria to tasks
  • +
  • Filtering entities based on criteria. Tasks and order items can be filtered by criteria to perform various operations within the program.
  • +
+

This section will only explain the first function, criteria administration. The two types of allocation will be covered later: resource allocation in the "Resource Management" chapter, and filtering in the "Task Planning" chapter.

+
+

Criteria Administration

+

Criteria administration can be accessed through the administration menu:

+
+images/menu.png +

First-Level Menu Tabs

+
+

The specific operation for managing criteria is Manage criteria. This operation allows you to list the criteria available in the system.

+
+images/lista-criterios.png +

List of Criteria

+
+

You can access the create/edit criterion form by clicking the Create button. To edit an existing criterion, click the edit icon.

+
+images/edicion-criterio.png +

Editing Criteria

+
+

The criteria editing form, as shown in the previous image, allows you to perform the following operations:

+
    +
  • Edit the criterion's name.
  • +
  • Specify whether multiple values can be assigned simultaneously or only one value for the selected criterion type. For example, a resource could fulfill two criteria, "welder" and "lathe operator."
  • +
  • Specify the criterion type:
      +
    • Generic: A criterion that can be used for both machines and workers.
    • +
    • Worker: A criterion that can only be used for workers.
    • +
    • Machine: A criterion that can only be used for machines.
    • +
    +
  • +
  • Indicate whether the criterion is hierarchical. Sometimes, criteria need to be treated hierarchically. For example, assigning a criterion to an element does not automatically assign it to elements derived from it. A clear example of a hierarchical criterion is "location." For instance, a person designated with the location "Galicia" will also belong to "Spain."
  • +
  • Indicate whether the criterion is authorized. This is how users deactivate criteria. Once a criterion has been created and used in historical data, it cannot be changed. Instead, it can be deactivated to prevent it from appearing in selection lists.
  • +
  • Describe the criterion.
  • +
  • Add new values. A text entry field with the New criterion button is located in the second part of the form.
  • +
  • Edit the names of existing criteria values.
  • +
  • Move criteria values up or down in the list of current criteria values.
  • +
  • Remove a criterion value from the list.
  • +
+

The criteria administration form follows the form behavior described in the introduction, offering three actions: Save, Save and Close, and Close.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/it/03-calendarios.html b/libreplan-webapp/src/main/webapp/help/it/03-calendarios.html new file mode 100644 index 000000000..0d0bbf0d5 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/03-calendarios.html @@ -0,0 +1,187 @@ + + + + + + +Calendars + + + +
+

Calendars

+ + +

Calendars are entities within the program that define the working capacity of resources. A calendar consists of a series of days throughout the year, with each day divided into available working hours.

+

For example, a public holiday might have 0 available working hours. Conversely, a typical workday might have 8 hours designated as available working time.

+

There are two primary ways to define the number of working hours in a day:

+
    +
  • By Weekday: This method sets a standard number of working hours for each day of the week. For example, Mondays might typically have 8 working hours.
  • +
  • By Exception: This method allows for specific deviations from the standard weekday schedule. For example, Monday, January 30th, might have 10 working hours, overriding the standard Monday schedule.
  • +
+
+

Calendar Administration

+

The calendar system is hierarchical, allowing you to create base calendars and then derive new calendars from them, forming a tree structure. A calendar derived from a higher-level calendar will inherit its daily schedules and exceptions unless explicitly modified. To effectively manage calendars, it's important to understand the following concepts:

+
    +
  • Day Independence: Each day is treated independently, and each year has its own set of days. For example, if December 8th, 2009, is a public holiday, this does not automatically mean that December 8th, 2010, is also a public holiday.
  • +
  • Weekday-Based Working Days: Standard working days are based on weekdays. For example, if Mondays typically have 8 working hours, then all Mondays in all weeks of all years will have 8 available hours unless an exception is defined.
  • +
  • Exceptions and Exception Periods: You can define exceptions or exception periods to deviate from the standard weekday schedule. For example, you can specify a single day or a range of days with a different number of available working hours than the general rule for those weekdays.
  • +
+
+images/calendar-administration.png +

Calendar Administration

+
+

Calendar administration is accessible through the "Administration" menu. From there, users can perform the following actions:

+
    +
  1. Create a new calendar from scratch.
  2. +
  3. Create a calendar derived from an existing one.
  4. +
  5. Create a calendar as a copy of an existing one.
  6. +
  7. Edit an existing calendar.
  8. +
+
+

Creating a New Calendar

+

To create a new calendar, click the "Create" button. The system will display a form where you can configure the following:

+
    +
  • Select the Tab: Choose the tab you want to work on:
      +
    • Marking Exceptions: Define exceptions to the standard schedule.
    • +
    • Working Hours per Day: Define the standard working hours for each weekday.
    • +
    +
  • +
  • Marking Exceptions: If you select the "Marking Exceptions" option, you can:
      +
    • Select a specific day on the calendar.
    • +
    • Select the type of exception. The available types are: holiday, illness, strike, public holiday, and working holiday.
    • +
    • Select the end date of the exception period. (This field does not need to be changed for single-day exceptions.)
    • +
    • Define the number of working hours during the days of the exception period.
    • +
    • Delete previously defined exceptions.
    • +
    +
  • +
  • Working Hours per Day: If you select the "Working Hours per Day" option, you can:
      +
    • Define the available working hours for each weekday (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, and Sunday).
    • +
    • Define different weekly hour distributions for future periods.
    • +
    • Delete previously defined hour distributions.
    • +
    +
  • +
+

These options allow users to fully customize calendars according to their specific needs. Click the "Save" button to store any changes made to the form.

+
+images/calendar-edition.png +

Editing Calendars

+
+
+images/calendar-exceptions.png +

Adding an Exception to a Calendar

+
+
+
+

Creating Derived Calendars

+

A derived calendar is created based on an existing calendar. It inherits all the features of the original calendar, but you can modify it to include different options.

+

A common use case for derived calendars is when you have a general calendar for a country, such as Spain, and you need to create a derived calendar to include additional public holidays specific to a region, such as Galicia.

+

It's important to note that any changes made to the original calendar will automatically propagate to the derived calendar, unless a specific exception has been defined in the derived calendar. For example, the calendar for Spain might have an 8-hour working day on May 17th. However, the calendar for Galicia (a derived calendar) might have no working hours on that same day because it's a regional public holiday. If the Spanish calendar is later changed to have 4 available working hours per day for the week of May 17th, the Galician calendar will also change to have 4 available working hours for every day in that week, except for May 17th, which will remain a non-working day due to the defined exception.

+
+images/calendar-create-derived.png +

Creating a Derived Calendar

+
+

To create a derived calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Calendar administration option.
  • +
  • Select the calendar you want to use as the basis for the derived calendar and click the "Create" button.
  • +
  • The system will display an editing form with the same characteristics as the form used to create a calendar from scratch, except that the proposed exceptions and the working hours per weekday will be based on the original calendar.
  • +
+
+
+

Creating a Calendar by Copying

+

A copied calendar is an exact duplicate of an existing calendar. It inherits all the features of the original calendar, but you can modify it independently.

+

The key difference between a copied calendar and a derived calendar is how they are affected by changes to the original. If the original calendar is modified, the copied calendar remains unchanged. However, derived calendars are affected by changes made to the original, unless an exception is defined.

+

A common use case for copied calendars is when you have a calendar for one location, such as "Pontevedra," and you need a similar calendar for another location, such as "A Coruña," where most of the features are the same. However, changes to one calendar should not affect the other.

+

To create a copied calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Calendar administration option.
  • +
  • Select the calendar you want to copy and click the "Create" button.
  • +
  • The system will display an editing form with the same characteristics as the form used to create a calendar from scratch, except that the proposed exceptions and the working hours per weekday will be based on the original calendar.
  • +
+
+
+

Default Calendar

+

One of the existing calendars can be designated as the default calendar. This calendar will be automatically assigned to any entity in the system that is managed with calendars unless a different calendar is specified.

+

To set up a default calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Configuration option.
  • +
  • In the Default calendar field, select the calendar you want to use as the program's default calendar.
  • +
  • Click Save.
  • +
+
+images/default-calendar.png +

Setting a Default Calendar

+
+
+
+

Assigning a Calendar to Resources

+

Resources can only be activated (i.e., have available working hours) if they have an assigned calendar with a valid activation period. If no calendar is assigned to a resource, the default calendar is assigned automatically, with an activation period that begins on the start date and has no expiry date.

+
+images/resource-calendar.png +

Resource Calendar

+
+

However, you can delete the calendar that has been previously assigned to a resource and create a new calendar based on an existing one. This allows for complete customization of calendars for individual resources.

+

To assign a calendar to a resource:

+
    +
  • Go to the Edit resources option.
  • +
  • Select a resource and click Edit.
  • +
  • Select the "Calendar" tab.
  • +
  • The calendar, along with its exceptions, working hours per day, and activation periods, will be displayed.
  • +
  • Each tab will have the following options:
      +
    • Exceptions: Define exceptions and the period to which they apply, such as holidays, public holidays, or different workdays.
    • +
    • Working Week: Modify the working hours for each weekday (Monday, Tuesday, etc.).
    • +
    • Activation Periods: Create new activation periods to reflect the start and end dates of contracts associated with the resource. See the following image.
    • +
    +
  • +
  • Click Save to store the information.
  • +
  • Click Delete if you want to change the calendar assigned to a resource.
  • +
+
+images/new-resource-calendar.png +

Assigning a New Calendar to a Resource

+
+
+
+

Assigning Calendars to Orders

+

Projects can have a different calendar than the default calendar. To change the calendar for an order:

+
    +
  • Access the order list in the company overview.
  • +
  • Edit the order in question.
  • +
  • Access the "General information" tab.
  • +
  • Select the calendar to be assigned from the drop-down menu.
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+

Assigning Calendars to Tasks

+

Similar to resources and orders, you can assign specific calendars to individual tasks. This allows you to define different calendars for specific stages of a project. To assign a calendar to a task:

+
    +
  • Access the planning view of a project.
  • +
  • Right-click the task to which you want to assign a calendar.
  • +
  • Select the "Assign calendar" option.
  • +
  • Select the calendar to be assigned to the task.
  • +
  • Click Accept.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/it/04-avances.html b/libreplan-webapp/src/main/webapp/help/it/04-avances.html new file mode 100644 index 000000000..615d6109f --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/04-avances.html @@ -0,0 +1,97 @@ + + + + + + +Progress + + + +
+

Progress

+ + +

Project progress indicates the degree to which the estimated completion time of the project is being met. Task progress indicates the degree to which the task is being completed according to its estimated completion.

+

Generally, progress cannot be measured automatically. A staff member with experience or a checklist must determine the degree of completion for a task or project.

+

It's important to note the distinction between the hours assigned to a task or project and the progress of that task or project. While the number of hours used may be more or less than expected, the project may be ahead of or behind its estimated completion on the monitored day. Several situations can arise from these two measurements:

+
    +
  • Fewer hours consumed than expected, but the project is behind schedule: Progress is lower than estimated for the monitored day.
  • +
  • Fewer hours consumed than expected, and the project is ahead of schedule: Progress is higher than estimated for the monitored day.
  • +
  • More hours consumed than expected, and the project is behind schedule: Progress is lower than estimated for the monitored day.
  • +
  • More hours consumed than expected, but the project is ahead of schedule: Progress is higher than estimated for the monitored day.
  • +
+

The planning view allows you to compare these situations by using information about the progress made and the hours used. This chapter will explain how to enter information to monitor progress.

+

The philosophy behind progress monitoring is based on users defining the level at which they want to monitor their projects. For example, if users want to monitor orders, they only need to enter information for level-1 elements. If they want more precise monitoring at the task level, they must enter progress information at lower levels. The system will then aggregate the data upward through the hierarchy.

+
+

Managing Progress Types

+

Companies have varying needs when monitoring project progress, particularly the tasks involved. Therefore, the system includes "progress types." Users can define different progress types to measure a task's progress. For example, a task can be measured as a percentage, but this percentage can also be translated into progress in Tonnes based on the agreement with the client.

+

A progress type has a name, a maximum value, and a precision value:

+
    +
  • Name: A descriptive name that users will recognize when selecting the progress type. This name should clearly indicate what kind of progress is being measured.
  • +
  • Maximum Value: The maximum value that can be established for a task or project as the total progress measurement. For example, if you're working with Tonnes and the normal maximum is 4000 tonnes, and no task will ever require more than 4000 tonnes of any material, then 4000 would be the maximum value.
  • +
  • Precision Value: The increment value allowed for the progress type. For example, if progress in Tonnes is to be measured in whole numbers, the precision value would be 1. From that point on, only whole numbers can be entered as progress measurements (e.g., 1, 2, 300).
  • +
+

The system has two default progress types:

+
    +
  • Percentage: A general progress type that measures the progress of a project or task based on an estimated completion percentage. For example, a task is 30% complete out of the 100% estimated for a specific day.
  • +
  • Units: A general progress type that measures progress in units without specifying the type of unit. For example, a task involves creating 3000 units, and the progress is 500 units out of the total of 3000.
  • +
+
+images/tipos-avances.png +

Administration of Progress Types

+
+

Users can create new progress types as follows:

+
    +
  • Go to the "Administration" section.
  • +
  • Click the "Manage types of progress" option in the second-level menu.
  • +
  • The system will display a list of existing progress types.
  • +
  • For each progress type, users can:
      +
    • Edit
    • +
    • Delete
    • +
    +
  • +
  • Users can then create a new progress type.
  • +
  • When editing or creating a progress type, the system displays a form with the following information:
      +
    • Name of the progress type.
    • +
    • Maximum value allowed for the progress type.
    • +
    • Precision value for the progress type.
    • +
    +
  • +
+
+
+

Entering Progress Based on Type

+

Progress is entered for order elements, but it can also be entered using a shortcut from the planning tasks. Users are responsible for deciding which progress type to associate with each order element.

+

Users can enter a single, default progress type for the entire order.

+

Before measuring progress, users must associate the chosen progress type with the order. For example, they might choose percentage progress to measure progress on the entire task or an agreed progress rate if progress measurements agreed upon with the client will be entered in the future.

+
+images/avance.png +

Progress Entry Screen with Graphic Visualization

+
+

To enter progress measurements:

+
    +
  • Select the progress type to which the progress will be added. +* If no progress type exists, a new one must be created.
  • +
  • In the form that appears under the "Value" and "Date" fields, enter the absolute value of the measurement and the date of the measurement.
  • +
  • The system automatically stores the entered data.
  • +
+
+
+

Comparing Progress for an Order Element

+

Users can graphically compare the progress made on orders with the measurements taken. All progress types have a column with a check button ("Show"). When this button is selected, the progress chart of measurements taken is displayed for the order element.

+
+images/contraste-avance.png +

Comparison of Several Progress Types

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/it/05-recursos.html b/libreplan-webapp/src/main/webapp/help/it/05-recursos.html new file mode 100644 index 000000000..07190538a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/05-recursos.html @@ -0,0 +1,186 @@ + + + + + + +Resource Management + + + +
+

Resource Management

+ + +

The program manages two distinct types of resources: staff and machines.

+
+

Staff Resources

+

Staff resources represent the company's workers. Their key characteristics are:

+
    +
  • They fulfill one or more generic or worker-specific criteria.
  • +
  • They can be specifically assigned to a task.
  • +
  • They can be assigned generically to a task that requires a resource criterion.
  • +
  • They can have a default or a specific calendar, as needed.
  • +
+
+
+

Machine Resources

+

Machine resources represent the company's machinery. Their key characteristics are:

+
    +
  • They fulfill one or more generic or machine-specific criteria.
  • +
  • They can be specifically assigned to a task.
  • +
  • They can be assigned generically to a task that requires a machine criterion.
  • +
  • They can have a default or a specific calendar, as needed.
  • +
  • The program includes a configuration screen where an alpha value can be defined to represent the machine/worker ratio.
      +
    • The alpha value indicates the amount of worker time required to operate the machine. For example, an alpha value of 0.5 means that every 8 hours of machine operation requires 4 hours of a worker's time.
    • +
    • Users can assign an alpha value specifically to a worker, designating that worker to operate the machine for that percentage of time.
    • +
    • Users can also make a generic assignment based on a criterion, so that a percentage of use is assigned to all resources that meet that criterion and have available time. Generic assignment works similarly to generic assignment for tasks, as described previously.
    • +
    +
  • +
+
+
+

Managing Resources

+

Users can create, edit, and deactivate (but not permanently delete) workers and machines within the company by navigating to the "Resources" section. This section provides the following features:

+
    +
  • List of Workers: Displays a numbered list of workers, allowing users to manage their details.
  • +
  • List of Machines: Displays a numbered list of machines, allowing users to manage their details.
  • +
+
+

Managing Workers

+

Worker management is accessed by going to the "Resources" section and then selecting "List of workers." Users can edit any worker in the list by clicking the standard edit icon.

+

When editing a worker, users can access the following tabs:

+
    +
  1. Worker Details: This tab allows users to edit the worker's basic identification details:

    +
      +
    • Name
    • +
    • Surname(s)
    • +
    • National ID document (DNI)
    • +
    • Queue-based resource (see section on Queue-based Resources)
    • +
    +
    +images/worker-personal-data.png +

    Editing Workers' Personal Details

    +
    +
  2. +
  3. Criteria: This tab is used to configure the criteria that a worker fulfills. Users can assign any worker or generic criteria they deem appropriate. It's crucial for workers to fulfill criteria to maximize the program's functionality. To assign criteria:

    +
      +
    1. Click the "Add criteria" button.
    2. +
    3. Search for the criterion to be added and select the most appropriate one.
    4. +
    5. Click the "Add" button.
    6. +
    7. Select the start date when the criterion becomes applicable.
    8. +
    9. Select the end date for applying the criterion to the resource. This date is optional if the criterion is considered indefinite.
    10. +
    +
    +images/worker-criterions.png +

    Associating Criteria with Workers

    +
    +
  4. +
  5. Calendar: This tab allows users to configure a specific calendar for the worker. All workers have a default calendar assigned; however, it's possible to assign a specific calendar to each worker based on an existing calendar.

    +
    +images/worker-calendar.png +

    Calendar Tab for a Resource

    +
    +
  6. +
  7. Cost Category: This tab allows users to configure the cost category that a worker fulfills during a given period. This information is used to calculate the costs associated with a worker on a project.

    +
    +images/worker-costcategory.png +

    Cost Category Tab for a Resource

    +
    +
  8. +
+

Resource assignment is explained in the "Resource Assignment" section.

+
+
+

Managing Machines

+

Machines are treated as resources for all purposes. Therefore, similar to workers, machines can be managed and assigned to tasks. Resource assignment is covered in the "Resource Assignment" section, which will explain the specific features of machines.

+

Machines are managed from the "Resources" menu entry. This section has an operation called "Machine list," which displays the company's machines. Users can edit or delete a machine from this list.

+

When editing machines, the system displays a series of tabs for managing different details:

+
    +
  1. Machine Details: This tab allows users to edit the machine's identification details:

    +
      +
    1. Name
    2. +
    3. Machine code
    4. +
    5. Description of the machine
    6. +
    +
    +images/machine-data.png +

    Editing Machine Details

    +
    +
  2. +
  3. Criteria: As with worker resources, this tab is used to add criteria that the machine fulfills. Two types of criteria can be assigned to machines: machine-specific or generic. Worker criteria cannot be assigned to machines. To assign criteria:

    +
      +
    1. Click the "Add criteria" button.
    2. +
    3. Search for the criterion to be added and select the most appropriate one.
    4. +
    5. Select the start date when the criterion becomes applicable.
    6. +
    7. Select the end date for applying the criterion to the resource. This date is optional if the criterion is considered indefinite.
    8. +
    9. Click the "Save and continue" button.
    10. +
    +
    +images/machine-criterions.png +

    Assigning Criteria to Machines

    +
    +
  4. +
  5. Calendar: This tab allows users to configure a specific calendar for the machine. All machines have a default calendar assigned; however, it's possible to assign a specific calendar to each machine based on an existing calendar.

    +
    +images/machine-calendar.png +

    Assigning Calendars to Machines

    +
    +
  6. +
  7. Machine Configuration: This tab allows users to configure the ratio of machines to worker resources. A machine has an alpha value that indicates the machine/worker ratio. As mentioned previously, an alpha value of 0.5 indicates that 0.5 people are required for each full day of machine operation. Based on the alpha value, the system automatically assigns workers who are associated with the machine once the machine is assigned to a task. Associating a worker with a machine can be done in two ways:

    +
      +
    1. Specific Assignment: Assign a range of dates during which the worker is assigned to the machine. This is a specific assignment, as the system automatically assigns hours to the worker when the machine is scheduled.
    2. +
    3. Generic Assignment: Assign criteria that must be fulfilled by workers assigned to the machine. This creates a generic assignment of workers who meet the criteria.
    4. +
    +
    +images/machine-configuration.png +

    Configuration of Machines

    +
    +
  8. +
  9. Cost Category: This tab allows users to configure the cost category that a machine fulfills during a given period. This information is used to calculate the costs associated with a machine on a project.

    +
    +images/machine-costcategory.png +

    Assigning Cost Categories to Machines

    +
    +
  10. +
+
+
+

Virtual Worker Groups

+

The program allows users to create virtual worker groups, which are not real workers but simulated staff. These groups enable users to model increased production capacity at specific times, based on the calendar settings.

+

Virtual worker groups allow users to assess how project planning would be affected by hiring and assigning staff who meet specific criteria, thus aiding in the decision-making process.

+

The tabs for creating virtual worker groups are the same as those for configuring workers:

+
    +
  • General Details
  • +
  • Assigned Criteria
  • +
  • Calendars
  • +
  • Associated Hours
  • +
+

The difference between virtual worker groups and actual workers is that virtual worker groups have a name for the group and a quantity, which represents the number of real people in the group. There is also a field for comments, where additional information can be provided, such as which project would require hiring equivalent to the virtual worker group.

+
+images/virtual-resources.png +

Virtual Resources

+
+
+
+

Queue-based Resources

+

Queue-based resources are a specific type of productive element that can either be unassigned or have 100% dedication. In other words, they cannot have more than one task scheduled at the same time, nor can they be over-allocated.

+

For each queue-based resource, a queue is automatically created. The tasks scheduled for these resources can be managed specifically using the provided assignment methods, creating automatic assignments between tasks and queues that match the required criteria, or by moving tasks between queues.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/it/06-pedidos.html b/libreplan-webapp/src/main/webapp/help/it/06-pedidos.html new file mode 100644 index 000000000..87fd79071 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/06-pedidos.html @@ -0,0 +1,315 @@ + + + + + + +Orders and Order Elements + + + +
+

Orders and Order Elements

+ + +

Orders represent the work to be performed by users of the program. Each order corresponds to a project that the company will offer to its clients.

+

An order consists of one or more order elements. Each order element represents a specific part of the work to be done and defines how the work on the order should be planned and executed. Order elements are organized hierarchically, with no limitations on the depth of the hierarchy. This hierarchical structure allows for the inheritance of certain features, such as labels.

+

The following sections describe the operations that users can perform with orders and order elements.

+
+

Orders

+

An order represents a project or work requested by a client from the company. The order identifies the project within the company's planning. Unlike comprehensive management programs, TASKPM only requires certain key details for an order. These details are:

+
    +
  • Order Name: The name of the order.
  • +
  • Order Code: A unique code for the order.
  • +
  • Total Order Amount: The total financial value of the order.
  • +
  • Estimated Start Date: The planned start date for the order.
  • +
  • End Date: The planned completion date for the order.
  • +
  • Person in Charge: The individual responsible for the order.
  • +
  • Description: A description of the order.
  • +
  • Assigned Calendar: The calendar associated with the order.
  • +
  • Automatic Generation of Codes: A setting to instruct the system to automatically generate codes for order elements and hour groups.
  • +
  • Preference between Dependencies and Restrictions: Users can choose whether dependencies or restrictions take priority in case of conflicts.
  • +
+

However, a complete order also includes other associated entities:

+
    +
  • Hours Assigned to the Order: The total hours allocated to the order.
  • +
  • Progress Attributed to the Order: The progress made on the order.
  • +
  • Labels: Labels assigned to the order.
  • +
  • Criteria Assigned to the Order: Criteria associated with the order.
  • +
  • Materials: Materials required for the order.
  • +
  • Quality Forms: Quality forms associated with the order.
  • +
+

Creating or editing an order can be done from several locations within the program:

+
    +
  • From the "Order List" in the Company Overview:
      +
    • Editing: Click the edit button on the desired order.
    • +
    • Creating: Click "New order."
    • +
    +
  • +
  • From an Order in the Gantt Chart: Change to the order details view.
  • +
+

Users can access the following tabs when editing an order:

+
    +
  • Editing Order Details: This screen allows users to edit basic order details:

    +
      +
    • Name
    • +
    • Code
    • +
    • Estimated Start Date
    • +
    • End Date
    • +
    • Person in Charge
    • +
    • Client
    • +
    • Description
    • +
    +
    +images/order-edition.png +

    Editing Orders

    +
    +
  • +
  • Order Element List: This screen allows users to perform several operations on order elements:

    +
      +
    • Creating new order elements.
    • +
    • Promoting an order element one level up in the hierarchy.
    • +
    • Demoting an order element one level down in the hierarchy.
    • +
    • Indenting an order element (moving it down the hierarchy).
    • +
    • Unindenting an order element (moving it up the hierarchy).
    • +
    • Filtering order elements.
    • +
    • Deleting order elements.
    • +
    • Moving an element within the hierarchy by dragging and dropping.
    • +
    +
    +images/order-elements-list.png +

    Order Element List

    +
    +
  • +
  • Assigned Hours: This screen displays the total hours attributed to the project, grouping the hours entered in the order elements.

    +
    +images/order-assigned-hours.png +

    Assigning Hours Attributed to the Order by Workers

    +
    +
  • +
  • Progress: This screen allows users to assign progress types and enter progress measurements for the order. See the "Progress" section for more details.

    +
  • +
  • Labels: This screen allows users to assign labels to an order and view previously assigned direct and indirect labels. See the following section on editing order elements for a detailed description of label management.

    +
    +images/order-labels.png +

    Order Labels

    +
    +
  • +
  • Criteria: This screen allows users to assign criteria that will apply to all tasks within the order. These criteria will be automatically applied to all order elements, except those that have been explicitly invalidated. The hour groups of order elements, which are grouped by criteria, can also be viewed, allowing users to identify the criteria required for an order.

    +
    +images/order-criterions.png +

    Order Criteria

    +
    +
  • +
  • Materials: This screen allows users to assign materials to orders. Materials can be selected from the available material categories in the program. Materials are managed as follows:

    +
      +
    • Select the "Search materials" tab at the bottom of the screen.
    • +
    • Enter text to search for materials or select the categories for which you want to find materials.
    • +
    • The system filters the results.
    • +
    • Select the desired materials (multiple materials can be selected by pressing the "Ctrl" key).
    • +
    • Click "Assign."
    • +
    • The system displays the list of materials already assigned to the order.
    • +
    • Select the units and the status to assign to the order.
    • +
    • Click "Save" or "Save and continue."
    • +
    • To manage the receipt of materials, click "Divide" to change the status of a partial quantity of material.
    • +
    +
    +images/order-material.png +

    Materials Associated with an Order

    +
    +
  • +
  • Quality: Users can assign a quality form to the order. This form is then completed to ensure that certain activities associated with the order are carried out. See the following section on editing order elements for details on managing quality forms.

    +
    +images/order-quality.png +

    Quality Form Associated with the Order

    +
    +
  • +
+
+
+

Editing Order Elements

+

Order elements are edited from the "Order element list" tab by clicking the edit icon. This opens a new screen where users can:

+
    +
  • Edit information about the order element.
  • +
  • View hours attributed to order elements.
  • +
  • Manage progress of order elements.
  • +
  • Manage order labels.
  • +
  • Manage criteria required by the order element.
  • +
  • Manage materials.
  • +
  • Manage quality forms.
  • +
+

The following subsections describe each of these operations in detail.

+
+

Editing Information about the Order Element

+

Editing information about the order element includes modifying the following details:

+
    +
  • Order Element Name: The name of the order element.
  • +
  • Order Element Code: A unique code for the order element.
  • +
  • Start Date: The planned start date of the order element.
  • +
  • Estimated End Date: The planned completion date of the order element.
  • +
  • Total Hours: The total hours allocated to the order element. These hours can be calculated from the added hour groups or entered directly. If entered directly, the hours must be distributed among the hour groups, and a new hour group created if the percentages do not match the initial percentages.
  • +
  • Hour Groups: One or more hour groups can be added to the order element. The purpose of these hour groups is to define the requirements for the resources that will be assigned to perform the work.
  • +
  • Criteria: Criteria can be added that must be met to enable generic assignment for the order element.
  • +
+
+images/order-element-edition.png +

Editing Order Elements

+
+
+
+

Viewing Hours Attributed to Order Elements

+

The "Assigned hours" tab allows users to view the work reports associated with an order element and see how many of the estimated hours have already been completed.

+
+images/order-element-hours.png +

Hours Assigned to Order Elements

+
+

The screen is divided into two parts:

+
    +
  • Work Report List: Users can view the list of work reports associated with the order element, including the date and time, resource, and number of hours devoted to the task.
  • +
  • Use of Estimated Hours: The system calculates the total number of hours devoted to the task and compares them with the estimated hours.
  • +
+
+
+

Managing Progress of Order Elements

+

Entering progress types and managing order element progress is described in the "Progress" chapter.

+
+
+

Managing Order Labels

+

Labels, as described in the chapter on labels, allow users to categorize order elements. This enables users to group planning or order information based on these labels.

+

Users can assign labels directly to an order element or to a higher-level order element in the hierarchy. Once a label is assigned using either method, the order element and the related planning task are associated with the label and can be used for subsequent filtering.

+
+images/order-element-tags.png +

Assigning Labels for Order Elements

+
+

As shown in the image, users can perform the following actions from the Labels tab:

+
    +
  • View Inherited Labels: View labels associated with the order element that were inherited from a higher-level order element. The planning task associated with each order element has the same associated labels.
  • +
  • View Directly Assigned Labels: View labels directly associated with the order element using the assignment form for lower-level labels.
  • +
  • Assign Existing Labels: Assign labels by searching for them among the available labels in the form below the direct label list. To search for a label, click the magnifying glass icon or enter the first letters of the label in the text box to display the available options.
  • +
  • Create and Assign New Labels: Create new labels associated with an existing label type from this form. To do this, select a label type and enter the label value for the selected type. The system automatically creates the label and assigns it to the order element when "Create and assign" is clicked.
  • +
+
+
+

Managing Criteria Required by the Order Element and Hour Groups

+

Both an order and an order element can have criteria assigned that must be met for the work to be performed. Criteria can be direct or indirect:

+
    +
  • Direct Criteria: These are assigned directly to the order element. They are criteria required by the hour groups on the order element.
  • +
  • Indirect Criteria: These are assigned to higher-level order elements in the hierarchy and are inherited by the element being edited.
  • +
+

In addition to the required criteria, one or more hour groups that are part of the order element can be defined. This depends on whether the order element contains other order elements as child nodes or if it is a leaf node. In the first case, information about hours and hour groups can only be viewed. However, leaf nodes can be edited. Leaf nodes work as follows:

+
    +
  • The system creates a default hour group associated with the order element. The details that can be modified for an hour group are:
      +
    • Code: The code for the hour group (if not automatically generated).
    • +
    • Criterion Type: Users can choose to assign a machine or worker criterion.
    • +
    • Number of Hours: The number of hours in the hour group.
    • +
    • List of Criteria: The criteria to be applied to the hour group. To add new criteria, click "Add criterion" and select one from the search engine that appears after clicking the button.
    • +
    +
  • +
  • Users can add new hour groups with different features than previous hour groups. For example, an order element might require a welder (30 hours) and a painter (40 hours).
  • +
+
+images/order-element-criterion.png +

Assigning Criteria to Order Elements

+
+
+
+

Managing Materials

+

Materials are managed in projects as a list associated with each order element or an order in general. The list of materials includes the following fields:

+
    +
  • Code: The material code.
  • +
  • Date: The date associated with the material.
  • +
  • Units: The required number of units.
  • +
  • Unit Type: The type of unit used to measure the material.
  • +
  • Unit Price: The price per unit.
  • +
  • Total Price: The total price (calculated by multiplying the unit price by the number of units).
  • +
  • Category: The category to which the material belongs.
  • +
  • Status: The status of the material (e.g., Received, Requested, Pending, Processing, Cancelled).
  • +
+

Working with materials is done as follows:

+
    +
  • Select the "Materials" tab on an order element.
  • +
  • The system displays two sub-tabs: "Materials" and "Search materials."
  • +
  • If the order element has no assigned materials, the first tab will be empty.
  • +
  • Click "Search materials" in the lower-left part of the window.
  • +
  • The system displays the list of available categories and associated materials.
  • +
+
+images/order-element-material-search.png +

Searching for Materials

+
+
    +
  • Select categories to refine the material search.
  • +
  • The system displays the materials that belong to the selected categories.
  • +
  • From the materials list, select the materials to assign to the order element.
  • +
  • Click "Assign."
  • +
  • The system displays the selected list of materials on the "Materials" tab with new fields to complete.
  • +
+
+images/order-element-material-assign.png +

Assigning Materials to Order Elements

+
+
    +
  • Select the units, status, and date for the assigned materials.
  • +
+

For subsequent monitoring of materials, it's possible to change the status of a group of units of the received material. This is done as follows:

+
    +
  • Click the "Divide" button on the list of materials to the right of each row.
  • +
  • Select the number of units to divide the row into.
  • +
  • The program displays two rows with the material divided.
  • +
  • Change the status of the row containing the material.
  • +
+

The advantage of using this dividing tool is the ability to receive partial deliveries of material without having to wait for the entire delivery to mark it as received.

+
+
+

Managing Quality Forms

+

Some order elements require certification that certain tasks have been completed before they can be marked as complete. This is why the program has quality forms, which consist of a list of questions that are considered important if answered positively.

+

It's important to note that a quality form must be created beforehand to be assigned to an order element.

+

To manage quality forms:

+
    +
  • Go to the "Quality forms" tab.

    +
    +images/order-element-quality.png +

    Assigning Quality Forms to Order Elements

    +
    +
  • +
  • The program has a search engine for quality forms. There are two types of quality forms: by element or by percentage.

    +
      +
    • Element: Each element is independent.
    • +
    • Percentage: Each question increases the progress of the order element by a percentage. The percentages must be able to add up to 100%.
    • +
    +
  • +
  • Select one of the forms created in the administration interface and click "Assign."

    +
  • +
  • The program assigns the chosen form from the list of forms assigned to the order element.

    +
  • +
  • Click the "Edit" button on the order element.

    +
  • +
  • The program displays the questions from the quality form in the lower list.

    +
  • +
  • Mark the questions that have been completed as achieved.

    +
      +
    • If the quality form is based on percentages, the questions are answered in order.
    • +
    • If the quality form is based on elements, the questions can be answered in any order.
    • +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/it/07-planificacion.html b/libreplan-webapp/src/main/webapp/help/it/07-planificacion.html new file mode 100644 index 000000000..7b8954f83 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/07-planificacion.html @@ -0,0 +1,117 @@ + + + + + + +Task Planning + + + +
+

Task Planning

+ + +
+

Task Planning

+

Planning in TASKPM is a process that has been described throughout the user guide, with the chapters on orders and resource assignment being particularly important. This chapter describes the basic planning procedures after the order and Gantt charts have been properly configured.

+
+images/planning-view.png +

Work Planning View

+
+

As with the company overview, the project planning view is divided into several views based on the information being analyzed. The views available for a specific project are:

+
    +
  • Planning View
  • +
  • Resource Load View
  • +
  • Order List View
  • +
  • Advanced Assignment View
  • +
+
+

Planning View

+

The Planning View combines three different perspectives:

+
    +
  • Project Planning: Project planning is displayed in the upper right-hand part of the program as a Gantt chart. This view allows users to temporarily move tasks, assign dependencies between them, define milestones, and establish restrictions.
  • +
  • Resource Load: The Resource Load view, located in the lower right-hand part of the screen, shows resource availability based on assignments, as opposed to the assignments made to tasks. The information displayed in this view is as follows:
      +
    • Purple Area: Indicates a resource load below 100% of its capacity.
    • +
    • Green Area: Indicates a resource load below 100%, resulting from the resource being planned for another project.
    • +
    • Orange Area: Indicates a resource load over 100% as a result of the current project.
    • +
    • Yellow Area: Indicates a resource load over 100% as a result of other projects.
    • +
    +
  • +
  • Graph View and Earned Value Indicators: These can be viewed from the "Earned Value" tab. The generated graph is based on the earned value technique, and the indicators are calculated for each workday of the project. The calculated indicators are:
      +
    • BCWS (Budgeted Cost of Work Scheduled): The cumulative time function for the number of hours planned up to a certain date. It will be 0 at the planned start of the task and equal to the total number of planned hours at the end. As with all cumulative graphs, it will always increase. The function for a task will be the sum of the daily assignments until the calculation date. This function has values for all times, provided that resources have been assigned.
    • +
    • ACWP (Actual Cost of Work Performed): The cumulative time function for the hours reported in work reports up to a certain date. This function will only have a value of 0 before the date of the task's first work report, and its value will continue to increase as time passes and work report hours are added. It will have no value after the date of the last work report.
    • +
    • BCWP (Budgeted Cost of Work Performed): The cumulative time function that includes the resultant value of multiplying task progress by the amount of work that the task was estimated to require for completion. This function's values increase as time passes, as do progress values. Progress is multiplied by the total number of estimated hours for all tasks. The BCWP value is the sum of the values for the tasks being calculated. Progress is totaled when it is configured.
    • +
    • CV (Cost Variance): CV = BCWP - ACWP
    • +
    • SV (Schedule Variance): SV = BCWP - BCWS
    • +
    • BAC (Budget at Completion): BAC = max (BCWS)
    • +
    • EAC (Estimate at Completion): EAC = (ACWP / BCWP) * BAC
    • +
    • VAC (Variance at Completion): VAC = BAC - EAC
    • +
    • ETC (Estimate to Complete): ETC = EAC - ACWP
    • +
    • CPI (Cost Performance Index): CPI = BCWP / ACWP
    • +
    • SPI (Schedule Performance Index): SPI = BCWP / BCWS
    • +
    +
  • +
+

In the project planning view, users can perform the following actions:

+
    +
  • Assigning Dependencies: Right-click a task, choose "Add dependency," and drag the mouse pointer to the task to which the dependency should be assigned.
      +
    • To change the type of dependency, right-click the dependency and choose the desired type.
    • +
    +
  • +
  • Creating a New Milestone: Click the task before which the milestone is to be added and select the "Add milestone" option. Milestones can be moved by selecting the milestone with the mouse pointer and dragging it to the desired position.
  • +
  • Moving Tasks without Disturbing Dependencies: Right-click the body of the task and drag it to the desired position. If no restrictions or dependencies are violated, the system will update the daily assignment of resources to the task and place the task on the selected date.
  • +
  • Assigning Restrictions: Click the task in question and select the "Task properties" option. A pop-up window will appear with a "Restrictions" field that can be modified. Restrictions can conflict with dependencies, which is why each order specifies whether dependencies take priority over restrictions. The restrictions that can be established are:
      +
    • As Soon as Possible: Indicates that the task must start as soon as possible.
    • +
    • Not Before: Indicates that the task must not start before a certain date.
    • +
    • Start on a Specific Date: Indicates that the task must start on a specific date.
    • +
    +
  • +
+

The planning view also offers several procedures that function as viewing options:

+
    +
  • Zoom Level: Users can choose the desired zoom level. There are several zoom levels: annual, four-monthly, monthly, weekly, and daily.
  • +
  • Search Filters: Users can filter tasks based on labels or criteria.
  • +
  • Critical Path: As a result of using the Dijkstra algorithm to calculate paths on graphs, the critical path was implemented. It can be viewed by clicking the "Critical path" button in the viewing options.
  • +
  • Show Labels: Enables users to view the labels assigned to tasks in a project, which can be viewed on screen or printed.
  • +
  • Show Resources: Enables users to view the resources assigned to tasks in a project, which can be viewed on screen or printed.
  • +
  • Print: Enables users to print the Gantt chart being viewed.
  • +
+
+
+

Resource Load View

+

The Resource Load View provides a list of resources that contains a list of tasks or criteria that generate workloads. Each task or criterion is shown as a Gantt chart so that the start and end dates of the load can be seen. A different color is shown depending on whether the resource has a load that is higher or lower than 100%:

+
    +
  • Green: Load lower than 100%
  • +
  • Orange: 100% load
  • +
  • Red: Load over 100%
  • +
+
+images/resource-load.png +

Resource Load View for a Specific Order

+
+

If the mouse pointer is placed on the resource's Gantt chart, the load percentage for the worker will be shown.

+
+
+

Order List View

+

The Order List View allows users to access the order editing and deleting options. See the "Orders" chapter for more information.

+
+
+

Advanced Assignment View

+

The Advanced Assignment View is explained in depth in the "Resource Assignment" chapter.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/it/08-asignacion.html b/libreplan-webapp/src/main/webapp/help/it/08-asignacion.html new file mode 100644 index 000000000..46da7239c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/08-asignacion.html @@ -0,0 +1,179 @@ + + + + + + +Resource Assignment + + + +
+

Resource Assignment

+ + +

Resource assignment is one of the program's most important features and can be carried out in two different ways:

+
    +
  • Specific assignment
  • +
  • Generic assignment
  • +
+

Both types of assignment are explained in the following sections.

+

To perform either type of resource assignment, the following steps are necessary:

+
    +
  • Go to the planning view of an order.
  • +
  • Right-click on the task to be planned.
  • +
+
+images/resource-assignment-planning.png +

Resource Assignment Menu

+
+
    +
  • The program displays a screen with the following information:
      +
    • List of Criteria to be Fulfilled: For each hour group, a list of required criteria is shown.
    • +
    • Task Information: The start and end dates of the task.
    • +
    • Type of Calculation: The system allows users to choose the strategy for calculating assignments:
        +
      • Calculate Number of Hours: This calculates the number of hours required from the assigned resources, given an end date and a number of resources per day.
      • +
      • Calculate End Date: This calculates the end date of the task based on the number of resources assigned to the task and the total number of hours required to complete the task.
      • +
      • Calculate Number of Resources: This calculates the number of resources required to finish the task by a specific date, given a known number of hours per resource.
      • +
      +
    • +
    • Recommended Assignment: This option allows the program to gather the criteria to be fulfilled and the total number of hours from all hour groups, and then recommend a generic assignment. If a prior assignment exists, the system deletes it and replaces it with the new one.
    • +
    • Assignments: A list of assignments that have been made. This list shows the generic assignments (the number will be the list of fulfilled criteria, and the number of hours and resources per day). Each assignment can be explicitly removed by clicking the delete button.
    • +
    +
  • +
+
+images/resource-assignment.png +

Resource Assignment

+
+
    +
  • Users select "Search resources."
  • +
  • The program displays a new screen consisting of a criteria tree and a list of workers who fulfill the selected criteria on the right:
  • +
+
+images/resource-assignment-search.png +

Resource Assignment Search

+
+
    +
  • Users can select:
      +
    • Specific Assignment: See the "Specific Assignment" section for details on this option.
    • +
    • Generic Assignment: See the "Generic Assignment" section for details on this option.
    • +
    +
  • +
  • Users select a list of criteria (generic) or a list of workers (specific). Multiple selections can be made by pressing the "Ctrl" key while clicking each worker/criterion.
  • +
  • Users then click the "Select" button. It's important to remember that if a generic assignment is not selected, users must choose a worker or machine to perform the assignment. If a generic assignment is selected, it is sufficient for users to choose one or more criteria.
  • +
  • The program then displays the selected criteria or resource list in the list of assignments on the original resource assignment screen.
  • +
  • Users must choose the hours or resources per day, depending on the assignment method used in the program.
  • +
+
+

Specific Assignment

+

This is the specific assignment of a resource to a project task. In other words, the user decides which specific worker (by name and surname) or machine must be assigned to a task.

+

Specific assignment can be carried out on the screen shown in this image:

+
+images/asignacion-especifica.png +

Specific Resource Assignment

+
+

When a resource is specifically assigned, the program creates daily assignments based on the percentage of daily assigned resources selected, after comparing it with the available resource calendar. For example, an assignment of 0.5 resources for a 32-hour task means that 4 hours per day are assigned to the specific resource to complete the task (assuming a working calendar of 8 hours per day).

+
+

Specific Machine Assignment

+

Specific machine assignment functions in the same way as worker assignment. When a machine is assigned to a task, the system stores a specific assignment of hours for the chosen machine. The main difference is that the system searches the list of assigned workers or criteria at the moment the machine is assigned:

+
    +
  • If the machine has a list of assigned workers, the program chooses from those that are required by the machine, based on the assigned calendar. For example, if the machine calendar is 16 hours per day and the resource calendar is 8 hours, two resources are assigned from the list of available resources.
  • +
  • If the machine has one or more assigned criteria, generic assignments are made from among the resources that fulfill the criteria assigned to the machine.
  • +
+
+
+
+

Generic Assignment

+

Generic assignment occurs when users do not choose resources specifically but leave the decision to the program, which distributes the loads among the company's available resources.

+
+images/asignacion-xenerica.png +

Generic Resource Assignment

+
+

The assignment system uses the following assumptions as a basis:

+
    +
  • Tasks have criteria that are required from resources.
  • +
  • Resources are configured to fulfill criteria.
  • +
+

However, the system does not fail when criteria have not been assigned, but when all resources fulfill the non-requirement of criteria.

+

The generic assignment algorithm functions as follows:

+
    +
  • All resources and days are treated as containers where daily assignments of hours fit, based on the maximum assignment capacity in the task calendar.
  • +
  • The system searches for the resources that fulfill the criterion.
  • +
  • The system analyzes which assignments currently have different resources that fulfill criteria.
  • +
  • The resources that fulfill the criteria are chosen from those that have sufficient availability.
  • +
  • If freer resources are not available, assignments are made to the resources that have less availability.
  • +
  • Over-assignment of resources only begins when all the resources that fulfill the respective criteria are 100% assigned, until the total amount required to carry out the task is attained.
  • +
+
+

Generic Machine Assignment

+

Generic machine assignment functions in the same way as worker assignment. For example, when a machine is assigned to a task, the system stores a generic assignment of hours for all machines that fulfill the criteria, as described for resources in general. However, in addition, the system performs the following procedure for machines:

+
    +
  • For all machines chosen for generic assignment:
      +
    • It collects the machine's configuration information: alpha value, assigned workers, and criteria.
    • +
    • If the machine has an assigned list of workers, the program chooses the number required by the machine, depending on the assigned calendar. For example, if the machine calendar is 16 hours per day and the resource calendar is 8 hours, the program assigns two resources from the list of available resources.
    • +
    • If the machine has one or more assigned criteria, the program makes generic assignments from among the resources that fulfill the criteria assigned to the machine.
    • +
    +
  • +
+
+
+
+

Advanced Assignment

+

Advanced assignments allow users to design assignments that are automatically carried out by the application to personalize them. This procedure allows users to manually choose the daily hours that are dedicated by resources to assigned tasks or define a function that is applied to the assignment.

+

The steps to follow to manage advanced assignments are:

+
    +
  • Go to the advanced assignment window. There are two ways to access advanced assignments:
      +
    • Go to a specific order and change the view to advanced assignment. In this case, all the tasks on the order and assigned resources (specific and generic) will be shown.
    • +
    • Go to the resource assignment window by clicking the "Advanced assignment" button. In this case, the assignments that show the resources (generic and specific) assigned to a task will be shown.
    • +
    +
  • +
+
+images/advance-assignment.png +

Advanced Resource Assignment

+
+
    +
  • Users can choose the desired zoom level:
      +
    • Zoom Levels Greater Than One Day: If users change the assigned hour value to a week, month, four-month, or six-month period, the system distributes the hours linearly across all days throughout the chosen period.
    • +
    • Daily Zoom: If users change the assigned hour value to a day, these hours only apply to that day. Consequently, users can decide how many hours they want to assign per day to task resources.
    • +
    +
  • +
  • Users can choose to design an advanced assignment function. To do so, users must:
      +
    • Choose the function from the selection list that appears next to each resource and click "Configure."
    • +
    • The system displays a new window if the chosen function needs to be specifically configured. Supported functions:
        +
      • Segments: A function that allows users to define segments to which a polynomial function is applied. The function per segment is configured as follows:
          +
        • Date: The date on which the segment ends. If the following value (length) is established, the date is calculated; alternatively, length is calculated.
        • +
        • Defining the Length of Each Segment: This indicates what percentage of the task's duration is required for the segment.
        • +
        • Defining the Amount of Work: This indicates what workload percentage is expected to be completed in this segment. The quantity of work must be incremental. For example, if there is a 10% segment, the next one must be larger (for example, 20%).
        • +
        • Segment Graphs and Accumulated Loads.
        • +
        +
      • +
      +
    • +
    • Users then click "Accept."
    • +
    • The program stores the function and applies it to the daily resource assignments.
    • +
    +
  • +
+
+images/stretches.png +

Configuration of the Segment Function

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/it/09-partes.html b/libreplan-webapp/src/main/webapp/help/it/09-partes.html new file mode 100644 index 000000000..90242b6c7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/09-partes.html @@ -0,0 +1,84 @@ + + + + + + +Work Reports + + + +
+

Work Reports

+ + +

Work reports enable the monitoring of the hours that resources dedicate to the tasks to which they are assigned.

+

The program allows users to configure new forms for entering dedicated hours, specifying the fields that they want to appear in these forms. This allows for the incorporation of reports from tasks carried out by workers and the monitoring of worker activity.

+

Before users can add entries for resources, they must define at least one work report type. This type defines the structure of the report, including all the rows that are added to it. Users can create as many work report types as necessary within the system.

+
+

Work Report Types

+

A work report consists of a series of fields that are common to the entire report and a set of work report lines with specific values for the fields defined in each row. For example, resources and tasks are common to all reports. However, there can be other new fields, such as "incidents," which are not required in all report types.

+

Users can configure different work report types so that a company can design its reports to meet its specific needs:

+
+images/work-report-types.png +

Work Report Types

+
+

The administration of work report types allows users to configure these types and add new text fields or optional tags. In the first tab for editing work report types, it is possible to configure the type for the mandatory attributes (whether they apply to the whole report or are specified at the line level) and add new optional fields.

+

The mandatory fields that must appear in all work reports are as follows:

+
    +
  • Name and Code: Identification fields for the name of the work report type and its code.
  • +
  • Date: Field for the date of the report.
  • +
  • Resource: Worker or machine appearing on the report or work report line.
  • +
  • Order Element: Code for the order element to which the performed work is attributed.
  • +
  • Hour Management: Determines the hour attribution policy to be used, which can be:
      +
    • According to Assigned Hours: Hours are attributed based on the assigned hours.
    • +
    • According to Start and Finish Times: Hours are calculated based on the start and finish times.
    • +
    • According to the Number of Hours and Start and Finish Range: Discrepancies are allowed, and the number of hours takes priority.
    • +
    +
  • +
+

Users can add new fields to the reports:

+
    +
  • Tag Type: Users can request the system to display a tag when completing the work report. For example, the client tag type, if the user wishes to enter the client for whom the work was carried out in each report.
  • +
  • Free Fields: Fields where text can be entered freely in the work report.
  • +
+
+images/work-report-type.png +

Creating a Work Report Type with Personalized Fields

+
+

Users can configure date, resource, and order element fields to appear in the header of the report, which means they apply to the entire report, or they can be added to each of the rows.

+

Finally, new additional text fields or tags can be added to the existing ones, in the work report header or in each line, by using the "Additional text" and "Tag type" fields, respectively. Users can configure the order in which these elements are to be entered in the "Management of additional fields and tags" tab.

+
+
+

Work Report List

+

Once the format of the reports to be incorporated into the system has been configured, users can enter the details in the created form according to the structure defined in the corresponding work report type. To do this, users need to follow these steps:

+
    +
  • Click the "New work report" button associated with the desired report from the list of work report types.
  • +
  • The program then displays the report based on the configurations given for the type. See the following image.
  • +
+
+images/work-report-type.png +

Structure of the Work Report Based on Type

+
+
    +
  • Select all the fields shown for the report:
      +
    • Resource: If the header has been chosen, the resource is only shown once. Alternatively, for each line of the report, it is necessary to choose a resource.
    • +
    • Task Code: Code of the task to which the work report is being assigned. Similar to the rest of the fields, if the field is in the header, the value is entered once or as many times as necessary on the lines of the report.
    • +
    • Date: Date of the report or each line, depending on whether the header or line is configured.
    • +
    • Number of Hours: The number of work hours in the project.
    • +
    • Start and Finish Times: Start and finish times for the work in order to calculate definitive work hours. This field only appears in the case of the hour assignment policies, "According to Start and Finish Times" and "According to the Number of Hours and Start and Finish Range."
    • +
    • Type of Hours: Enables users to choose the type of hour, e.g., "Normal," "Extraordinary," etc.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/it/10-etiquetas.html b/libreplan-webapp/src/main/webapp/help/it/10-etiquetas.html new file mode 100644 index 000000000..eb6451798 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/10-etiquetas.html @@ -0,0 +1,68 @@ + + + + + + +Labels + + + +
+

Labels

+ +
+

Contents

+ +
+

Labels are entities used in the program to conceptually organize tasks or order elements.

+

Labels are categorized according to label type. A label can only belong to one label type; however, users can create many similar labels belonging to different label types.

+
+

Label Types

+

Label types are used to group the types of labels that users want to manage in the program. Here are some examples of possible label types:

+
    +
  • Client: Users may be interested in labeling tasks, orders, or order elements in relation to the client who requests them.
  • +
  • Area: Users may be interested in labeling tasks, orders, or order elements in relation to the areas in which they are carried out.
  • +
+

The administration of label types is managed from the "Administration" menu option. This is where users can edit label types, create new label types, and add labels to label types. Users can access the list of labels from this option.

+
+images/tag-types-list.png +

List of Label Types

+
+

From the list of label types, users can:

+
    +
  • Create a new label type.
  • +
  • Edit an existing label type.
  • +
  • Delete a label type with all of its labels.
  • +
+

Editing and creating labels share the same form. From this form, the user can assign a name to the label type, create or delete labels, and store the changes. The procedure is as follows:

+
    +
  • Select a label to edit or click the create button for a new one.
  • +
  • The system displays a form with a text entry for the name and a list of text entries with existing and assigned labels.
  • +
  • If users wish to add a new label, they must click the "New label" button.
  • +
  • The system displays a new row on the list with an empty text box that users must edit.
  • +
  • Users enter a name for the label.
  • +
  • The system adds the name to the list.
  • +
  • Users click "Save" or "Save and continue" to continue editing the form.
  • +
+
+images/tag-types-edition.png +

Editing Label Types

+
+
+
+

Labels

+

Labels are entities that belong to a label type. These entities can be assigned to order elements. Assigning a label to an order element means that all the elements descending from this element will inherit the label to which they belong. Having an assigned label means that these entities can be filtered where searches can be carried out:

+
    +
  • Search for tasks in the Gantt chart.
  • +
  • Search for order elements in the list of order elements.
  • +
  • Filters for reports.
  • +
+

The assignment of labels to order elements is covered in the chapter on orders.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/it/11-materiales.html b/libreplan-webapp/src/main/webapp/help/it/11-materiales.html new file mode 100644 index 000000000..a06770897 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/11-materiales.html @@ -0,0 +1,54 @@ + + + + + + +Materials Management + + + +
+

Materials Management

+ +
+

Contents

+ +
+
+

Administration of Materials

+

Users can manage a basic database of materials, organized by categories.

+

Categories are containers to which specific materials and other categories can be assigned. They are stored in a hierarchical tree structure, as materials can belong to leaf categories or intermediary categories.

+

To manage categories, users must follow these steps:

+
    +
  • Go to the "Administration -> Materials" option.
  • +
  • The program displays a tree of categories.
  • +
  • Enter a category name in the text box and then click "Add."
  • +
  • The program adds the category to the tree.
  • +
+

To insert a category into the category tree, users must first select the parent category in the tree and then click "Add."

+
+images/material.png +

Material Administration Screen

+
+

To manage materials, users must follow these steps:

+
    +
  • Select the category to which materials are to be added and click "Add" to the right of "Materials."
  • +
  • The program adds a new empty row with fields to enter details about the material:
      +
    • Code: Material type code (this can be the external code from an ERP).
    • +
    • Description: Description of the material.
    • +
    • Unit Price: Unit price of each piece of material.
    • +
    • Unit: Unit used to measure each unit of material.
    • +
    • Category: Category to which the material belongs.
    • +
    • Availability: Indicates whether or not the material is active.
    • +
    +
  • +
  • Users complete the fields and click "Save."
  • +
+

The assignment of materials to order elements is explained in the chapter on "Orders."

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/it/12-formularios-calidad.html b/libreplan-webapp/src/main/webapp/help/it/12-formularios-calidad.html new file mode 100644 index 000000000..97a584178 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/12-formularios-calidad.html @@ -0,0 +1,52 @@ + + + + + + +Quality Forms + + + +
+

Quality Forms

+ + +
+

Administration of Quality Forms

+

Quality forms consist of a list of questions or statements that indicate the tasks or processes that should have been completed before a task can be marked as complete by the company. These forms include the following fields:

+
    +
  • Name: The name of the quality form.
  • +
  • Description: A description of the quality form.
  • +
  • Type of Quality Form: The type can have two values:
      +
    • Percentage: Indicates that the questions must be answered in a logical order, and affirmative answers indicate that the task is progressing. For example, a basic process for a task might suggest that the task is 15% complete. Users must answer a question before proceeding to the next one.
    • +
    • Item: Indicates that the questions do not need to be answered in a logical order and can be answered in any sequence.
    • +
    +
  • +
+

Users must follow these steps to manage quality forms:

+
    +
  • From the "Administration" menu, access the "Quality forms" option.
  • +
  • Click "Edit" on an existing form or click "Create" to create a new one.
  • +
  • The program displays a form with fields for the name, description, and type.
  • +
  • Select the type.
  • +
  • The program displays the fields that are allowed for each type:
      +
    • Percentage: Question and percentage.
    • +
    • Item: Question.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+images/quality.png +

Quality Form Administration Screen

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/it/13-usuarios.html b/libreplan-webapp/src/main/webapp/help/it/13-usuarios.html new file mode 100644 index 000000000..f46a23ded --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/13-usuarios.html @@ -0,0 +1,79 @@ + + + + + + +User Management + + + +
+

User Management

+ +
+

Contents

+ +
+
+

Managing Users

+

TASKPM's system allows administrators to manage user profiles, authorizations, and users. Users are assigned to user profiles, which can have a series of predefined roles that grant access to the program's features. Roles are defined authorizations within TASKPM. Examples of roles include:

+
    +
  • Administration: A role that must be assigned to administrators to enable them to perform administrative operations.
  • +
  • Web Service Reader: A role required for users to consult the program's web services.
  • +
  • Web Service Writer: A role required for users to write data via the program's web services.
  • +
+

Roles are predefined within the system. A user profile consists of one or more roles. Users must have specific roles to perform certain operations.

+

Users can be assigned one or more profiles, or one or more roles directly, allowing for specific or generic authorization to be granted.

+

To manage users, follow these steps:

+
    +
  • Go to "Manage users" in the "Administration" menu.
  • +
  • The program displays a form with a list of users.
  • +
  • Click the edit button for the desired user or click the "Create" button.
  • +
  • A form will appear with the following fields:
      +
    • User Name: The user's login name.
    • +
    • Password: The user's password.
    • +
    • Authorized/Unauthorized: A setting to enable or disable the user's account.
    • +
    • Email: The user's email address.
    • +
    • List of Associated Roles: To add a new role, users must search for a role in the selection list and click "Assign."
    • +
    • List of Associated Profiles: To add a new profile, users must search for a profile in the selection list and click "Assign."
    • +
    +
  • +
+
+images/manage-user.png +

Managing Users

+
+
    +
  • Click "Save" or "Save and continue."
  • +
+
+

Managing Profiles

+

To manage the program's profiles, users must follow these steps:

+
    +
  • Go to "Manage user profiles" in the "Administration" menu.
  • +
  • The program displays a list of profiles.
  • +
  • Click the edit button for the desired profile or click "Create."
  • +
  • A form appears in the program with the following fields:
      +
    • Name: The name of the user profile.
    • +
    • List of Roles (Authorizations): To add a role to the profile, users must select a role from the role list and click "Add."
    • +
    +
  • +
+
+images/manage-user-profile.png +

Managing User Profiles

+
+
    +
  • Click "Save" or "Save and continue," and the system will store the created or modified profile.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/it/14-custos.html b/libreplan-webapp/src/main/webapp/help/it/14-custos.html new file mode 100644 index 000000000..5c35ce71d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/14-custos.html @@ -0,0 +1,110 @@ + + + + + + +Cost management + + + +
+

Cost management

+ +
+

Contents

+ +
+
+

Costs

+

Cost management allows users to estimate the costs of resources used in a project. To manage costs, the following entities must be defined:

+
    +
  • Hour Types: These indicate the types of hours worked by a resource. Users can define hour types for both machines and workers. Examples of hour types include: "Additional hours paid at €20 per hour." The following fields can be defined for hour types:
      +
    • Code: External code for the hour type.
    • +
    • Name: Name of the hour type. For example, "Additional."
    • +
    • Default Rate: Basic default rate for the hour type.
    • +
    • Activation: Indicates whether the hour type is active or not.
    • +
    +
  • +
  • Cost Categories: Cost categories define the costs associated with different hour types during specific periods (which may be indefinite). For example, the cost of additional hours for first-grade skilled workers in the following year is €24 per hour. Cost categories include:
      +
    • Name: Cost category name.
    • +
    • Activation: Indicates whether the category is active or not.
    • +
    • List of Hour Types: This list defines the hour types included in the cost category. It specifies the periods and rates for each hour type. For example, as rates change, each year can be included on this list as an hour type period, with a specific hourly rate for each hour type (which may differ from the default hourly rate for that hour type).
    • +
    +
  • +
+
+

Managing Hour Types

+

Users must follow these steps to register hour types:

+
    +
  • Select "Manage hour types worked" on the "Administration" menu.
  • +
  • The program displays a list of existing hour types.
  • +
+
+images/hour-type-list.png +

Hour Type List

+
+
    +
  • Click "Edit" or "Create."
  • +
  • The program displays an hour type editing form.
  • +
+
+images/hour-type-edit.png +

Editing Hour Types

+
+
    +
  • Users can enter or change:
      +
    • The hour type name.
    • +
    • The hour type code.
    • +
    • The default rate.
    • +
    • Hour type activation/deactivation.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+

Cost Categories

+

Users must follow these steps to register cost categories:

+
    +
  • Select "Manage cost categories" on the "Administration" menu.
  • +
  • The program displays a list of existing categories.
  • +
+
+images/category-cost-list.png +

Cost Category List

+
+
    +
  • Click the "Edit" or "Create" button.
  • +
  • The program displays a cost category editing form.
  • +
+
+images/category-cost-edit.png +

Editing Cost Categories

+
+
    +
  • Users enter or change:
      +
    • The name of the cost category.
    • +
    • The activation/deactivation of the cost category.
    • +
    • The list of hour types included in the category. All hour types have the following fields:
        +
      • Hour Type: Choose one of the existing hour types in the system. If none exist, an hour type must be created (this process is explained in the previous subsection).
      • +
      • Start and Finish Date: The start and finish dates (the latter is optional) for the period that applies to the cost category.
      • +
      • Hourly Rate: The hourly rate for this specific category.
      • +
      +
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+

The assignment of cost categories to resources is described in the chapter on resources. Go to the "Resources" section.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/it/15-1-report-hours-worked-by-resource.html b/libreplan-webapp/src/main/webapp/help/it/15-1-report-hours-worked-by-resource.html new file mode 100644 index 000000000..f97f118aa --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/15-1-report-hours-worked-by-resource.html @@ -0,0 +1,101 @@ + + + + + + +Hours Worked by Resource Report + + + +
+

Hours Worked by Resource Report

+ + +
+

Purpose

+

This report extracts a list of tasks and the time resources have dedicated to them within a specified period. Several filters allow users to refine the query to obtain only the desired information and exclude extraneous data.

+
+
+

Input Parameters and Filters

+
    +
  • +
    Dates.
    +
      +
    • Type: Optional.
    • +
    • +
      Two date fields:
      +
        +
      • Start Date: This is the earliest date for work reports to be included. Work reports with dates earlier than the Start Date are excluded. If this parameter is left blank, work reports are not filtered by Start Date.
      • +
      • End Date: This is the latest date for work reports to be included. Work reports with dates later than the End Date are excluded. If this parameter is left blank, work reports are not filtered by End Date.
      • +
      +
      +
      +
    • +
    +
    +
    +
  • +
  • Filter by Workers: +* Type: Optional. +* How it works: You can select one or more workers to restrict the work reports to the time tracked by those specific workers. To add a worker as a filter, search for them in the selector and click the Add button. If this filter is left empty, work reports are retrieved regardless of the worker.
  • +
  • Filter by Labels: +* Type: Optional. +* How it works: You can add one or more labels to use as filters by searching for them in the selector and clicking the Add button. These labels are used to select the tasks to be included in the results when calculating the hours dedicated to them. This filter can be applied to timesheets, tasks, both, or neither.
  • +
  • Filter by Criteria: +* Type: Optional. +* How it works: You can select one or more criteria by searching for them in the selector and then clicking the Add button. These criteria are used to select the resources that satisfy at least one of them. The report will show all the time dedicated by the resources that meet one of the selected criteria.
  • +
+
+
+

Output

+
+

Heading

+

The report heading displays the filters that were configured and applied to the current report.

+
+ +
+

Body

+

The report body consists of several groups of information.

+
    +
  • The first level of aggregation is by resource. All the time dedicated by a resource is shown together below the header. Each resource is identified by:

    +
      +
    • Worker: Surname, First Name.
    • +
    • Machine: Name.
    • +
    +

    A summary line shows the total number of hours worked by the resource.

    +
  • +
  • The second level of grouping is by date. All the reports from a specific resource on the same date are shown together.

    +

    A summary line shows the total number of hours worked by the resource on that date.

    +
  • +
  • The final level lists the work reports for the worker on that day. The information displayed for each work report line is:

    +
      +
    • Task Code: The code of the task to which the tracked hours are attributed.
    • +
    • Task Name: The name of the task to which the tracked hours are attributed.
    • +
    • Starting Time: This is optional. It is the time at which the resource began working on the task.
    • +
    • Ending Time: This is optional. It is the time at which the resource finished working on the task on the specified date.
    • +
    • Text Fields: This is optional. If the work report line has text fields, the filled values are shown here. The format is: <Name of the text field>:<Value>
    • +
    • Labels: This depends on whether the work report model has a label field in its definition. If there are multiple labels, they are shown in the same column. The format is: <Name of the label type>:<Value of the label>
    • +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/it/15-2-total-hours-by-resource-month.html b/libreplan-webapp/src/main/webapp/help/it/15-2-total-hours-by-resource-month.html new file mode 100644 index 000000000..246cfc9c1 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/15-2-total-hours-by-resource-month.html @@ -0,0 +1,67 @@ + + + + + + +Total Hours Worked by Resource in a Month Report + + + +
+

Total Hours Worked by Resource in a Month Report

+ + +
+

Purpose

+

This report provides the total number of hours worked by each resource in a given month. This information can be useful for determining worker overtime or, depending on the organization, the number of hours for which each resource should be compensated.

+

The application tracks work reports for both workers and machines. For machines, the report sums up the number of hours they were in operation during the month.

+
+
+

Input Parameters and Filters

+

To generate this report, users must specify the year and month for which they want to retrieve the total number of hours worked by each resource.

+
+
+

Output

+

The output format is as follows:

+ + +
+

Body

+

The data section of the report consists of a single table with two columns:

+
+
    +
  • One column labeled Name for the name of the resource.
  • +
  • One column labeled Hours with the total number of hours worked by the resource in that row.
  • +
+
+

There is a final row that aggregates the total number of hours worked by all resources during the specified month and year.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/it/15-3-work-progress-per-project.html b/libreplan-webapp/src/main/webapp/help/it/15-3-work-progress-per-project.html new file mode 100644 index 000000000..e2f5053a9 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/15-3-work-progress-per-project.html @@ -0,0 +1,125 @@ + + + + + + +Work and Progress per Project Report + + + +
+

Work and Progress per Project Report

+ + +
+

Purpose

+

This report provides an overview of the status of projects, considering both progress and cost.

+

It analyzes the current progress of each project, comparing it with the planned progress and the work completed.

+

The report also displays several ratios related to project cost, comparing current performance with the planned performance.

+
+
+

Input Parameters and Filters

+

There are several mandatory parameters:

+
+
    +
  • Reference Date: This is the date used as a reference point for comparing the planned status of the project with its actual performance. The default value for this field is the current date.
  • +
  • Progress Type: This is the progress type used to measure project progress. The application allows a project to be measured simultaneously with different progress types. The type selected by the user in the dropdown menu is used for calculating the report data. The default value for the progress type is spread, which is a special progress type that uses the preferred method of measuring progress configured for each WBS element.
  • +
+
+

The optional parameters are:

+
+
    +
  • Starting Date: This is the earliest start date for projects to be included in the report. If this field is left blank, there is no minimum start date for the projects.
  • +
  • Ending Date: This is the latest end date for projects to be included in the report. All projects that finish after the Ending Date will be excluded.
  • +
  • Filter by Projects: This filter allows users to select the specific projects to be included in the report. If no projects are added to the filter, the report will include all projects in the database. A searchable dropdown menu is provided to find the desired project. Projects are added to the filter by clicking the Add button.
  • +
+
+
+
+

Output

+

The output format is as follows:

+
+

Heading

+

The report header displays the following fields:

+
+
    +
  • Starting Date: The filtering start date. This is not displayed if the report is not filtered by this field.
  • +
  • Ending Date: The filtering end date. This is not displayed if the report is not filtered by this field.
  • +
  • Progress Type: The progress type used for the report.
  • +
  • Projects: This indicates the filtered projects for which the report is generated. It will show the string All when the report includes all projects that satisfy the other filters.
  • +
  • Reference Date: The mandatory input reference date selected for the report.
  • +
+
+
+ +
+

Body

+

The body of the report consists of a list of projects selected based on the input filters.

+

Filters work by adding conditions, except for the set formed by the date filters (Starting Date, Ending Date) and the Filter by Projects. In this case, if one or both date filters are filled and the Filter by Projects has a list of selected projects, the latter filter takes precedence. This means that the projects included in the report are those provided by the Filter by Projects, regardless of the date filters.

+

It's important to note that progress in the report is calculated as a fraction of unity, ranging between 0 and 1.

+

For each project selected for inclusion in the report output, the following information is displayed:

+
+
    +
  • Project Name.
  • +
  • +
    Total Hours. The total hours for the project are shown by adding the hours for each task. Two types of total hours are shown:
    +
      +
    • Estimated (TE). This is the sum of all the estimated hours in the project's WBS. It represents the total number of hours estimated to complete the project.
    • +
    • Planned (TP). In TASKPM, it's possible to have two different quantities: the estimated number of hours for a task (the number of hours initially estimated to complete the task) and the planned hours (the hours allocated in the plan to complete the task). The planned hours can be equal to, less than, or greater than the estimated hours and are determined in a later phase, the assignment operation. Therefore, the total planned hours for a project are the sum of all the allocated hours for its tasks.
    • +
    +
    +
    +
  • +
  • +
    Progress. Three measurements related to the overall progress of the type specified in the progress input filter for each project at the reference date are shown:
    +
      +
    • Measured (PM). This is the overall progress considering the progress measurements with a date earlier than the Reference Date in the input parameters of the report. All tasks are taken into account, and the sum is weighted by the number of hours for each task.
    • +
    • Imputed (PI). This is the progress assuming that work continues at the same pace as the hours completed for a task. If X hours out of Y hours for a task are completed, the overall imputed progress is considered to be X/Y.
    • +
    • Planned (PP). This is the overall progress of the project according to the planned schedule at the reference date. If everything happened exactly as planned, the measured progress should be the same as the planned progress.
    • +
    +
    +
    +
  • +
  • +
    Hours up to Date. There are two fields that show the number of hours up to the reference date from two perspectives:
    +
      +
    • Planned (HP). This number is the sum of the hours allocated to any task in the project with a date less than or equal to the Reference Date.
    • +
    • Actual (HR). This number is the sum of the hours reported in the work reports for any of the tasks in the project with a date less than or equal to the Reference Date.
    • +
    +
    +
    +
  • +
  • +
    Difference. Under this heading, there are several metrics related to cost:
    +
      +
    • Cost. This is the difference in hours between the number of hours spent, considering the measured progress, and the hours completed up to the reference date. The formula is: PM*TP - HR.
    • +
    • Planned. This is the difference between the hours spent according to the overall measured project progress and the number planned up to the Reference Date. It measures the advantage or delay in time. The formula is: PM*TP - HP.
    • +
    • Cost Ratio. This is calculated by dividing PM / PI. If it is greater than 1, it means that the project is profitable at this point. If it is less than 1, it means that the project is losing money.
    • +
    • Planned Ratio. This is calculated by dividing PM / PP. If it is greater than 1, it means that the project is ahead of schedule. If it is less than 1, it means that the project is behind schedule.
    • +
    +
    +
    +
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/it/15-informes.html b/libreplan-webapp/src/main/webapp/help/it/15-informes.html new file mode 100644 index 000000000..c2c7cafab --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/15-informes.html @@ -0,0 +1,26 @@ + + + + + + +Reports + + + +
+

Reports

+ +

TASKPM integrates with JasperReports to provide report management, enabling users to generate various reports for analyzing the data available in the program.

+

The available reports are:

+ +
+ + diff --git a/libreplan-webapp/src/main/webapp/help/it/16-ldap-authentication.html b/libreplan-webapp/src/main/webapp/help/it/16-ldap-authentication.html new file mode 100644 index 000000000..ad5d4976d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/16-ldap-authentication.html @@ -0,0 +1,251 @@ + + + + + + +LDAP Configuration + + + +
+

LDAP Configuration

+ + +

This screen allows you to establish a connection with LDAP to delegate +authentication and/or authorization.

+

It is divided into four different areas, which are explained below:

+
+

Activation

+

This area is used to set the properties that determine how TASKPM uses +LDAP.

+

If the field Enable LDAP authentication is checked, TASKPM will query +LDAP each time a user attempts to log in to the application.

+

The field Use LDAP roles checked means that a mapping between LDAP roles and +TASKPM roles is established. Consequently, the permissions for a user in +TASKPM will depend on the roles the user has in LDAP.

+
+
+

Configuration

+

This section contains the parameter values for accessing LDAP. Base, UserDN, and +Password are parameters used to connect to LDAP and search for users. Therefore, +the specified user must have permission to perform this operation in LDAP. At the +bottom of this section, there is a button to check if an LDAP connection is +possible with the given parameters. It is advisable to test the connection before +continuing the configuration.

+
+

Note

+

If your LDAP is configured to work with anonymous authentication, you can +leave the UserDN and Password attributes empty.

+
+
+

Tip

+

Regarding Active Directory (AD) configuration, the Base field must be the +exact location where the bound user resides in AD.

+

Example: ou=organizational_unit,dc=example,dc=org

+
+
+
+

Authentication

+

Here, you can configure the property in LDAP nodes where the given username +should be found. The property UserId must be filled with the name of the +property where the username is stored in LDAP.

+

The checkbox Save passwords in database, when checked, means that the +password is also stored in the TASKPM database. In this way, if LDAP is +offline or unreachable, LDAP users can authenticate against the TASKPM +database. If it is not checked, LDAP users can only be authenticated against +LDAP.

+
+
+

Authorization

+

This section allows you to define a strategy for matching LDAP roles with +TASKPM roles. The first choice is the strategy to use, depending on the +LDAP implementation.

+
+

Group Strategy

+

When this strategy is used, it indicates that LDAP has a role-group strategy. +This means that users in LDAP are nodes that are directly under a branch that +represents the group.

+

The next example represents a valid LDAP structure for using the group strategy.

+
    +
  • LDAP structure:

    +
    +dc=example,dc=org
    +|- ou=groups
    +   |- cn=admins
    +   |- cn=itpeople
    +   |- cn=workers
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

In this case, each group will have an attribute, for example, called member, +with the list of users belonging to the group:

+
    +
  • cn=admins:
      +
    • member: uid=admin1,ou=people,dc=example,dc=org
    • +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=itpeople:
      +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    • member: uid=it2,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=workers:
      +
    • member: uid=worker1,ou=people,dc=example,dc=org
    • +
    • member: uid=worker2,ou=people,dc=example,dc=org
    • +
    • member: uid=worker3,ou=people,dc=example,dc=org
    • +
    +
  • +
+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Group strategy
  • +
  • Group path: ou=groups
  • +
  • Role property: member
  • +
  • Role search query: uid=[USER_ID],ou=people,dc=example,dc=org
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: cn=admins;cn=itpeople
  • +
  • Web service reader: cn=itpeople
  • +
  • Web service writer: cn=itpeople
  • +
  • All projects read allowed: cn=admins
  • +
  • All projects edition allowed: cn=admins
  • +
  • Project creation allowed: cn=workers
  • +
+
+
+

Property Strategy

+

When an administrator decides to use this strategy, it indicates that each user +is an LDAP node, and within the node, there exists a property that represents +the group(s) for the user. In this case, the configuration does not require the +Group path parameter.

+

The next example represents a valid LDAP structure for using the property strategy.

+
    +
  • LDAP structure:

    +
    +dc=example,dc=org
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

With Attribute

+

In this case, each user will have an attribute, for example, called group, +with the name of the group to which they belong:

+
    +
  • uid=admin1:
      +
    • group: admins
    • +
    +
  • +
  • uid=it1:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=it2:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=worker1:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker2:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker3:
      +
    • group: workers
    • +
    +
  • +
+
+

Warning

+

This strategy has a restriction: each user can belong to only one group.

+
+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Property strategy
  • +
  • Group path:
  • +
  • Role property: group
  • +
  • Role search query: [USER_ID]
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: admins;itpeople
  • +
  • Web service reader: itpeople
  • +
  • Web service writer: itpeople
  • +
  • All projects read allowed: admins
  • +
  • All projects edition allowed: admins
  • +
  • Project creation allowed: workers
  • +
+

By User Identifier

+

You can even use a workaround to specify TASKPM roles directly to users +without having an attribute in each LDAP user.

+

In this case, you will specify which users have the different TASKPM roles +by uid.

+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Property strategy
  • +
  • Group path:
  • +
  • Role property: uid
  • +
  • Role search query: [USER_ID]
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: admin1;it1
  • +
  • Web service reader: it1;it2
  • +
  • Web service writer: it1;it2
  • +
  • All projects read allowed: admin1
  • +
  • All projects edition allowed: admin1
  • +
  • Project creation allowed: worker1;worker2;worker3
  • +
+
+
+

Role Matching

+

At the bottom of this section, there is a table with all the TASKPM roles +and a text field next to each one. This is for matching roles. For instance, +if an administrator decides that the Administration TASKPM role matches +the admin and administrators roles of LDAP, the text field should contain: +"admin;administrators". The character for splitting roles is ";".

+
+

Note

+

If you want to specify that all users or all groups have one permission, you +can use an asterisk (*) as a wildcard to refer to them. For example, if +you want everyone to have the Project creation allowed role, you will +configure the role matching as follows:

+
    +
  • Project creation allowed: *
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/it/17-1-project-dashboard.html b/libreplan-webapp/src/main/webapp/help/it/17-1-project-dashboard.html new file mode 100644 index 000000000..5dc0899b7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/17-1-project-dashboard.html @@ -0,0 +1,173 @@ + + + + + + +Project Dashboard + + + +
+

Project Dashboard

+ + +

The project dashboard is a TASKPM perspective that contains a set of KPIs (Key Performance Indicators) to help assess a project's performance in terms of:

+
+
    +
  • Work progress
  • +
  • Cost
  • +
  • Status of allocated resources
  • +
  • Time constraints
  • +
+
+
+

Progress Performance Indicators

+

Two indicators are calculated: project progress percentage and task status.

+
+

Project Progress Percentage

+

This chart displays the overall progress of a project, comparing it to the expected progress based on the Gantt chart.

+

Progress is represented by two bars:

+
+
    +
  • Current Progress: The current progress based on the measurements taken.
  • +
  • Expected Progress: The progress the project should have achieved at this point, according to the project plan.
  • +
+
+

To view the actual measured value for each bar, hover the mouse cursor over the bar.

+

The overall project progress is estimated using several different methods, as there is no single, universally correct approach:

+
+
    +
  • Spreading Progress: This is the progress type set as the spreading progress at the project level. In this case, there is no way to calculate an expected value, and only the current bar is displayed.
  • +
  • By All Task Hours: The progress of all project tasks is averaged to calculate the overall value. This is a weighted average that considers the number of hours allocated to each task.
  • +
  • By Critical Path Hours: The progress of tasks belonging to any of the project's critical paths is averaged to obtain the overall value. This is a weighted average that considers the total allocated hours for each involved task.
  • +
  • By Critical Path Duration: The progress of tasks belonging to any of the critical paths is averaged using a weighted average, but this time considering the duration of each involved task instead of the assigned hours.
  • +
+
+
+
+

Task Status

+

A pie chart shows the percentage of project tasks in different states. The defined states are:

+
+
    +
  • Finished: Completed tasks, identified by a 100% progress value.
  • +
  • In Progress: Tasks that are currently underway. These tasks have a progress value other than 0% or 100%, or some work time has been tracked.
  • +
  • Ready to Start: Tasks with 0% progress, no tracked time, all their FINISH_TO_START dependent tasks are finished, and all their START_TO_START dependent tasks are finished or in progress.
  • +
  • Blocked: Tasks with 0% progress, no tracked time, and with previous dependent tasks that are neither in progress nor in the ready to start state.
  • +
+
+
+
+
+

Cost Indicators

+

Several Earned Value Management cost indicators are calculated:

+
+
    +
  • CV (Cost Variance): The difference between the Earned Value curve and the Actual Cost curve at the current moment. Positive values indicate a benefit, and negative values indicate a loss.

    +
  • +
  • ACWP (Actual Cost of Work Performed): The total number of hours tracked in the project at the current moment.

    +
  • +
  • CPI (Cost Performance Index): The Earned Value / Actual Cost ratio.

    +
    +
      +
    • > 100 is favorable, indicating that the project is under budget.
    • +
    • = 100 is also favorable, indicating that the cost is right on plan.
    • +
    • < 100 is unfavorable, indicating that the cost of completing the work is higher than planned.
    • +
    +
    +
  • +
  • ETC (Estimate To Complete): The time remaining to complete the project.

    +
  • +
  • BAC (Budget At Completion): The total amount of work allocated in the project plan.

    +
  • +
  • EAC (Estimate At Completion): The manager's projection of the total cost at project completion, based on the CPI.

    +
  • +
  • VAC (Variance At Completion): The difference between the BAC and the EAC.

    +
    +
      +
    • < 0 indicates that the project is over budget.
    • +
    • > 0 indicates that the project is under budget.
    • +
    +
    +
  • +
+
+
+
+

Resources

+

To analyze the project from the resources' point of view, two ratios and a histogram are provided.

+
+

Estimation Deviation on Completed Task Histogram

+

This histogram calculates the deviation between the number of hours allocated to the project tasks and the actual number of hours dedicated to them.

+

The deviation is calculated as a percentage for all finished tasks, and the calculated deviations are represented in a histogram. The vertical axis shows the number of tasks within each deviation interval. Six deviation intervals are dynamically calculated.

+
+
+

Overtime Ratio

+

This ratio summarizes the overload of resources allocated to the project tasks. It is calculated using the formula: overtime ratio = overload / (load + overload).

+
+
    +
  • = 0 is favorable, indicating that the resources are not overloaded.
  • +
  • > 0 is unfavorable, indicating that the resources are overloaded.
  • +
+
+
+
+

Availability Ratio

+

This ratio summarizes the free capacity of the resources currently allocated to the project. Therefore, it measures the resources' availability to receive more allocations without being overloaded. It is calculated as: availability ratio = (1 - load/capacity) * 100

+
+
    +
  • Possible values are between 0% (fully assigned) and 100% (not assigned).
  • +
+
+
+
+
+

Time

+

Two charts are included: a histogram for the time deviation in the finish time of project tasks and a pie chart for deadline violations.

+
+

Task Completion Lead or Lag

+

This calculation determines the difference in days between the planned end time for project tasks and their actual end time. The planned completion date is taken from the Gantt chart, and the actual finish date is taken from the last time tracked for the task.

+

The lag or lead in task completion is represented in a histogram. The vertical axis shows the number of tasks with a lead/lag day difference value corresponding to the abscissa days interval. Six dynamic task completion deviation intervals are calculated.

+
+
    +
  • Negative values mean finishing ahead of schedule.
  • +
  • Positive values mean finishing behind schedule.
  • +
+
+
+
+

Deadline Violations

+

This section calculates the margin with the project deadline, if set. Additionally, a pie chart shows the percentage of tasks meeting their deadline. Three types of values are included in the chart:

+
+
    +
  • Percentage of tasks without a deadline configured.
  • +
  • Percentage of ended tasks with an actual end date later than their deadline. The actual end date is taken from the last time tracked for the task.
  • +
  • Percentage of ended tasks with an actual end date earlier than their deadline.
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/it/17-2-pipeline-dashboard.html b/libreplan-webapp/src/main/webapp/help/it/17-2-pipeline-dashboard.html new file mode 100644 index 000000000..bb54ed657 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/17-2-pipeline-dashboard.html @@ -0,0 +1,33 @@ + + + + + + +Pipeline Dashboard + + + +
+

Pipeline Dashboard

+ +

The pipeline dashboard is a TASKPM perspective that lists all company projects in a table. This "pipeline" table has nine columns, each corresponding to a project status:

+
+
    +
  • PRE-SALES
  • +
  • OFFERED
  • +
  • OUTSOURCED
  • +
  • ACCEPTED
  • +
  • STARTED
  • +
  • ON HOLD
  • +
  • FINISHED
  • +
  • CANCELLED
  • +
  • ARCHIVED
  • +
+
+

Projects are listed by name in each column based on their current status.

+

A project's start date, end date, and current progress can be viewed in a tooltip popup by hovering the mouse cursor over a project's name.

+

Projects with an ARCHIVED status can be hidden by unchecking the "Show archived column data" checkbox.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/it/17-dashboards.html b/libreplan-webapp/src/main/webapp/help/it/17-dashboards.html new file mode 100644 index 000000000..3dc8f1af4 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/17-dashboards.html @@ -0,0 +1,24 @@ + + + + + + +Dashboards + + + +
+

Dashboards

+ +

TASKPM offers dashboard views for projects, providing an overview of their current status.

+

The two available dashboard views are:

+ +
+ + diff --git a/libreplan-webapp/src/main/webapp/help/it/18-connectors.html b/libreplan-webapp/src/main/webapp/help/it/18-connectors.html new file mode 100644 index 000000000..0f879b53d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/18-connectors.html @@ -0,0 +1,238 @@ + + + + + + +Connectors + + + +
+

Connectors

+ + +

Connectors are TASKPM client applications that can be used to communicate with (web) servers to retrieve data, process it, and store it. Currently, there are three connectors: the JIRA connector, the Tim Enterprise connector, and the E-mail connector.

+
+

Configuration

+

Connectors must be configured properly before they can be used. They can be configured from the "Main Settings" screen under the "Connectors" tab.

+

The connector screen includes:

+
    +
  • Pull-down list: A list of available connectors.
  • +
  • Properties edit screen: A property edit form for the selected connector.
  • +
  • Test connection button: A button to test the connection with the connector.
  • +
+

Select the connector you want to configure from the pull-down list of connectors. A property editor form for the selected connector will be displayed. In the property editor form, you can change the property values as needed and test your configurations using the "Test connection" button.

+
+

Note

+

The properties are configured with default values. The most important property is "Activated." By default, it is set to "N." This indicates that the connector will not be used unless you change the value to "Y" and save the changes.

+
+
+
+

JIRA Connector

+

JIRA is an issue and project tracking system.

+

The JIRA connector is an application that can be used to request JIRA web server data for JIRA issues and process the response. The request is based on JIRA labels. In JIRA, labels can be used to categorize issues. The request is structured as follows: retrieve all issues that are categorized by this label name.

+

The connector receives the response, which in this case is the issues, and converts them to TASKPM "Order elements" and "Time sheets."

+

The JIRA connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the JIRA connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the JIRA connector. The default is "N."
  • +
  • Server URL: The absolute path to the JIRA web server.
  • +
  • User name and password: The user credentials for authorization.
  • +
  • JIRA labels: comma-separated list of labels or URL: You can either enter the label URL or a comma-separated list of labels.
  • +
  • Hours type: The type of work hours. The default is "Default."
  • +
+
+

Note

+

JIRA labels: Currently, the JIRA web server does not support providing a list of all available labels. As a workaround, we have developed a simple PHP script that performs a simple SQL query in the JIRA database to fetch all distinct labels. You can either use this PHP script as the "JIRA labels URL" or enter the labels you want as comma-separated text in the "JIRA labels" field.

+
+

Finally, click the "Test connection" button to test if you can connect to the JIRA web server and that your configurations are correct.

+
+
+

Synchronization

+

From the project window, under "General data," you can start synchronizing order elements with JIRA issues.

+

Click the "Sync with JIRA" button to start the synchronization.

+
    +
  • If this is the first time, a pop-up window (with an auto-completed list of labels) will be displayed. In this window, you can select a label to synchronize with and click the "Start sync" button to begin the synchronization process, or click the "Cancel" button to cancel it.
  • +
  • If a label is already synchronized, the last synchronized date and the label will be displayed in the JIRA screen. In this case, no pop-up window to select a label will be displayed. Instead, the synchronization process will start directly for that displayed (already synchronized) label.
  • +
+
+

Note

+

The relationship between "Order" and "label" is one-to-one. Only one label can be synchronized with one "Order."

+
+
+

Note

+

Upon successful (re)synchronization, the information will be written to the database, and the JIRA screen will be updated with the last synchronized date and label.

+
+

(Re)synchronization is performed in two phases:

+
    +
  • Phase 1: Synchronizing order elements, including progress assignment and measurements.
  • +
  • Phase 2: Synchronizing time sheets.
  • +
+
+

Note

+

If Phase 1 fails, Phase 2 will not be performed, and no information will be written to the database.

+
+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+

Upon successful completion of synchronization, the result will be displayed in the "Work Breakdown Structure (WBS tasks)" tab of the "Project details" screen. In this UI, there are two changes from the standard WBS:

+
    +
  • The "Total task hours" column is unmodifiable (read-only) because the synchronization is one-way. Task hours can only be updated in the JIRA web server.
  • +
  • The "Code" column displays the JIRA issue keys, and they are also hyperlinks to the JIRA issues. Click the desired key if you want to go to the document for that key (JIRA issue).
  • +
+
+
+

Scheduling

+

Re-synchronization of JIRA issues can also be performed through the scheduler. Go to the "Job scheduling" screen. In that screen, you can configure a JIRA job to perform synchronization. The job searches for the last synchronized labels in the database and re-synchronizes them accordingly. See also the Scheduler Manual.

+
+
+
+

Tim Enterprise Connector

+

Tim Enterprise is a Dutch product from Aenova. It is a web-based application for the administration of time spent on projects and tasks.

+

The Tim connector is an application that can be used to communicate with the Tim Enterprise server to:

+
    +
  • Export all hours spent by a worker (user) on a project that could be registered in Tim Enterprise.
  • +
  • Import all rosters of the worker (user) to plan the resource effectively.
  • +
+

The Tim connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the Tim connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the Tim connector. The default is "N."
  • +
  • Server URL: The absolute path to the Tim Enterprise server.
  • +
  • User name and password: The user credentials for authorization.
  • +
  • Number of days timesheet to Tim: The number of days back you want to export the time sheets.
  • +
  • Number of days roster from Tim: The number of days forward you want to import the rosters.
  • +
  • Productivity factor: Effective working hours in percentage. The default is "100%."
  • +
  • Department IDs to import roster: Comma-separated department IDs.
  • +
+

Finally, click the "Test connection" button to test if you can connect to the Tim Enterprise server and that your configurations are correct.

+
+
+

Export

+

From the project window, under "General data," you can start exporting time sheets to the Tim Enterprise server.

+

Enter the "Tim product code" and click the "Export to Tim" button to start the export.

+

The Tim connector adds the following fields along with the product code:

+
    +
  • The worker/user's full name.
  • +
  • The date the worker worked on a task.
  • +
  • The effort, or hours worked on the task.
  • +
  • An option indicating whether Tim Enterprise should update the registration or insert a new one.
  • +
+

The Tim Enterprise response contains only a list of record IDs (integers). This makes it difficult to determine what went wrong, as the response list contains only numbers not related to the request fields. The export request (registration in Tim) is assumed to have succeeded if all the list entries do not contain "0" values. Otherwise, the export request has failed for those entries that contain "0" values. Therefore, you cannot see which request failed, as the list entries only contain the value "0." The only way to determine this is to examine the log file on the Tim Enterprise server.

+
+

Note

+

Upon successful exporting, the information will be written to the database, and the Tim screen will be updated with the last exported date and product code.

+
+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+
+
+

Scheduling Export

+

The export process can also be performed through the scheduler. Go to the "Job Scheduling" screen. In that screen, you can configure a Tim Export job. The job searches for the last exported time sheets in the database and re-exports them accordingly. See also the Scheduler manual.

+
+
+

Import

+

Importing rosters only works with the help of the scheduler. There is no user interface designed for this, as no input is needed from the user. Go to the "Job scheduling" screen and configure a Tim Import job. The job loops through all departments configured in the connector properties and imports all rosters for each department. See also the Scheduler Manual.

+

For import, the Tim connector adds the following fields in the request:

+
    +
  • Period: The period (date from - date to) for which you want to import the roster. This can be provided as a filter criterion.
  • +
  • Department: The department for which you want to import the roster. Departments are configurable.
  • +
  • The fields you are interested in (like Person info, RosterCategory, etc.) that the Tim server should include in its response.
  • +
+

The import response contains the following fields, which are sufficient to manage the exception days in TASKPM:

+
    +
  • Person info: Name and network name.
  • +
  • Department: The department the worker is working in.
  • +
  • Roster category: Information on the presence/absence (Aanwzig/afwezig) of the worker and the reason (TASKPM exception type) in case the worker is absent.
  • +
  • Date: The date the worker is present/absent.
  • +
  • Time: The start time of presence/absence, for example, 08:00.
  • +
  • Duration: The number of hours that the worker is present/absent.
  • +
+

By converting the import response to TASKPM's "Exception day," the following translations are taken into account:

+
    +
  • If the roster category contains the name "Vakantie," it will be translated to "RESOURCE HOLIDAY."
  • +
  • The roster category "Feestdag" will be translated to "BANK HOLIDAY."
  • +
  • All the rest, like "Jus uren," "PLB uren," etc., should be added to the "Calendar Exception Days" manually.
  • +
+

Moreover, in the import response, the roster is divided into two or three parts per day: for example, roster-morning, roster-afternoon, and roster-evening. However, TASKPM allows only one "Exception type" per day. The Tim connector is then responsible for merging these parts as one exception type. That is, the roster category with the highest duration is assumed to be a valid exception type, but the total duration is the sum of all durations of these category parts.

+

Contrary to TASKPM, in Tim Enterprise, the total duration in case the worker is on holiday means the worker is not available for that total duration. However, in TASKPM, if the worker is on holiday, the total duration should be zero. The Tim connector also handles this translation.

+
+
+
+

E-mail Connector

+

E-mail is a method of exchanging digital messages from an author to one or more recipients.

+

The E-mail connector can be used to set Simple Mail Transfer Protocol (SMTP) server connection properties.

+

The E-mail connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the E-mail connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the E-mail connector. The default is "N."
  • +
  • Protocol: The type of SMTP protocol.
  • +
  • Host: The absolute path to the SMTP server.
  • +
  • Port: The port of the SMTP server.
  • +
  • From address: The e-mail address of the message sender.
  • +
  • Username: The username for the SMTP server.
  • +
  • Password: The password for the SMTP server.
  • +
+

Finally, click the "Test connection" button to test if you can connect to the SMTP server and that your configurations are correct.

+
+
+

Edit E-mail Template

+

From the project window, under "Configuration" and then "Edit E-mail Templates," you can modify the e-mail templates for messages.

+

You can choose:

+
    +
  • Template language:
  • +
  • Template type:
  • +
  • E-mail subject:
  • +
  • Template contents:
  • +
+

You need to specify the language because the web application will send e-mails to users in the language they have chosen in their preferences. You need to choose the template type. The type is the user role, meaning that this e-mail will be sent only to users who are in the selected role (type). You need to set the e-mail subject. The subject is a brief summary of the topic of the message. You need to set the e-mail contents. This is any information that you want to send to the user. There are also some keywords that you may use in the message; the web application will parse them and set a new value instead of the keyword.

+
+
+

Scheduling E-mails

+

Sending e-mails can only be performed through the scheduler. Go to "Configuration," then the "Job Scheduling" screen. In that screen, you can configure an e-mail sending job. The job takes a list of e-mail notifications, gathers data, and sends it to the user's e-mail. See also the Scheduler manual.

+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/it/19-scheduler.html b/libreplan-webapp/src/main/webapp/help/it/19-scheduler.html new file mode 100644 index 000000000..8379b5b4c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/19-scheduler.html @@ -0,0 +1,107 @@ + + + + + + +Scheduler + + + +
+

Scheduler

+ + +

The scheduler is designed to schedule jobs dynamically. It is developed using the Spring Framework Quartz scheduler.

+

To use this scheduler effectively, the jobs (Quartz jobs) that should be scheduled must be created first. Then, these jobs can be added to the database, as all jobs to be scheduled are stored in the database.

+

When the scheduler starts, it reads the jobs to be scheduled or unscheduled from the database and schedules or removes them accordingly. Afterward, jobs can be added, updated, or removed dynamically using the Job scheduling user interface.

+
+

Note

+

The scheduler starts when the TASKPM web application starts and stops when the application stops.

+
+
+

Note

+

This scheduler supports only cron expressions to schedule jobs.

+
+

The criteria that the scheduler uses to schedule or remove jobs when it starts are as follows:

+

For all jobs:

+
    +
  • Schedule
      +
    • Job has a Connector, and the Connector is activated, and the job is allowed to be scheduled.
    • +
    • Job has no Connector and is allowed to be scheduled.
    • +
    +
  • +
  • Remove
      +
    • Job has a Connector, and the Connector is not activated.
    • +
    • Job has a Connector, and the Connector is activated, but the job is not allowed to be scheduled.
    • +
    • Job has no Connector and is not allowed to be scheduled.
    • +
    +
  • +
+
+

Note

+

Jobs cannot be rescheduled or unscheduled if they are currently running.

+
+
+

Job Scheduling List View

+

The Job scheduling list view allows users to:

+
    +
  • Add a new job.
  • +
  • Edit an existing job.
  • +
  • Remove a job.
  • +
  • Start a process manually.
  • +
+
+
+

Add or Edit Job

+

From the Job scheduling list view, click:

+
    +
  • Create to add a new job, or
  • +
  • Edit to modify the selected job.
  • +
+

Both actions will open a create/edit job form. The form displays the following properties:

+
    +
  • Fields:
      +
    • Job group: The name of the job group.
    • +
    • Job name: The name of the job.
    • +
    • Cron expression: A read-only field with an Edit button to open the cron expression input window.
    • +
    • Job class name: A pull-down list to select the job (an existing job).
    • +
    • Connector: A pull-down list to select a connector. This is not mandatory.
    • +
    • Schedule: A checkbox to indicate whether to schedule this job.
    • +
    +
  • +
  • Buttons:
      +
    • Save: To save or update a job in both the database and the scheduler. The user is then returned to the Job scheduling list view.
    • +
    • Save and continue: The same as "Save," but the user is not returned to the Job scheduling list view.
    • +
    • Cancel: Nothing is saved, and the user is returned to the Job scheduling list view.
    • +
    +
  • +
  • And a hint section about cron expression syntax.
  • +
+
+

Cron Expression Pop-up

+

To enter the cron expression correctly, a cron expression pop-up form is used. In this form, you can enter the desired cron expression. See also the hint about the cron expression. If you enter an invalid cron expression, you will be notified immediately.

+
+
+
+

Remove Job

+

Click the Remove button to delete the job from both the database and the scheduler. The success or failure of this action will be displayed.

+
+
+

Start Job Manually

+

As an alternative to waiting for the job to run as scheduled, you can click this button to start the process directly. Afterward, the success or failure information will be displayed in a pop-up window.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/it/20-acerca-de.html b/libreplan-webapp/src/main/webapp/help/it/20-acerca-de.html new file mode 100644 index 000000000..569e69e4d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/20-acerca-de.html @@ -0,0 +1,155 @@ + + + + + + +About + + + +
+

About

+ + + +
+

License

+

This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version.

+

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/>.

+
+
+

Written by

+
+

TASKPM Team

+ +
+
+

Previous Team Members

+ +
+
+

Translators

+ +
+
+

Contributors

+ +
+
+
+

Public Funding

+

This project currently accepts donations through the Open Collective organization <https://opencollective.com/TASKPM>.

+

Within the global scope that TASKPM is designed for regarding planning management, a project was developed to solve some common planning problems.

+

This project was partially financed by Xunta de Galicia, Ministerio de Industria, Turismo e Comercio, and by the European Union, Fondo Europeo de Desenvolvemento Rexional.

+
+images/logos.png +
+ +++ + + + +
scale:100
+

This project was part of Plan Avanza:

+
+images/avanza.png +
+ +++ + + + +
scale:100
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/it/21-communications.html b/libreplan-webapp/src/main/webapp/help/it/21-communications.html new file mode 100644 index 000000000..e4f5ea081 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/21-communications.html @@ -0,0 +1,18 @@ + + + + + + +Subcontractor Work Description + + + +
+

Subcontractor Work Description

+ +

While it is possible to leave this field empty, doing so can lead to errors in communication functionality when multiple empty fields exist.

+

Therefore, we strongly recommend always using a unique work description.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/it/22-pert.html b/libreplan-webapp/src/main/webapp/help/it/22-pert.html new file mode 100644 index 000000000..c27af3c56 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/22-pert.html @@ -0,0 +1,17 @@ + + + + + + +PERT Chart + + + +
+

PERT Chart

+ +

Unlike Libreplan, which was focused on the GANNT chart and did not have a PERT chart, TASKPM does have a PERT chart and is more focused on it.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/it/23-subnets.html b/libreplan-webapp/src/main/webapp/help/it/23-subnets.html new file mode 100644 index 000000000..42cd9e634 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/23-subnets.html @@ -0,0 +1,17 @@ + + + + + + +Task Subnets + + + +
+

Task Subnets

+ +

Unlike Libreplan, which only had a single level of planning, the whole project, TASKPM has subnetworks of activities which can be embedded in a master project.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/it/images/advance-assignment.png b/libreplan-webapp/src/main/webapp/help/it/images/advance-assignment.png new file mode 100644 index 000000000..aeb55b2b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/advance-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/asignacion-especifica.png b/libreplan-webapp/src/main/webapp/help/it/images/asignacion-especifica.png new file mode 100644 index 000000000..9ee94d9c6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/asignacion-especifica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/asignacion-xenerica.png b/libreplan-webapp/src/main/webapp/help/it/images/asignacion-xenerica.png new file mode 100644 index 000000000..d2a16597f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/asignacion-xenerica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/avance.png b/libreplan-webapp/src/main/webapp/help/it/images/avance.png new file mode 100644 index 000000000..ee289e19c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/avanza.png b/libreplan-webapp/src/main/webapp/help/it/images/avanza.png new file mode 100644 index 000000000..a51893f80 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/avanza.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/calendar-administration.png b/libreplan-webapp/src/main/webapp/help/it/images/calendar-administration.png new file mode 100644 index 000000000..bb4e17032 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/calendar-administration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/calendar-create-derived.png b/libreplan-webapp/src/main/webapp/help/it/images/calendar-create-derived.png new file mode 100644 index 000000000..9f01f2c33 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/calendar-create-derived.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/calendar-edition.png b/libreplan-webapp/src/main/webapp/help/it/images/calendar-edition.png new file mode 100644 index 000000000..a98cc4454 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/calendar-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/calendar-exceptions.png b/libreplan-webapp/src/main/webapp/help/it/images/calendar-exceptions.png new file mode 100644 index 000000000..c2a53a684 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/calendar-exceptions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/category-cost-edit.png b/libreplan-webapp/src/main/webapp/help/it/images/category-cost-edit.png new file mode 100644 index 000000000..1755ee79e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/category-cost-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/category-cost-list.png b/libreplan-webapp/src/main/webapp/help/it/images/category-cost-list.png new file mode 100644 index 000000000..1d7ff838c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/category-cost-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/company_view.png b/libreplan-webapp/src/main/webapp/help/it/images/company_view.png new file mode 100644 index 000000000..c3a7631e6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/company_view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/contraste-avance.png b/libreplan-webapp/src/main/webapp/help/it/images/contraste-avance.png new file mode 100644 index 000000000..831cceac3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/contraste-avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/default-calendar.png b/libreplan-webapp/src/main/webapp/help/it/images/default-calendar.png new file mode 100644 index 000000000..6fd379d08 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/default-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/edicion-criterio.png b/libreplan-webapp/src/main/webapp/help/it/images/edicion-criterio.png new file mode 100644 index 000000000..2b879ced5 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/edicion-criterio.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/hour-type-edit.png b/libreplan-webapp/src/main/webapp/help/it/images/hour-type-edit.png new file mode 100644 index 000000000..4917b08a8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/hour-type-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/hour-type-list.png b/libreplan-webapp/src/main/webapp/help/it/images/hour-type-list.png new file mode 100644 index 000000000..1872eb4f7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/hour-type-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/lista-criterios.png b/libreplan-webapp/src/main/webapp/help/it/images/lista-criterios.png new file mode 100644 index 000000000..a2e7d03cb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/lista-criterios.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/logo.png b/libreplan-webapp/src/main/webapp/help/it/images/logo.png new file mode 100644 index 000000000..4e7d02651 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/logo.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/logos.png b/libreplan-webapp/src/main/webapp/help/it/images/logos.png new file mode 100644 index 000000000..7314a0759 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/logos.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/machine-calendar.png b/libreplan-webapp/src/main/webapp/help/it/images/machine-calendar.png new file mode 100644 index 000000000..a725f67a2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/machine-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/machine-configuration.png b/libreplan-webapp/src/main/webapp/help/it/images/machine-configuration.png new file mode 100644 index 000000000..0777473fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/machine-configuration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/machine-costcategory.png b/libreplan-webapp/src/main/webapp/help/it/images/machine-costcategory.png new file mode 100644 index 000000000..b8414eac6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/machine-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/machine-criterions.png b/libreplan-webapp/src/main/webapp/help/it/images/machine-criterions.png new file mode 100644 index 000000000..7c270bf35 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/machine-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/machine-data.png b/libreplan-webapp/src/main/webapp/help/it/images/machine-data.png new file mode 100644 index 000000000..5edb47d12 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/machine-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/manage-user-profile.png b/libreplan-webapp/src/main/webapp/help/it/images/manage-user-profile.png new file mode 100644 index 000000000..6a86064e2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/manage-user-profile.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/manage-user.png b/libreplan-webapp/src/main/webapp/help/it/images/manage-user.png new file mode 100644 index 000000000..df59f1b7c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/manage-user.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/material.png b/libreplan-webapp/src/main/webapp/help/it/images/material.png new file mode 100644 index 000000000..a77b5aa41 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/menu.png b/libreplan-webapp/src/main/webapp/help/it/images/menu.png new file mode 100644 index 000000000..f4eec5250 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/menu.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/new-resource-calendar.png b/libreplan-webapp/src/main/webapp/help/it/images/new-resource-calendar.png new file mode 100644 index 000000000..9040e0bc0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/new-resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/order-assigned-hours.png b/libreplan-webapp/src/main/webapp/help/it/images/order-assigned-hours.png new file mode 100644 index 000000000..4fd629386 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/order-assigned-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/order-criterions.png b/libreplan-webapp/src/main/webapp/help/it/images/order-criterions.png new file mode 100644 index 000000000..e59bd833f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/order-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/order-edition.png b/libreplan-webapp/src/main/webapp/help/it/images/order-edition.png new file mode 100644 index 000000000..ff67134db Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/order-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/order-element-criterion.png b/libreplan-webapp/src/main/webapp/help/it/images/order-element-criterion.png new file mode 100644 index 000000000..f167979b0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/order-element-criterion.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/order-element-edition.png b/libreplan-webapp/src/main/webapp/help/it/images/order-element-edition.png new file mode 100644 index 000000000..66e5e8602 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/order-element-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/order-element-hours.png b/libreplan-webapp/src/main/webapp/help/it/images/order-element-hours.png new file mode 100644 index 000000000..06cc1dc37 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/order-element-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/order-element-material-assign.png b/libreplan-webapp/src/main/webapp/help/it/images/order-element-material-assign.png new file mode 100644 index 000000000..90f973766 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/order-element-material-assign.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/order-element-material-search.png b/libreplan-webapp/src/main/webapp/help/it/images/order-element-material-search.png new file mode 100644 index 000000000..550f1d7fa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/order-element-material-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/order-element-quality.png b/libreplan-webapp/src/main/webapp/help/it/images/order-element-quality.png new file mode 100644 index 000000000..3272ce70e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/order-element-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/order-element-tags.png b/libreplan-webapp/src/main/webapp/help/it/images/order-element-tags.png new file mode 100644 index 000000000..e43a7d795 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/order-element-tags.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/order-elements-list.png b/libreplan-webapp/src/main/webapp/help/it/images/order-elements-list.png new file mode 100644 index 000000000..271ac9bf6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/order-elements-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/order-labels.png b/libreplan-webapp/src/main/webapp/help/it/images/order-labels.png new file mode 100644 index 000000000..076e0a745 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/order-labels.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/order-material.png b/libreplan-webapp/src/main/webapp/help/it/images/order-material.png new file mode 100644 index 000000000..9197679e7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/order-material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/order-quality.png b/libreplan-webapp/src/main/webapp/help/it/images/order-quality.png new file mode 100644 index 000000000..ee9e9027e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/order-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/order_list.png b/libreplan-webapp/src/main/webapp/help/it/images/order_list.png new file mode 100644 index 000000000..72e70f3b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/order_list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/planning-view.png b/libreplan-webapp/src/main/webapp/help/it/images/planning-view.png new file mode 100644 index 000000000..de74811eb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/planning-view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/quality.png b/libreplan-webapp/src/main/webapp/help/it/images/quality.png new file mode 100644 index 000000000..1850f51b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/resource-assignment-generic.png b/libreplan-webapp/src/main/webapp/help/it/images/resource-assignment-generic.png new file mode 100644 index 000000000..3519a5087 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/resource-assignment-generic.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/resource-assignment-planning.png b/libreplan-webapp/src/main/webapp/help/it/images/resource-assignment-planning.png new file mode 100644 index 000000000..c4233780d Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/resource-assignment-planning.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/resource-assignment-search.png b/libreplan-webapp/src/main/webapp/help/it/images/resource-assignment-search.png new file mode 100644 index 000000000..cae142d81 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/resource-assignment-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/resource-assignment-specific.png b/libreplan-webapp/src/main/webapp/help/it/images/resource-assignment-specific.png new file mode 100644 index 000000000..8f7b1cba2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/resource-assignment-specific.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/resource-assignment.png b/libreplan-webapp/src/main/webapp/help/it/images/resource-assignment.png new file mode 100644 index 000000000..427d25b79 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/resource-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/resource-calendar.png b/libreplan-webapp/src/main/webapp/help/it/images/resource-calendar.png new file mode 100644 index 000000000..749c7b829 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/resource-load.png b/libreplan-webapp/src/main/webapp/help/it/images/resource-load.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/resource-load.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/resources_global.png b/libreplan-webapp/src/main/webapp/help/it/images/resources_global.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/resources_global.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/stretches.png b/libreplan-webapp/src/main/webapp/help/it/images/stretches.png new file mode 100644 index 000000000..d661a63f6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/stretches.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/tag-types-edition.png b/libreplan-webapp/src/main/webapp/help/it/images/tag-types-edition.png new file mode 100644 index 000000000..d366c09c2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/tag-types-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/tag-types-list.png b/libreplan-webapp/src/main/webapp/help/it/images/tag-types-list.png new file mode 100644 index 000000000..e7de5048c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/tag-types-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/tipos-avances.png b/libreplan-webapp/src/main/webapp/help/it/images/tipos-avances.png new file mode 100644 index 000000000..bb417f52c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/tipos-avances.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/virtual-resources.png b/libreplan-webapp/src/main/webapp/help/it/images/virtual-resources.png new file mode 100644 index 000000000..3a54f95d3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/virtual-resources.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/work-report-hours.png b/libreplan-webapp/src/main/webapp/help/it/images/work-report-hours.png new file mode 100644 index 000000000..568e9fed6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/work-report-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/work-report-type.png b/libreplan-webapp/src/main/webapp/help/it/images/work-report-type.png new file mode 100644 index 000000000..2549d8b5e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/work-report-type.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/work-report-types.png b/libreplan-webapp/src/main/webapp/help/it/images/work-report-types.png new file mode 100644 index 000000000..986f705aa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/work-report-types.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/worker-calendar.png b/libreplan-webapp/src/main/webapp/help/it/images/worker-calendar.png new file mode 100644 index 000000000..1227969b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/worker-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/worker-costcategory.png b/libreplan-webapp/src/main/webapp/help/it/images/worker-costcategory.png new file mode 100644 index 000000000..f330db68c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/worker-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/worker-criterions.png b/libreplan-webapp/src/main/webapp/help/it/images/worker-criterions.png new file mode 100644 index 000000000..a131a29fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/worker-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/images/worker-personal-data.png b/libreplan-webapp/src/main/webapp/help/it/images/worker-personal-data.png new file mode 100644 index 000000000..6a5033ba8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/it/images/worker-personal-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/it/index.html b/libreplan-webapp/src/main/webapp/help/it/index.html new file mode 100644 index 000000000..7a9b74000 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/index.html @@ -0,0 +1,47 @@ + + + + + + +LibrePlan: User documentation + + + +
+

LibrePlan: User documentation

+ +images/logo.png +

Following document contains necessary help for using LibrePlan, the opensource web application for project planning.

+

This document is divided in three main sections:

+

First, global goals and behaviour.

+

Second, basic entities to understand the minimum concepts to use LibrePlan.

+

Finally, complete processes description to create orders, projects, project planning, resources assignment, advance assignment and result extraction.

+
    +
  1. Introduction
  2. +
  3. Criteria
  4. +
  5. Calendars
  6. +
  7. Progress
  8. +
  9. Resource Management
  10. +
  11. Orders and Order Elements
  12. +
  13. Task Planning
  14. +
  15. Resource Assignment
  16. +
  17. Work Reports
  18. +
  19. Labels
  20. +
  21. Materials Management
  22. +
  23. Quality Forms
  24. +
  25. User Management
  26. +
  27. Cost management
  28. +
  29. Reports
  30. +
  31. LDAP Configuration
  32. +
  33. Dashboards
  34. +
  35. Connectors
  36. +
  37. Scheduler
  38. +
  39. About
  40. +
  41. Subcontractor Work Description
  42. +
  43. PERT Chart
  44. +
  45. Task Subnets
  46. +
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/it/lsr.css b/libreplan-webapp/src/main/webapp/help/it/lsr.css new file mode 100644 index 000000000..ced6c967a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/it/lsr.css @@ -0,0 +1,250 @@ +/* +Author: Peter Parente +Date: 2008/01/22 +Version: 1.0 +Copyright: This stylesheet has been placed in the public domain - free to edit and use for all uses. +*/ + +body { + font: 0.8em Verdana, Tahoma, sans-serif; + background: #ffffff; + color: black; + margin: 2em; +} + +p.topic-title { + font-weight: bold; +} + +table.docinfo { + text-align: left; + margin: 2em 0; +} + +a[href] { + color: #436976; + background-color: transparent; +} + +a.toc-backref { + text-decoration: none; +} + +h1 a[href] { + color: #003a6b; + text-decoration: none; + background-color: transparent; +} + +a.strong { + font-weight: bold; +} + +img { + margin: 0; + border: 0; +} + +p { + margin: 0.5em 0 1em 0; + line-height: 1.5em; +} + +p a:visited { + color: purple; + background-color: transparent; +} + +p a:active { + color: red; + background-color: transparent; +} + +a:hover { + text-decoration: none; +} + +p img { + border: 0; + margin: 0; +} + +p.rubric { + font-weight: bold; + font-style: italic; +} + +h1.title { + color: #003a6b; + font-size: 250%; + margin-bottom: 0; +} + +h2.subtitle { + color: #003a6b; + border-bottom: 0; +} + +h1, h2, h3, h4, h5, h6 { + color: #555; + background-color: transparent; + margin: 0; + padding-top: 0.5em; +} + +h1 { + font-size: 160%; + margin-bottom: 0.5em; + border-bottom: 2px solid #aaa; +} + +h2 { + font-size: 140%; + margin-bottom: 0.5em; + border-bottom: 1px solid #aaa; +} + +h3 { + font-size: 130%; + margin-bottom: 0.5em; +} + +h4 { + font-size: 110%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h5 { + font-size: 105%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h6 { + font-size: 100%; + font-weight: bold; + margin-bottom: 0.5em; +} + +dt { + font-style: italic; +} + +dd { + margin-bottom: 1.5em; +} + +div.admonition, div.note, div.tip, div.caution, div.important, div.warning { + margin: 2em 2em; + padding: 0 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +div.important { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +div.caution { + background: transparent url('../images/caution.png') 10px 2px no-repeat; +} + +div.note { + background: transparent url('../images/note.png') 10px 2px no-repeat; +} + +div.tip { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-example { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-critical-example { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +p.admonition-title { + font-weight: bold; + border-bottom: 1px solid #aaa; + padding-left: 30px; +} + +table.docutils { + text-align: left; + border: 1px solid gray; + border-collapse: collapse; + width: 100%; + margin: 1.5em 0; +} + +table.docutils caption { + font-style: italic; +} + +table.docutils td, table.docutils th { + padding: 0.25em 0.5em; +} + +table.docutils th { + background-color: #dddddd; +} + +div.sidebar { + width: 33%; + float: right; + margin: 0 2em; + padding: 0 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +p.sidebar-title { + margin-bottom: 0; + color: #003a6b; + border-bottom: 1px solid #aaa; + font-weight: bold; +} + +p.sidebar-subtitle { + margin-top: 0; + font-style: italic; + color: #003a6b; +} + +div.figure { + text-align: center; +} + +div.figure img { + background: #f8f8f8; + padding: 0.25em; + border: 1px solid #888; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +div.figure img:hover { + background: #e0e0e0; +} + +div.figure p.caption { + text-align: center; + margin-top: 0.1em; + font-style: italic; + color: #444; +} + +pre.literal-block { + padding: 0.15em; + background: #f8f8f8; + border: 1px solid #dfdfdf; + border-left: 0.25em solid #dfdfdf +} diff --git a/libreplan-webapp/src/main/webapp/help/nb/01-introducion.html b/libreplan-webapp/src/main/webapp/help/nb/01-introducion.html new file mode 100644 index 000000000..51e520ad7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/01-introducion.html @@ -0,0 +1,132 @@ + + + + + + +Introduction + + + +
+

Introduction

+ + +

This document describes the features of TASKPM and provides user information on how to configure and use the application.

+

TASKPM is an open-source web application for project planning. Its primary goal is to provide a comprehensive solution for company project management. For any specific information you may need about this software, please contact the development team at http://www.libreplan.com/contact/

+
+images/company_view.png +

Company Overview

+
+
+

Company Overview and View Management

+

As shown in the program's main screen (see the previous screenshot) and the company overview, users can view a list of planned projects. This allows them to understand the company's overall status regarding orders and resource utilization. The company overview offers three distinct views:

+
    +
  • Planning View: This view combines two perspectives:

    +
    +
      +
    • Order and Time Tracking: Each project is represented by a Gantt chart, indicating the project's start and end dates. This information is displayed alongside the agreed-upon deadline. A comparison is then made between the percentage of progress achieved and the actual time dedicated to each project. This provides a clear picture of the company's performance at any given time. This view is the program's default landing page.
    • +
    • Company Resource Utilization Graph: This graph displays information on resource allocation across projects, providing a summary of the entire company's resource usage. Green indicates that resource allocation is below 100% of capacity. The black line represents the total available resource capacity. Yellow indicates that resource allocation exceeds 100%. It's possible to have under-allocation overall while simultaneously experiencing over-allocation for specific resources.
    • +
    +
    +
  • +
  • Resource Load View: This screen displays a list of the company's workers and their specific task allocations, or generic allocations based on defined criteria. To access this view, click on Overall load of resources. See the following image for an example.

    +
  • +
  • Orders Administration View: This screen displays a list of company orders, allowing users to perform the following actions: filter, edit, delete, visualize planning, or create a new order. To access this view, click on Order list.

    +
  • +
+
+images/resources_global.png +

Resource Overview

+
+
+images/order_list.png +

Work Breakdown Structure

+
+

The view management described above for the company overview is very similar to the management available for a single project. A project can be accessed in several ways:

+
    +
  • Right-click on the Gantt chart for the order and select Plan.
  • +
  • Access the order list and click on the Gantt diagram icon.
  • +
  • Create a new order and change the current order view.
  • +
+

The program offers the following views for an order:

+
    +
  • Planning View: This view allows users to visualize task planning, dependencies, milestones, and more. See the Planning section for further details.
  • +
  • Resource Load View: This view allows users to check the designated resource load for a project. The color code is consistent with the company overview: green for a load less than 100%, yellow for a load equal to 100%, and red for a load over 100%. The load may originate from a specific task or a set of criteria (generic allocation).
  • +
  • Editing Order View: This view allows users to modify the details of the order. See the Orders section for more information.
  • +
  • Advanced Resource Allocation View: This view allows users to allocate resources with advanced options, such as specifying hours per day or the allocated functions to be performed. See the Resource allocation section for more information.
  • +
+
+
+

What Makes TASKPM Useful?

+

TASKPM is a general-purpose planning tool developed to address challenges in industrial project planning that were not adequately covered by existing tools. The development of TASKPM was also motivated by the desire to provide a free, open-source, and entirely web-based alternative to proprietary planning tools.

+

The core concepts underpinning the program are as follows:

+
    +
  • Company and Multi-Project Overview: TASKPM is specifically designed to provide users with information about multiple projects being carried out within a company. Therefore, it is inherently a multi-project program. The program's focus is not limited to individual projects, although specific views for individual projects are also available.
  • +
  • View Management: The company overview, or multi-project view, is accompanied by various views of the stored information. For example, the company overview allows users to view orders and compare their status, view the company's overall resource load, and manage orders. Users can also access the planning view, resource load view, advanced resource allocation view, and editing order view for individual projects.
  • +
  • Criteria: Criteria are a system entity that enables the classification of both resources (human and machine) and tasks. Resources must meet certain criteria, and tasks require specific criteria to be fulfilled. This is one of the program's most important features, as criteria form the basis of generic allocation and address a significant challenge in the industry: the time-consuming nature of human resource management and the difficulty of long-term company load estimations.
  • +
  • Resources: There are two types of resources: human and machine. Human resources are the company's workers, used for planning, monitoring, and controlling the company's workload. Machine resources, dependent on the people who operate them, function similarly to human resources.
  • +
  • Resource Allocation: A key feature of the program is the ability to designate resources in two ways: specifically and generically. Generic allocation is based on the criteria required to complete a task and must be fulfilled by resources capable of meeting those criteria. To understand generic allocation, consider this example: John Smith is a welder. Typically, John Smith would be specifically assigned to a planned task. However, TASKPM offers the option of selecting any welder within the company, without needing to specify that John Smith is the assigned person.
  • +
  • Company Load Control: The program allows for easy control of the company's resource load. This control extends to both the mid-term and long-term, as current and future projects can be managed within the program. TASKPM provides graphs that visually represent resource utilization.
  • +
  • Labels: Labels are used to categorize project tasks. With these labels, users can group tasks by concept, allowing for later review as a group or after filtering.
  • +
  • Filters: Because the system naturally includes elements that label or characterize tasks and resources, criteria filters or labels can be used. This is very useful for reviewing categorized information or generating specific reports based on criteria or labels.
  • +
  • Calendars: Calendars define the available productive hours for different resources. Users can create general company calendars or define more specific calendars, allowing for the creation of calendars for individual resources and tasks.
  • +
  • Orders and Order Elements: Work requested by clients is treated as an order within the application, structured into order elements. The order and its elements follow a hierarchical structure with x levels. This element tree forms the basis for work planning.
  • +
  • Progress: The program can manage various types of progress. A project's progress can be measured as a percentage, in units, against the agreed budget, and more. The responsibility for determining which type of progress to use for comparison at higher project levels lies with the planning manager.
  • +
  • Tasks: Tasks are the fundamental planning elements within the program. They are used to schedule work to be carried out. Key characteristics of tasks include: dependencies between tasks, and the potential requirement for specific criteria to be met before resources can be allocated.
  • +
  • Work Reports: These reports, submitted by the company's workers, detail the hours worked and the tasks associated with those hours. This information allows the system to calculate the actual time taken to complete a task compared to the budgeted time. Progress can then be compared against the actual hours used.
  • +
+

In addition to the core functions, TASKPM offers other features that distinguish it from similar programs:

+
    +
  • Integration with ERP: The program can directly import information from company ERP systems, including orders, human resources, work reports, and specific criteria.
  • +
  • Version Management: The program can manage multiple planning versions, while still allowing users to review the information from each version.
  • +
  • History Management: The program does not delete information; it only marks it as invalid. This allows users to review historical information using date filters.
  • +
+
+
+

Usability Conventions

+
+

Information About Forms

+

Before describing the various functions associated with the most important modules, we need to explain the general navigation and form behavior.

+

There are essentially three types of editing forms:

+
    +
  • Forms with a *Return* button: These forms are part of a larger context, and the changes made are stored in memory. The changes are only applied when the user explicitly saves all the details on the screen from which the form originated.
  • +
  • Forms with *Save* and *Close* buttons: These forms allow for two actions. The first saves the changes and closes the current window. The second closes the window without saving any changes.
  • +
  • Forms with *Save and continue*, *Save*, and *Close* buttons: These forms allow for three actions. The first saves the changes and keeps the current form open. The second saves the changes and closes the form. The third closes the window without saving any changes.
  • +
+
+
+

Standard Icons and Buttons

+
    +
  • Editing: In general, records in the program can be edited by clicking on an icon that looks like a pencil on a white notebook.
  • +
  • Left Indent: These operations are generally used for elements within a tree structure that need to be moved to a deeper level. This is done by clicking on the icon that looks like a green arrow pointing to the right.
  • +
  • Right Indent: These operations are generally used for elements within a tree structure that need to be moved to a higher level. This is done by clicking on the icon that looks like a green arrow pointing to the left.
  • +
  • Deleting: Users can delete information by clicking on the trash can icon.
  • +
  • Search: The magnifying glass icon indicates that the text field to its left is used for searching for elements.
  • +
+
+
+

Tabs

+

The program uses tabs to organize content editing and administration forms. This method is used to divide a comprehensive form into different sections, accessible by clicking on the tab names. The other tabs retain their current status. In all cases, the save and cancel options apply to all sub-forms within the different tabs.

+
+
+

Explicit Actions and Context Help

+

The program includes components that provide additional descriptions of elements when the mouse hovers over them for one second. The actions that the user can perform are indicated on the button labels, in the help texts associated with them, in the browsing menu options, and in the context menus that appear when right-clicking in the planner area. Furthermore, shortcuts are provided for the main operations, such as double-clicking on listed elements or using key events with the cursor and the Enter key to add elements when navigating through forms.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nb/02-criterios.html b/libreplan-webapp/src/main/webapp/help/nb/02-criterios.html new file mode 100644 index 000000000..42fad10d3 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/02-criterios.html @@ -0,0 +1,69 @@ + + + + + + +Criteria + + + +
+

Criteria

+ +
+

Contents

+ +
+

Criteria are elements used within the program to categorize both resources and tasks. Tasks require specific criteria, and resources must meet those criteria.

+

Here's an example of how criteria are used: A resource is assigned the criterion "welder" (meaning the resource fulfills the "welder" category), and a task requires the "welder" criterion to be completed. Consequently, when resources are allocated to tasks using generic allocation (as opposed to specific allocation), workers with the "welder" criterion will be considered. For more information on the different types of allocation, refer to the chapter on resource allocation.

+

The program allows for several operations involving criteria:

+
    +
  • Criteria administration
  • +
  • Assigning criteria to resources
  • +
  • Assigning criteria to tasks
  • +
  • Filtering entities based on criteria. Tasks and order items can be filtered by criteria to perform various operations within the program.
  • +
+

This section will only explain the first function, criteria administration. The two types of allocation will be covered later: resource allocation in the "Resource Management" chapter, and filtering in the "Task Planning" chapter.

+
+

Criteria Administration

+

Criteria administration can be accessed through the administration menu:

+
+images/menu.png +

First-Level Menu Tabs

+
+

The specific operation for managing criteria is Manage criteria. This operation allows you to list the criteria available in the system.

+
+images/lista-criterios.png +

List of Criteria

+
+

You can access the create/edit criterion form by clicking the Create button. To edit an existing criterion, click the edit icon.

+
+images/edicion-criterio.png +

Editing Criteria

+
+

The criteria editing form, as shown in the previous image, allows you to perform the following operations:

+
    +
  • Edit the criterion's name.
  • +
  • Specify whether multiple values can be assigned simultaneously or only one value for the selected criterion type. For example, a resource could fulfill two criteria, "welder" and "lathe operator."
  • +
  • Specify the criterion type:
      +
    • Generic: A criterion that can be used for both machines and workers.
    • +
    • Worker: A criterion that can only be used for workers.
    • +
    • Machine: A criterion that can only be used for machines.
    • +
    +
  • +
  • Indicate whether the criterion is hierarchical. Sometimes, criteria need to be treated hierarchically. For example, assigning a criterion to an element does not automatically assign it to elements derived from it. A clear example of a hierarchical criterion is "location." For instance, a person designated with the location "Galicia" will also belong to "Spain."
  • +
  • Indicate whether the criterion is authorized. This is how users deactivate criteria. Once a criterion has been created and used in historical data, it cannot be changed. Instead, it can be deactivated to prevent it from appearing in selection lists.
  • +
  • Describe the criterion.
  • +
  • Add new values. A text entry field with the New criterion button is located in the second part of the form.
  • +
  • Edit the names of existing criteria values.
  • +
  • Move criteria values up or down in the list of current criteria values.
  • +
  • Remove a criterion value from the list.
  • +
+

The criteria administration form follows the form behavior described in the introduction, offering three actions: Save, Save and Close, and Close.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nb/03-calendarios.html b/libreplan-webapp/src/main/webapp/help/nb/03-calendarios.html new file mode 100644 index 000000000..0d0bbf0d5 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/03-calendarios.html @@ -0,0 +1,187 @@ + + + + + + +Calendars + + + +
+

Calendars

+ + +

Calendars are entities within the program that define the working capacity of resources. A calendar consists of a series of days throughout the year, with each day divided into available working hours.

+

For example, a public holiday might have 0 available working hours. Conversely, a typical workday might have 8 hours designated as available working time.

+

There are two primary ways to define the number of working hours in a day:

+
    +
  • By Weekday: This method sets a standard number of working hours for each day of the week. For example, Mondays might typically have 8 working hours.
  • +
  • By Exception: This method allows for specific deviations from the standard weekday schedule. For example, Monday, January 30th, might have 10 working hours, overriding the standard Monday schedule.
  • +
+
+

Calendar Administration

+

The calendar system is hierarchical, allowing you to create base calendars and then derive new calendars from them, forming a tree structure. A calendar derived from a higher-level calendar will inherit its daily schedules and exceptions unless explicitly modified. To effectively manage calendars, it's important to understand the following concepts:

+
    +
  • Day Independence: Each day is treated independently, and each year has its own set of days. For example, if December 8th, 2009, is a public holiday, this does not automatically mean that December 8th, 2010, is also a public holiday.
  • +
  • Weekday-Based Working Days: Standard working days are based on weekdays. For example, if Mondays typically have 8 working hours, then all Mondays in all weeks of all years will have 8 available hours unless an exception is defined.
  • +
  • Exceptions and Exception Periods: You can define exceptions or exception periods to deviate from the standard weekday schedule. For example, you can specify a single day or a range of days with a different number of available working hours than the general rule for those weekdays.
  • +
+
+images/calendar-administration.png +

Calendar Administration

+
+

Calendar administration is accessible through the "Administration" menu. From there, users can perform the following actions:

+
    +
  1. Create a new calendar from scratch.
  2. +
  3. Create a calendar derived from an existing one.
  4. +
  5. Create a calendar as a copy of an existing one.
  6. +
  7. Edit an existing calendar.
  8. +
+
+

Creating a New Calendar

+

To create a new calendar, click the "Create" button. The system will display a form where you can configure the following:

+
    +
  • Select the Tab: Choose the tab you want to work on:
      +
    • Marking Exceptions: Define exceptions to the standard schedule.
    • +
    • Working Hours per Day: Define the standard working hours for each weekday.
    • +
    +
  • +
  • Marking Exceptions: If you select the "Marking Exceptions" option, you can:
      +
    • Select a specific day on the calendar.
    • +
    • Select the type of exception. The available types are: holiday, illness, strike, public holiday, and working holiday.
    • +
    • Select the end date of the exception period. (This field does not need to be changed for single-day exceptions.)
    • +
    • Define the number of working hours during the days of the exception period.
    • +
    • Delete previously defined exceptions.
    • +
    +
  • +
  • Working Hours per Day: If you select the "Working Hours per Day" option, you can:
      +
    • Define the available working hours for each weekday (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, and Sunday).
    • +
    • Define different weekly hour distributions for future periods.
    • +
    • Delete previously defined hour distributions.
    • +
    +
  • +
+

These options allow users to fully customize calendars according to their specific needs. Click the "Save" button to store any changes made to the form.

+
+images/calendar-edition.png +

Editing Calendars

+
+
+images/calendar-exceptions.png +

Adding an Exception to a Calendar

+
+
+
+

Creating Derived Calendars

+

A derived calendar is created based on an existing calendar. It inherits all the features of the original calendar, but you can modify it to include different options.

+

A common use case for derived calendars is when you have a general calendar for a country, such as Spain, and you need to create a derived calendar to include additional public holidays specific to a region, such as Galicia.

+

It's important to note that any changes made to the original calendar will automatically propagate to the derived calendar, unless a specific exception has been defined in the derived calendar. For example, the calendar for Spain might have an 8-hour working day on May 17th. However, the calendar for Galicia (a derived calendar) might have no working hours on that same day because it's a regional public holiday. If the Spanish calendar is later changed to have 4 available working hours per day for the week of May 17th, the Galician calendar will also change to have 4 available working hours for every day in that week, except for May 17th, which will remain a non-working day due to the defined exception.

+
+images/calendar-create-derived.png +

Creating a Derived Calendar

+
+

To create a derived calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Calendar administration option.
  • +
  • Select the calendar you want to use as the basis for the derived calendar and click the "Create" button.
  • +
  • The system will display an editing form with the same characteristics as the form used to create a calendar from scratch, except that the proposed exceptions and the working hours per weekday will be based on the original calendar.
  • +
+
+
+

Creating a Calendar by Copying

+

A copied calendar is an exact duplicate of an existing calendar. It inherits all the features of the original calendar, but you can modify it independently.

+

The key difference between a copied calendar and a derived calendar is how they are affected by changes to the original. If the original calendar is modified, the copied calendar remains unchanged. However, derived calendars are affected by changes made to the original, unless an exception is defined.

+

A common use case for copied calendars is when you have a calendar for one location, such as "Pontevedra," and you need a similar calendar for another location, such as "A Coruña," where most of the features are the same. However, changes to one calendar should not affect the other.

+

To create a copied calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Calendar administration option.
  • +
  • Select the calendar you want to copy and click the "Create" button.
  • +
  • The system will display an editing form with the same characteristics as the form used to create a calendar from scratch, except that the proposed exceptions and the working hours per weekday will be based on the original calendar.
  • +
+
+
+

Default Calendar

+

One of the existing calendars can be designated as the default calendar. This calendar will be automatically assigned to any entity in the system that is managed with calendars unless a different calendar is specified.

+

To set up a default calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Configuration option.
  • +
  • In the Default calendar field, select the calendar you want to use as the program's default calendar.
  • +
  • Click Save.
  • +
+
+images/default-calendar.png +

Setting a Default Calendar

+
+
+
+

Assigning a Calendar to Resources

+

Resources can only be activated (i.e., have available working hours) if they have an assigned calendar with a valid activation period. If no calendar is assigned to a resource, the default calendar is assigned automatically, with an activation period that begins on the start date and has no expiry date.

+
+images/resource-calendar.png +

Resource Calendar

+
+

However, you can delete the calendar that has been previously assigned to a resource and create a new calendar based on an existing one. This allows for complete customization of calendars for individual resources.

+

To assign a calendar to a resource:

+
    +
  • Go to the Edit resources option.
  • +
  • Select a resource and click Edit.
  • +
  • Select the "Calendar" tab.
  • +
  • The calendar, along with its exceptions, working hours per day, and activation periods, will be displayed.
  • +
  • Each tab will have the following options:
      +
    • Exceptions: Define exceptions and the period to which they apply, such as holidays, public holidays, or different workdays.
    • +
    • Working Week: Modify the working hours for each weekday (Monday, Tuesday, etc.).
    • +
    • Activation Periods: Create new activation periods to reflect the start and end dates of contracts associated with the resource. See the following image.
    • +
    +
  • +
  • Click Save to store the information.
  • +
  • Click Delete if you want to change the calendar assigned to a resource.
  • +
+
+images/new-resource-calendar.png +

Assigning a New Calendar to a Resource

+
+
+
+

Assigning Calendars to Orders

+

Projects can have a different calendar than the default calendar. To change the calendar for an order:

+
    +
  • Access the order list in the company overview.
  • +
  • Edit the order in question.
  • +
  • Access the "General information" tab.
  • +
  • Select the calendar to be assigned from the drop-down menu.
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+

Assigning Calendars to Tasks

+

Similar to resources and orders, you can assign specific calendars to individual tasks. This allows you to define different calendars for specific stages of a project. To assign a calendar to a task:

+
    +
  • Access the planning view of a project.
  • +
  • Right-click the task to which you want to assign a calendar.
  • +
  • Select the "Assign calendar" option.
  • +
  • Select the calendar to be assigned to the task.
  • +
  • Click Accept.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nb/04-avances.html b/libreplan-webapp/src/main/webapp/help/nb/04-avances.html new file mode 100644 index 000000000..615d6109f --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/04-avances.html @@ -0,0 +1,97 @@ + + + + + + +Progress + + + +
+

Progress

+ + +

Project progress indicates the degree to which the estimated completion time of the project is being met. Task progress indicates the degree to which the task is being completed according to its estimated completion.

+

Generally, progress cannot be measured automatically. A staff member with experience or a checklist must determine the degree of completion for a task or project.

+

It's important to note the distinction between the hours assigned to a task or project and the progress of that task or project. While the number of hours used may be more or less than expected, the project may be ahead of or behind its estimated completion on the monitored day. Several situations can arise from these two measurements:

+
    +
  • Fewer hours consumed than expected, but the project is behind schedule: Progress is lower than estimated for the monitored day.
  • +
  • Fewer hours consumed than expected, and the project is ahead of schedule: Progress is higher than estimated for the monitored day.
  • +
  • More hours consumed than expected, and the project is behind schedule: Progress is lower than estimated for the monitored day.
  • +
  • More hours consumed than expected, but the project is ahead of schedule: Progress is higher than estimated for the monitored day.
  • +
+

The planning view allows you to compare these situations by using information about the progress made and the hours used. This chapter will explain how to enter information to monitor progress.

+

The philosophy behind progress monitoring is based on users defining the level at which they want to monitor their projects. For example, if users want to monitor orders, they only need to enter information for level-1 elements. If they want more precise monitoring at the task level, they must enter progress information at lower levels. The system will then aggregate the data upward through the hierarchy.

+
+

Managing Progress Types

+

Companies have varying needs when monitoring project progress, particularly the tasks involved. Therefore, the system includes "progress types." Users can define different progress types to measure a task's progress. For example, a task can be measured as a percentage, but this percentage can also be translated into progress in Tonnes based on the agreement with the client.

+

A progress type has a name, a maximum value, and a precision value:

+
    +
  • Name: A descriptive name that users will recognize when selecting the progress type. This name should clearly indicate what kind of progress is being measured.
  • +
  • Maximum Value: The maximum value that can be established for a task or project as the total progress measurement. For example, if you're working with Tonnes and the normal maximum is 4000 tonnes, and no task will ever require more than 4000 tonnes of any material, then 4000 would be the maximum value.
  • +
  • Precision Value: The increment value allowed for the progress type. For example, if progress in Tonnes is to be measured in whole numbers, the precision value would be 1. From that point on, only whole numbers can be entered as progress measurements (e.g., 1, 2, 300).
  • +
+

The system has two default progress types:

+
    +
  • Percentage: A general progress type that measures the progress of a project or task based on an estimated completion percentage. For example, a task is 30% complete out of the 100% estimated for a specific day.
  • +
  • Units: A general progress type that measures progress in units without specifying the type of unit. For example, a task involves creating 3000 units, and the progress is 500 units out of the total of 3000.
  • +
+
+images/tipos-avances.png +

Administration of Progress Types

+
+

Users can create new progress types as follows:

+
    +
  • Go to the "Administration" section.
  • +
  • Click the "Manage types of progress" option in the second-level menu.
  • +
  • The system will display a list of existing progress types.
  • +
  • For each progress type, users can:
      +
    • Edit
    • +
    • Delete
    • +
    +
  • +
  • Users can then create a new progress type.
  • +
  • When editing or creating a progress type, the system displays a form with the following information:
      +
    • Name of the progress type.
    • +
    • Maximum value allowed for the progress type.
    • +
    • Precision value for the progress type.
    • +
    +
  • +
+
+
+

Entering Progress Based on Type

+

Progress is entered for order elements, but it can also be entered using a shortcut from the planning tasks. Users are responsible for deciding which progress type to associate with each order element.

+

Users can enter a single, default progress type for the entire order.

+

Before measuring progress, users must associate the chosen progress type with the order. For example, they might choose percentage progress to measure progress on the entire task or an agreed progress rate if progress measurements agreed upon with the client will be entered in the future.

+
+images/avance.png +

Progress Entry Screen with Graphic Visualization

+
+

To enter progress measurements:

+
    +
  • Select the progress type to which the progress will be added. +* If no progress type exists, a new one must be created.
  • +
  • In the form that appears under the "Value" and "Date" fields, enter the absolute value of the measurement and the date of the measurement.
  • +
  • The system automatically stores the entered data.
  • +
+
+
+

Comparing Progress for an Order Element

+

Users can graphically compare the progress made on orders with the measurements taken. All progress types have a column with a check button ("Show"). When this button is selected, the progress chart of measurements taken is displayed for the order element.

+
+images/contraste-avance.png +

Comparison of Several Progress Types

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nb/05-recursos.html b/libreplan-webapp/src/main/webapp/help/nb/05-recursos.html new file mode 100644 index 000000000..07190538a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/05-recursos.html @@ -0,0 +1,186 @@ + + + + + + +Resource Management + + + +
+

Resource Management

+ + +

The program manages two distinct types of resources: staff and machines.

+
+

Staff Resources

+

Staff resources represent the company's workers. Their key characteristics are:

+
    +
  • They fulfill one or more generic or worker-specific criteria.
  • +
  • They can be specifically assigned to a task.
  • +
  • They can be assigned generically to a task that requires a resource criterion.
  • +
  • They can have a default or a specific calendar, as needed.
  • +
+
+
+

Machine Resources

+

Machine resources represent the company's machinery. Their key characteristics are:

+
    +
  • They fulfill one or more generic or machine-specific criteria.
  • +
  • They can be specifically assigned to a task.
  • +
  • They can be assigned generically to a task that requires a machine criterion.
  • +
  • They can have a default or a specific calendar, as needed.
  • +
  • The program includes a configuration screen where an alpha value can be defined to represent the machine/worker ratio.
      +
    • The alpha value indicates the amount of worker time required to operate the machine. For example, an alpha value of 0.5 means that every 8 hours of machine operation requires 4 hours of a worker's time.
    • +
    • Users can assign an alpha value specifically to a worker, designating that worker to operate the machine for that percentage of time.
    • +
    • Users can also make a generic assignment based on a criterion, so that a percentage of use is assigned to all resources that meet that criterion and have available time. Generic assignment works similarly to generic assignment for tasks, as described previously.
    • +
    +
  • +
+
+
+

Managing Resources

+

Users can create, edit, and deactivate (but not permanently delete) workers and machines within the company by navigating to the "Resources" section. This section provides the following features:

+
    +
  • List of Workers: Displays a numbered list of workers, allowing users to manage their details.
  • +
  • List of Machines: Displays a numbered list of machines, allowing users to manage their details.
  • +
+
+

Managing Workers

+

Worker management is accessed by going to the "Resources" section and then selecting "List of workers." Users can edit any worker in the list by clicking the standard edit icon.

+

When editing a worker, users can access the following tabs:

+
    +
  1. Worker Details: This tab allows users to edit the worker's basic identification details:

    +
      +
    • Name
    • +
    • Surname(s)
    • +
    • National ID document (DNI)
    • +
    • Queue-based resource (see section on Queue-based Resources)
    • +
    +
    +images/worker-personal-data.png +

    Editing Workers' Personal Details

    +
    +
  2. +
  3. Criteria: This tab is used to configure the criteria that a worker fulfills. Users can assign any worker or generic criteria they deem appropriate. It's crucial for workers to fulfill criteria to maximize the program's functionality. To assign criteria:

    +
      +
    1. Click the "Add criteria" button.
    2. +
    3. Search for the criterion to be added and select the most appropriate one.
    4. +
    5. Click the "Add" button.
    6. +
    7. Select the start date when the criterion becomes applicable.
    8. +
    9. Select the end date for applying the criterion to the resource. This date is optional if the criterion is considered indefinite.
    10. +
    +
    +images/worker-criterions.png +

    Associating Criteria with Workers

    +
    +
  4. +
  5. Calendar: This tab allows users to configure a specific calendar for the worker. All workers have a default calendar assigned; however, it's possible to assign a specific calendar to each worker based on an existing calendar.

    +
    +images/worker-calendar.png +

    Calendar Tab for a Resource

    +
    +
  6. +
  7. Cost Category: This tab allows users to configure the cost category that a worker fulfills during a given period. This information is used to calculate the costs associated with a worker on a project.

    +
    +images/worker-costcategory.png +

    Cost Category Tab for a Resource

    +
    +
  8. +
+

Resource assignment is explained in the "Resource Assignment" section.

+
+
+

Managing Machines

+

Machines are treated as resources for all purposes. Therefore, similar to workers, machines can be managed and assigned to tasks. Resource assignment is covered in the "Resource Assignment" section, which will explain the specific features of machines.

+

Machines are managed from the "Resources" menu entry. This section has an operation called "Machine list," which displays the company's machines. Users can edit or delete a machine from this list.

+

When editing machines, the system displays a series of tabs for managing different details:

+
    +
  1. Machine Details: This tab allows users to edit the machine's identification details:

    +
      +
    1. Name
    2. +
    3. Machine code
    4. +
    5. Description of the machine
    6. +
    +
    +images/machine-data.png +

    Editing Machine Details

    +
    +
  2. +
  3. Criteria: As with worker resources, this tab is used to add criteria that the machine fulfills. Two types of criteria can be assigned to machines: machine-specific or generic. Worker criteria cannot be assigned to machines. To assign criteria:

    +
      +
    1. Click the "Add criteria" button.
    2. +
    3. Search for the criterion to be added and select the most appropriate one.
    4. +
    5. Select the start date when the criterion becomes applicable.
    6. +
    7. Select the end date for applying the criterion to the resource. This date is optional if the criterion is considered indefinite.
    8. +
    9. Click the "Save and continue" button.
    10. +
    +
    +images/machine-criterions.png +

    Assigning Criteria to Machines

    +
    +
  4. +
  5. Calendar: This tab allows users to configure a specific calendar for the machine. All machines have a default calendar assigned; however, it's possible to assign a specific calendar to each machine based on an existing calendar.

    +
    +images/machine-calendar.png +

    Assigning Calendars to Machines

    +
    +
  6. +
  7. Machine Configuration: This tab allows users to configure the ratio of machines to worker resources. A machine has an alpha value that indicates the machine/worker ratio. As mentioned previously, an alpha value of 0.5 indicates that 0.5 people are required for each full day of machine operation. Based on the alpha value, the system automatically assigns workers who are associated with the machine once the machine is assigned to a task. Associating a worker with a machine can be done in two ways:

    +
      +
    1. Specific Assignment: Assign a range of dates during which the worker is assigned to the machine. This is a specific assignment, as the system automatically assigns hours to the worker when the machine is scheduled.
    2. +
    3. Generic Assignment: Assign criteria that must be fulfilled by workers assigned to the machine. This creates a generic assignment of workers who meet the criteria.
    4. +
    +
    +images/machine-configuration.png +

    Configuration of Machines

    +
    +
  8. +
  9. Cost Category: This tab allows users to configure the cost category that a machine fulfills during a given period. This information is used to calculate the costs associated with a machine on a project.

    +
    +images/machine-costcategory.png +

    Assigning Cost Categories to Machines

    +
    +
  10. +
+
+
+

Virtual Worker Groups

+

The program allows users to create virtual worker groups, which are not real workers but simulated staff. These groups enable users to model increased production capacity at specific times, based on the calendar settings.

+

Virtual worker groups allow users to assess how project planning would be affected by hiring and assigning staff who meet specific criteria, thus aiding in the decision-making process.

+

The tabs for creating virtual worker groups are the same as those for configuring workers:

+
    +
  • General Details
  • +
  • Assigned Criteria
  • +
  • Calendars
  • +
  • Associated Hours
  • +
+

The difference between virtual worker groups and actual workers is that virtual worker groups have a name for the group and a quantity, which represents the number of real people in the group. There is also a field for comments, where additional information can be provided, such as which project would require hiring equivalent to the virtual worker group.

+
+images/virtual-resources.png +

Virtual Resources

+
+
+
+

Queue-based Resources

+

Queue-based resources are a specific type of productive element that can either be unassigned or have 100% dedication. In other words, they cannot have more than one task scheduled at the same time, nor can they be over-allocated.

+

For each queue-based resource, a queue is automatically created. The tasks scheduled for these resources can be managed specifically using the provided assignment methods, creating automatic assignments between tasks and queues that match the required criteria, or by moving tasks between queues.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nb/06-pedidos.html b/libreplan-webapp/src/main/webapp/help/nb/06-pedidos.html new file mode 100644 index 000000000..87fd79071 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/06-pedidos.html @@ -0,0 +1,315 @@ + + + + + + +Orders and Order Elements + + + +
+

Orders and Order Elements

+ + +

Orders represent the work to be performed by users of the program. Each order corresponds to a project that the company will offer to its clients.

+

An order consists of one or more order elements. Each order element represents a specific part of the work to be done and defines how the work on the order should be planned and executed. Order elements are organized hierarchically, with no limitations on the depth of the hierarchy. This hierarchical structure allows for the inheritance of certain features, such as labels.

+

The following sections describe the operations that users can perform with orders and order elements.

+
+

Orders

+

An order represents a project or work requested by a client from the company. The order identifies the project within the company's planning. Unlike comprehensive management programs, TASKPM only requires certain key details for an order. These details are:

+
    +
  • Order Name: The name of the order.
  • +
  • Order Code: A unique code for the order.
  • +
  • Total Order Amount: The total financial value of the order.
  • +
  • Estimated Start Date: The planned start date for the order.
  • +
  • End Date: The planned completion date for the order.
  • +
  • Person in Charge: The individual responsible for the order.
  • +
  • Description: A description of the order.
  • +
  • Assigned Calendar: The calendar associated with the order.
  • +
  • Automatic Generation of Codes: A setting to instruct the system to automatically generate codes for order elements and hour groups.
  • +
  • Preference between Dependencies and Restrictions: Users can choose whether dependencies or restrictions take priority in case of conflicts.
  • +
+

However, a complete order also includes other associated entities:

+
    +
  • Hours Assigned to the Order: The total hours allocated to the order.
  • +
  • Progress Attributed to the Order: The progress made on the order.
  • +
  • Labels: Labels assigned to the order.
  • +
  • Criteria Assigned to the Order: Criteria associated with the order.
  • +
  • Materials: Materials required for the order.
  • +
  • Quality Forms: Quality forms associated with the order.
  • +
+

Creating or editing an order can be done from several locations within the program:

+
    +
  • From the "Order List" in the Company Overview:
      +
    • Editing: Click the edit button on the desired order.
    • +
    • Creating: Click "New order."
    • +
    +
  • +
  • From an Order in the Gantt Chart: Change to the order details view.
  • +
+

Users can access the following tabs when editing an order:

+
    +
  • Editing Order Details: This screen allows users to edit basic order details:

    +
      +
    • Name
    • +
    • Code
    • +
    • Estimated Start Date
    • +
    • End Date
    • +
    • Person in Charge
    • +
    • Client
    • +
    • Description
    • +
    +
    +images/order-edition.png +

    Editing Orders

    +
    +
  • +
  • Order Element List: This screen allows users to perform several operations on order elements:

    +
      +
    • Creating new order elements.
    • +
    • Promoting an order element one level up in the hierarchy.
    • +
    • Demoting an order element one level down in the hierarchy.
    • +
    • Indenting an order element (moving it down the hierarchy).
    • +
    • Unindenting an order element (moving it up the hierarchy).
    • +
    • Filtering order elements.
    • +
    • Deleting order elements.
    • +
    • Moving an element within the hierarchy by dragging and dropping.
    • +
    +
    +images/order-elements-list.png +

    Order Element List

    +
    +
  • +
  • Assigned Hours: This screen displays the total hours attributed to the project, grouping the hours entered in the order elements.

    +
    +images/order-assigned-hours.png +

    Assigning Hours Attributed to the Order by Workers

    +
    +
  • +
  • Progress: This screen allows users to assign progress types and enter progress measurements for the order. See the "Progress" section for more details.

    +
  • +
  • Labels: This screen allows users to assign labels to an order and view previously assigned direct and indirect labels. See the following section on editing order elements for a detailed description of label management.

    +
    +images/order-labels.png +

    Order Labels

    +
    +
  • +
  • Criteria: This screen allows users to assign criteria that will apply to all tasks within the order. These criteria will be automatically applied to all order elements, except those that have been explicitly invalidated. The hour groups of order elements, which are grouped by criteria, can also be viewed, allowing users to identify the criteria required for an order.

    +
    +images/order-criterions.png +

    Order Criteria

    +
    +
  • +
  • Materials: This screen allows users to assign materials to orders. Materials can be selected from the available material categories in the program. Materials are managed as follows:

    +
      +
    • Select the "Search materials" tab at the bottom of the screen.
    • +
    • Enter text to search for materials or select the categories for which you want to find materials.
    • +
    • The system filters the results.
    • +
    • Select the desired materials (multiple materials can be selected by pressing the "Ctrl" key).
    • +
    • Click "Assign."
    • +
    • The system displays the list of materials already assigned to the order.
    • +
    • Select the units and the status to assign to the order.
    • +
    • Click "Save" or "Save and continue."
    • +
    • To manage the receipt of materials, click "Divide" to change the status of a partial quantity of material.
    • +
    +
    +images/order-material.png +

    Materials Associated with an Order

    +
    +
  • +
  • Quality: Users can assign a quality form to the order. This form is then completed to ensure that certain activities associated with the order are carried out. See the following section on editing order elements for details on managing quality forms.

    +
    +images/order-quality.png +

    Quality Form Associated with the Order

    +
    +
  • +
+
+
+

Editing Order Elements

+

Order elements are edited from the "Order element list" tab by clicking the edit icon. This opens a new screen where users can:

+
    +
  • Edit information about the order element.
  • +
  • View hours attributed to order elements.
  • +
  • Manage progress of order elements.
  • +
  • Manage order labels.
  • +
  • Manage criteria required by the order element.
  • +
  • Manage materials.
  • +
  • Manage quality forms.
  • +
+

The following subsections describe each of these operations in detail.

+
+

Editing Information about the Order Element

+

Editing information about the order element includes modifying the following details:

+
    +
  • Order Element Name: The name of the order element.
  • +
  • Order Element Code: A unique code for the order element.
  • +
  • Start Date: The planned start date of the order element.
  • +
  • Estimated End Date: The planned completion date of the order element.
  • +
  • Total Hours: The total hours allocated to the order element. These hours can be calculated from the added hour groups or entered directly. If entered directly, the hours must be distributed among the hour groups, and a new hour group created if the percentages do not match the initial percentages.
  • +
  • Hour Groups: One or more hour groups can be added to the order element. The purpose of these hour groups is to define the requirements for the resources that will be assigned to perform the work.
  • +
  • Criteria: Criteria can be added that must be met to enable generic assignment for the order element.
  • +
+
+images/order-element-edition.png +

Editing Order Elements

+
+
+
+

Viewing Hours Attributed to Order Elements

+

The "Assigned hours" tab allows users to view the work reports associated with an order element and see how many of the estimated hours have already been completed.

+
+images/order-element-hours.png +

Hours Assigned to Order Elements

+
+

The screen is divided into two parts:

+
    +
  • Work Report List: Users can view the list of work reports associated with the order element, including the date and time, resource, and number of hours devoted to the task.
  • +
  • Use of Estimated Hours: The system calculates the total number of hours devoted to the task and compares them with the estimated hours.
  • +
+
+
+

Managing Progress of Order Elements

+

Entering progress types and managing order element progress is described in the "Progress" chapter.

+
+
+

Managing Order Labels

+

Labels, as described in the chapter on labels, allow users to categorize order elements. This enables users to group planning or order information based on these labels.

+

Users can assign labels directly to an order element or to a higher-level order element in the hierarchy. Once a label is assigned using either method, the order element and the related planning task are associated with the label and can be used for subsequent filtering.

+
+images/order-element-tags.png +

Assigning Labels for Order Elements

+
+

As shown in the image, users can perform the following actions from the Labels tab:

+
    +
  • View Inherited Labels: View labels associated with the order element that were inherited from a higher-level order element. The planning task associated with each order element has the same associated labels.
  • +
  • View Directly Assigned Labels: View labels directly associated with the order element using the assignment form for lower-level labels.
  • +
  • Assign Existing Labels: Assign labels by searching for them among the available labels in the form below the direct label list. To search for a label, click the magnifying glass icon or enter the first letters of the label in the text box to display the available options.
  • +
  • Create and Assign New Labels: Create new labels associated with an existing label type from this form. To do this, select a label type and enter the label value for the selected type. The system automatically creates the label and assigns it to the order element when "Create and assign" is clicked.
  • +
+
+
+

Managing Criteria Required by the Order Element and Hour Groups

+

Both an order and an order element can have criteria assigned that must be met for the work to be performed. Criteria can be direct or indirect:

+
    +
  • Direct Criteria: These are assigned directly to the order element. They are criteria required by the hour groups on the order element.
  • +
  • Indirect Criteria: These are assigned to higher-level order elements in the hierarchy and are inherited by the element being edited.
  • +
+

In addition to the required criteria, one or more hour groups that are part of the order element can be defined. This depends on whether the order element contains other order elements as child nodes or if it is a leaf node. In the first case, information about hours and hour groups can only be viewed. However, leaf nodes can be edited. Leaf nodes work as follows:

+
    +
  • The system creates a default hour group associated with the order element. The details that can be modified for an hour group are:
      +
    • Code: The code for the hour group (if not automatically generated).
    • +
    • Criterion Type: Users can choose to assign a machine or worker criterion.
    • +
    • Number of Hours: The number of hours in the hour group.
    • +
    • List of Criteria: The criteria to be applied to the hour group. To add new criteria, click "Add criterion" and select one from the search engine that appears after clicking the button.
    • +
    +
  • +
  • Users can add new hour groups with different features than previous hour groups. For example, an order element might require a welder (30 hours) and a painter (40 hours).
  • +
+
+images/order-element-criterion.png +

Assigning Criteria to Order Elements

+
+
+
+

Managing Materials

+

Materials are managed in projects as a list associated with each order element or an order in general. The list of materials includes the following fields:

+
    +
  • Code: The material code.
  • +
  • Date: The date associated with the material.
  • +
  • Units: The required number of units.
  • +
  • Unit Type: The type of unit used to measure the material.
  • +
  • Unit Price: The price per unit.
  • +
  • Total Price: The total price (calculated by multiplying the unit price by the number of units).
  • +
  • Category: The category to which the material belongs.
  • +
  • Status: The status of the material (e.g., Received, Requested, Pending, Processing, Cancelled).
  • +
+

Working with materials is done as follows:

+
    +
  • Select the "Materials" tab on an order element.
  • +
  • The system displays two sub-tabs: "Materials" and "Search materials."
  • +
  • If the order element has no assigned materials, the first tab will be empty.
  • +
  • Click "Search materials" in the lower-left part of the window.
  • +
  • The system displays the list of available categories and associated materials.
  • +
+
+images/order-element-material-search.png +

Searching for Materials

+
+
    +
  • Select categories to refine the material search.
  • +
  • The system displays the materials that belong to the selected categories.
  • +
  • From the materials list, select the materials to assign to the order element.
  • +
  • Click "Assign."
  • +
  • The system displays the selected list of materials on the "Materials" tab with new fields to complete.
  • +
+
+images/order-element-material-assign.png +

Assigning Materials to Order Elements

+
+
    +
  • Select the units, status, and date for the assigned materials.
  • +
+

For subsequent monitoring of materials, it's possible to change the status of a group of units of the received material. This is done as follows:

+
    +
  • Click the "Divide" button on the list of materials to the right of each row.
  • +
  • Select the number of units to divide the row into.
  • +
  • The program displays two rows with the material divided.
  • +
  • Change the status of the row containing the material.
  • +
+

The advantage of using this dividing tool is the ability to receive partial deliveries of material without having to wait for the entire delivery to mark it as received.

+
+
+

Managing Quality Forms

+

Some order elements require certification that certain tasks have been completed before they can be marked as complete. This is why the program has quality forms, which consist of a list of questions that are considered important if answered positively.

+

It's important to note that a quality form must be created beforehand to be assigned to an order element.

+

To manage quality forms:

+
    +
  • Go to the "Quality forms" tab.

    +
    +images/order-element-quality.png +

    Assigning Quality Forms to Order Elements

    +
    +
  • +
  • The program has a search engine for quality forms. There are two types of quality forms: by element or by percentage.

    +
      +
    • Element: Each element is independent.
    • +
    • Percentage: Each question increases the progress of the order element by a percentage. The percentages must be able to add up to 100%.
    • +
    +
  • +
  • Select one of the forms created in the administration interface and click "Assign."

    +
  • +
  • The program assigns the chosen form from the list of forms assigned to the order element.

    +
  • +
  • Click the "Edit" button on the order element.

    +
  • +
  • The program displays the questions from the quality form in the lower list.

    +
  • +
  • Mark the questions that have been completed as achieved.

    +
      +
    • If the quality form is based on percentages, the questions are answered in order.
    • +
    • If the quality form is based on elements, the questions can be answered in any order.
    • +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nb/07-planificacion.html b/libreplan-webapp/src/main/webapp/help/nb/07-planificacion.html new file mode 100644 index 000000000..7b8954f83 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/07-planificacion.html @@ -0,0 +1,117 @@ + + + + + + +Task Planning + + + +
+

Task Planning

+ + +
+

Task Planning

+

Planning in TASKPM is a process that has been described throughout the user guide, with the chapters on orders and resource assignment being particularly important. This chapter describes the basic planning procedures after the order and Gantt charts have been properly configured.

+
+images/planning-view.png +

Work Planning View

+
+

As with the company overview, the project planning view is divided into several views based on the information being analyzed. The views available for a specific project are:

+
    +
  • Planning View
  • +
  • Resource Load View
  • +
  • Order List View
  • +
  • Advanced Assignment View
  • +
+
+

Planning View

+

The Planning View combines three different perspectives:

+
    +
  • Project Planning: Project planning is displayed in the upper right-hand part of the program as a Gantt chart. This view allows users to temporarily move tasks, assign dependencies between them, define milestones, and establish restrictions.
  • +
  • Resource Load: The Resource Load view, located in the lower right-hand part of the screen, shows resource availability based on assignments, as opposed to the assignments made to tasks. The information displayed in this view is as follows:
      +
    • Purple Area: Indicates a resource load below 100% of its capacity.
    • +
    • Green Area: Indicates a resource load below 100%, resulting from the resource being planned for another project.
    • +
    • Orange Area: Indicates a resource load over 100% as a result of the current project.
    • +
    • Yellow Area: Indicates a resource load over 100% as a result of other projects.
    • +
    +
  • +
  • Graph View and Earned Value Indicators: These can be viewed from the "Earned Value" tab. The generated graph is based on the earned value technique, and the indicators are calculated for each workday of the project. The calculated indicators are:
      +
    • BCWS (Budgeted Cost of Work Scheduled): The cumulative time function for the number of hours planned up to a certain date. It will be 0 at the planned start of the task and equal to the total number of planned hours at the end. As with all cumulative graphs, it will always increase. The function for a task will be the sum of the daily assignments until the calculation date. This function has values for all times, provided that resources have been assigned.
    • +
    • ACWP (Actual Cost of Work Performed): The cumulative time function for the hours reported in work reports up to a certain date. This function will only have a value of 0 before the date of the task's first work report, and its value will continue to increase as time passes and work report hours are added. It will have no value after the date of the last work report.
    • +
    • BCWP (Budgeted Cost of Work Performed): The cumulative time function that includes the resultant value of multiplying task progress by the amount of work that the task was estimated to require for completion. This function's values increase as time passes, as do progress values. Progress is multiplied by the total number of estimated hours for all tasks. The BCWP value is the sum of the values for the tasks being calculated. Progress is totaled when it is configured.
    • +
    • CV (Cost Variance): CV = BCWP - ACWP
    • +
    • SV (Schedule Variance): SV = BCWP - BCWS
    • +
    • BAC (Budget at Completion): BAC = max (BCWS)
    • +
    • EAC (Estimate at Completion): EAC = (ACWP / BCWP) * BAC
    • +
    • VAC (Variance at Completion): VAC = BAC - EAC
    • +
    • ETC (Estimate to Complete): ETC = EAC - ACWP
    • +
    • CPI (Cost Performance Index): CPI = BCWP / ACWP
    • +
    • SPI (Schedule Performance Index): SPI = BCWP / BCWS
    • +
    +
  • +
+

In the project planning view, users can perform the following actions:

+
    +
  • Assigning Dependencies: Right-click a task, choose "Add dependency," and drag the mouse pointer to the task to which the dependency should be assigned.
      +
    • To change the type of dependency, right-click the dependency and choose the desired type.
    • +
    +
  • +
  • Creating a New Milestone: Click the task before which the milestone is to be added and select the "Add milestone" option. Milestones can be moved by selecting the milestone with the mouse pointer and dragging it to the desired position.
  • +
  • Moving Tasks without Disturbing Dependencies: Right-click the body of the task and drag it to the desired position. If no restrictions or dependencies are violated, the system will update the daily assignment of resources to the task and place the task on the selected date.
  • +
  • Assigning Restrictions: Click the task in question and select the "Task properties" option. A pop-up window will appear with a "Restrictions" field that can be modified. Restrictions can conflict with dependencies, which is why each order specifies whether dependencies take priority over restrictions. The restrictions that can be established are:
      +
    • As Soon as Possible: Indicates that the task must start as soon as possible.
    • +
    • Not Before: Indicates that the task must not start before a certain date.
    • +
    • Start on a Specific Date: Indicates that the task must start on a specific date.
    • +
    +
  • +
+

The planning view also offers several procedures that function as viewing options:

+
    +
  • Zoom Level: Users can choose the desired zoom level. There are several zoom levels: annual, four-monthly, monthly, weekly, and daily.
  • +
  • Search Filters: Users can filter tasks based on labels or criteria.
  • +
  • Critical Path: As a result of using the Dijkstra algorithm to calculate paths on graphs, the critical path was implemented. It can be viewed by clicking the "Critical path" button in the viewing options.
  • +
  • Show Labels: Enables users to view the labels assigned to tasks in a project, which can be viewed on screen or printed.
  • +
  • Show Resources: Enables users to view the resources assigned to tasks in a project, which can be viewed on screen or printed.
  • +
  • Print: Enables users to print the Gantt chart being viewed.
  • +
+
+
+

Resource Load View

+

The Resource Load View provides a list of resources that contains a list of tasks or criteria that generate workloads. Each task or criterion is shown as a Gantt chart so that the start and end dates of the load can be seen. A different color is shown depending on whether the resource has a load that is higher or lower than 100%:

+
    +
  • Green: Load lower than 100%
  • +
  • Orange: 100% load
  • +
  • Red: Load over 100%
  • +
+
+images/resource-load.png +

Resource Load View for a Specific Order

+
+

If the mouse pointer is placed on the resource's Gantt chart, the load percentage for the worker will be shown.

+
+
+

Order List View

+

The Order List View allows users to access the order editing and deleting options. See the "Orders" chapter for more information.

+
+
+

Advanced Assignment View

+

The Advanced Assignment View is explained in depth in the "Resource Assignment" chapter.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nb/08-asignacion.html b/libreplan-webapp/src/main/webapp/help/nb/08-asignacion.html new file mode 100644 index 000000000..46da7239c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/08-asignacion.html @@ -0,0 +1,179 @@ + + + + + + +Resource Assignment + + + +
+

Resource Assignment

+ + +

Resource assignment is one of the program's most important features and can be carried out in two different ways:

+
    +
  • Specific assignment
  • +
  • Generic assignment
  • +
+

Both types of assignment are explained in the following sections.

+

To perform either type of resource assignment, the following steps are necessary:

+
    +
  • Go to the planning view of an order.
  • +
  • Right-click on the task to be planned.
  • +
+
+images/resource-assignment-planning.png +

Resource Assignment Menu

+
+
    +
  • The program displays a screen with the following information:
      +
    • List of Criteria to be Fulfilled: For each hour group, a list of required criteria is shown.
    • +
    • Task Information: The start and end dates of the task.
    • +
    • Type of Calculation: The system allows users to choose the strategy for calculating assignments:
        +
      • Calculate Number of Hours: This calculates the number of hours required from the assigned resources, given an end date and a number of resources per day.
      • +
      • Calculate End Date: This calculates the end date of the task based on the number of resources assigned to the task and the total number of hours required to complete the task.
      • +
      • Calculate Number of Resources: This calculates the number of resources required to finish the task by a specific date, given a known number of hours per resource.
      • +
      +
    • +
    • Recommended Assignment: This option allows the program to gather the criteria to be fulfilled and the total number of hours from all hour groups, and then recommend a generic assignment. If a prior assignment exists, the system deletes it and replaces it with the new one.
    • +
    • Assignments: A list of assignments that have been made. This list shows the generic assignments (the number will be the list of fulfilled criteria, and the number of hours and resources per day). Each assignment can be explicitly removed by clicking the delete button.
    • +
    +
  • +
+
+images/resource-assignment.png +

Resource Assignment

+
+
    +
  • Users select "Search resources."
  • +
  • The program displays a new screen consisting of a criteria tree and a list of workers who fulfill the selected criteria on the right:
  • +
+
+images/resource-assignment-search.png +

Resource Assignment Search

+
+
    +
  • Users can select:
      +
    • Specific Assignment: See the "Specific Assignment" section for details on this option.
    • +
    • Generic Assignment: See the "Generic Assignment" section for details on this option.
    • +
    +
  • +
  • Users select a list of criteria (generic) or a list of workers (specific). Multiple selections can be made by pressing the "Ctrl" key while clicking each worker/criterion.
  • +
  • Users then click the "Select" button. It's important to remember that if a generic assignment is not selected, users must choose a worker or machine to perform the assignment. If a generic assignment is selected, it is sufficient for users to choose one or more criteria.
  • +
  • The program then displays the selected criteria or resource list in the list of assignments on the original resource assignment screen.
  • +
  • Users must choose the hours or resources per day, depending on the assignment method used in the program.
  • +
+
+

Specific Assignment

+

This is the specific assignment of a resource to a project task. In other words, the user decides which specific worker (by name and surname) or machine must be assigned to a task.

+

Specific assignment can be carried out on the screen shown in this image:

+
+images/asignacion-especifica.png +

Specific Resource Assignment

+
+

When a resource is specifically assigned, the program creates daily assignments based on the percentage of daily assigned resources selected, after comparing it with the available resource calendar. For example, an assignment of 0.5 resources for a 32-hour task means that 4 hours per day are assigned to the specific resource to complete the task (assuming a working calendar of 8 hours per day).

+
+

Specific Machine Assignment

+

Specific machine assignment functions in the same way as worker assignment. When a machine is assigned to a task, the system stores a specific assignment of hours for the chosen machine. The main difference is that the system searches the list of assigned workers or criteria at the moment the machine is assigned:

+
    +
  • If the machine has a list of assigned workers, the program chooses from those that are required by the machine, based on the assigned calendar. For example, if the machine calendar is 16 hours per day and the resource calendar is 8 hours, two resources are assigned from the list of available resources.
  • +
  • If the machine has one or more assigned criteria, generic assignments are made from among the resources that fulfill the criteria assigned to the machine.
  • +
+
+
+
+

Generic Assignment

+

Generic assignment occurs when users do not choose resources specifically but leave the decision to the program, which distributes the loads among the company's available resources.

+
+images/asignacion-xenerica.png +

Generic Resource Assignment

+
+

The assignment system uses the following assumptions as a basis:

+
    +
  • Tasks have criteria that are required from resources.
  • +
  • Resources are configured to fulfill criteria.
  • +
+

However, the system does not fail when criteria have not been assigned, but when all resources fulfill the non-requirement of criteria.

+

The generic assignment algorithm functions as follows:

+
    +
  • All resources and days are treated as containers where daily assignments of hours fit, based on the maximum assignment capacity in the task calendar.
  • +
  • The system searches for the resources that fulfill the criterion.
  • +
  • The system analyzes which assignments currently have different resources that fulfill criteria.
  • +
  • The resources that fulfill the criteria are chosen from those that have sufficient availability.
  • +
  • If freer resources are not available, assignments are made to the resources that have less availability.
  • +
  • Over-assignment of resources only begins when all the resources that fulfill the respective criteria are 100% assigned, until the total amount required to carry out the task is attained.
  • +
+
+

Generic Machine Assignment

+

Generic machine assignment functions in the same way as worker assignment. For example, when a machine is assigned to a task, the system stores a generic assignment of hours for all machines that fulfill the criteria, as described for resources in general. However, in addition, the system performs the following procedure for machines:

+
    +
  • For all machines chosen for generic assignment:
      +
    • It collects the machine's configuration information: alpha value, assigned workers, and criteria.
    • +
    • If the machine has an assigned list of workers, the program chooses the number required by the machine, depending on the assigned calendar. For example, if the machine calendar is 16 hours per day and the resource calendar is 8 hours, the program assigns two resources from the list of available resources.
    • +
    • If the machine has one or more assigned criteria, the program makes generic assignments from among the resources that fulfill the criteria assigned to the machine.
    • +
    +
  • +
+
+
+
+

Advanced Assignment

+

Advanced assignments allow users to design assignments that are automatically carried out by the application to personalize them. This procedure allows users to manually choose the daily hours that are dedicated by resources to assigned tasks or define a function that is applied to the assignment.

+

The steps to follow to manage advanced assignments are:

+
    +
  • Go to the advanced assignment window. There are two ways to access advanced assignments:
      +
    • Go to a specific order and change the view to advanced assignment. In this case, all the tasks on the order and assigned resources (specific and generic) will be shown.
    • +
    • Go to the resource assignment window by clicking the "Advanced assignment" button. In this case, the assignments that show the resources (generic and specific) assigned to a task will be shown.
    • +
    +
  • +
+
+images/advance-assignment.png +

Advanced Resource Assignment

+
+
    +
  • Users can choose the desired zoom level:
      +
    • Zoom Levels Greater Than One Day: If users change the assigned hour value to a week, month, four-month, or six-month period, the system distributes the hours linearly across all days throughout the chosen period.
    • +
    • Daily Zoom: If users change the assigned hour value to a day, these hours only apply to that day. Consequently, users can decide how many hours they want to assign per day to task resources.
    • +
    +
  • +
  • Users can choose to design an advanced assignment function. To do so, users must:
      +
    • Choose the function from the selection list that appears next to each resource and click "Configure."
    • +
    • The system displays a new window if the chosen function needs to be specifically configured. Supported functions:
        +
      • Segments: A function that allows users to define segments to which a polynomial function is applied. The function per segment is configured as follows:
          +
        • Date: The date on which the segment ends. If the following value (length) is established, the date is calculated; alternatively, length is calculated.
        • +
        • Defining the Length of Each Segment: This indicates what percentage of the task's duration is required for the segment.
        • +
        • Defining the Amount of Work: This indicates what workload percentage is expected to be completed in this segment. The quantity of work must be incremental. For example, if there is a 10% segment, the next one must be larger (for example, 20%).
        • +
        • Segment Graphs and Accumulated Loads.
        • +
        +
      • +
      +
    • +
    • Users then click "Accept."
    • +
    • The program stores the function and applies it to the daily resource assignments.
    • +
    +
  • +
+
+images/stretches.png +

Configuration of the Segment Function

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nb/09-partes.html b/libreplan-webapp/src/main/webapp/help/nb/09-partes.html new file mode 100644 index 000000000..90242b6c7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/09-partes.html @@ -0,0 +1,84 @@ + + + + + + +Work Reports + + + +
+

Work Reports

+ + +

Work reports enable the monitoring of the hours that resources dedicate to the tasks to which they are assigned.

+

The program allows users to configure new forms for entering dedicated hours, specifying the fields that they want to appear in these forms. This allows for the incorporation of reports from tasks carried out by workers and the monitoring of worker activity.

+

Before users can add entries for resources, they must define at least one work report type. This type defines the structure of the report, including all the rows that are added to it. Users can create as many work report types as necessary within the system.

+
+

Work Report Types

+

A work report consists of a series of fields that are common to the entire report and a set of work report lines with specific values for the fields defined in each row. For example, resources and tasks are common to all reports. However, there can be other new fields, such as "incidents," which are not required in all report types.

+

Users can configure different work report types so that a company can design its reports to meet its specific needs:

+
+images/work-report-types.png +

Work Report Types

+
+

The administration of work report types allows users to configure these types and add new text fields or optional tags. In the first tab for editing work report types, it is possible to configure the type for the mandatory attributes (whether they apply to the whole report or are specified at the line level) and add new optional fields.

+

The mandatory fields that must appear in all work reports are as follows:

+
    +
  • Name and Code: Identification fields for the name of the work report type and its code.
  • +
  • Date: Field for the date of the report.
  • +
  • Resource: Worker or machine appearing on the report or work report line.
  • +
  • Order Element: Code for the order element to which the performed work is attributed.
  • +
  • Hour Management: Determines the hour attribution policy to be used, which can be:
      +
    • According to Assigned Hours: Hours are attributed based on the assigned hours.
    • +
    • According to Start and Finish Times: Hours are calculated based on the start and finish times.
    • +
    • According to the Number of Hours and Start and Finish Range: Discrepancies are allowed, and the number of hours takes priority.
    • +
    +
  • +
+

Users can add new fields to the reports:

+
    +
  • Tag Type: Users can request the system to display a tag when completing the work report. For example, the client tag type, if the user wishes to enter the client for whom the work was carried out in each report.
  • +
  • Free Fields: Fields where text can be entered freely in the work report.
  • +
+
+images/work-report-type.png +

Creating a Work Report Type with Personalized Fields

+
+

Users can configure date, resource, and order element fields to appear in the header of the report, which means they apply to the entire report, or they can be added to each of the rows.

+

Finally, new additional text fields or tags can be added to the existing ones, in the work report header or in each line, by using the "Additional text" and "Tag type" fields, respectively. Users can configure the order in which these elements are to be entered in the "Management of additional fields and tags" tab.

+
+
+

Work Report List

+

Once the format of the reports to be incorporated into the system has been configured, users can enter the details in the created form according to the structure defined in the corresponding work report type. To do this, users need to follow these steps:

+
    +
  • Click the "New work report" button associated with the desired report from the list of work report types.
  • +
  • The program then displays the report based on the configurations given for the type. See the following image.
  • +
+
+images/work-report-type.png +

Structure of the Work Report Based on Type

+
+
    +
  • Select all the fields shown for the report:
      +
    • Resource: If the header has been chosen, the resource is only shown once. Alternatively, for each line of the report, it is necessary to choose a resource.
    • +
    • Task Code: Code of the task to which the work report is being assigned. Similar to the rest of the fields, if the field is in the header, the value is entered once or as many times as necessary on the lines of the report.
    • +
    • Date: Date of the report or each line, depending on whether the header or line is configured.
    • +
    • Number of Hours: The number of work hours in the project.
    • +
    • Start and Finish Times: Start and finish times for the work in order to calculate definitive work hours. This field only appears in the case of the hour assignment policies, "According to Start and Finish Times" and "According to the Number of Hours and Start and Finish Range."
    • +
    • Type of Hours: Enables users to choose the type of hour, e.g., "Normal," "Extraordinary," etc.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nb/10-etiquetas.html b/libreplan-webapp/src/main/webapp/help/nb/10-etiquetas.html new file mode 100644 index 000000000..eb6451798 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/10-etiquetas.html @@ -0,0 +1,68 @@ + + + + + + +Labels + + + +
+

Labels

+ +
+

Contents

+ +
+

Labels are entities used in the program to conceptually organize tasks or order elements.

+

Labels are categorized according to label type. A label can only belong to one label type; however, users can create many similar labels belonging to different label types.

+
+

Label Types

+

Label types are used to group the types of labels that users want to manage in the program. Here are some examples of possible label types:

+
    +
  • Client: Users may be interested in labeling tasks, orders, or order elements in relation to the client who requests them.
  • +
  • Area: Users may be interested in labeling tasks, orders, or order elements in relation to the areas in which they are carried out.
  • +
+

The administration of label types is managed from the "Administration" menu option. This is where users can edit label types, create new label types, and add labels to label types. Users can access the list of labels from this option.

+
+images/tag-types-list.png +

List of Label Types

+
+

From the list of label types, users can:

+
    +
  • Create a new label type.
  • +
  • Edit an existing label type.
  • +
  • Delete a label type with all of its labels.
  • +
+

Editing and creating labels share the same form. From this form, the user can assign a name to the label type, create or delete labels, and store the changes. The procedure is as follows:

+
    +
  • Select a label to edit or click the create button for a new one.
  • +
  • The system displays a form with a text entry for the name and a list of text entries with existing and assigned labels.
  • +
  • If users wish to add a new label, they must click the "New label" button.
  • +
  • The system displays a new row on the list with an empty text box that users must edit.
  • +
  • Users enter a name for the label.
  • +
  • The system adds the name to the list.
  • +
  • Users click "Save" or "Save and continue" to continue editing the form.
  • +
+
+images/tag-types-edition.png +

Editing Label Types

+
+
+
+

Labels

+

Labels are entities that belong to a label type. These entities can be assigned to order elements. Assigning a label to an order element means that all the elements descending from this element will inherit the label to which they belong. Having an assigned label means that these entities can be filtered where searches can be carried out:

+
    +
  • Search for tasks in the Gantt chart.
  • +
  • Search for order elements in the list of order elements.
  • +
  • Filters for reports.
  • +
+

The assignment of labels to order elements is covered in the chapter on orders.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nb/11-materiales.html b/libreplan-webapp/src/main/webapp/help/nb/11-materiales.html new file mode 100644 index 000000000..a06770897 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/11-materiales.html @@ -0,0 +1,54 @@ + + + + + + +Materials Management + + + +
+

Materials Management

+ +
+

Contents

+ +
+
+

Administration of Materials

+

Users can manage a basic database of materials, organized by categories.

+

Categories are containers to which specific materials and other categories can be assigned. They are stored in a hierarchical tree structure, as materials can belong to leaf categories or intermediary categories.

+

To manage categories, users must follow these steps:

+
    +
  • Go to the "Administration -> Materials" option.
  • +
  • The program displays a tree of categories.
  • +
  • Enter a category name in the text box and then click "Add."
  • +
  • The program adds the category to the tree.
  • +
+

To insert a category into the category tree, users must first select the parent category in the tree and then click "Add."

+
+images/material.png +

Material Administration Screen

+
+

To manage materials, users must follow these steps:

+
    +
  • Select the category to which materials are to be added and click "Add" to the right of "Materials."
  • +
  • The program adds a new empty row with fields to enter details about the material:
      +
    • Code: Material type code (this can be the external code from an ERP).
    • +
    • Description: Description of the material.
    • +
    • Unit Price: Unit price of each piece of material.
    • +
    • Unit: Unit used to measure each unit of material.
    • +
    • Category: Category to which the material belongs.
    • +
    • Availability: Indicates whether or not the material is active.
    • +
    +
  • +
  • Users complete the fields and click "Save."
  • +
+

The assignment of materials to order elements is explained in the chapter on "Orders."

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nb/12-formularios-calidad.html b/libreplan-webapp/src/main/webapp/help/nb/12-formularios-calidad.html new file mode 100644 index 000000000..97a584178 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/12-formularios-calidad.html @@ -0,0 +1,52 @@ + + + + + + +Quality Forms + + + +
+

Quality Forms

+ + +
+

Administration of Quality Forms

+

Quality forms consist of a list of questions or statements that indicate the tasks or processes that should have been completed before a task can be marked as complete by the company. These forms include the following fields:

+
    +
  • Name: The name of the quality form.
  • +
  • Description: A description of the quality form.
  • +
  • Type of Quality Form: The type can have two values:
      +
    • Percentage: Indicates that the questions must be answered in a logical order, and affirmative answers indicate that the task is progressing. For example, a basic process for a task might suggest that the task is 15% complete. Users must answer a question before proceeding to the next one.
    • +
    • Item: Indicates that the questions do not need to be answered in a logical order and can be answered in any sequence.
    • +
    +
  • +
+

Users must follow these steps to manage quality forms:

+
    +
  • From the "Administration" menu, access the "Quality forms" option.
  • +
  • Click "Edit" on an existing form or click "Create" to create a new one.
  • +
  • The program displays a form with fields for the name, description, and type.
  • +
  • Select the type.
  • +
  • The program displays the fields that are allowed for each type:
      +
    • Percentage: Question and percentage.
    • +
    • Item: Question.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+images/quality.png +

Quality Form Administration Screen

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nb/13-usuarios.html b/libreplan-webapp/src/main/webapp/help/nb/13-usuarios.html new file mode 100644 index 000000000..f46a23ded --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/13-usuarios.html @@ -0,0 +1,79 @@ + + + + + + +User Management + + + +
+

User Management

+ +
+

Contents

+ +
+
+

Managing Users

+

TASKPM's system allows administrators to manage user profiles, authorizations, and users. Users are assigned to user profiles, which can have a series of predefined roles that grant access to the program's features. Roles are defined authorizations within TASKPM. Examples of roles include:

+
    +
  • Administration: A role that must be assigned to administrators to enable them to perform administrative operations.
  • +
  • Web Service Reader: A role required for users to consult the program's web services.
  • +
  • Web Service Writer: A role required for users to write data via the program's web services.
  • +
+

Roles are predefined within the system. A user profile consists of one or more roles. Users must have specific roles to perform certain operations.

+

Users can be assigned one or more profiles, or one or more roles directly, allowing for specific or generic authorization to be granted.

+

To manage users, follow these steps:

+
    +
  • Go to "Manage users" in the "Administration" menu.
  • +
  • The program displays a form with a list of users.
  • +
  • Click the edit button for the desired user or click the "Create" button.
  • +
  • A form will appear with the following fields:
      +
    • User Name: The user's login name.
    • +
    • Password: The user's password.
    • +
    • Authorized/Unauthorized: A setting to enable or disable the user's account.
    • +
    • Email: The user's email address.
    • +
    • List of Associated Roles: To add a new role, users must search for a role in the selection list and click "Assign."
    • +
    • List of Associated Profiles: To add a new profile, users must search for a profile in the selection list and click "Assign."
    • +
    +
  • +
+
+images/manage-user.png +

Managing Users

+
+
    +
  • Click "Save" or "Save and continue."
  • +
+
+

Managing Profiles

+

To manage the program's profiles, users must follow these steps:

+
    +
  • Go to "Manage user profiles" in the "Administration" menu.
  • +
  • The program displays a list of profiles.
  • +
  • Click the edit button for the desired profile or click "Create."
  • +
  • A form appears in the program with the following fields:
      +
    • Name: The name of the user profile.
    • +
    • List of Roles (Authorizations): To add a role to the profile, users must select a role from the role list and click "Add."
    • +
    +
  • +
+
+images/manage-user-profile.png +

Managing User Profiles

+
+
    +
  • Click "Save" or "Save and continue," and the system will store the created or modified profile.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nb/14-custos.html b/libreplan-webapp/src/main/webapp/help/nb/14-custos.html new file mode 100644 index 000000000..5c35ce71d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/14-custos.html @@ -0,0 +1,110 @@ + + + + + + +Cost management + + + +
+

Cost management

+ +
+

Contents

+ +
+
+

Costs

+

Cost management allows users to estimate the costs of resources used in a project. To manage costs, the following entities must be defined:

+
    +
  • Hour Types: These indicate the types of hours worked by a resource. Users can define hour types for both machines and workers. Examples of hour types include: "Additional hours paid at €20 per hour." The following fields can be defined for hour types:
      +
    • Code: External code for the hour type.
    • +
    • Name: Name of the hour type. For example, "Additional."
    • +
    • Default Rate: Basic default rate for the hour type.
    • +
    • Activation: Indicates whether the hour type is active or not.
    • +
    +
  • +
  • Cost Categories: Cost categories define the costs associated with different hour types during specific periods (which may be indefinite). For example, the cost of additional hours for first-grade skilled workers in the following year is €24 per hour. Cost categories include:
      +
    • Name: Cost category name.
    • +
    • Activation: Indicates whether the category is active or not.
    • +
    • List of Hour Types: This list defines the hour types included in the cost category. It specifies the periods and rates for each hour type. For example, as rates change, each year can be included on this list as an hour type period, with a specific hourly rate for each hour type (which may differ from the default hourly rate for that hour type).
    • +
    +
  • +
+
+

Managing Hour Types

+

Users must follow these steps to register hour types:

+
    +
  • Select "Manage hour types worked" on the "Administration" menu.
  • +
  • The program displays a list of existing hour types.
  • +
+
+images/hour-type-list.png +

Hour Type List

+
+
    +
  • Click "Edit" or "Create."
  • +
  • The program displays an hour type editing form.
  • +
+
+images/hour-type-edit.png +

Editing Hour Types

+
+
    +
  • Users can enter or change:
      +
    • The hour type name.
    • +
    • The hour type code.
    • +
    • The default rate.
    • +
    • Hour type activation/deactivation.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+

Cost Categories

+

Users must follow these steps to register cost categories:

+
    +
  • Select "Manage cost categories" on the "Administration" menu.
  • +
  • The program displays a list of existing categories.
  • +
+
+images/category-cost-list.png +

Cost Category List

+
+
    +
  • Click the "Edit" or "Create" button.
  • +
  • The program displays a cost category editing form.
  • +
+
+images/category-cost-edit.png +

Editing Cost Categories

+
+
    +
  • Users enter or change:
      +
    • The name of the cost category.
    • +
    • The activation/deactivation of the cost category.
    • +
    • The list of hour types included in the category. All hour types have the following fields:
        +
      • Hour Type: Choose one of the existing hour types in the system. If none exist, an hour type must be created (this process is explained in the previous subsection).
      • +
      • Start and Finish Date: The start and finish dates (the latter is optional) for the period that applies to the cost category.
      • +
      • Hourly Rate: The hourly rate for this specific category.
      • +
      +
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+

The assignment of cost categories to resources is described in the chapter on resources. Go to the "Resources" section.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nb/15-1-report-hours-worked-by-resource.html b/libreplan-webapp/src/main/webapp/help/nb/15-1-report-hours-worked-by-resource.html new file mode 100644 index 000000000..f97f118aa --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/15-1-report-hours-worked-by-resource.html @@ -0,0 +1,101 @@ + + + + + + +Hours Worked by Resource Report + + + +
+

Hours Worked by Resource Report

+ + +
+

Purpose

+

This report extracts a list of tasks and the time resources have dedicated to them within a specified period. Several filters allow users to refine the query to obtain only the desired information and exclude extraneous data.

+
+
+

Input Parameters and Filters

+
    +
  • +
    Dates.
    +
      +
    • Type: Optional.
    • +
    • +
      Two date fields:
      +
        +
      • Start Date: This is the earliest date for work reports to be included. Work reports with dates earlier than the Start Date are excluded. If this parameter is left blank, work reports are not filtered by Start Date.
      • +
      • End Date: This is the latest date for work reports to be included. Work reports with dates later than the End Date are excluded. If this parameter is left blank, work reports are not filtered by End Date.
      • +
      +
      +
      +
    • +
    +
    +
    +
  • +
  • Filter by Workers: +* Type: Optional. +* How it works: You can select one or more workers to restrict the work reports to the time tracked by those specific workers. To add a worker as a filter, search for them in the selector and click the Add button. If this filter is left empty, work reports are retrieved regardless of the worker.
  • +
  • Filter by Labels: +* Type: Optional. +* How it works: You can add one or more labels to use as filters by searching for them in the selector and clicking the Add button. These labels are used to select the tasks to be included in the results when calculating the hours dedicated to them. This filter can be applied to timesheets, tasks, both, or neither.
  • +
  • Filter by Criteria: +* Type: Optional. +* How it works: You can select one or more criteria by searching for them in the selector and then clicking the Add button. These criteria are used to select the resources that satisfy at least one of them. The report will show all the time dedicated by the resources that meet one of the selected criteria.
  • +
+
+
+

Output

+
+

Heading

+

The report heading displays the filters that were configured and applied to the current report.

+
+ +
+

Body

+

The report body consists of several groups of information.

+
    +
  • The first level of aggregation is by resource. All the time dedicated by a resource is shown together below the header. Each resource is identified by:

    +
      +
    • Worker: Surname, First Name.
    • +
    • Machine: Name.
    • +
    +

    A summary line shows the total number of hours worked by the resource.

    +
  • +
  • The second level of grouping is by date. All the reports from a specific resource on the same date are shown together.

    +

    A summary line shows the total number of hours worked by the resource on that date.

    +
  • +
  • The final level lists the work reports for the worker on that day. The information displayed for each work report line is:

    +
      +
    • Task Code: The code of the task to which the tracked hours are attributed.
    • +
    • Task Name: The name of the task to which the tracked hours are attributed.
    • +
    • Starting Time: This is optional. It is the time at which the resource began working on the task.
    • +
    • Ending Time: This is optional. It is the time at which the resource finished working on the task on the specified date.
    • +
    • Text Fields: This is optional. If the work report line has text fields, the filled values are shown here. The format is: <Name of the text field>:<Value>
    • +
    • Labels: This depends on whether the work report model has a label field in its definition. If there are multiple labels, they are shown in the same column. The format is: <Name of the label type>:<Value of the label>
    • +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nb/15-2-total-hours-by-resource-month.html b/libreplan-webapp/src/main/webapp/help/nb/15-2-total-hours-by-resource-month.html new file mode 100644 index 000000000..246cfc9c1 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/15-2-total-hours-by-resource-month.html @@ -0,0 +1,67 @@ + + + + + + +Total Hours Worked by Resource in a Month Report + + + +
+

Total Hours Worked by Resource in a Month Report

+ + +
+

Purpose

+

This report provides the total number of hours worked by each resource in a given month. This information can be useful for determining worker overtime or, depending on the organization, the number of hours for which each resource should be compensated.

+

The application tracks work reports for both workers and machines. For machines, the report sums up the number of hours they were in operation during the month.

+
+
+

Input Parameters and Filters

+

To generate this report, users must specify the year and month for which they want to retrieve the total number of hours worked by each resource.

+
+
+

Output

+

The output format is as follows:

+ + +
+

Body

+

The data section of the report consists of a single table with two columns:

+
+
    +
  • One column labeled Name for the name of the resource.
  • +
  • One column labeled Hours with the total number of hours worked by the resource in that row.
  • +
+
+

There is a final row that aggregates the total number of hours worked by all resources during the specified month and year.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nb/15-3-work-progress-per-project.html b/libreplan-webapp/src/main/webapp/help/nb/15-3-work-progress-per-project.html new file mode 100644 index 000000000..e2f5053a9 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/15-3-work-progress-per-project.html @@ -0,0 +1,125 @@ + + + + + + +Work and Progress per Project Report + + + +
+

Work and Progress per Project Report

+ + +
+

Purpose

+

This report provides an overview of the status of projects, considering both progress and cost.

+

It analyzes the current progress of each project, comparing it with the planned progress and the work completed.

+

The report also displays several ratios related to project cost, comparing current performance with the planned performance.

+
+
+

Input Parameters and Filters

+

There are several mandatory parameters:

+
+
    +
  • Reference Date: This is the date used as a reference point for comparing the planned status of the project with its actual performance. The default value for this field is the current date.
  • +
  • Progress Type: This is the progress type used to measure project progress. The application allows a project to be measured simultaneously with different progress types. The type selected by the user in the dropdown menu is used for calculating the report data. The default value for the progress type is spread, which is a special progress type that uses the preferred method of measuring progress configured for each WBS element.
  • +
+
+

The optional parameters are:

+
+
    +
  • Starting Date: This is the earliest start date for projects to be included in the report. If this field is left blank, there is no minimum start date for the projects.
  • +
  • Ending Date: This is the latest end date for projects to be included in the report. All projects that finish after the Ending Date will be excluded.
  • +
  • Filter by Projects: This filter allows users to select the specific projects to be included in the report. If no projects are added to the filter, the report will include all projects in the database. A searchable dropdown menu is provided to find the desired project. Projects are added to the filter by clicking the Add button.
  • +
+
+
+
+

Output

+

The output format is as follows:

+
+

Heading

+

The report header displays the following fields:

+
+
    +
  • Starting Date: The filtering start date. This is not displayed if the report is not filtered by this field.
  • +
  • Ending Date: The filtering end date. This is not displayed if the report is not filtered by this field.
  • +
  • Progress Type: The progress type used for the report.
  • +
  • Projects: This indicates the filtered projects for which the report is generated. It will show the string All when the report includes all projects that satisfy the other filters.
  • +
  • Reference Date: The mandatory input reference date selected for the report.
  • +
+
+
+ +
+

Body

+

The body of the report consists of a list of projects selected based on the input filters.

+

Filters work by adding conditions, except for the set formed by the date filters (Starting Date, Ending Date) and the Filter by Projects. In this case, if one or both date filters are filled and the Filter by Projects has a list of selected projects, the latter filter takes precedence. This means that the projects included in the report are those provided by the Filter by Projects, regardless of the date filters.

+

It's important to note that progress in the report is calculated as a fraction of unity, ranging between 0 and 1.

+

For each project selected for inclusion in the report output, the following information is displayed:

+
+
    +
  • Project Name.
  • +
  • +
    Total Hours. The total hours for the project are shown by adding the hours for each task. Two types of total hours are shown:
    +
      +
    • Estimated (TE). This is the sum of all the estimated hours in the project's WBS. It represents the total number of hours estimated to complete the project.
    • +
    • Planned (TP). In TASKPM, it's possible to have two different quantities: the estimated number of hours for a task (the number of hours initially estimated to complete the task) and the planned hours (the hours allocated in the plan to complete the task). The planned hours can be equal to, less than, or greater than the estimated hours and are determined in a later phase, the assignment operation. Therefore, the total planned hours for a project are the sum of all the allocated hours for its tasks.
    • +
    +
    +
    +
  • +
  • +
    Progress. Three measurements related to the overall progress of the type specified in the progress input filter for each project at the reference date are shown:
    +
      +
    • Measured (PM). This is the overall progress considering the progress measurements with a date earlier than the Reference Date in the input parameters of the report. All tasks are taken into account, and the sum is weighted by the number of hours for each task.
    • +
    • Imputed (PI). This is the progress assuming that work continues at the same pace as the hours completed for a task. If X hours out of Y hours for a task are completed, the overall imputed progress is considered to be X/Y.
    • +
    • Planned (PP). This is the overall progress of the project according to the planned schedule at the reference date. If everything happened exactly as planned, the measured progress should be the same as the planned progress.
    • +
    +
    +
    +
  • +
  • +
    Hours up to Date. There are two fields that show the number of hours up to the reference date from two perspectives:
    +
      +
    • Planned (HP). This number is the sum of the hours allocated to any task in the project with a date less than or equal to the Reference Date.
    • +
    • Actual (HR). This number is the sum of the hours reported in the work reports for any of the tasks in the project with a date less than or equal to the Reference Date.
    • +
    +
    +
    +
  • +
  • +
    Difference. Under this heading, there are several metrics related to cost:
    +
      +
    • Cost. This is the difference in hours between the number of hours spent, considering the measured progress, and the hours completed up to the reference date. The formula is: PM*TP - HR.
    • +
    • Planned. This is the difference between the hours spent according to the overall measured project progress and the number planned up to the Reference Date. It measures the advantage or delay in time. The formula is: PM*TP - HP.
    • +
    • Cost Ratio. This is calculated by dividing PM / PI. If it is greater than 1, it means that the project is profitable at this point. If it is less than 1, it means that the project is losing money.
    • +
    • Planned Ratio. This is calculated by dividing PM / PP. If it is greater than 1, it means that the project is ahead of schedule. If it is less than 1, it means that the project is behind schedule.
    • +
    +
    +
    +
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nb/15-informes.html b/libreplan-webapp/src/main/webapp/help/nb/15-informes.html new file mode 100644 index 000000000..c2c7cafab --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/15-informes.html @@ -0,0 +1,26 @@ + + + + + + +Reports + + + +
+

Reports

+ +

TASKPM integrates with JasperReports to provide report management, enabling users to generate various reports for analyzing the data available in the program.

+

The available reports are:

+ +
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nb/16-ldap-authentication.html b/libreplan-webapp/src/main/webapp/help/nb/16-ldap-authentication.html new file mode 100644 index 000000000..ad5d4976d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/16-ldap-authentication.html @@ -0,0 +1,251 @@ + + + + + + +LDAP Configuration + + + +
+

LDAP Configuration

+ + +

This screen allows you to establish a connection with LDAP to delegate +authentication and/or authorization.

+

It is divided into four different areas, which are explained below:

+
+

Activation

+

This area is used to set the properties that determine how TASKPM uses +LDAP.

+

If the field Enable LDAP authentication is checked, TASKPM will query +LDAP each time a user attempts to log in to the application.

+

The field Use LDAP roles checked means that a mapping between LDAP roles and +TASKPM roles is established. Consequently, the permissions for a user in +TASKPM will depend on the roles the user has in LDAP.

+
+
+

Configuration

+

This section contains the parameter values for accessing LDAP. Base, UserDN, and +Password are parameters used to connect to LDAP and search for users. Therefore, +the specified user must have permission to perform this operation in LDAP. At the +bottom of this section, there is a button to check if an LDAP connection is +possible with the given parameters. It is advisable to test the connection before +continuing the configuration.

+
+

Note

+

If your LDAP is configured to work with anonymous authentication, you can +leave the UserDN and Password attributes empty.

+
+
+

Tip

+

Regarding Active Directory (AD) configuration, the Base field must be the +exact location where the bound user resides in AD.

+

Example: ou=organizational_unit,dc=example,dc=org

+
+
+
+

Authentication

+

Here, you can configure the property in LDAP nodes where the given username +should be found. The property UserId must be filled with the name of the +property where the username is stored in LDAP.

+

The checkbox Save passwords in database, when checked, means that the +password is also stored in the TASKPM database. In this way, if LDAP is +offline or unreachable, LDAP users can authenticate against the TASKPM +database. If it is not checked, LDAP users can only be authenticated against +LDAP.

+
+
+

Authorization

+

This section allows you to define a strategy for matching LDAP roles with +TASKPM roles. The first choice is the strategy to use, depending on the +LDAP implementation.

+
+

Group Strategy

+

When this strategy is used, it indicates that LDAP has a role-group strategy. +This means that users in LDAP are nodes that are directly under a branch that +represents the group.

+

The next example represents a valid LDAP structure for using the group strategy.

+
    +
  • LDAP structure:

    +
    +dc=example,dc=org
    +|- ou=groups
    +   |- cn=admins
    +   |- cn=itpeople
    +   |- cn=workers
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

In this case, each group will have an attribute, for example, called member, +with the list of users belonging to the group:

+
    +
  • cn=admins:
      +
    • member: uid=admin1,ou=people,dc=example,dc=org
    • +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=itpeople:
      +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    • member: uid=it2,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=workers:
      +
    • member: uid=worker1,ou=people,dc=example,dc=org
    • +
    • member: uid=worker2,ou=people,dc=example,dc=org
    • +
    • member: uid=worker3,ou=people,dc=example,dc=org
    • +
    +
  • +
+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Group strategy
  • +
  • Group path: ou=groups
  • +
  • Role property: member
  • +
  • Role search query: uid=[USER_ID],ou=people,dc=example,dc=org
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: cn=admins;cn=itpeople
  • +
  • Web service reader: cn=itpeople
  • +
  • Web service writer: cn=itpeople
  • +
  • All projects read allowed: cn=admins
  • +
  • All projects edition allowed: cn=admins
  • +
  • Project creation allowed: cn=workers
  • +
+
+
+

Property Strategy

+

When an administrator decides to use this strategy, it indicates that each user +is an LDAP node, and within the node, there exists a property that represents +the group(s) for the user. In this case, the configuration does not require the +Group path parameter.

+

The next example represents a valid LDAP structure for using the property strategy.

+
    +
  • LDAP structure:

    +
    +dc=example,dc=org
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

With Attribute

+

In this case, each user will have an attribute, for example, called group, +with the name of the group to which they belong:

+
    +
  • uid=admin1:
      +
    • group: admins
    • +
    +
  • +
  • uid=it1:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=it2:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=worker1:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker2:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker3:
      +
    • group: workers
    • +
    +
  • +
+
+

Warning

+

This strategy has a restriction: each user can belong to only one group.

+
+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Property strategy
  • +
  • Group path:
  • +
  • Role property: group
  • +
  • Role search query: [USER_ID]
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: admins;itpeople
  • +
  • Web service reader: itpeople
  • +
  • Web service writer: itpeople
  • +
  • All projects read allowed: admins
  • +
  • All projects edition allowed: admins
  • +
  • Project creation allowed: workers
  • +
+

By User Identifier

+

You can even use a workaround to specify TASKPM roles directly to users +without having an attribute in each LDAP user.

+

In this case, you will specify which users have the different TASKPM roles +by uid.

+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Property strategy
  • +
  • Group path:
  • +
  • Role property: uid
  • +
  • Role search query: [USER_ID]
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: admin1;it1
  • +
  • Web service reader: it1;it2
  • +
  • Web service writer: it1;it2
  • +
  • All projects read allowed: admin1
  • +
  • All projects edition allowed: admin1
  • +
  • Project creation allowed: worker1;worker2;worker3
  • +
+
+
+

Role Matching

+

At the bottom of this section, there is a table with all the TASKPM roles +and a text field next to each one. This is for matching roles. For instance, +if an administrator decides that the Administration TASKPM role matches +the admin and administrators roles of LDAP, the text field should contain: +"admin;administrators". The character for splitting roles is ";".

+
+

Note

+

If you want to specify that all users or all groups have one permission, you +can use an asterisk (*) as a wildcard to refer to them. For example, if +you want everyone to have the Project creation allowed role, you will +configure the role matching as follows:

+
    +
  • Project creation allowed: *
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nb/17-1-project-dashboard.html b/libreplan-webapp/src/main/webapp/help/nb/17-1-project-dashboard.html new file mode 100644 index 000000000..5dc0899b7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/17-1-project-dashboard.html @@ -0,0 +1,173 @@ + + + + + + +Project Dashboard + + + +
+

Project Dashboard

+ + +

The project dashboard is a TASKPM perspective that contains a set of KPIs (Key Performance Indicators) to help assess a project's performance in terms of:

+
+
    +
  • Work progress
  • +
  • Cost
  • +
  • Status of allocated resources
  • +
  • Time constraints
  • +
+
+
+

Progress Performance Indicators

+

Two indicators are calculated: project progress percentage and task status.

+
+

Project Progress Percentage

+

This chart displays the overall progress of a project, comparing it to the expected progress based on the Gantt chart.

+

Progress is represented by two bars:

+
+
    +
  • Current Progress: The current progress based on the measurements taken.
  • +
  • Expected Progress: The progress the project should have achieved at this point, according to the project plan.
  • +
+
+

To view the actual measured value for each bar, hover the mouse cursor over the bar.

+

The overall project progress is estimated using several different methods, as there is no single, universally correct approach:

+
+
    +
  • Spreading Progress: This is the progress type set as the spreading progress at the project level. In this case, there is no way to calculate an expected value, and only the current bar is displayed.
  • +
  • By All Task Hours: The progress of all project tasks is averaged to calculate the overall value. This is a weighted average that considers the number of hours allocated to each task.
  • +
  • By Critical Path Hours: The progress of tasks belonging to any of the project's critical paths is averaged to obtain the overall value. This is a weighted average that considers the total allocated hours for each involved task.
  • +
  • By Critical Path Duration: The progress of tasks belonging to any of the critical paths is averaged using a weighted average, but this time considering the duration of each involved task instead of the assigned hours.
  • +
+
+
+
+

Task Status

+

A pie chart shows the percentage of project tasks in different states. The defined states are:

+
+
    +
  • Finished: Completed tasks, identified by a 100% progress value.
  • +
  • In Progress: Tasks that are currently underway. These tasks have a progress value other than 0% or 100%, or some work time has been tracked.
  • +
  • Ready to Start: Tasks with 0% progress, no tracked time, all their FINISH_TO_START dependent tasks are finished, and all their START_TO_START dependent tasks are finished or in progress.
  • +
  • Blocked: Tasks with 0% progress, no tracked time, and with previous dependent tasks that are neither in progress nor in the ready to start state.
  • +
+
+
+
+
+

Cost Indicators

+

Several Earned Value Management cost indicators are calculated:

+
+
    +
  • CV (Cost Variance): The difference between the Earned Value curve and the Actual Cost curve at the current moment. Positive values indicate a benefit, and negative values indicate a loss.

    +
  • +
  • ACWP (Actual Cost of Work Performed): The total number of hours tracked in the project at the current moment.

    +
  • +
  • CPI (Cost Performance Index): The Earned Value / Actual Cost ratio.

    +
    +
      +
    • > 100 is favorable, indicating that the project is under budget.
    • +
    • = 100 is also favorable, indicating that the cost is right on plan.
    • +
    • < 100 is unfavorable, indicating that the cost of completing the work is higher than planned.
    • +
    +
    +
  • +
  • ETC (Estimate To Complete): The time remaining to complete the project.

    +
  • +
  • BAC (Budget At Completion): The total amount of work allocated in the project plan.

    +
  • +
  • EAC (Estimate At Completion): The manager's projection of the total cost at project completion, based on the CPI.

    +
  • +
  • VAC (Variance At Completion): The difference between the BAC and the EAC.

    +
    +
      +
    • < 0 indicates that the project is over budget.
    • +
    • > 0 indicates that the project is under budget.
    • +
    +
    +
  • +
+
+
+
+

Resources

+

To analyze the project from the resources' point of view, two ratios and a histogram are provided.

+
+

Estimation Deviation on Completed Task Histogram

+

This histogram calculates the deviation between the number of hours allocated to the project tasks and the actual number of hours dedicated to them.

+

The deviation is calculated as a percentage for all finished tasks, and the calculated deviations are represented in a histogram. The vertical axis shows the number of tasks within each deviation interval. Six deviation intervals are dynamically calculated.

+
+
+

Overtime Ratio

+

This ratio summarizes the overload of resources allocated to the project tasks. It is calculated using the formula: overtime ratio = overload / (load + overload).

+
+
    +
  • = 0 is favorable, indicating that the resources are not overloaded.
  • +
  • > 0 is unfavorable, indicating that the resources are overloaded.
  • +
+
+
+
+

Availability Ratio

+

This ratio summarizes the free capacity of the resources currently allocated to the project. Therefore, it measures the resources' availability to receive more allocations without being overloaded. It is calculated as: availability ratio = (1 - load/capacity) * 100

+
+
    +
  • Possible values are between 0% (fully assigned) and 100% (not assigned).
  • +
+
+
+
+
+

Time

+

Two charts are included: a histogram for the time deviation in the finish time of project tasks and a pie chart for deadline violations.

+
+

Task Completion Lead or Lag

+

This calculation determines the difference in days between the planned end time for project tasks and their actual end time. The planned completion date is taken from the Gantt chart, and the actual finish date is taken from the last time tracked for the task.

+

The lag or lead in task completion is represented in a histogram. The vertical axis shows the number of tasks with a lead/lag day difference value corresponding to the abscissa days interval. Six dynamic task completion deviation intervals are calculated.

+
+
    +
  • Negative values mean finishing ahead of schedule.
  • +
  • Positive values mean finishing behind schedule.
  • +
+
+
+
+

Deadline Violations

+

This section calculates the margin with the project deadline, if set. Additionally, a pie chart shows the percentage of tasks meeting their deadline. Three types of values are included in the chart:

+
+
    +
  • Percentage of tasks without a deadline configured.
  • +
  • Percentage of ended tasks with an actual end date later than their deadline. The actual end date is taken from the last time tracked for the task.
  • +
  • Percentage of ended tasks with an actual end date earlier than their deadline.
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nb/17-2-pipeline-dashboard.html b/libreplan-webapp/src/main/webapp/help/nb/17-2-pipeline-dashboard.html new file mode 100644 index 000000000..bb54ed657 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/17-2-pipeline-dashboard.html @@ -0,0 +1,33 @@ + + + + + + +Pipeline Dashboard + + + +
+

Pipeline Dashboard

+ +

The pipeline dashboard is a TASKPM perspective that lists all company projects in a table. This "pipeline" table has nine columns, each corresponding to a project status:

+
+
    +
  • PRE-SALES
  • +
  • OFFERED
  • +
  • OUTSOURCED
  • +
  • ACCEPTED
  • +
  • STARTED
  • +
  • ON HOLD
  • +
  • FINISHED
  • +
  • CANCELLED
  • +
  • ARCHIVED
  • +
+
+

Projects are listed by name in each column based on their current status.

+

A project's start date, end date, and current progress can be viewed in a tooltip popup by hovering the mouse cursor over a project's name.

+

Projects with an ARCHIVED status can be hidden by unchecking the "Show archived column data" checkbox.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nb/17-dashboards.html b/libreplan-webapp/src/main/webapp/help/nb/17-dashboards.html new file mode 100644 index 000000000..3dc8f1af4 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/17-dashboards.html @@ -0,0 +1,24 @@ + + + + + + +Dashboards + + + +
+

Dashboards

+ +

TASKPM offers dashboard views for projects, providing an overview of their current status.

+

The two available dashboard views are:

+ +
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nb/18-connectors.html b/libreplan-webapp/src/main/webapp/help/nb/18-connectors.html new file mode 100644 index 000000000..0f879b53d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/18-connectors.html @@ -0,0 +1,238 @@ + + + + + + +Connectors + + + +
+

Connectors

+ + +

Connectors are TASKPM client applications that can be used to communicate with (web) servers to retrieve data, process it, and store it. Currently, there are three connectors: the JIRA connector, the Tim Enterprise connector, and the E-mail connector.

+
+

Configuration

+

Connectors must be configured properly before they can be used. They can be configured from the "Main Settings" screen under the "Connectors" tab.

+

The connector screen includes:

+
    +
  • Pull-down list: A list of available connectors.
  • +
  • Properties edit screen: A property edit form for the selected connector.
  • +
  • Test connection button: A button to test the connection with the connector.
  • +
+

Select the connector you want to configure from the pull-down list of connectors. A property editor form for the selected connector will be displayed. In the property editor form, you can change the property values as needed and test your configurations using the "Test connection" button.

+
+

Note

+

The properties are configured with default values. The most important property is "Activated." By default, it is set to "N." This indicates that the connector will not be used unless you change the value to "Y" and save the changes.

+
+
+
+

JIRA Connector

+

JIRA is an issue and project tracking system.

+

The JIRA connector is an application that can be used to request JIRA web server data for JIRA issues and process the response. The request is based on JIRA labels. In JIRA, labels can be used to categorize issues. The request is structured as follows: retrieve all issues that are categorized by this label name.

+

The connector receives the response, which in this case is the issues, and converts them to TASKPM "Order elements" and "Time sheets."

+

The JIRA connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the JIRA connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the JIRA connector. The default is "N."
  • +
  • Server URL: The absolute path to the JIRA web server.
  • +
  • User name and password: The user credentials for authorization.
  • +
  • JIRA labels: comma-separated list of labels or URL: You can either enter the label URL or a comma-separated list of labels.
  • +
  • Hours type: The type of work hours. The default is "Default."
  • +
+
+

Note

+

JIRA labels: Currently, the JIRA web server does not support providing a list of all available labels. As a workaround, we have developed a simple PHP script that performs a simple SQL query in the JIRA database to fetch all distinct labels. You can either use this PHP script as the "JIRA labels URL" or enter the labels you want as comma-separated text in the "JIRA labels" field.

+
+

Finally, click the "Test connection" button to test if you can connect to the JIRA web server and that your configurations are correct.

+
+
+

Synchronization

+

From the project window, under "General data," you can start synchronizing order elements with JIRA issues.

+

Click the "Sync with JIRA" button to start the synchronization.

+
    +
  • If this is the first time, a pop-up window (with an auto-completed list of labels) will be displayed. In this window, you can select a label to synchronize with and click the "Start sync" button to begin the synchronization process, or click the "Cancel" button to cancel it.
  • +
  • If a label is already synchronized, the last synchronized date and the label will be displayed in the JIRA screen. In this case, no pop-up window to select a label will be displayed. Instead, the synchronization process will start directly for that displayed (already synchronized) label.
  • +
+
+

Note

+

The relationship between "Order" and "label" is one-to-one. Only one label can be synchronized with one "Order."

+
+
+

Note

+

Upon successful (re)synchronization, the information will be written to the database, and the JIRA screen will be updated with the last synchronized date and label.

+
+

(Re)synchronization is performed in two phases:

+
    +
  • Phase 1: Synchronizing order elements, including progress assignment and measurements.
  • +
  • Phase 2: Synchronizing time sheets.
  • +
+
+

Note

+

If Phase 1 fails, Phase 2 will not be performed, and no information will be written to the database.

+
+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+

Upon successful completion of synchronization, the result will be displayed in the "Work Breakdown Structure (WBS tasks)" tab of the "Project details" screen. In this UI, there are two changes from the standard WBS:

+
    +
  • The "Total task hours" column is unmodifiable (read-only) because the synchronization is one-way. Task hours can only be updated in the JIRA web server.
  • +
  • The "Code" column displays the JIRA issue keys, and they are also hyperlinks to the JIRA issues. Click the desired key if you want to go to the document for that key (JIRA issue).
  • +
+
+
+

Scheduling

+

Re-synchronization of JIRA issues can also be performed through the scheduler. Go to the "Job scheduling" screen. In that screen, you can configure a JIRA job to perform synchronization. The job searches for the last synchronized labels in the database and re-synchronizes them accordingly. See also the Scheduler Manual.

+
+
+
+

Tim Enterprise Connector

+

Tim Enterprise is a Dutch product from Aenova. It is a web-based application for the administration of time spent on projects and tasks.

+

The Tim connector is an application that can be used to communicate with the Tim Enterprise server to:

+
    +
  • Export all hours spent by a worker (user) on a project that could be registered in Tim Enterprise.
  • +
  • Import all rosters of the worker (user) to plan the resource effectively.
  • +
+

The Tim connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the Tim connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the Tim connector. The default is "N."
  • +
  • Server URL: The absolute path to the Tim Enterprise server.
  • +
  • User name and password: The user credentials for authorization.
  • +
  • Number of days timesheet to Tim: The number of days back you want to export the time sheets.
  • +
  • Number of days roster from Tim: The number of days forward you want to import the rosters.
  • +
  • Productivity factor: Effective working hours in percentage. The default is "100%."
  • +
  • Department IDs to import roster: Comma-separated department IDs.
  • +
+

Finally, click the "Test connection" button to test if you can connect to the Tim Enterprise server and that your configurations are correct.

+
+
+

Export

+

From the project window, under "General data," you can start exporting time sheets to the Tim Enterprise server.

+

Enter the "Tim product code" and click the "Export to Tim" button to start the export.

+

The Tim connector adds the following fields along with the product code:

+
    +
  • The worker/user's full name.
  • +
  • The date the worker worked on a task.
  • +
  • The effort, or hours worked on the task.
  • +
  • An option indicating whether Tim Enterprise should update the registration or insert a new one.
  • +
+

The Tim Enterprise response contains only a list of record IDs (integers). This makes it difficult to determine what went wrong, as the response list contains only numbers not related to the request fields. The export request (registration in Tim) is assumed to have succeeded if all the list entries do not contain "0" values. Otherwise, the export request has failed for those entries that contain "0" values. Therefore, you cannot see which request failed, as the list entries only contain the value "0." The only way to determine this is to examine the log file on the Tim Enterprise server.

+
+

Note

+

Upon successful exporting, the information will be written to the database, and the Tim screen will be updated with the last exported date and product code.

+
+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+
+
+

Scheduling Export

+

The export process can also be performed through the scheduler. Go to the "Job Scheduling" screen. In that screen, you can configure a Tim Export job. The job searches for the last exported time sheets in the database and re-exports them accordingly. See also the Scheduler manual.

+
+
+

Import

+

Importing rosters only works with the help of the scheduler. There is no user interface designed for this, as no input is needed from the user. Go to the "Job scheduling" screen and configure a Tim Import job. The job loops through all departments configured in the connector properties and imports all rosters for each department. See also the Scheduler Manual.

+

For import, the Tim connector adds the following fields in the request:

+
    +
  • Period: The period (date from - date to) for which you want to import the roster. This can be provided as a filter criterion.
  • +
  • Department: The department for which you want to import the roster. Departments are configurable.
  • +
  • The fields you are interested in (like Person info, RosterCategory, etc.) that the Tim server should include in its response.
  • +
+

The import response contains the following fields, which are sufficient to manage the exception days in TASKPM:

+
    +
  • Person info: Name and network name.
  • +
  • Department: The department the worker is working in.
  • +
  • Roster category: Information on the presence/absence (Aanwzig/afwezig) of the worker and the reason (TASKPM exception type) in case the worker is absent.
  • +
  • Date: The date the worker is present/absent.
  • +
  • Time: The start time of presence/absence, for example, 08:00.
  • +
  • Duration: The number of hours that the worker is present/absent.
  • +
+

By converting the import response to TASKPM's "Exception day," the following translations are taken into account:

+
    +
  • If the roster category contains the name "Vakantie," it will be translated to "RESOURCE HOLIDAY."
  • +
  • The roster category "Feestdag" will be translated to "BANK HOLIDAY."
  • +
  • All the rest, like "Jus uren," "PLB uren," etc., should be added to the "Calendar Exception Days" manually.
  • +
+

Moreover, in the import response, the roster is divided into two or three parts per day: for example, roster-morning, roster-afternoon, and roster-evening. However, TASKPM allows only one "Exception type" per day. The Tim connector is then responsible for merging these parts as one exception type. That is, the roster category with the highest duration is assumed to be a valid exception type, but the total duration is the sum of all durations of these category parts.

+

Contrary to TASKPM, in Tim Enterprise, the total duration in case the worker is on holiday means the worker is not available for that total duration. However, in TASKPM, if the worker is on holiday, the total duration should be zero. The Tim connector also handles this translation.

+
+
+
+

E-mail Connector

+

E-mail is a method of exchanging digital messages from an author to one or more recipients.

+

The E-mail connector can be used to set Simple Mail Transfer Protocol (SMTP) server connection properties.

+

The E-mail connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the E-mail connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the E-mail connector. The default is "N."
  • +
  • Protocol: The type of SMTP protocol.
  • +
  • Host: The absolute path to the SMTP server.
  • +
  • Port: The port of the SMTP server.
  • +
  • From address: The e-mail address of the message sender.
  • +
  • Username: The username for the SMTP server.
  • +
  • Password: The password for the SMTP server.
  • +
+

Finally, click the "Test connection" button to test if you can connect to the SMTP server and that your configurations are correct.

+
+
+

Edit E-mail Template

+

From the project window, under "Configuration" and then "Edit E-mail Templates," you can modify the e-mail templates for messages.

+

You can choose:

+
    +
  • Template language:
  • +
  • Template type:
  • +
  • E-mail subject:
  • +
  • Template contents:
  • +
+

You need to specify the language because the web application will send e-mails to users in the language they have chosen in their preferences. You need to choose the template type. The type is the user role, meaning that this e-mail will be sent only to users who are in the selected role (type). You need to set the e-mail subject. The subject is a brief summary of the topic of the message. You need to set the e-mail contents. This is any information that you want to send to the user. There are also some keywords that you may use in the message; the web application will parse them and set a new value instead of the keyword.

+
+
+

Scheduling E-mails

+

Sending e-mails can only be performed through the scheduler. Go to "Configuration," then the "Job Scheduling" screen. In that screen, you can configure an e-mail sending job. The job takes a list of e-mail notifications, gathers data, and sends it to the user's e-mail. See also the Scheduler manual.

+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nb/19-scheduler.html b/libreplan-webapp/src/main/webapp/help/nb/19-scheduler.html new file mode 100644 index 000000000..8379b5b4c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/19-scheduler.html @@ -0,0 +1,107 @@ + + + + + + +Scheduler + + + +
+

Scheduler

+ + +

The scheduler is designed to schedule jobs dynamically. It is developed using the Spring Framework Quartz scheduler.

+

To use this scheduler effectively, the jobs (Quartz jobs) that should be scheduled must be created first. Then, these jobs can be added to the database, as all jobs to be scheduled are stored in the database.

+

When the scheduler starts, it reads the jobs to be scheduled or unscheduled from the database and schedules or removes them accordingly. Afterward, jobs can be added, updated, or removed dynamically using the Job scheduling user interface.

+
+

Note

+

The scheduler starts when the TASKPM web application starts and stops when the application stops.

+
+
+

Note

+

This scheduler supports only cron expressions to schedule jobs.

+
+

The criteria that the scheduler uses to schedule or remove jobs when it starts are as follows:

+

For all jobs:

+
    +
  • Schedule
      +
    • Job has a Connector, and the Connector is activated, and the job is allowed to be scheduled.
    • +
    • Job has no Connector and is allowed to be scheduled.
    • +
    +
  • +
  • Remove
      +
    • Job has a Connector, and the Connector is not activated.
    • +
    • Job has a Connector, and the Connector is activated, but the job is not allowed to be scheduled.
    • +
    • Job has no Connector and is not allowed to be scheduled.
    • +
    +
  • +
+
+

Note

+

Jobs cannot be rescheduled or unscheduled if they are currently running.

+
+
+

Job Scheduling List View

+

The Job scheduling list view allows users to:

+
    +
  • Add a new job.
  • +
  • Edit an existing job.
  • +
  • Remove a job.
  • +
  • Start a process manually.
  • +
+
+
+

Add or Edit Job

+

From the Job scheduling list view, click:

+
    +
  • Create to add a new job, or
  • +
  • Edit to modify the selected job.
  • +
+

Both actions will open a create/edit job form. The form displays the following properties:

+
    +
  • Fields:
      +
    • Job group: The name of the job group.
    • +
    • Job name: The name of the job.
    • +
    • Cron expression: A read-only field with an Edit button to open the cron expression input window.
    • +
    • Job class name: A pull-down list to select the job (an existing job).
    • +
    • Connector: A pull-down list to select a connector. This is not mandatory.
    • +
    • Schedule: A checkbox to indicate whether to schedule this job.
    • +
    +
  • +
  • Buttons:
      +
    • Save: To save or update a job in both the database and the scheduler. The user is then returned to the Job scheduling list view.
    • +
    • Save and continue: The same as "Save," but the user is not returned to the Job scheduling list view.
    • +
    • Cancel: Nothing is saved, and the user is returned to the Job scheduling list view.
    • +
    +
  • +
  • And a hint section about cron expression syntax.
  • +
+
+

Cron Expression Pop-up

+

To enter the cron expression correctly, a cron expression pop-up form is used. In this form, you can enter the desired cron expression. See also the hint about the cron expression. If you enter an invalid cron expression, you will be notified immediately.

+
+
+
+

Remove Job

+

Click the Remove button to delete the job from both the database and the scheduler. The success or failure of this action will be displayed.

+
+
+

Start Job Manually

+

As an alternative to waiting for the job to run as scheduled, you can click this button to start the process directly. Afterward, the success or failure information will be displayed in a pop-up window.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nb/20-acerca-de.html b/libreplan-webapp/src/main/webapp/help/nb/20-acerca-de.html new file mode 100644 index 000000000..569e69e4d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/20-acerca-de.html @@ -0,0 +1,155 @@ + + + + + + +About + + + +
+

About

+ + + +
+

License

+

This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version.

+

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/>.

+
+
+

Written by

+
+

TASKPM Team

+ +
+
+

Previous Team Members

+ +
+
+

Translators

+ +
+
+

Contributors

+ +
+
+
+

Public Funding

+

This project currently accepts donations through the Open Collective organization <https://opencollective.com/TASKPM>.

+

Within the global scope that TASKPM is designed for regarding planning management, a project was developed to solve some common planning problems.

+

This project was partially financed by Xunta de Galicia, Ministerio de Industria, Turismo e Comercio, and by the European Union, Fondo Europeo de Desenvolvemento Rexional.

+
+images/logos.png +
+ +++ + + + +
scale:100
+

This project was part of Plan Avanza:

+
+images/avanza.png +
+ +++ + + + +
scale:100
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nb/21-communications.html b/libreplan-webapp/src/main/webapp/help/nb/21-communications.html new file mode 100644 index 000000000..e4f5ea081 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/21-communications.html @@ -0,0 +1,18 @@ + + + + + + +Subcontractor Work Description + + + +
+

Subcontractor Work Description

+ +

While it is possible to leave this field empty, doing so can lead to errors in communication functionality when multiple empty fields exist.

+

Therefore, we strongly recommend always using a unique work description.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nb/22-pert.html b/libreplan-webapp/src/main/webapp/help/nb/22-pert.html new file mode 100644 index 000000000..c27af3c56 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/22-pert.html @@ -0,0 +1,17 @@ + + + + + + +PERT Chart + + + +
+

PERT Chart

+ +

Unlike Libreplan, which was focused on the GANNT chart and did not have a PERT chart, TASKPM does have a PERT chart and is more focused on it.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nb/23-subnets.html b/libreplan-webapp/src/main/webapp/help/nb/23-subnets.html new file mode 100644 index 000000000..42cd9e634 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/23-subnets.html @@ -0,0 +1,17 @@ + + + + + + +Task Subnets + + + +
+

Task Subnets

+ +

Unlike Libreplan, which only had a single level of planning, the whole project, TASKPM has subnetworks of activities which can be embedded in a master project.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/advance-assignment.png b/libreplan-webapp/src/main/webapp/help/nb/images/advance-assignment.png new file mode 100644 index 000000000..aeb55b2b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/advance-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/asignacion-especifica.png b/libreplan-webapp/src/main/webapp/help/nb/images/asignacion-especifica.png new file mode 100644 index 000000000..9ee94d9c6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/asignacion-especifica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/asignacion-xenerica.png b/libreplan-webapp/src/main/webapp/help/nb/images/asignacion-xenerica.png new file mode 100644 index 000000000..d2a16597f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/asignacion-xenerica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/avance.png b/libreplan-webapp/src/main/webapp/help/nb/images/avance.png new file mode 100644 index 000000000..ee289e19c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/avanza.png b/libreplan-webapp/src/main/webapp/help/nb/images/avanza.png new file mode 100644 index 000000000..a51893f80 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/avanza.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/calendar-administration.png b/libreplan-webapp/src/main/webapp/help/nb/images/calendar-administration.png new file mode 100644 index 000000000..bb4e17032 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/calendar-administration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/calendar-create-derived.png b/libreplan-webapp/src/main/webapp/help/nb/images/calendar-create-derived.png new file mode 100644 index 000000000..9f01f2c33 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/calendar-create-derived.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/calendar-edition.png b/libreplan-webapp/src/main/webapp/help/nb/images/calendar-edition.png new file mode 100644 index 000000000..a98cc4454 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/calendar-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/calendar-exceptions.png b/libreplan-webapp/src/main/webapp/help/nb/images/calendar-exceptions.png new file mode 100644 index 000000000..c2a53a684 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/calendar-exceptions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/category-cost-edit.png b/libreplan-webapp/src/main/webapp/help/nb/images/category-cost-edit.png new file mode 100644 index 000000000..1755ee79e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/category-cost-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/category-cost-list.png b/libreplan-webapp/src/main/webapp/help/nb/images/category-cost-list.png new file mode 100644 index 000000000..1d7ff838c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/category-cost-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/company_view.png b/libreplan-webapp/src/main/webapp/help/nb/images/company_view.png new file mode 100644 index 000000000..c3a7631e6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/company_view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/contraste-avance.png b/libreplan-webapp/src/main/webapp/help/nb/images/contraste-avance.png new file mode 100644 index 000000000..831cceac3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/contraste-avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/default-calendar.png b/libreplan-webapp/src/main/webapp/help/nb/images/default-calendar.png new file mode 100644 index 000000000..6fd379d08 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/default-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/edicion-criterio.png b/libreplan-webapp/src/main/webapp/help/nb/images/edicion-criterio.png new file mode 100644 index 000000000..2b879ced5 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/edicion-criterio.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/hour-type-edit.png b/libreplan-webapp/src/main/webapp/help/nb/images/hour-type-edit.png new file mode 100644 index 000000000..4917b08a8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/hour-type-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/hour-type-list.png b/libreplan-webapp/src/main/webapp/help/nb/images/hour-type-list.png new file mode 100644 index 000000000..1872eb4f7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/hour-type-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/lista-criterios.png b/libreplan-webapp/src/main/webapp/help/nb/images/lista-criterios.png new file mode 100644 index 000000000..a2e7d03cb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/lista-criterios.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/logo.png b/libreplan-webapp/src/main/webapp/help/nb/images/logo.png new file mode 100644 index 000000000..4e7d02651 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/logo.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/logos.png b/libreplan-webapp/src/main/webapp/help/nb/images/logos.png new file mode 100644 index 000000000..7314a0759 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/logos.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/machine-calendar.png b/libreplan-webapp/src/main/webapp/help/nb/images/machine-calendar.png new file mode 100644 index 000000000..a725f67a2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/machine-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/machine-configuration.png b/libreplan-webapp/src/main/webapp/help/nb/images/machine-configuration.png new file mode 100644 index 000000000..0777473fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/machine-configuration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/machine-costcategory.png b/libreplan-webapp/src/main/webapp/help/nb/images/machine-costcategory.png new file mode 100644 index 000000000..b8414eac6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/machine-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/machine-criterions.png b/libreplan-webapp/src/main/webapp/help/nb/images/machine-criterions.png new file mode 100644 index 000000000..7c270bf35 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/machine-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/machine-data.png b/libreplan-webapp/src/main/webapp/help/nb/images/machine-data.png new file mode 100644 index 000000000..5edb47d12 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/machine-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/manage-user-profile.png b/libreplan-webapp/src/main/webapp/help/nb/images/manage-user-profile.png new file mode 100644 index 000000000..6a86064e2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/manage-user-profile.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/manage-user.png b/libreplan-webapp/src/main/webapp/help/nb/images/manage-user.png new file mode 100644 index 000000000..df59f1b7c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/manage-user.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/material.png b/libreplan-webapp/src/main/webapp/help/nb/images/material.png new file mode 100644 index 000000000..a77b5aa41 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/menu.png b/libreplan-webapp/src/main/webapp/help/nb/images/menu.png new file mode 100644 index 000000000..f4eec5250 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/menu.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/new-resource-calendar.png b/libreplan-webapp/src/main/webapp/help/nb/images/new-resource-calendar.png new file mode 100644 index 000000000..9040e0bc0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/new-resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/order-assigned-hours.png b/libreplan-webapp/src/main/webapp/help/nb/images/order-assigned-hours.png new file mode 100644 index 000000000..4fd629386 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/order-assigned-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/order-criterions.png b/libreplan-webapp/src/main/webapp/help/nb/images/order-criterions.png new file mode 100644 index 000000000..e59bd833f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/order-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/order-edition.png b/libreplan-webapp/src/main/webapp/help/nb/images/order-edition.png new file mode 100644 index 000000000..ff67134db Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/order-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/order-element-criterion.png b/libreplan-webapp/src/main/webapp/help/nb/images/order-element-criterion.png new file mode 100644 index 000000000..f167979b0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/order-element-criterion.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/order-element-edition.png b/libreplan-webapp/src/main/webapp/help/nb/images/order-element-edition.png new file mode 100644 index 000000000..66e5e8602 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/order-element-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/order-element-hours.png b/libreplan-webapp/src/main/webapp/help/nb/images/order-element-hours.png new file mode 100644 index 000000000..06cc1dc37 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/order-element-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/order-element-material-assign.png b/libreplan-webapp/src/main/webapp/help/nb/images/order-element-material-assign.png new file mode 100644 index 000000000..90f973766 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/order-element-material-assign.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/order-element-material-search.png b/libreplan-webapp/src/main/webapp/help/nb/images/order-element-material-search.png new file mode 100644 index 000000000..550f1d7fa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/order-element-material-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/order-element-quality.png b/libreplan-webapp/src/main/webapp/help/nb/images/order-element-quality.png new file mode 100644 index 000000000..3272ce70e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/order-element-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/order-element-tags.png b/libreplan-webapp/src/main/webapp/help/nb/images/order-element-tags.png new file mode 100644 index 000000000..e43a7d795 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/order-element-tags.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/order-elements-list.png b/libreplan-webapp/src/main/webapp/help/nb/images/order-elements-list.png new file mode 100644 index 000000000..271ac9bf6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/order-elements-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/order-labels.png b/libreplan-webapp/src/main/webapp/help/nb/images/order-labels.png new file mode 100644 index 000000000..076e0a745 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/order-labels.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/order-material.png b/libreplan-webapp/src/main/webapp/help/nb/images/order-material.png new file mode 100644 index 000000000..9197679e7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/order-material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/order-quality.png b/libreplan-webapp/src/main/webapp/help/nb/images/order-quality.png new file mode 100644 index 000000000..ee9e9027e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/order-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/order_list.png b/libreplan-webapp/src/main/webapp/help/nb/images/order_list.png new file mode 100644 index 000000000..72e70f3b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/order_list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/planning-view.png b/libreplan-webapp/src/main/webapp/help/nb/images/planning-view.png new file mode 100644 index 000000000..de74811eb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/planning-view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/quality.png b/libreplan-webapp/src/main/webapp/help/nb/images/quality.png new file mode 100644 index 000000000..1850f51b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/resource-assignment-generic.png b/libreplan-webapp/src/main/webapp/help/nb/images/resource-assignment-generic.png new file mode 100644 index 000000000..3519a5087 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/resource-assignment-generic.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/resource-assignment-planning.png b/libreplan-webapp/src/main/webapp/help/nb/images/resource-assignment-planning.png new file mode 100644 index 000000000..c4233780d Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/resource-assignment-planning.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/resource-assignment-search.png b/libreplan-webapp/src/main/webapp/help/nb/images/resource-assignment-search.png new file mode 100644 index 000000000..cae142d81 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/resource-assignment-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/resource-assignment-specific.png b/libreplan-webapp/src/main/webapp/help/nb/images/resource-assignment-specific.png new file mode 100644 index 000000000..8f7b1cba2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/resource-assignment-specific.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/resource-assignment.png b/libreplan-webapp/src/main/webapp/help/nb/images/resource-assignment.png new file mode 100644 index 000000000..427d25b79 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/resource-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/resource-calendar.png b/libreplan-webapp/src/main/webapp/help/nb/images/resource-calendar.png new file mode 100644 index 000000000..749c7b829 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/resource-load.png b/libreplan-webapp/src/main/webapp/help/nb/images/resource-load.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/resource-load.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/resources_global.png b/libreplan-webapp/src/main/webapp/help/nb/images/resources_global.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/resources_global.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/stretches.png b/libreplan-webapp/src/main/webapp/help/nb/images/stretches.png new file mode 100644 index 000000000..d661a63f6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/stretches.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/tag-types-edition.png b/libreplan-webapp/src/main/webapp/help/nb/images/tag-types-edition.png new file mode 100644 index 000000000..d366c09c2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/tag-types-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/tag-types-list.png b/libreplan-webapp/src/main/webapp/help/nb/images/tag-types-list.png new file mode 100644 index 000000000..e7de5048c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/tag-types-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/tipos-avances.png b/libreplan-webapp/src/main/webapp/help/nb/images/tipos-avances.png new file mode 100644 index 000000000..bb417f52c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/tipos-avances.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/virtual-resources.png b/libreplan-webapp/src/main/webapp/help/nb/images/virtual-resources.png new file mode 100644 index 000000000..3a54f95d3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/virtual-resources.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/work-report-hours.png b/libreplan-webapp/src/main/webapp/help/nb/images/work-report-hours.png new file mode 100644 index 000000000..568e9fed6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/work-report-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/work-report-type.png b/libreplan-webapp/src/main/webapp/help/nb/images/work-report-type.png new file mode 100644 index 000000000..2549d8b5e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/work-report-type.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/work-report-types.png b/libreplan-webapp/src/main/webapp/help/nb/images/work-report-types.png new file mode 100644 index 000000000..986f705aa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/work-report-types.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/worker-calendar.png b/libreplan-webapp/src/main/webapp/help/nb/images/worker-calendar.png new file mode 100644 index 000000000..1227969b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/worker-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/worker-costcategory.png b/libreplan-webapp/src/main/webapp/help/nb/images/worker-costcategory.png new file mode 100644 index 000000000..f330db68c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/worker-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/worker-criterions.png b/libreplan-webapp/src/main/webapp/help/nb/images/worker-criterions.png new file mode 100644 index 000000000..a131a29fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/worker-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/images/worker-personal-data.png b/libreplan-webapp/src/main/webapp/help/nb/images/worker-personal-data.png new file mode 100644 index 000000000..6a5033ba8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nb/images/worker-personal-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nb/index.html b/libreplan-webapp/src/main/webapp/help/nb/index.html new file mode 100644 index 000000000..7a9b74000 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/index.html @@ -0,0 +1,47 @@ + + + + + + +LibrePlan: User documentation + + + +
+

LibrePlan: User documentation

+ +images/logo.png +

Following document contains necessary help for using LibrePlan, the opensource web application for project planning.

+

This document is divided in three main sections:

+

First, global goals and behaviour.

+

Second, basic entities to understand the minimum concepts to use LibrePlan.

+

Finally, complete processes description to create orders, projects, project planning, resources assignment, advance assignment and result extraction.

+
    +
  1. Introduction
  2. +
  3. Criteria
  4. +
  5. Calendars
  6. +
  7. Progress
  8. +
  9. Resource Management
  10. +
  11. Orders and Order Elements
  12. +
  13. Task Planning
  14. +
  15. Resource Assignment
  16. +
  17. Work Reports
  18. +
  19. Labels
  20. +
  21. Materials Management
  22. +
  23. Quality Forms
  24. +
  25. User Management
  26. +
  27. Cost management
  28. +
  29. Reports
  30. +
  31. LDAP Configuration
  32. +
  33. Dashboards
  34. +
  35. Connectors
  36. +
  37. Scheduler
  38. +
  39. About
  40. +
  41. Subcontractor Work Description
  42. +
  43. PERT Chart
  44. +
  45. Task Subnets
  46. +
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nb/lsr.css b/libreplan-webapp/src/main/webapp/help/nb/lsr.css new file mode 100644 index 000000000..ced6c967a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nb/lsr.css @@ -0,0 +1,250 @@ +/* +Author: Peter Parente +Date: 2008/01/22 +Version: 1.0 +Copyright: This stylesheet has been placed in the public domain - free to edit and use for all uses. +*/ + +body { + font: 0.8em Verdana, Tahoma, sans-serif; + background: #ffffff; + color: black; + margin: 2em; +} + +p.topic-title { + font-weight: bold; +} + +table.docinfo { + text-align: left; + margin: 2em 0; +} + +a[href] { + color: #436976; + background-color: transparent; +} + +a.toc-backref { + text-decoration: none; +} + +h1 a[href] { + color: #003a6b; + text-decoration: none; + background-color: transparent; +} + +a.strong { + font-weight: bold; +} + +img { + margin: 0; + border: 0; +} + +p { + margin: 0.5em 0 1em 0; + line-height: 1.5em; +} + +p a:visited { + color: purple; + background-color: transparent; +} + +p a:active { + color: red; + background-color: transparent; +} + +a:hover { + text-decoration: none; +} + +p img { + border: 0; + margin: 0; +} + +p.rubric { + font-weight: bold; + font-style: italic; +} + +h1.title { + color: #003a6b; + font-size: 250%; + margin-bottom: 0; +} + +h2.subtitle { + color: #003a6b; + border-bottom: 0; +} + +h1, h2, h3, h4, h5, h6 { + color: #555; + background-color: transparent; + margin: 0; + padding-top: 0.5em; +} + +h1 { + font-size: 160%; + margin-bottom: 0.5em; + border-bottom: 2px solid #aaa; +} + +h2 { + font-size: 140%; + margin-bottom: 0.5em; + border-bottom: 1px solid #aaa; +} + +h3 { + font-size: 130%; + margin-bottom: 0.5em; +} + +h4 { + font-size: 110%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h5 { + font-size: 105%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h6 { + font-size: 100%; + font-weight: bold; + margin-bottom: 0.5em; +} + +dt { + font-style: italic; +} + +dd { + margin-bottom: 1.5em; +} + +div.admonition, div.note, div.tip, div.caution, div.important, div.warning { + margin: 2em 2em; + padding: 0 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +div.important { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +div.caution { + background: transparent url('../images/caution.png') 10px 2px no-repeat; +} + +div.note { + background: transparent url('../images/note.png') 10px 2px no-repeat; +} + +div.tip { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-example { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-critical-example { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +p.admonition-title { + font-weight: bold; + border-bottom: 1px solid #aaa; + padding-left: 30px; +} + +table.docutils { + text-align: left; + border: 1px solid gray; + border-collapse: collapse; + width: 100%; + margin: 1.5em 0; +} + +table.docutils caption { + font-style: italic; +} + +table.docutils td, table.docutils th { + padding: 0.25em 0.5em; +} + +table.docutils th { + background-color: #dddddd; +} + +div.sidebar { + width: 33%; + float: right; + margin: 0 2em; + padding: 0 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +p.sidebar-title { + margin-bottom: 0; + color: #003a6b; + border-bottom: 1px solid #aaa; + font-weight: bold; +} + +p.sidebar-subtitle { + margin-top: 0; + font-style: italic; + color: #003a6b; +} + +div.figure { + text-align: center; +} + +div.figure img { + background: #f8f8f8; + padding: 0.25em; + border: 1px solid #888; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +div.figure img:hover { + background: #e0e0e0; +} + +div.figure p.caption { + text-align: center; + margin-top: 0.1em; + font-style: italic; + color: #444; +} + +pre.literal-block { + padding: 0.15em; + background: #f8f8f8; + border: 1px solid #dfdfdf; + border-left: 0.25em solid #dfdfdf +} diff --git a/libreplan-webapp/src/main/webapp/help/nl/01-introducion.html b/libreplan-webapp/src/main/webapp/help/nl/01-introducion.html new file mode 100644 index 000000000..51e520ad7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/01-introducion.html @@ -0,0 +1,132 @@ + + + + + + +Introduction + + + +
+

Introduction

+ + +

This document describes the features of TASKPM and provides user information on how to configure and use the application.

+

TASKPM is an open-source web application for project planning. Its primary goal is to provide a comprehensive solution for company project management. For any specific information you may need about this software, please contact the development team at http://www.libreplan.com/contact/

+
+images/company_view.png +

Company Overview

+
+
+

Company Overview and View Management

+

As shown in the program's main screen (see the previous screenshot) and the company overview, users can view a list of planned projects. This allows them to understand the company's overall status regarding orders and resource utilization. The company overview offers three distinct views:

+
    +
  • Planning View: This view combines two perspectives:

    +
    +
      +
    • Order and Time Tracking: Each project is represented by a Gantt chart, indicating the project's start and end dates. This information is displayed alongside the agreed-upon deadline. A comparison is then made between the percentage of progress achieved and the actual time dedicated to each project. This provides a clear picture of the company's performance at any given time. This view is the program's default landing page.
    • +
    • Company Resource Utilization Graph: This graph displays information on resource allocation across projects, providing a summary of the entire company's resource usage. Green indicates that resource allocation is below 100% of capacity. The black line represents the total available resource capacity. Yellow indicates that resource allocation exceeds 100%. It's possible to have under-allocation overall while simultaneously experiencing over-allocation for specific resources.
    • +
    +
    +
  • +
  • Resource Load View: This screen displays a list of the company's workers and their specific task allocations, or generic allocations based on defined criteria. To access this view, click on Overall load of resources. See the following image for an example.

    +
  • +
  • Orders Administration View: This screen displays a list of company orders, allowing users to perform the following actions: filter, edit, delete, visualize planning, or create a new order. To access this view, click on Order list.

    +
  • +
+
+images/resources_global.png +

Resource Overview

+
+
+images/order_list.png +

Work Breakdown Structure

+
+

The view management described above for the company overview is very similar to the management available for a single project. A project can be accessed in several ways:

+
    +
  • Right-click on the Gantt chart for the order and select Plan.
  • +
  • Access the order list and click on the Gantt diagram icon.
  • +
  • Create a new order and change the current order view.
  • +
+

The program offers the following views for an order:

+
    +
  • Planning View: This view allows users to visualize task planning, dependencies, milestones, and more. See the Planning section for further details.
  • +
  • Resource Load View: This view allows users to check the designated resource load for a project. The color code is consistent with the company overview: green for a load less than 100%, yellow for a load equal to 100%, and red for a load over 100%. The load may originate from a specific task or a set of criteria (generic allocation).
  • +
  • Editing Order View: This view allows users to modify the details of the order. See the Orders section for more information.
  • +
  • Advanced Resource Allocation View: This view allows users to allocate resources with advanced options, such as specifying hours per day or the allocated functions to be performed. See the Resource allocation section for more information.
  • +
+
+
+

What Makes TASKPM Useful?

+

TASKPM is a general-purpose planning tool developed to address challenges in industrial project planning that were not adequately covered by existing tools. The development of TASKPM was also motivated by the desire to provide a free, open-source, and entirely web-based alternative to proprietary planning tools.

+

The core concepts underpinning the program are as follows:

+
    +
  • Company and Multi-Project Overview: TASKPM is specifically designed to provide users with information about multiple projects being carried out within a company. Therefore, it is inherently a multi-project program. The program's focus is not limited to individual projects, although specific views for individual projects are also available.
  • +
  • View Management: The company overview, or multi-project view, is accompanied by various views of the stored information. For example, the company overview allows users to view orders and compare their status, view the company's overall resource load, and manage orders. Users can also access the planning view, resource load view, advanced resource allocation view, and editing order view for individual projects.
  • +
  • Criteria: Criteria are a system entity that enables the classification of both resources (human and machine) and tasks. Resources must meet certain criteria, and tasks require specific criteria to be fulfilled. This is one of the program's most important features, as criteria form the basis of generic allocation and address a significant challenge in the industry: the time-consuming nature of human resource management and the difficulty of long-term company load estimations.
  • +
  • Resources: There are two types of resources: human and machine. Human resources are the company's workers, used for planning, monitoring, and controlling the company's workload. Machine resources, dependent on the people who operate them, function similarly to human resources.
  • +
  • Resource Allocation: A key feature of the program is the ability to designate resources in two ways: specifically and generically. Generic allocation is based on the criteria required to complete a task and must be fulfilled by resources capable of meeting those criteria. To understand generic allocation, consider this example: John Smith is a welder. Typically, John Smith would be specifically assigned to a planned task. However, TASKPM offers the option of selecting any welder within the company, without needing to specify that John Smith is the assigned person.
  • +
  • Company Load Control: The program allows for easy control of the company's resource load. This control extends to both the mid-term and long-term, as current and future projects can be managed within the program. TASKPM provides graphs that visually represent resource utilization.
  • +
  • Labels: Labels are used to categorize project tasks. With these labels, users can group tasks by concept, allowing for later review as a group or after filtering.
  • +
  • Filters: Because the system naturally includes elements that label or characterize tasks and resources, criteria filters or labels can be used. This is very useful for reviewing categorized information or generating specific reports based on criteria or labels.
  • +
  • Calendars: Calendars define the available productive hours for different resources. Users can create general company calendars or define more specific calendars, allowing for the creation of calendars for individual resources and tasks.
  • +
  • Orders and Order Elements: Work requested by clients is treated as an order within the application, structured into order elements. The order and its elements follow a hierarchical structure with x levels. This element tree forms the basis for work planning.
  • +
  • Progress: The program can manage various types of progress. A project's progress can be measured as a percentage, in units, against the agreed budget, and more. The responsibility for determining which type of progress to use for comparison at higher project levels lies with the planning manager.
  • +
  • Tasks: Tasks are the fundamental planning elements within the program. They are used to schedule work to be carried out. Key characteristics of tasks include: dependencies between tasks, and the potential requirement for specific criteria to be met before resources can be allocated.
  • +
  • Work Reports: These reports, submitted by the company's workers, detail the hours worked and the tasks associated with those hours. This information allows the system to calculate the actual time taken to complete a task compared to the budgeted time. Progress can then be compared against the actual hours used.
  • +
+

In addition to the core functions, TASKPM offers other features that distinguish it from similar programs:

+
    +
  • Integration with ERP: The program can directly import information from company ERP systems, including orders, human resources, work reports, and specific criteria.
  • +
  • Version Management: The program can manage multiple planning versions, while still allowing users to review the information from each version.
  • +
  • History Management: The program does not delete information; it only marks it as invalid. This allows users to review historical information using date filters.
  • +
+
+
+

Usability Conventions

+
+

Information About Forms

+

Before describing the various functions associated with the most important modules, we need to explain the general navigation and form behavior.

+

There are essentially three types of editing forms:

+
    +
  • Forms with a *Return* button: These forms are part of a larger context, and the changes made are stored in memory. The changes are only applied when the user explicitly saves all the details on the screen from which the form originated.
  • +
  • Forms with *Save* and *Close* buttons: These forms allow for two actions. The first saves the changes and closes the current window. The second closes the window without saving any changes.
  • +
  • Forms with *Save and continue*, *Save*, and *Close* buttons: These forms allow for three actions. The first saves the changes and keeps the current form open. The second saves the changes and closes the form. The third closes the window without saving any changes.
  • +
+
+
+

Standard Icons and Buttons

+
    +
  • Editing: In general, records in the program can be edited by clicking on an icon that looks like a pencil on a white notebook.
  • +
  • Left Indent: These operations are generally used for elements within a tree structure that need to be moved to a deeper level. This is done by clicking on the icon that looks like a green arrow pointing to the right.
  • +
  • Right Indent: These operations are generally used for elements within a tree structure that need to be moved to a higher level. This is done by clicking on the icon that looks like a green arrow pointing to the left.
  • +
  • Deleting: Users can delete information by clicking on the trash can icon.
  • +
  • Search: The magnifying glass icon indicates that the text field to its left is used for searching for elements.
  • +
+
+
+

Tabs

+

The program uses tabs to organize content editing and administration forms. This method is used to divide a comprehensive form into different sections, accessible by clicking on the tab names. The other tabs retain their current status. In all cases, the save and cancel options apply to all sub-forms within the different tabs.

+
+
+

Explicit Actions and Context Help

+

The program includes components that provide additional descriptions of elements when the mouse hovers over them for one second. The actions that the user can perform are indicated on the button labels, in the help texts associated with them, in the browsing menu options, and in the context menus that appear when right-clicking in the planner area. Furthermore, shortcuts are provided for the main operations, such as double-clicking on listed elements or using key events with the cursor and the Enter key to add elements when navigating through forms.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nl/02-criterios.html b/libreplan-webapp/src/main/webapp/help/nl/02-criterios.html new file mode 100644 index 000000000..42fad10d3 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/02-criterios.html @@ -0,0 +1,69 @@ + + + + + + +Criteria + + + +
+

Criteria

+ +
+

Contents

+ +
+

Criteria are elements used within the program to categorize both resources and tasks. Tasks require specific criteria, and resources must meet those criteria.

+

Here's an example of how criteria are used: A resource is assigned the criterion "welder" (meaning the resource fulfills the "welder" category), and a task requires the "welder" criterion to be completed. Consequently, when resources are allocated to tasks using generic allocation (as opposed to specific allocation), workers with the "welder" criterion will be considered. For more information on the different types of allocation, refer to the chapter on resource allocation.

+

The program allows for several operations involving criteria:

+
    +
  • Criteria administration
  • +
  • Assigning criteria to resources
  • +
  • Assigning criteria to tasks
  • +
  • Filtering entities based on criteria. Tasks and order items can be filtered by criteria to perform various operations within the program.
  • +
+

This section will only explain the first function, criteria administration. The two types of allocation will be covered later: resource allocation in the "Resource Management" chapter, and filtering in the "Task Planning" chapter.

+
+

Criteria Administration

+

Criteria administration can be accessed through the administration menu:

+
+images/menu.png +

First-Level Menu Tabs

+
+

The specific operation for managing criteria is Manage criteria. This operation allows you to list the criteria available in the system.

+
+images/lista-criterios.png +

List of Criteria

+
+

You can access the create/edit criterion form by clicking the Create button. To edit an existing criterion, click the edit icon.

+
+images/edicion-criterio.png +

Editing Criteria

+
+

The criteria editing form, as shown in the previous image, allows you to perform the following operations:

+
    +
  • Edit the criterion's name.
  • +
  • Specify whether multiple values can be assigned simultaneously or only one value for the selected criterion type. For example, a resource could fulfill two criteria, "welder" and "lathe operator."
  • +
  • Specify the criterion type:
      +
    • Generic: A criterion that can be used for both machines and workers.
    • +
    • Worker: A criterion that can only be used for workers.
    • +
    • Machine: A criterion that can only be used for machines.
    • +
    +
  • +
  • Indicate whether the criterion is hierarchical. Sometimes, criteria need to be treated hierarchically. For example, assigning a criterion to an element does not automatically assign it to elements derived from it. A clear example of a hierarchical criterion is "location." For instance, a person designated with the location "Galicia" will also belong to "Spain."
  • +
  • Indicate whether the criterion is authorized. This is how users deactivate criteria. Once a criterion has been created and used in historical data, it cannot be changed. Instead, it can be deactivated to prevent it from appearing in selection lists.
  • +
  • Describe the criterion.
  • +
  • Add new values. A text entry field with the New criterion button is located in the second part of the form.
  • +
  • Edit the names of existing criteria values.
  • +
  • Move criteria values up or down in the list of current criteria values.
  • +
  • Remove a criterion value from the list.
  • +
+

The criteria administration form follows the form behavior described in the introduction, offering three actions: Save, Save and Close, and Close.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nl/03-calendarios.html b/libreplan-webapp/src/main/webapp/help/nl/03-calendarios.html new file mode 100644 index 000000000..0d0bbf0d5 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/03-calendarios.html @@ -0,0 +1,187 @@ + + + + + + +Calendars + + + +
+

Calendars

+ + +

Calendars are entities within the program that define the working capacity of resources. A calendar consists of a series of days throughout the year, with each day divided into available working hours.

+

For example, a public holiday might have 0 available working hours. Conversely, a typical workday might have 8 hours designated as available working time.

+

There are two primary ways to define the number of working hours in a day:

+
    +
  • By Weekday: This method sets a standard number of working hours for each day of the week. For example, Mondays might typically have 8 working hours.
  • +
  • By Exception: This method allows for specific deviations from the standard weekday schedule. For example, Monday, January 30th, might have 10 working hours, overriding the standard Monday schedule.
  • +
+
+

Calendar Administration

+

The calendar system is hierarchical, allowing you to create base calendars and then derive new calendars from them, forming a tree structure. A calendar derived from a higher-level calendar will inherit its daily schedules and exceptions unless explicitly modified. To effectively manage calendars, it's important to understand the following concepts:

+
    +
  • Day Independence: Each day is treated independently, and each year has its own set of days. For example, if December 8th, 2009, is a public holiday, this does not automatically mean that December 8th, 2010, is also a public holiday.
  • +
  • Weekday-Based Working Days: Standard working days are based on weekdays. For example, if Mondays typically have 8 working hours, then all Mondays in all weeks of all years will have 8 available hours unless an exception is defined.
  • +
  • Exceptions and Exception Periods: You can define exceptions or exception periods to deviate from the standard weekday schedule. For example, you can specify a single day or a range of days with a different number of available working hours than the general rule for those weekdays.
  • +
+
+images/calendar-administration.png +

Calendar Administration

+
+

Calendar administration is accessible through the "Administration" menu. From there, users can perform the following actions:

+
    +
  1. Create a new calendar from scratch.
  2. +
  3. Create a calendar derived from an existing one.
  4. +
  5. Create a calendar as a copy of an existing one.
  6. +
  7. Edit an existing calendar.
  8. +
+
+

Creating a New Calendar

+

To create a new calendar, click the "Create" button. The system will display a form where you can configure the following:

+
    +
  • Select the Tab: Choose the tab you want to work on:
      +
    • Marking Exceptions: Define exceptions to the standard schedule.
    • +
    • Working Hours per Day: Define the standard working hours for each weekday.
    • +
    +
  • +
  • Marking Exceptions: If you select the "Marking Exceptions" option, you can:
      +
    • Select a specific day on the calendar.
    • +
    • Select the type of exception. The available types are: holiday, illness, strike, public holiday, and working holiday.
    • +
    • Select the end date of the exception period. (This field does not need to be changed for single-day exceptions.)
    • +
    • Define the number of working hours during the days of the exception period.
    • +
    • Delete previously defined exceptions.
    • +
    +
  • +
  • Working Hours per Day: If you select the "Working Hours per Day" option, you can:
      +
    • Define the available working hours for each weekday (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, and Sunday).
    • +
    • Define different weekly hour distributions for future periods.
    • +
    • Delete previously defined hour distributions.
    • +
    +
  • +
+

These options allow users to fully customize calendars according to their specific needs. Click the "Save" button to store any changes made to the form.

+
+images/calendar-edition.png +

Editing Calendars

+
+
+images/calendar-exceptions.png +

Adding an Exception to a Calendar

+
+
+
+

Creating Derived Calendars

+

A derived calendar is created based on an existing calendar. It inherits all the features of the original calendar, but you can modify it to include different options.

+

A common use case for derived calendars is when you have a general calendar for a country, such as Spain, and you need to create a derived calendar to include additional public holidays specific to a region, such as Galicia.

+

It's important to note that any changes made to the original calendar will automatically propagate to the derived calendar, unless a specific exception has been defined in the derived calendar. For example, the calendar for Spain might have an 8-hour working day on May 17th. However, the calendar for Galicia (a derived calendar) might have no working hours on that same day because it's a regional public holiday. If the Spanish calendar is later changed to have 4 available working hours per day for the week of May 17th, the Galician calendar will also change to have 4 available working hours for every day in that week, except for May 17th, which will remain a non-working day due to the defined exception.

+
+images/calendar-create-derived.png +

Creating a Derived Calendar

+
+

To create a derived calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Calendar administration option.
  • +
  • Select the calendar you want to use as the basis for the derived calendar and click the "Create" button.
  • +
  • The system will display an editing form with the same characteristics as the form used to create a calendar from scratch, except that the proposed exceptions and the working hours per weekday will be based on the original calendar.
  • +
+
+
+

Creating a Calendar by Copying

+

A copied calendar is an exact duplicate of an existing calendar. It inherits all the features of the original calendar, but you can modify it independently.

+

The key difference between a copied calendar and a derived calendar is how they are affected by changes to the original. If the original calendar is modified, the copied calendar remains unchanged. However, derived calendars are affected by changes made to the original, unless an exception is defined.

+

A common use case for copied calendars is when you have a calendar for one location, such as "Pontevedra," and you need a similar calendar for another location, such as "A Coruña," where most of the features are the same. However, changes to one calendar should not affect the other.

+

To create a copied calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Calendar administration option.
  • +
  • Select the calendar you want to copy and click the "Create" button.
  • +
  • The system will display an editing form with the same characteristics as the form used to create a calendar from scratch, except that the proposed exceptions and the working hours per weekday will be based on the original calendar.
  • +
+
+
+

Default Calendar

+

One of the existing calendars can be designated as the default calendar. This calendar will be automatically assigned to any entity in the system that is managed with calendars unless a different calendar is specified.

+

To set up a default calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Configuration option.
  • +
  • In the Default calendar field, select the calendar you want to use as the program's default calendar.
  • +
  • Click Save.
  • +
+
+images/default-calendar.png +

Setting a Default Calendar

+
+
+
+

Assigning a Calendar to Resources

+

Resources can only be activated (i.e., have available working hours) if they have an assigned calendar with a valid activation period. If no calendar is assigned to a resource, the default calendar is assigned automatically, with an activation period that begins on the start date and has no expiry date.

+
+images/resource-calendar.png +

Resource Calendar

+
+

However, you can delete the calendar that has been previously assigned to a resource and create a new calendar based on an existing one. This allows for complete customization of calendars for individual resources.

+

To assign a calendar to a resource:

+
    +
  • Go to the Edit resources option.
  • +
  • Select a resource and click Edit.
  • +
  • Select the "Calendar" tab.
  • +
  • The calendar, along with its exceptions, working hours per day, and activation periods, will be displayed.
  • +
  • Each tab will have the following options:
      +
    • Exceptions: Define exceptions and the period to which they apply, such as holidays, public holidays, or different workdays.
    • +
    • Working Week: Modify the working hours for each weekday (Monday, Tuesday, etc.).
    • +
    • Activation Periods: Create new activation periods to reflect the start and end dates of contracts associated with the resource. See the following image.
    • +
    +
  • +
  • Click Save to store the information.
  • +
  • Click Delete if you want to change the calendar assigned to a resource.
  • +
+
+images/new-resource-calendar.png +

Assigning a New Calendar to a Resource

+
+
+
+

Assigning Calendars to Orders

+

Projects can have a different calendar than the default calendar. To change the calendar for an order:

+
    +
  • Access the order list in the company overview.
  • +
  • Edit the order in question.
  • +
  • Access the "General information" tab.
  • +
  • Select the calendar to be assigned from the drop-down menu.
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+

Assigning Calendars to Tasks

+

Similar to resources and orders, you can assign specific calendars to individual tasks. This allows you to define different calendars for specific stages of a project. To assign a calendar to a task:

+
    +
  • Access the planning view of a project.
  • +
  • Right-click the task to which you want to assign a calendar.
  • +
  • Select the "Assign calendar" option.
  • +
  • Select the calendar to be assigned to the task.
  • +
  • Click Accept.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nl/04-avances.html b/libreplan-webapp/src/main/webapp/help/nl/04-avances.html new file mode 100644 index 000000000..615d6109f --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/04-avances.html @@ -0,0 +1,97 @@ + + + + + + +Progress + + + +
+

Progress

+ + +

Project progress indicates the degree to which the estimated completion time of the project is being met. Task progress indicates the degree to which the task is being completed according to its estimated completion.

+

Generally, progress cannot be measured automatically. A staff member with experience or a checklist must determine the degree of completion for a task or project.

+

It's important to note the distinction between the hours assigned to a task or project and the progress of that task or project. While the number of hours used may be more or less than expected, the project may be ahead of or behind its estimated completion on the monitored day. Several situations can arise from these two measurements:

+
    +
  • Fewer hours consumed than expected, but the project is behind schedule: Progress is lower than estimated for the monitored day.
  • +
  • Fewer hours consumed than expected, and the project is ahead of schedule: Progress is higher than estimated for the monitored day.
  • +
  • More hours consumed than expected, and the project is behind schedule: Progress is lower than estimated for the monitored day.
  • +
  • More hours consumed than expected, but the project is ahead of schedule: Progress is higher than estimated for the monitored day.
  • +
+

The planning view allows you to compare these situations by using information about the progress made and the hours used. This chapter will explain how to enter information to monitor progress.

+

The philosophy behind progress monitoring is based on users defining the level at which they want to monitor their projects. For example, if users want to monitor orders, they only need to enter information for level-1 elements. If they want more precise monitoring at the task level, they must enter progress information at lower levels. The system will then aggregate the data upward through the hierarchy.

+
+

Managing Progress Types

+

Companies have varying needs when monitoring project progress, particularly the tasks involved. Therefore, the system includes "progress types." Users can define different progress types to measure a task's progress. For example, a task can be measured as a percentage, but this percentage can also be translated into progress in Tonnes based on the agreement with the client.

+

A progress type has a name, a maximum value, and a precision value:

+
    +
  • Name: A descriptive name that users will recognize when selecting the progress type. This name should clearly indicate what kind of progress is being measured.
  • +
  • Maximum Value: The maximum value that can be established for a task or project as the total progress measurement. For example, if you're working with Tonnes and the normal maximum is 4000 tonnes, and no task will ever require more than 4000 tonnes of any material, then 4000 would be the maximum value.
  • +
  • Precision Value: The increment value allowed for the progress type. For example, if progress in Tonnes is to be measured in whole numbers, the precision value would be 1. From that point on, only whole numbers can be entered as progress measurements (e.g., 1, 2, 300).
  • +
+

The system has two default progress types:

+
    +
  • Percentage: A general progress type that measures the progress of a project or task based on an estimated completion percentage. For example, a task is 30% complete out of the 100% estimated for a specific day.
  • +
  • Units: A general progress type that measures progress in units without specifying the type of unit. For example, a task involves creating 3000 units, and the progress is 500 units out of the total of 3000.
  • +
+
+images/tipos-avances.png +

Administration of Progress Types

+
+

Users can create new progress types as follows:

+
    +
  • Go to the "Administration" section.
  • +
  • Click the "Manage types of progress" option in the second-level menu.
  • +
  • The system will display a list of existing progress types.
  • +
  • For each progress type, users can:
      +
    • Edit
    • +
    • Delete
    • +
    +
  • +
  • Users can then create a new progress type.
  • +
  • When editing or creating a progress type, the system displays a form with the following information:
      +
    • Name of the progress type.
    • +
    • Maximum value allowed for the progress type.
    • +
    • Precision value for the progress type.
    • +
    +
  • +
+
+
+

Entering Progress Based on Type

+

Progress is entered for order elements, but it can also be entered using a shortcut from the planning tasks. Users are responsible for deciding which progress type to associate with each order element.

+

Users can enter a single, default progress type for the entire order.

+

Before measuring progress, users must associate the chosen progress type with the order. For example, they might choose percentage progress to measure progress on the entire task or an agreed progress rate if progress measurements agreed upon with the client will be entered in the future.

+
+images/avance.png +

Progress Entry Screen with Graphic Visualization

+
+

To enter progress measurements:

+
    +
  • Select the progress type to which the progress will be added. +* If no progress type exists, a new one must be created.
  • +
  • In the form that appears under the "Value" and "Date" fields, enter the absolute value of the measurement and the date of the measurement.
  • +
  • The system automatically stores the entered data.
  • +
+
+
+

Comparing Progress for an Order Element

+

Users can graphically compare the progress made on orders with the measurements taken. All progress types have a column with a check button ("Show"). When this button is selected, the progress chart of measurements taken is displayed for the order element.

+
+images/contraste-avance.png +

Comparison of Several Progress Types

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nl/05-recursos.html b/libreplan-webapp/src/main/webapp/help/nl/05-recursos.html new file mode 100644 index 000000000..07190538a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/05-recursos.html @@ -0,0 +1,186 @@ + + + + + + +Resource Management + + + +
+

Resource Management

+ + +

The program manages two distinct types of resources: staff and machines.

+
+

Staff Resources

+

Staff resources represent the company's workers. Their key characteristics are:

+
    +
  • They fulfill one or more generic or worker-specific criteria.
  • +
  • They can be specifically assigned to a task.
  • +
  • They can be assigned generically to a task that requires a resource criterion.
  • +
  • They can have a default or a specific calendar, as needed.
  • +
+
+
+

Machine Resources

+

Machine resources represent the company's machinery. Their key characteristics are:

+
    +
  • They fulfill one or more generic or machine-specific criteria.
  • +
  • They can be specifically assigned to a task.
  • +
  • They can be assigned generically to a task that requires a machine criterion.
  • +
  • They can have a default or a specific calendar, as needed.
  • +
  • The program includes a configuration screen where an alpha value can be defined to represent the machine/worker ratio.
      +
    • The alpha value indicates the amount of worker time required to operate the machine. For example, an alpha value of 0.5 means that every 8 hours of machine operation requires 4 hours of a worker's time.
    • +
    • Users can assign an alpha value specifically to a worker, designating that worker to operate the machine for that percentage of time.
    • +
    • Users can also make a generic assignment based on a criterion, so that a percentage of use is assigned to all resources that meet that criterion and have available time. Generic assignment works similarly to generic assignment for tasks, as described previously.
    • +
    +
  • +
+
+
+

Managing Resources

+

Users can create, edit, and deactivate (but not permanently delete) workers and machines within the company by navigating to the "Resources" section. This section provides the following features:

+
    +
  • List of Workers: Displays a numbered list of workers, allowing users to manage their details.
  • +
  • List of Machines: Displays a numbered list of machines, allowing users to manage their details.
  • +
+
+

Managing Workers

+

Worker management is accessed by going to the "Resources" section and then selecting "List of workers." Users can edit any worker in the list by clicking the standard edit icon.

+

When editing a worker, users can access the following tabs:

+
    +
  1. Worker Details: This tab allows users to edit the worker's basic identification details:

    +
      +
    • Name
    • +
    • Surname(s)
    • +
    • National ID document (DNI)
    • +
    • Queue-based resource (see section on Queue-based Resources)
    • +
    +
    +images/worker-personal-data.png +

    Editing Workers' Personal Details

    +
    +
  2. +
  3. Criteria: This tab is used to configure the criteria that a worker fulfills. Users can assign any worker or generic criteria they deem appropriate. It's crucial for workers to fulfill criteria to maximize the program's functionality. To assign criteria:

    +
      +
    1. Click the "Add criteria" button.
    2. +
    3. Search for the criterion to be added and select the most appropriate one.
    4. +
    5. Click the "Add" button.
    6. +
    7. Select the start date when the criterion becomes applicable.
    8. +
    9. Select the end date for applying the criterion to the resource. This date is optional if the criterion is considered indefinite.
    10. +
    +
    +images/worker-criterions.png +

    Associating Criteria with Workers

    +
    +
  4. +
  5. Calendar: This tab allows users to configure a specific calendar for the worker. All workers have a default calendar assigned; however, it's possible to assign a specific calendar to each worker based on an existing calendar.

    +
    +images/worker-calendar.png +

    Calendar Tab for a Resource

    +
    +
  6. +
  7. Cost Category: This tab allows users to configure the cost category that a worker fulfills during a given period. This information is used to calculate the costs associated with a worker on a project.

    +
    +images/worker-costcategory.png +

    Cost Category Tab for a Resource

    +
    +
  8. +
+

Resource assignment is explained in the "Resource Assignment" section.

+
+
+

Managing Machines

+

Machines are treated as resources for all purposes. Therefore, similar to workers, machines can be managed and assigned to tasks. Resource assignment is covered in the "Resource Assignment" section, which will explain the specific features of machines.

+

Machines are managed from the "Resources" menu entry. This section has an operation called "Machine list," which displays the company's machines. Users can edit or delete a machine from this list.

+

When editing machines, the system displays a series of tabs for managing different details:

+
    +
  1. Machine Details: This tab allows users to edit the machine's identification details:

    +
      +
    1. Name
    2. +
    3. Machine code
    4. +
    5. Description of the machine
    6. +
    +
    +images/machine-data.png +

    Editing Machine Details

    +
    +
  2. +
  3. Criteria: As with worker resources, this tab is used to add criteria that the machine fulfills. Two types of criteria can be assigned to machines: machine-specific or generic. Worker criteria cannot be assigned to machines. To assign criteria:

    +
      +
    1. Click the "Add criteria" button.
    2. +
    3. Search for the criterion to be added and select the most appropriate one.
    4. +
    5. Select the start date when the criterion becomes applicable.
    6. +
    7. Select the end date for applying the criterion to the resource. This date is optional if the criterion is considered indefinite.
    8. +
    9. Click the "Save and continue" button.
    10. +
    +
    +images/machine-criterions.png +

    Assigning Criteria to Machines

    +
    +
  4. +
  5. Calendar: This tab allows users to configure a specific calendar for the machine. All machines have a default calendar assigned; however, it's possible to assign a specific calendar to each machine based on an existing calendar.

    +
    +images/machine-calendar.png +

    Assigning Calendars to Machines

    +
    +
  6. +
  7. Machine Configuration: This tab allows users to configure the ratio of machines to worker resources. A machine has an alpha value that indicates the machine/worker ratio. As mentioned previously, an alpha value of 0.5 indicates that 0.5 people are required for each full day of machine operation. Based on the alpha value, the system automatically assigns workers who are associated with the machine once the machine is assigned to a task. Associating a worker with a machine can be done in two ways:

    +
      +
    1. Specific Assignment: Assign a range of dates during which the worker is assigned to the machine. This is a specific assignment, as the system automatically assigns hours to the worker when the machine is scheduled.
    2. +
    3. Generic Assignment: Assign criteria that must be fulfilled by workers assigned to the machine. This creates a generic assignment of workers who meet the criteria.
    4. +
    +
    +images/machine-configuration.png +

    Configuration of Machines

    +
    +
  8. +
  9. Cost Category: This tab allows users to configure the cost category that a machine fulfills during a given period. This information is used to calculate the costs associated with a machine on a project.

    +
    +images/machine-costcategory.png +

    Assigning Cost Categories to Machines

    +
    +
  10. +
+
+
+

Virtual Worker Groups

+

The program allows users to create virtual worker groups, which are not real workers but simulated staff. These groups enable users to model increased production capacity at specific times, based on the calendar settings.

+

Virtual worker groups allow users to assess how project planning would be affected by hiring and assigning staff who meet specific criteria, thus aiding in the decision-making process.

+

The tabs for creating virtual worker groups are the same as those for configuring workers:

+
    +
  • General Details
  • +
  • Assigned Criteria
  • +
  • Calendars
  • +
  • Associated Hours
  • +
+

The difference between virtual worker groups and actual workers is that virtual worker groups have a name for the group and a quantity, which represents the number of real people in the group. There is also a field for comments, where additional information can be provided, such as which project would require hiring equivalent to the virtual worker group.

+
+images/virtual-resources.png +

Virtual Resources

+
+
+
+

Queue-based Resources

+

Queue-based resources are a specific type of productive element that can either be unassigned or have 100% dedication. In other words, they cannot have more than one task scheduled at the same time, nor can they be over-allocated.

+

For each queue-based resource, a queue is automatically created. The tasks scheduled for these resources can be managed specifically using the provided assignment methods, creating automatic assignments between tasks and queues that match the required criteria, or by moving tasks between queues.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nl/06-pedidos.html b/libreplan-webapp/src/main/webapp/help/nl/06-pedidos.html new file mode 100644 index 000000000..87fd79071 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/06-pedidos.html @@ -0,0 +1,315 @@ + + + + + + +Orders and Order Elements + + + +
+

Orders and Order Elements

+ + +

Orders represent the work to be performed by users of the program. Each order corresponds to a project that the company will offer to its clients.

+

An order consists of one or more order elements. Each order element represents a specific part of the work to be done and defines how the work on the order should be planned and executed. Order elements are organized hierarchically, with no limitations on the depth of the hierarchy. This hierarchical structure allows for the inheritance of certain features, such as labels.

+

The following sections describe the operations that users can perform with orders and order elements.

+
+

Orders

+

An order represents a project or work requested by a client from the company. The order identifies the project within the company's planning. Unlike comprehensive management programs, TASKPM only requires certain key details for an order. These details are:

+
    +
  • Order Name: The name of the order.
  • +
  • Order Code: A unique code for the order.
  • +
  • Total Order Amount: The total financial value of the order.
  • +
  • Estimated Start Date: The planned start date for the order.
  • +
  • End Date: The planned completion date for the order.
  • +
  • Person in Charge: The individual responsible for the order.
  • +
  • Description: A description of the order.
  • +
  • Assigned Calendar: The calendar associated with the order.
  • +
  • Automatic Generation of Codes: A setting to instruct the system to automatically generate codes for order elements and hour groups.
  • +
  • Preference between Dependencies and Restrictions: Users can choose whether dependencies or restrictions take priority in case of conflicts.
  • +
+

However, a complete order also includes other associated entities:

+
    +
  • Hours Assigned to the Order: The total hours allocated to the order.
  • +
  • Progress Attributed to the Order: The progress made on the order.
  • +
  • Labels: Labels assigned to the order.
  • +
  • Criteria Assigned to the Order: Criteria associated with the order.
  • +
  • Materials: Materials required for the order.
  • +
  • Quality Forms: Quality forms associated with the order.
  • +
+

Creating or editing an order can be done from several locations within the program:

+
    +
  • From the "Order List" in the Company Overview:
      +
    • Editing: Click the edit button on the desired order.
    • +
    • Creating: Click "New order."
    • +
    +
  • +
  • From an Order in the Gantt Chart: Change to the order details view.
  • +
+

Users can access the following tabs when editing an order:

+
    +
  • Editing Order Details: This screen allows users to edit basic order details:

    +
      +
    • Name
    • +
    • Code
    • +
    • Estimated Start Date
    • +
    • End Date
    • +
    • Person in Charge
    • +
    • Client
    • +
    • Description
    • +
    +
    +images/order-edition.png +

    Editing Orders

    +
    +
  • +
  • Order Element List: This screen allows users to perform several operations on order elements:

    +
      +
    • Creating new order elements.
    • +
    • Promoting an order element one level up in the hierarchy.
    • +
    • Demoting an order element one level down in the hierarchy.
    • +
    • Indenting an order element (moving it down the hierarchy).
    • +
    • Unindenting an order element (moving it up the hierarchy).
    • +
    • Filtering order elements.
    • +
    • Deleting order elements.
    • +
    • Moving an element within the hierarchy by dragging and dropping.
    • +
    +
    +images/order-elements-list.png +

    Order Element List

    +
    +
  • +
  • Assigned Hours: This screen displays the total hours attributed to the project, grouping the hours entered in the order elements.

    +
    +images/order-assigned-hours.png +

    Assigning Hours Attributed to the Order by Workers

    +
    +
  • +
  • Progress: This screen allows users to assign progress types and enter progress measurements for the order. See the "Progress" section for more details.

    +
  • +
  • Labels: This screen allows users to assign labels to an order and view previously assigned direct and indirect labels. See the following section on editing order elements for a detailed description of label management.

    +
    +images/order-labels.png +

    Order Labels

    +
    +
  • +
  • Criteria: This screen allows users to assign criteria that will apply to all tasks within the order. These criteria will be automatically applied to all order elements, except those that have been explicitly invalidated. The hour groups of order elements, which are grouped by criteria, can also be viewed, allowing users to identify the criteria required for an order.

    +
    +images/order-criterions.png +

    Order Criteria

    +
    +
  • +
  • Materials: This screen allows users to assign materials to orders. Materials can be selected from the available material categories in the program. Materials are managed as follows:

    +
      +
    • Select the "Search materials" tab at the bottom of the screen.
    • +
    • Enter text to search for materials or select the categories for which you want to find materials.
    • +
    • The system filters the results.
    • +
    • Select the desired materials (multiple materials can be selected by pressing the "Ctrl" key).
    • +
    • Click "Assign."
    • +
    • The system displays the list of materials already assigned to the order.
    • +
    • Select the units and the status to assign to the order.
    • +
    • Click "Save" or "Save and continue."
    • +
    • To manage the receipt of materials, click "Divide" to change the status of a partial quantity of material.
    • +
    +
    +images/order-material.png +

    Materials Associated with an Order

    +
    +
  • +
  • Quality: Users can assign a quality form to the order. This form is then completed to ensure that certain activities associated with the order are carried out. See the following section on editing order elements for details on managing quality forms.

    +
    +images/order-quality.png +

    Quality Form Associated with the Order

    +
    +
  • +
+
+
+

Editing Order Elements

+

Order elements are edited from the "Order element list" tab by clicking the edit icon. This opens a new screen where users can:

+
    +
  • Edit information about the order element.
  • +
  • View hours attributed to order elements.
  • +
  • Manage progress of order elements.
  • +
  • Manage order labels.
  • +
  • Manage criteria required by the order element.
  • +
  • Manage materials.
  • +
  • Manage quality forms.
  • +
+

The following subsections describe each of these operations in detail.

+
+

Editing Information about the Order Element

+

Editing information about the order element includes modifying the following details:

+
    +
  • Order Element Name: The name of the order element.
  • +
  • Order Element Code: A unique code for the order element.
  • +
  • Start Date: The planned start date of the order element.
  • +
  • Estimated End Date: The planned completion date of the order element.
  • +
  • Total Hours: The total hours allocated to the order element. These hours can be calculated from the added hour groups or entered directly. If entered directly, the hours must be distributed among the hour groups, and a new hour group created if the percentages do not match the initial percentages.
  • +
  • Hour Groups: One or more hour groups can be added to the order element. The purpose of these hour groups is to define the requirements for the resources that will be assigned to perform the work.
  • +
  • Criteria: Criteria can be added that must be met to enable generic assignment for the order element.
  • +
+
+images/order-element-edition.png +

Editing Order Elements

+
+
+
+

Viewing Hours Attributed to Order Elements

+

The "Assigned hours" tab allows users to view the work reports associated with an order element and see how many of the estimated hours have already been completed.

+
+images/order-element-hours.png +

Hours Assigned to Order Elements

+
+

The screen is divided into two parts:

+
    +
  • Work Report List: Users can view the list of work reports associated with the order element, including the date and time, resource, and number of hours devoted to the task.
  • +
  • Use of Estimated Hours: The system calculates the total number of hours devoted to the task and compares them with the estimated hours.
  • +
+
+
+

Managing Progress of Order Elements

+

Entering progress types and managing order element progress is described in the "Progress" chapter.

+
+
+

Managing Order Labels

+

Labels, as described in the chapter on labels, allow users to categorize order elements. This enables users to group planning or order information based on these labels.

+

Users can assign labels directly to an order element or to a higher-level order element in the hierarchy. Once a label is assigned using either method, the order element and the related planning task are associated with the label and can be used for subsequent filtering.

+
+images/order-element-tags.png +

Assigning Labels for Order Elements

+
+

As shown in the image, users can perform the following actions from the Labels tab:

+
    +
  • View Inherited Labels: View labels associated with the order element that were inherited from a higher-level order element. The planning task associated with each order element has the same associated labels.
  • +
  • View Directly Assigned Labels: View labels directly associated with the order element using the assignment form for lower-level labels.
  • +
  • Assign Existing Labels: Assign labels by searching for them among the available labels in the form below the direct label list. To search for a label, click the magnifying glass icon or enter the first letters of the label in the text box to display the available options.
  • +
  • Create and Assign New Labels: Create new labels associated with an existing label type from this form. To do this, select a label type and enter the label value for the selected type. The system automatically creates the label and assigns it to the order element when "Create and assign" is clicked.
  • +
+
+
+

Managing Criteria Required by the Order Element and Hour Groups

+

Both an order and an order element can have criteria assigned that must be met for the work to be performed. Criteria can be direct or indirect:

+
    +
  • Direct Criteria: These are assigned directly to the order element. They are criteria required by the hour groups on the order element.
  • +
  • Indirect Criteria: These are assigned to higher-level order elements in the hierarchy and are inherited by the element being edited.
  • +
+

In addition to the required criteria, one or more hour groups that are part of the order element can be defined. This depends on whether the order element contains other order elements as child nodes or if it is a leaf node. In the first case, information about hours and hour groups can only be viewed. However, leaf nodes can be edited. Leaf nodes work as follows:

+
    +
  • The system creates a default hour group associated with the order element. The details that can be modified for an hour group are:
      +
    • Code: The code for the hour group (if not automatically generated).
    • +
    • Criterion Type: Users can choose to assign a machine or worker criterion.
    • +
    • Number of Hours: The number of hours in the hour group.
    • +
    • List of Criteria: The criteria to be applied to the hour group. To add new criteria, click "Add criterion" and select one from the search engine that appears after clicking the button.
    • +
    +
  • +
  • Users can add new hour groups with different features than previous hour groups. For example, an order element might require a welder (30 hours) and a painter (40 hours).
  • +
+
+images/order-element-criterion.png +

Assigning Criteria to Order Elements

+
+
+
+

Managing Materials

+

Materials are managed in projects as a list associated with each order element or an order in general. The list of materials includes the following fields:

+
    +
  • Code: The material code.
  • +
  • Date: The date associated with the material.
  • +
  • Units: The required number of units.
  • +
  • Unit Type: The type of unit used to measure the material.
  • +
  • Unit Price: The price per unit.
  • +
  • Total Price: The total price (calculated by multiplying the unit price by the number of units).
  • +
  • Category: The category to which the material belongs.
  • +
  • Status: The status of the material (e.g., Received, Requested, Pending, Processing, Cancelled).
  • +
+

Working with materials is done as follows:

+
    +
  • Select the "Materials" tab on an order element.
  • +
  • The system displays two sub-tabs: "Materials" and "Search materials."
  • +
  • If the order element has no assigned materials, the first tab will be empty.
  • +
  • Click "Search materials" in the lower-left part of the window.
  • +
  • The system displays the list of available categories and associated materials.
  • +
+
+images/order-element-material-search.png +

Searching for Materials

+
+
    +
  • Select categories to refine the material search.
  • +
  • The system displays the materials that belong to the selected categories.
  • +
  • From the materials list, select the materials to assign to the order element.
  • +
  • Click "Assign."
  • +
  • The system displays the selected list of materials on the "Materials" tab with new fields to complete.
  • +
+
+images/order-element-material-assign.png +

Assigning Materials to Order Elements

+
+
    +
  • Select the units, status, and date for the assigned materials.
  • +
+

For subsequent monitoring of materials, it's possible to change the status of a group of units of the received material. This is done as follows:

+
    +
  • Click the "Divide" button on the list of materials to the right of each row.
  • +
  • Select the number of units to divide the row into.
  • +
  • The program displays two rows with the material divided.
  • +
  • Change the status of the row containing the material.
  • +
+

The advantage of using this dividing tool is the ability to receive partial deliveries of material without having to wait for the entire delivery to mark it as received.

+
+
+

Managing Quality Forms

+

Some order elements require certification that certain tasks have been completed before they can be marked as complete. This is why the program has quality forms, which consist of a list of questions that are considered important if answered positively.

+

It's important to note that a quality form must be created beforehand to be assigned to an order element.

+

To manage quality forms:

+
    +
  • Go to the "Quality forms" tab.

    +
    +images/order-element-quality.png +

    Assigning Quality Forms to Order Elements

    +
    +
  • +
  • The program has a search engine for quality forms. There are two types of quality forms: by element or by percentage.

    +
      +
    • Element: Each element is independent.
    • +
    • Percentage: Each question increases the progress of the order element by a percentage. The percentages must be able to add up to 100%.
    • +
    +
  • +
  • Select one of the forms created in the administration interface and click "Assign."

    +
  • +
  • The program assigns the chosen form from the list of forms assigned to the order element.

    +
  • +
  • Click the "Edit" button on the order element.

    +
  • +
  • The program displays the questions from the quality form in the lower list.

    +
  • +
  • Mark the questions that have been completed as achieved.

    +
      +
    • If the quality form is based on percentages, the questions are answered in order.
    • +
    • If the quality form is based on elements, the questions can be answered in any order.
    • +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nl/07-planificacion.html b/libreplan-webapp/src/main/webapp/help/nl/07-planificacion.html new file mode 100644 index 000000000..7b8954f83 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/07-planificacion.html @@ -0,0 +1,117 @@ + + + + + + +Task Planning + + + +
+

Task Planning

+ + +
+

Task Planning

+

Planning in TASKPM is a process that has been described throughout the user guide, with the chapters on orders and resource assignment being particularly important. This chapter describes the basic planning procedures after the order and Gantt charts have been properly configured.

+
+images/planning-view.png +

Work Planning View

+
+

As with the company overview, the project planning view is divided into several views based on the information being analyzed. The views available for a specific project are:

+
    +
  • Planning View
  • +
  • Resource Load View
  • +
  • Order List View
  • +
  • Advanced Assignment View
  • +
+
+

Planning View

+

The Planning View combines three different perspectives:

+
    +
  • Project Planning: Project planning is displayed in the upper right-hand part of the program as a Gantt chart. This view allows users to temporarily move tasks, assign dependencies between them, define milestones, and establish restrictions.
  • +
  • Resource Load: The Resource Load view, located in the lower right-hand part of the screen, shows resource availability based on assignments, as opposed to the assignments made to tasks. The information displayed in this view is as follows:
      +
    • Purple Area: Indicates a resource load below 100% of its capacity.
    • +
    • Green Area: Indicates a resource load below 100%, resulting from the resource being planned for another project.
    • +
    • Orange Area: Indicates a resource load over 100% as a result of the current project.
    • +
    • Yellow Area: Indicates a resource load over 100% as a result of other projects.
    • +
    +
  • +
  • Graph View and Earned Value Indicators: These can be viewed from the "Earned Value" tab. The generated graph is based on the earned value technique, and the indicators are calculated for each workday of the project. The calculated indicators are:
      +
    • BCWS (Budgeted Cost of Work Scheduled): The cumulative time function for the number of hours planned up to a certain date. It will be 0 at the planned start of the task and equal to the total number of planned hours at the end. As with all cumulative graphs, it will always increase. The function for a task will be the sum of the daily assignments until the calculation date. This function has values for all times, provided that resources have been assigned.
    • +
    • ACWP (Actual Cost of Work Performed): The cumulative time function for the hours reported in work reports up to a certain date. This function will only have a value of 0 before the date of the task's first work report, and its value will continue to increase as time passes and work report hours are added. It will have no value after the date of the last work report.
    • +
    • BCWP (Budgeted Cost of Work Performed): The cumulative time function that includes the resultant value of multiplying task progress by the amount of work that the task was estimated to require for completion. This function's values increase as time passes, as do progress values. Progress is multiplied by the total number of estimated hours for all tasks. The BCWP value is the sum of the values for the tasks being calculated. Progress is totaled when it is configured.
    • +
    • CV (Cost Variance): CV = BCWP - ACWP
    • +
    • SV (Schedule Variance): SV = BCWP - BCWS
    • +
    • BAC (Budget at Completion): BAC = max (BCWS)
    • +
    • EAC (Estimate at Completion): EAC = (ACWP / BCWP) * BAC
    • +
    • VAC (Variance at Completion): VAC = BAC - EAC
    • +
    • ETC (Estimate to Complete): ETC = EAC - ACWP
    • +
    • CPI (Cost Performance Index): CPI = BCWP / ACWP
    • +
    • SPI (Schedule Performance Index): SPI = BCWP / BCWS
    • +
    +
  • +
+

In the project planning view, users can perform the following actions:

+
    +
  • Assigning Dependencies: Right-click a task, choose "Add dependency," and drag the mouse pointer to the task to which the dependency should be assigned.
      +
    • To change the type of dependency, right-click the dependency and choose the desired type.
    • +
    +
  • +
  • Creating a New Milestone: Click the task before which the milestone is to be added and select the "Add milestone" option. Milestones can be moved by selecting the milestone with the mouse pointer and dragging it to the desired position.
  • +
  • Moving Tasks without Disturbing Dependencies: Right-click the body of the task and drag it to the desired position. If no restrictions or dependencies are violated, the system will update the daily assignment of resources to the task and place the task on the selected date.
  • +
  • Assigning Restrictions: Click the task in question and select the "Task properties" option. A pop-up window will appear with a "Restrictions" field that can be modified. Restrictions can conflict with dependencies, which is why each order specifies whether dependencies take priority over restrictions. The restrictions that can be established are:
      +
    • As Soon as Possible: Indicates that the task must start as soon as possible.
    • +
    • Not Before: Indicates that the task must not start before a certain date.
    • +
    • Start on a Specific Date: Indicates that the task must start on a specific date.
    • +
    +
  • +
+

The planning view also offers several procedures that function as viewing options:

+
    +
  • Zoom Level: Users can choose the desired zoom level. There are several zoom levels: annual, four-monthly, monthly, weekly, and daily.
  • +
  • Search Filters: Users can filter tasks based on labels or criteria.
  • +
  • Critical Path: As a result of using the Dijkstra algorithm to calculate paths on graphs, the critical path was implemented. It can be viewed by clicking the "Critical path" button in the viewing options.
  • +
  • Show Labels: Enables users to view the labels assigned to tasks in a project, which can be viewed on screen or printed.
  • +
  • Show Resources: Enables users to view the resources assigned to tasks in a project, which can be viewed on screen or printed.
  • +
  • Print: Enables users to print the Gantt chart being viewed.
  • +
+
+
+

Resource Load View

+

The Resource Load View provides a list of resources that contains a list of tasks or criteria that generate workloads. Each task or criterion is shown as a Gantt chart so that the start and end dates of the load can be seen. A different color is shown depending on whether the resource has a load that is higher or lower than 100%:

+
    +
  • Green: Load lower than 100%
  • +
  • Orange: 100% load
  • +
  • Red: Load over 100%
  • +
+
+images/resource-load.png +

Resource Load View for a Specific Order

+
+

If the mouse pointer is placed on the resource's Gantt chart, the load percentage for the worker will be shown.

+
+
+

Order List View

+

The Order List View allows users to access the order editing and deleting options. See the "Orders" chapter for more information.

+
+
+

Advanced Assignment View

+

The Advanced Assignment View is explained in depth in the "Resource Assignment" chapter.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nl/08-asignacion.html b/libreplan-webapp/src/main/webapp/help/nl/08-asignacion.html new file mode 100644 index 000000000..46da7239c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/08-asignacion.html @@ -0,0 +1,179 @@ + + + + + + +Resource Assignment + + + +
+

Resource Assignment

+ + +

Resource assignment is one of the program's most important features and can be carried out in two different ways:

+
    +
  • Specific assignment
  • +
  • Generic assignment
  • +
+

Both types of assignment are explained in the following sections.

+

To perform either type of resource assignment, the following steps are necessary:

+
    +
  • Go to the planning view of an order.
  • +
  • Right-click on the task to be planned.
  • +
+
+images/resource-assignment-planning.png +

Resource Assignment Menu

+
+
    +
  • The program displays a screen with the following information:
      +
    • List of Criteria to be Fulfilled: For each hour group, a list of required criteria is shown.
    • +
    • Task Information: The start and end dates of the task.
    • +
    • Type of Calculation: The system allows users to choose the strategy for calculating assignments:
        +
      • Calculate Number of Hours: This calculates the number of hours required from the assigned resources, given an end date and a number of resources per day.
      • +
      • Calculate End Date: This calculates the end date of the task based on the number of resources assigned to the task and the total number of hours required to complete the task.
      • +
      • Calculate Number of Resources: This calculates the number of resources required to finish the task by a specific date, given a known number of hours per resource.
      • +
      +
    • +
    • Recommended Assignment: This option allows the program to gather the criteria to be fulfilled and the total number of hours from all hour groups, and then recommend a generic assignment. If a prior assignment exists, the system deletes it and replaces it with the new one.
    • +
    • Assignments: A list of assignments that have been made. This list shows the generic assignments (the number will be the list of fulfilled criteria, and the number of hours and resources per day). Each assignment can be explicitly removed by clicking the delete button.
    • +
    +
  • +
+
+images/resource-assignment.png +

Resource Assignment

+
+
    +
  • Users select "Search resources."
  • +
  • The program displays a new screen consisting of a criteria tree and a list of workers who fulfill the selected criteria on the right:
  • +
+
+images/resource-assignment-search.png +

Resource Assignment Search

+
+
    +
  • Users can select:
      +
    • Specific Assignment: See the "Specific Assignment" section for details on this option.
    • +
    • Generic Assignment: See the "Generic Assignment" section for details on this option.
    • +
    +
  • +
  • Users select a list of criteria (generic) or a list of workers (specific). Multiple selections can be made by pressing the "Ctrl" key while clicking each worker/criterion.
  • +
  • Users then click the "Select" button. It's important to remember that if a generic assignment is not selected, users must choose a worker or machine to perform the assignment. If a generic assignment is selected, it is sufficient for users to choose one or more criteria.
  • +
  • The program then displays the selected criteria or resource list in the list of assignments on the original resource assignment screen.
  • +
  • Users must choose the hours or resources per day, depending on the assignment method used in the program.
  • +
+
+

Specific Assignment

+

This is the specific assignment of a resource to a project task. In other words, the user decides which specific worker (by name and surname) or machine must be assigned to a task.

+

Specific assignment can be carried out on the screen shown in this image:

+
+images/asignacion-especifica.png +

Specific Resource Assignment

+
+

When a resource is specifically assigned, the program creates daily assignments based on the percentage of daily assigned resources selected, after comparing it with the available resource calendar. For example, an assignment of 0.5 resources for a 32-hour task means that 4 hours per day are assigned to the specific resource to complete the task (assuming a working calendar of 8 hours per day).

+
+

Specific Machine Assignment

+

Specific machine assignment functions in the same way as worker assignment. When a machine is assigned to a task, the system stores a specific assignment of hours for the chosen machine. The main difference is that the system searches the list of assigned workers or criteria at the moment the machine is assigned:

+
    +
  • If the machine has a list of assigned workers, the program chooses from those that are required by the machine, based on the assigned calendar. For example, if the machine calendar is 16 hours per day and the resource calendar is 8 hours, two resources are assigned from the list of available resources.
  • +
  • If the machine has one or more assigned criteria, generic assignments are made from among the resources that fulfill the criteria assigned to the machine.
  • +
+
+
+
+

Generic Assignment

+

Generic assignment occurs when users do not choose resources specifically but leave the decision to the program, which distributes the loads among the company's available resources.

+
+images/asignacion-xenerica.png +

Generic Resource Assignment

+
+

The assignment system uses the following assumptions as a basis:

+
    +
  • Tasks have criteria that are required from resources.
  • +
  • Resources are configured to fulfill criteria.
  • +
+

However, the system does not fail when criteria have not been assigned, but when all resources fulfill the non-requirement of criteria.

+

The generic assignment algorithm functions as follows:

+
    +
  • All resources and days are treated as containers where daily assignments of hours fit, based on the maximum assignment capacity in the task calendar.
  • +
  • The system searches for the resources that fulfill the criterion.
  • +
  • The system analyzes which assignments currently have different resources that fulfill criteria.
  • +
  • The resources that fulfill the criteria are chosen from those that have sufficient availability.
  • +
  • If freer resources are not available, assignments are made to the resources that have less availability.
  • +
  • Over-assignment of resources only begins when all the resources that fulfill the respective criteria are 100% assigned, until the total amount required to carry out the task is attained.
  • +
+
+

Generic Machine Assignment

+

Generic machine assignment functions in the same way as worker assignment. For example, when a machine is assigned to a task, the system stores a generic assignment of hours for all machines that fulfill the criteria, as described for resources in general. However, in addition, the system performs the following procedure for machines:

+
    +
  • For all machines chosen for generic assignment:
      +
    • It collects the machine's configuration information: alpha value, assigned workers, and criteria.
    • +
    • If the machine has an assigned list of workers, the program chooses the number required by the machine, depending on the assigned calendar. For example, if the machine calendar is 16 hours per day and the resource calendar is 8 hours, the program assigns two resources from the list of available resources.
    • +
    • If the machine has one or more assigned criteria, the program makes generic assignments from among the resources that fulfill the criteria assigned to the machine.
    • +
    +
  • +
+
+
+
+

Advanced Assignment

+

Advanced assignments allow users to design assignments that are automatically carried out by the application to personalize them. This procedure allows users to manually choose the daily hours that are dedicated by resources to assigned tasks or define a function that is applied to the assignment.

+

The steps to follow to manage advanced assignments are:

+
    +
  • Go to the advanced assignment window. There are two ways to access advanced assignments:
      +
    • Go to a specific order and change the view to advanced assignment. In this case, all the tasks on the order and assigned resources (specific and generic) will be shown.
    • +
    • Go to the resource assignment window by clicking the "Advanced assignment" button. In this case, the assignments that show the resources (generic and specific) assigned to a task will be shown.
    • +
    +
  • +
+
+images/advance-assignment.png +

Advanced Resource Assignment

+
+
    +
  • Users can choose the desired zoom level:
      +
    • Zoom Levels Greater Than One Day: If users change the assigned hour value to a week, month, four-month, or six-month period, the system distributes the hours linearly across all days throughout the chosen period.
    • +
    • Daily Zoom: If users change the assigned hour value to a day, these hours only apply to that day. Consequently, users can decide how many hours they want to assign per day to task resources.
    • +
    +
  • +
  • Users can choose to design an advanced assignment function. To do so, users must:
      +
    • Choose the function from the selection list that appears next to each resource and click "Configure."
    • +
    • The system displays a new window if the chosen function needs to be specifically configured. Supported functions:
        +
      • Segments: A function that allows users to define segments to which a polynomial function is applied. The function per segment is configured as follows:
          +
        • Date: The date on which the segment ends. If the following value (length) is established, the date is calculated; alternatively, length is calculated.
        • +
        • Defining the Length of Each Segment: This indicates what percentage of the task's duration is required for the segment.
        • +
        • Defining the Amount of Work: This indicates what workload percentage is expected to be completed in this segment. The quantity of work must be incremental. For example, if there is a 10% segment, the next one must be larger (for example, 20%).
        • +
        • Segment Graphs and Accumulated Loads.
        • +
        +
      • +
      +
    • +
    • Users then click "Accept."
    • +
    • The program stores the function and applies it to the daily resource assignments.
    • +
    +
  • +
+
+images/stretches.png +

Configuration of the Segment Function

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nl/09-partes.html b/libreplan-webapp/src/main/webapp/help/nl/09-partes.html new file mode 100644 index 000000000..90242b6c7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/09-partes.html @@ -0,0 +1,84 @@ + + + + + + +Work Reports + + + +
+

Work Reports

+ + +

Work reports enable the monitoring of the hours that resources dedicate to the tasks to which they are assigned.

+

The program allows users to configure new forms for entering dedicated hours, specifying the fields that they want to appear in these forms. This allows for the incorporation of reports from tasks carried out by workers and the monitoring of worker activity.

+

Before users can add entries for resources, they must define at least one work report type. This type defines the structure of the report, including all the rows that are added to it. Users can create as many work report types as necessary within the system.

+
+

Work Report Types

+

A work report consists of a series of fields that are common to the entire report and a set of work report lines with specific values for the fields defined in each row. For example, resources and tasks are common to all reports. However, there can be other new fields, such as "incidents," which are not required in all report types.

+

Users can configure different work report types so that a company can design its reports to meet its specific needs:

+
+images/work-report-types.png +

Work Report Types

+
+

The administration of work report types allows users to configure these types and add new text fields or optional tags. In the first tab for editing work report types, it is possible to configure the type for the mandatory attributes (whether they apply to the whole report or are specified at the line level) and add new optional fields.

+

The mandatory fields that must appear in all work reports are as follows:

+
    +
  • Name and Code: Identification fields for the name of the work report type and its code.
  • +
  • Date: Field for the date of the report.
  • +
  • Resource: Worker or machine appearing on the report or work report line.
  • +
  • Order Element: Code for the order element to which the performed work is attributed.
  • +
  • Hour Management: Determines the hour attribution policy to be used, which can be:
      +
    • According to Assigned Hours: Hours are attributed based on the assigned hours.
    • +
    • According to Start and Finish Times: Hours are calculated based on the start and finish times.
    • +
    • According to the Number of Hours and Start and Finish Range: Discrepancies are allowed, and the number of hours takes priority.
    • +
    +
  • +
+

Users can add new fields to the reports:

+
    +
  • Tag Type: Users can request the system to display a tag when completing the work report. For example, the client tag type, if the user wishes to enter the client for whom the work was carried out in each report.
  • +
  • Free Fields: Fields where text can be entered freely in the work report.
  • +
+
+images/work-report-type.png +

Creating a Work Report Type with Personalized Fields

+
+

Users can configure date, resource, and order element fields to appear in the header of the report, which means they apply to the entire report, or they can be added to each of the rows.

+

Finally, new additional text fields or tags can be added to the existing ones, in the work report header or in each line, by using the "Additional text" and "Tag type" fields, respectively. Users can configure the order in which these elements are to be entered in the "Management of additional fields and tags" tab.

+
+
+

Work Report List

+

Once the format of the reports to be incorporated into the system has been configured, users can enter the details in the created form according to the structure defined in the corresponding work report type. To do this, users need to follow these steps:

+
    +
  • Click the "New work report" button associated with the desired report from the list of work report types.
  • +
  • The program then displays the report based on the configurations given for the type. See the following image.
  • +
+
+images/work-report-type.png +

Structure of the Work Report Based on Type

+
+
    +
  • Select all the fields shown for the report:
      +
    • Resource: If the header has been chosen, the resource is only shown once. Alternatively, for each line of the report, it is necessary to choose a resource.
    • +
    • Task Code: Code of the task to which the work report is being assigned. Similar to the rest of the fields, if the field is in the header, the value is entered once or as many times as necessary on the lines of the report.
    • +
    • Date: Date of the report or each line, depending on whether the header or line is configured.
    • +
    • Number of Hours: The number of work hours in the project.
    • +
    • Start and Finish Times: Start and finish times for the work in order to calculate definitive work hours. This field only appears in the case of the hour assignment policies, "According to Start and Finish Times" and "According to the Number of Hours and Start and Finish Range."
    • +
    • Type of Hours: Enables users to choose the type of hour, e.g., "Normal," "Extraordinary," etc.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nl/10-etiquetas.html b/libreplan-webapp/src/main/webapp/help/nl/10-etiquetas.html new file mode 100644 index 000000000..eb6451798 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/10-etiquetas.html @@ -0,0 +1,68 @@ + + + + + + +Labels + + + +
+

Labels

+ +
+

Contents

+ +
+

Labels are entities used in the program to conceptually organize tasks or order elements.

+

Labels are categorized according to label type. A label can only belong to one label type; however, users can create many similar labels belonging to different label types.

+
+

Label Types

+

Label types are used to group the types of labels that users want to manage in the program. Here are some examples of possible label types:

+
    +
  • Client: Users may be interested in labeling tasks, orders, or order elements in relation to the client who requests them.
  • +
  • Area: Users may be interested in labeling tasks, orders, or order elements in relation to the areas in which they are carried out.
  • +
+

The administration of label types is managed from the "Administration" menu option. This is where users can edit label types, create new label types, and add labels to label types. Users can access the list of labels from this option.

+
+images/tag-types-list.png +

List of Label Types

+
+

From the list of label types, users can:

+
    +
  • Create a new label type.
  • +
  • Edit an existing label type.
  • +
  • Delete a label type with all of its labels.
  • +
+

Editing and creating labels share the same form. From this form, the user can assign a name to the label type, create or delete labels, and store the changes. The procedure is as follows:

+
    +
  • Select a label to edit or click the create button for a new one.
  • +
  • The system displays a form with a text entry for the name and a list of text entries with existing and assigned labels.
  • +
  • If users wish to add a new label, they must click the "New label" button.
  • +
  • The system displays a new row on the list with an empty text box that users must edit.
  • +
  • Users enter a name for the label.
  • +
  • The system adds the name to the list.
  • +
  • Users click "Save" or "Save and continue" to continue editing the form.
  • +
+
+images/tag-types-edition.png +

Editing Label Types

+
+
+
+

Labels

+

Labels are entities that belong to a label type. These entities can be assigned to order elements. Assigning a label to an order element means that all the elements descending from this element will inherit the label to which they belong. Having an assigned label means that these entities can be filtered where searches can be carried out:

+
    +
  • Search for tasks in the Gantt chart.
  • +
  • Search for order elements in the list of order elements.
  • +
  • Filters for reports.
  • +
+

The assignment of labels to order elements is covered in the chapter on orders.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nl/11-materiales.html b/libreplan-webapp/src/main/webapp/help/nl/11-materiales.html new file mode 100644 index 000000000..a06770897 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/11-materiales.html @@ -0,0 +1,54 @@ + + + + + + +Materials Management + + + +
+

Materials Management

+ +
+

Contents

+ +
+
+

Administration of Materials

+

Users can manage a basic database of materials, organized by categories.

+

Categories are containers to which specific materials and other categories can be assigned. They are stored in a hierarchical tree structure, as materials can belong to leaf categories or intermediary categories.

+

To manage categories, users must follow these steps:

+
    +
  • Go to the "Administration -> Materials" option.
  • +
  • The program displays a tree of categories.
  • +
  • Enter a category name in the text box and then click "Add."
  • +
  • The program adds the category to the tree.
  • +
+

To insert a category into the category tree, users must first select the parent category in the tree and then click "Add."

+
+images/material.png +

Material Administration Screen

+
+

To manage materials, users must follow these steps:

+
    +
  • Select the category to which materials are to be added and click "Add" to the right of "Materials."
  • +
  • The program adds a new empty row with fields to enter details about the material:
      +
    • Code: Material type code (this can be the external code from an ERP).
    • +
    • Description: Description of the material.
    • +
    • Unit Price: Unit price of each piece of material.
    • +
    • Unit: Unit used to measure each unit of material.
    • +
    • Category: Category to which the material belongs.
    • +
    • Availability: Indicates whether or not the material is active.
    • +
    +
  • +
  • Users complete the fields and click "Save."
  • +
+

The assignment of materials to order elements is explained in the chapter on "Orders."

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nl/12-formularios-calidad.html b/libreplan-webapp/src/main/webapp/help/nl/12-formularios-calidad.html new file mode 100644 index 000000000..97a584178 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/12-formularios-calidad.html @@ -0,0 +1,52 @@ + + + + + + +Quality Forms + + + +
+

Quality Forms

+ + +
+

Administration of Quality Forms

+

Quality forms consist of a list of questions or statements that indicate the tasks or processes that should have been completed before a task can be marked as complete by the company. These forms include the following fields:

+
    +
  • Name: The name of the quality form.
  • +
  • Description: A description of the quality form.
  • +
  • Type of Quality Form: The type can have two values:
      +
    • Percentage: Indicates that the questions must be answered in a logical order, and affirmative answers indicate that the task is progressing. For example, a basic process for a task might suggest that the task is 15% complete. Users must answer a question before proceeding to the next one.
    • +
    • Item: Indicates that the questions do not need to be answered in a logical order and can be answered in any sequence.
    • +
    +
  • +
+

Users must follow these steps to manage quality forms:

+
    +
  • From the "Administration" menu, access the "Quality forms" option.
  • +
  • Click "Edit" on an existing form or click "Create" to create a new one.
  • +
  • The program displays a form with fields for the name, description, and type.
  • +
  • Select the type.
  • +
  • The program displays the fields that are allowed for each type:
      +
    • Percentage: Question and percentage.
    • +
    • Item: Question.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+images/quality.png +

Quality Form Administration Screen

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nl/13-usuarios.html b/libreplan-webapp/src/main/webapp/help/nl/13-usuarios.html new file mode 100644 index 000000000..f46a23ded --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/13-usuarios.html @@ -0,0 +1,79 @@ + + + + + + +User Management + + + +
+

User Management

+ +
+

Contents

+ +
+
+

Managing Users

+

TASKPM's system allows administrators to manage user profiles, authorizations, and users. Users are assigned to user profiles, which can have a series of predefined roles that grant access to the program's features. Roles are defined authorizations within TASKPM. Examples of roles include:

+
    +
  • Administration: A role that must be assigned to administrators to enable them to perform administrative operations.
  • +
  • Web Service Reader: A role required for users to consult the program's web services.
  • +
  • Web Service Writer: A role required for users to write data via the program's web services.
  • +
+

Roles are predefined within the system. A user profile consists of one or more roles. Users must have specific roles to perform certain operations.

+

Users can be assigned one or more profiles, or one or more roles directly, allowing for specific or generic authorization to be granted.

+

To manage users, follow these steps:

+
    +
  • Go to "Manage users" in the "Administration" menu.
  • +
  • The program displays a form with a list of users.
  • +
  • Click the edit button for the desired user or click the "Create" button.
  • +
  • A form will appear with the following fields:
      +
    • User Name: The user's login name.
    • +
    • Password: The user's password.
    • +
    • Authorized/Unauthorized: A setting to enable or disable the user's account.
    • +
    • Email: The user's email address.
    • +
    • List of Associated Roles: To add a new role, users must search for a role in the selection list and click "Assign."
    • +
    • List of Associated Profiles: To add a new profile, users must search for a profile in the selection list and click "Assign."
    • +
    +
  • +
+
+images/manage-user.png +

Managing Users

+
+
    +
  • Click "Save" or "Save and continue."
  • +
+
+

Managing Profiles

+

To manage the program's profiles, users must follow these steps:

+
    +
  • Go to "Manage user profiles" in the "Administration" menu.
  • +
  • The program displays a list of profiles.
  • +
  • Click the edit button for the desired profile or click "Create."
  • +
  • A form appears in the program with the following fields:
      +
    • Name: The name of the user profile.
    • +
    • List of Roles (Authorizations): To add a role to the profile, users must select a role from the role list and click "Add."
    • +
    +
  • +
+
+images/manage-user-profile.png +

Managing User Profiles

+
+
    +
  • Click "Save" or "Save and continue," and the system will store the created or modified profile.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nl/14-custos.html b/libreplan-webapp/src/main/webapp/help/nl/14-custos.html new file mode 100644 index 000000000..5c35ce71d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/14-custos.html @@ -0,0 +1,110 @@ + + + + + + +Cost management + + + +
+

Cost management

+ +
+

Contents

+ +
+
+

Costs

+

Cost management allows users to estimate the costs of resources used in a project. To manage costs, the following entities must be defined:

+
    +
  • Hour Types: These indicate the types of hours worked by a resource. Users can define hour types for both machines and workers. Examples of hour types include: "Additional hours paid at €20 per hour." The following fields can be defined for hour types:
      +
    • Code: External code for the hour type.
    • +
    • Name: Name of the hour type. For example, "Additional."
    • +
    • Default Rate: Basic default rate for the hour type.
    • +
    • Activation: Indicates whether the hour type is active or not.
    • +
    +
  • +
  • Cost Categories: Cost categories define the costs associated with different hour types during specific periods (which may be indefinite). For example, the cost of additional hours for first-grade skilled workers in the following year is €24 per hour. Cost categories include:
      +
    • Name: Cost category name.
    • +
    • Activation: Indicates whether the category is active or not.
    • +
    • List of Hour Types: This list defines the hour types included in the cost category. It specifies the periods and rates for each hour type. For example, as rates change, each year can be included on this list as an hour type period, with a specific hourly rate for each hour type (which may differ from the default hourly rate for that hour type).
    • +
    +
  • +
+
+

Managing Hour Types

+

Users must follow these steps to register hour types:

+
    +
  • Select "Manage hour types worked" on the "Administration" menu.
  • +
  • The program displays a list of existing hour types.
  • +
+
+images/hour-type-list.png +

Hour Type List

+
+
    +
  • Click "Edit" or "Create."
  • +
  • The program displays an hour type editing form.
  • +
+
+images/hour-type-edit.png +

Editing Hour Types

+
+
    +
  • Users can enter or change:
      +
    • The hour type name.
    • +
    • The hour type code.
    • +
    • The default rate.
    • +
    • Hour type activation/deactivation.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+

Cost Categories

+

Users must follow these steps to register cost categories:

+
    +
  • Select "Manage cost categories" on the "Administration" menu.
  • +
  • The program displays a list of existing categories.
  • +
+
+images/category-cost-list.png +

Cost Category List

+
+
    +
  • Click the "Edit" or "Create" button.
  • +
  • The program displays a cost category editing form.
  • +
+
+images/category-cost-edit.png +

Editing Cost Categories

+
+
    +
  • Users enter or change:
      +
    • The name of the cost category.
    • +
    • The activation/deactivation of the cost category.
    • +
    • The list of hour types included in the category. All hour types have the following fields:
        +
      • Hour Type: Choose one of the existing hour types in the system. If none exist, an hour type must be created (this process is explained in the previous subsection).
      • +
      • Start and Finish Date: The start and finish dates (the latter is optional) for the period that applies to the cost category.
      • +
      • Hourly Rate: The hourly rate for this specific category.
      • +
      +
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+

The assignment of cost categories to resources is described in the chapter on resources. Go to the "Resources" section.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nl/15-1-report-hours-worked-by-resource.html b/libreplan-webapp/src/main/webapp/help/nl/15-1-report-hours-worked-by-resource.html new file mode 100644 index 000000000..f97f118aa --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/15-1-report-hours-worked-by-resource.html @@ -0,0 +1,101 @@ + + + + + + +Hours Worked by Resource Report + + + +
+

Hours Worked by Resource Report

+ + +
+

Purpose

+

This report extracts a list of tasks and the time resources have dedicated to them within a specified period. Several filters allow users to refine the query to obtain only the desired information and exclude extraneous data.

+
+
+

Input Parameters and Filters

+
    +
  • +
    Dates.
    +
      +
    • Type: Optional.
    • +
    • +
      Two date fields:
      +
        +
      • Start Date: This is the earliest date for work reports to be included. Work reports with dates earlier than the Start Date are excluded. If this parameter is left blank, work reports are not filtered by Start Date.
      • +
      • End Date: This is the latest date for work reports to be included. Work reports with dates later than the End Date are excluded. If this parameter is left blank, work reports are not filtered by End Date.
      • +
      +
      +
      +
    • +
    +
    +
    +
  • +
  • Filter by Workers: +* Type: Optional. +* How it works: You can select one or more workers to restrict the work reports to the time tracked by those specific workers. To add a worker as a filter, search for them in the selector and click the Add button. If this filter is left empty, work reports are retrieved regardless of the worker.
  • +
  • Filter by Labels: +* Type: Optional. +* How it works: You can add one or more labels to use as filters by searching for them in the selector and clicking the Add button. These labels are used to select the tasks to be included in the results when calculating the hours dedicated to them. This filter can be applied to timesheets, tasks, both, or neither.
  • +
  • Filter by Criteria: +* Type: Optional. +* How it works: You can select one or more criteria by searching for them in the selector and then clicking the Add button. These criteria are used to select the resources that satisfy at least one of them. The report will show all the time dedicated by the resources that meet one of the selected criteria.
  • +
+
+
+

Output

+
+

Heading

+

The report heading displays the filters that were configured and applied to the current report.

+
+ +
+

Body

+

The report body consists of several groups of information.

+
    +
  • The first level of aggregation is by resource. All the time dedicated by a resource is shown together below the header. Each resource is identified by:

    +
      +
    • Worker: Surname, First Name.
    • +
    • Machine: Name.
    • +
    +

    A summary line shows the total number of hours worked by the resource.

    +
  • +
  • The second level of grouping is by date. All the reports from a specific resource on the same date are shown together.

    +

    A summary line shows the total number of hours worked by the resource on that date.

    +
  • +
  • The final level lists the work reports for the worker on that day. The information displayed for each work report line is:

    +
      +
    • Task Code: The code of the task to which the tracked hours are attributed.
    • +
    • Task Name: The name of the task to which the tracked hours are attributed.
    • +
    • Starting Time: This is optional. It is the time at which the resource began working on the task.
    • +
    • Ending Time: This is optional. It is the time at which the resource finished working on the task on the specified date.
    • +
    • Text Fields: This is optional. If the work report line has text fields, the filled values are shown here. The format is: <Name of the text field>:<Value>
    • +
    • Labels: This depends on whether the work report model has a label field in its definition. If there are multiple labels, they are shown in the same column. The format is: <Name of the label type>:<Value of the label>
    • +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nl/15-2-total-hours-by-resource-month.html b/libreplan-webapp/src/main/webapp/help/nl/15-2-total-hours-by-resource-month.html new file mode 100644 index 000000000..246cfc9c1 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/15-2-total-hours-by-resource-month.html @@ -0,0 +1,67 @@ + + + + + + +Total Hours Worked by Resource in a Month Report + + + +
+

Total Hours Worked by Resource in a Month Report

+ + +
+

Purpose

+

This report provides the total number of hours worked by each resource in a given month. This information can be useful for determining worker overtime or, depending on the organization, the number of hours for which each resource should be compensated.

+

The application tracks work reports for both workers and machines. For machines, the report sums up the number of hours they were in operation during the month.

+
+
+

Input Parameters and Filters

+

To generate this report, users must specify the year and month for which they want to retrieve the total number of hours worked by each resource.

+
+
+

Output

+

The output format is as follows:

+ + +
+

Body

+

The data section of the report consists of a single table with two columns:

+
+
    +
  • One column labeled Name for the name of the resource.
  • +
  • One column labeled Hours with the total number of hours worked by the resource in that row.
  • +
+
+

There is a final row that aggregates the total number of hours worked by all resources during the specified month and year.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nl/15-3-work-progress-per-project.html b/libreplan-webapp/src/main/webapp/help/nl/15-3-work-progress-per-project.html new file mode 100644 index 000000000..e2f5053a9 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/15-3-work-progress-per-project.html @@ -0,0 +1,125 @@ + + + + + + +Work and Progress per Project Report + + + +
+

Work and Progress per Project Report

+ + +
+

Purpose

+

This report provides an overview of the status of projects, considering both progress and cost.

+

It analyzes the current progress of each project, comparing it with the planned progress and the work completed.

+

The report also displays several ratios related to project cost, comparing current performance with the planned performance.

+
+
+

Input Parameters and Filters

+

There are several mandatory parameters:

+
+
    +
  • Reference Date: This is the date used as a reference point for comparing the planned status of the project with its actual performance. The default value for this field is the current date.
  • +
  • Progress Type: This is the progress type used to measure project progress. The application allows a project to be measured simultaneously with different progress types. The type selected by the user in the dropdown menu is used for calculating the report data. The default value for the progress type is spread, which is a special progress type that uses the preferred method of measuring progress configured for each WBS element.
  • +
+
+

The optional parameters are:

+
+
    +
  • Starting Date: This is the earliest start date for projects to be included in the report. If this field is left blank, there is no minimum start date for the projects.
  • +
  • Ending Date: This is the latest end date for projects to be included in the report. All projects that finish after the Ending Date will be excluded.
  • +
  • Filter by Projects: This filter allows users to select the specific projects to be included in the report. If no projects are added to the filter, the report will include all projects in the database. A searchable dropdown menu is provided to find the desired project. Projects are added to the filter by clicking the Add button.
  • +
+
+
+
+

Output

+

The output format is as follows:

+
+

Heading

+

The report header displays the following fields:

+
+
    +
  • Starting Date: The filtering start date. This is not displayed if the report is not filtered by this field.
  • +
  • Ending Date: The filtering end date. This is not displayed if the report is not filtered by this field.
  • +
  • Progress Type: The progress type used for the report.
  • +
  • Projects: This indicates the filtered projects for which the report is generated. It will show the string All when the report includes all projects that satisfy the other filters.
  • +
  • Reference Date: The mandatory input reference date selected for the report.
  • +
+
+
+ +
+

Body

+

The body of the report consists of a list of projects selected based on the input filters.

+

Filters work by adding conditions, except for the set formed by the date filters (Starting Date, Ending Date) and the Filter by Projects. In this case, if one or both date filters are filled and the Filter by Projects has a list of selected projects, the latter filter takes precedence. This means that the projects included in the report are those provided by the Filter by Projects, regardless of the date filters.

+

It's important to note that progress in the report is calculated as a fraction of unity, ranging between 0 and 1.

+

For each project selected for inclusion in the report output, the following information is displayed:

+
+
    +
  • Project Name.
  • +
  • +
    Total Hours. The total hours for the project are shown by adding the hours for each task. Two types of total hours are shown:
    +
      +
    • Estimated (TE). This is the sum of all the estimated hours in the project's WBS. It represents the total number of hours estimated to complete the project.
    • +
    • Planned (TP). In TASKPM, it's possible to have two different quantities: the estimated number of hours for a task (the number of hours initially estimated to complete the task) and the planned hours (the hours allocated in the plan to complete the task). The planned hours can be equal to, less than, or greater than the estimated hours and are determined in a later phase, the assignment operation. Therefore, the total planned hours for a project are the sum of all the allocated hours for its tasks.
    • +
    +
    +
    +
  • +
  • +
    Progress. Three measurements related to the overall progress of the type specified in the progress input filter for each project at the reference date are shown:
    +
      +
    • Measured (PM). This is the overall progress considering the progress measurements with a date earlier than the Reference Date in the input parameters of the report. All tasks are taken into account, and the sum is weighted by the number of hours for each task.
    • +
    • Imputed (PI). This is the progress assuming that work continues at the same pace as the hours completed for a task. If X hours out of Y hours for a task are completed, the overall imputed progress is considered to be X/Y.
    • +
    • Planned (PP). This is the overall progress of the project according to the planned schedule at the reference date. If everything happened exactly as planned, the measured progress should be the same as the planned progress.
    • +
    +
    +
    +
  • +
  • +
    Hours up to Date. There are two fields that show the number of hours up to the reference date from two perspectives:
    +
      +
    • Planned (HP). This number is the sum of the hours allocated to any task in the project with a date less than or equal to the Reference Date.
    • +
    • Actual (HR). This number is the sum of the hours reported in the work reports for any of the tasks in the project with a date less than or equal to the Reference Date.
    • +
    +
    +
    +
  • +
  • +
    Difference. Under this heading, there are several metrics related to cost:
    +
      +
    • Cost. This is the difference in hours between the number of hours spent, considering the measured progress, and the hours completed up to the reference date. The formula is: PM*TP - HR.
    • +
    • Planned. This is the difference between the hours spent according to the overall measured project progress and the number planned up to the Reference Date. It measures the advantage or delay in time. The formula is: PM*TP - HP.
    • +
    • Cost Ratio. This is calculated by dividing PM / PI. If it is greater than 1, it means that the project is profitable at this point. If it is less than 1, it means that the project is losing money.
    • +
    • Planned Ratio. This is calculated by dividing PM / PP. If it is greater than 1, it means that the project is ahead of schedule. If it is less than 1, it means that the project is behind schedule.
    • +
    +
    +
    +
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nl/15-informes.html b/libreplan-webapp/src/main/webapp/help/nl/15-informes.html new file mode 100644 index 000000000..c2c7cafab --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/15-informes.html @@ -0,0 +1,26 @@ + + + + + + +Reports + + + +
+

Reports

+ +

TASKPM integrates with JasperReports to provide report management, enabling users to generate various reports for analyzing the data available in the program.

+

The available reports are:

+ +
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nl/16-ldap-authentication.html b/libreplan-webapp/src/main/webapp/help/nl/16-ldap-authentication.html new file mode 100644 index 000000000..ad5d4976d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/16-ldap-authentication.html @@ -0,0 +1,251 @@ + + + + + + +LDAP Configuration + + + +
+

LDAP Configuration

+ + +

This screen allows you to establish a connection with LDAP to delegate +authentication and/or authorization.

+

It is divided into four different areas, which are explained below:

+
+

Activation

+

This area is used to set the properties that determine how TASKPM uses +LDAP.

+

If the field Enable LDAP authentication is checked, TASKPM will query +LDAP each time a user attempts to log in to the application.

+

The field Use LDAP roles checked means that a mapping between LDAP roles and +TASKPM roles is established. Consequently, the permissions for a user in +TASKPM will depend on the roles the user has in LDAP.

+
+
+

Configuration

+

This section contains the parameter values for accessing LDAP. Base, UserDN, and +Password are parameters used to connect to LDAP and search for users. Therefore, +the specified user must have permission to perform this operation in LDAP. At the +bottom of this section, there is a button to check if an LDAP connection is +possible with the given parameters. It is advisable to test the connection before +continuing the configuration.

+
+

Note

+

If your LDAP is configured to work with anonymous authentication, you can +leave the UserDN and Password attributes empty.

+
+
+

Tip

+

Regarding Active Directory (AD) configuration, the Base field must be the +exact location where the bound user resides in AD.

+

Example: ou=organizational_unit,dc=example,dc=org

+
+
+
+

Authentication

+

Here, you can configure the property in LDAP nodes where the given username +should be found. The property UserId must be filled with the name of the +property where the username is stored in LDAP.

+

The checkbox Save passwords in database, when checked, means that the +password is also stored in the TASKPM database. In this way, if LDAP is +offline or unreachable, LDAP users can authenticate against the TASKPM +database. If it is not checked, LDAP users can only be authenticated against +LDAP.

+
+
+

Authorization

+

This section allows you to define a strategy for matching LDAP roles with +TASKPM roles. The first choice is the strategy to use, depending on the +LDAP implementation.

+
+

Group Strategy

+

When this strategy is used, it indicates that LDAP has a role-group strategy. +This means that users in LDAP are nodes that are directly under a branch that +represents the group.

+

The next example represents a valid LDAP structure for using the group strategy.

+
    +
  • LDAP structure:

    +
    +dc=example,dc=org
    +|- ou=groups
    +   |- cn=admins
    +   |- cn=itpeople
    +   |- cn=workers
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

In this case, each group will have an attribute, for example, called member, +with the list of users belonging to the group:

+
    +
  • cn=admins:
      +
    • member: uid=admin1,ou=people,dc=example,dc=org
    • +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=itpeople:
      +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    • member: uid=it2,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=workers:
      +
    • member: uid=worker1,ou=people,dc=example,dc=org
    • +
    • member: uid=worker2,ou=people,dc=example,dc=org
    • +
    • member: uid=worker3,ou=people,dc=example,dc=org
    • +
    +
  • +
+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Group strategy
  • +
  • Group path: ou=groups
  • +
  • Role property: member
  • +
  • Role search query: uid=[USER_ID],ou=people,dc=example,dc=org
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: cn=admins;cn=itpeople
  • +
  • Web service reader: cn=itpeople
  • +
  • Web service writer: cn=itpeople
  • +
  • All projects read allowed: cn=admins
  • +
  • All projects edition allowed: cn=admins
  • +
  • Project creation allowed: cn=workers
  • +
+
+
+

Property Strategy

+

When an administrator decides to use this strategy, it indicates that each user +is an LDAP node, and within the node, there exists a property that represents +the group(s) for the user. In this case, the configuration does not require the +Group path parameter.

+

The next example represents a valid LDAP structure for using the property strategy.

+
    +
  • LDAP structure:

    +
    +dc=example,dc=org
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

With Attribute

+

In this case, each user will have an attribute, for example, called group, +with the name of the group to which they belong:

+
    +
  • uid=admin1:
      +
    • group: admins
    • +
    +
  • +
  • uid=it1:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=it2:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=worker1:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker2:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker3:
      +
    • group: workers
    • +
    +
  • +
+
+

Warning

+

This strategy has a restriction: each user can belong to only one group.

+
+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Property strategy
  • +
  • Group path:
  • +
  • Role property: group
  • +
  • Role search query: [USER_ID]
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: admins;itpeople
  • +
  • Web service reader: itpeople
  • +
  • Web service writer: itpeople
  • +
  • All projects read allowed: admins
  • +
  • All projects edition allowed: admins
  • +
  • Project creation allowed: workers
  • +
+

By User Identifier

+

You can even use a workaround to specify TASKPM roles directly to users +without having an attribute in each LDAP user.

+

In this case, you will specify which users have the different TASKPM roles +by uid.

+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Property strategy
  • +
  • Group path:
  • +
  • Role property: uid
  • +
  • Role search query: [USER_ID]
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: admin1;it1
  • +
  • Web service reader: it1;it2
  • +
  • Web service writer: it1;it2
  • +
  • All projects read allowed: admin1
  • +
  • All projects edition allowed: admin1
  • +
  • Project creation allowed: worker1;worker2;worker3
  • +
+
+
+

Role Matching

+

At the bottom of this section, there is a table with all the TASKPM roles +and a text field next to each one. This is for matching roles. For instance, +if an administrator decides that the Administration TASKPM role matches +the admin and administrators roles of LDAP, the text field should contain: +"admin;administrators". The character for splitting roles is ";".

+
+

Note

+

If you want to specify that all users or all groups have one permission, you +can use an asterisk (*) as a wildcard to refer to them. For example, if +you want everyone to have the Project creation allowed role, you will +configure the role matching as follows:

+
    +
  • Project creation allowed: *
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nl/17-1-project-dashboard.html b/libreplan-webapp/src/main/webapp/help/nl/17-1-project-dashboard.html new file mode 100644 index 000000000..5dc0899b7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/17-1-project-dashboard.html @@ -0,0 +1,173 @@ + + + + + + +Project Dashboard + + + +
+

Project Dashboard

+ + +

The project dashboard is a TASKPM perspective that contains a set of KPIs (Key Performance Indicators) to help assess a project's performance in terms of:

+
+
    +
  • Work progress
  • +
  • Cost
  • +
  • Status of allocated resources
  • +
  • Time constraints
  • +
+
+
+

Progress Performance Indicators

+

Two indicators are calculated: project progress percentage and task status.

+
+

Project Progress Percentage

+

This chart displays the overall progress of a project, comparing it to the expected progress based on the Gantt chart.

+

Progress is represented by two bars:

+
+
    +
  • Current Progress: The current progress based on the measurements taken.
  • +
  • Expected Progress: The progress the project should have achieved at this point, according to the project plan.
  • +
+
+

To view the actual measured value for each bar, hover the mouse cursor over the bar.

+

The overall project progress is estimated using several different methods, as there is no single, universally correct approach:

+
+
    +
  • Spreading Progress: This is the progress type set as the spreading progress at the project level. In this case, there is no way to calculate an expected value, and only the current bar is displayed.
  • +
  • By All Task Hours: The progress of all project tasks is averaged to calculate the overall value. This is a weighted average that considers the number of hours allocated to each task.
  • +
  • By Critical Path Hours: The progress of tasks belonging to any of the project's critical paths is averaged to obtain the overall value. This is a weighted average that considers the total allocated hours for each involved task.
  • +
  • By Critical Path Duration: The progress of tasks belonging to any of the critical paths is averaged using a weighted average, but this time considering the duration of each involved task instead of the assigned hours.
  • +
+
+
+
+

Task Status

+

A pie chart shows the percentage of project tasks in different states. The defined states are:

+
+
    +
  • Finished: Completed tasks, identified by a 100% progress value.
  • +
  • In Progress: Tasks that are currently underway. These tasks have a progress value other than 0% or 100%, or some work time has been tracked.
  • +
  • Ready to Start: Tasks with 0% progress, no tracked time, all their FINISH_TO_START dependent tasks are finished, and all their START_TO_START dependent tasks are finished or in progress.
  • +
  • Blocked: Tasks with 0% progress, no tracked time, and with previous dependent tasks that are neither in progress nor in the ready to start state.
  • +
+
+
+
+
+

Cost Indicators

+

Several Earned Value Management cost indicators are calculated:

+
+
    +
  • CV (Cost Variance): The difference between the Earned Value curve and the Actual Cost curve at the current moment. Positive values indicate a benefit, and negative values indicate a loss.

    +
  • +
  • ACWP (Actual Cost of Work Performed): The total number of hours tracked in the project at the current moment.

    +
  • +
  • CPI (Cost Performance Index): The Earned Value / Actual Cost ratio.

    +
    +
      +
    • > 100 is favorable, indicating that the project is under budget.
    • +
    • = 100 is also favorable, indicating that the cost is right on plan.
    • +
    • < 100 is unfavorable, indicating that the cost of completing the work is higher than planned.
    • +
    +
    +
  • +
  • ETC (Estimate To Complete): The time remaining to complete the project.

    +
  • +
  • BAC (Budget At Completion): The total amount of work allocated in the project plan.

    +
  • +
  • EAC (Estimate At Completion): The manager's projection of the total cost at project completion, based on the CPI.

    +
  • +
  • VAC (Variance At Completion): The difference between the BAC and the EAC.

    +
    +
      +
    • < 0 indicates that the project is over budget.
    • +
    • > 0 indicates that the project is under budget.
    • +
    +
    +
  • +
+
+
+
+

Resources

+

To analyze the project from the resources' point of view, two ratios and a histogram are provided.

+
+

Estimation Deviation on Completed Task Histogram

+

This histogram calculates the deviation between the number of hours allocated to the project tasks and the actual number of hours dedicated to them.

+

The deviation is calculated as a percentage for all finished tasks, and the calculated deviations are represented in a histogram. The vertical axis shows the number of tasks within each deviation interval. Six deviation intervals are dynamically calculated.

+
+
+

Overtime Ratio

+

This ratio summarizes the overload of resources allocated to the project tasks. It is calculated using the formula: overtime ratio = overload / (load + overload).

+
+
    +
  • = 0 is favorable, indicating that the resources are not overloaded.
  • +
  • > 0 is unfavorable, indicating that the resources are overloaded.
  • +
+
+
+
+

Availability Ratio

+

This ratio summarizes the free capacity of the resources currently allocated to the project. Therefore, it measures the resources' availability to receive more allocations without being overloaded. It is calculated as: availability ratio = (1 - load/capacity) * 100

+
+
    +
  • Possible values are between 0% (fully assigned) and 100% (not assigned).
  • +
+
+
+
+
+

Time

+

Two charts are included: a histogram for the time deviation in the finish time of project tasks and a pie chart for deadline violations.

+
+

Task Completion Lead or Lag

+

This calculation determines the difference in days between the planned end time for project tasks and their actual end time. The planned completion date is taken from the Gantt chart, and the actual finish date is taken from the last time tracked for the task.

+

The lag or lead in task completion is represented in a histogram. The vertical axis shows the number of tasks with a lead/lag day difference value corresponding to the abscissa days interval. Six dynamic task completion deviation intervals are calculated.

+
+
    +
  • Negative values mean finishing ahead of schedule.
  • +
  • Positive values mean finishing behind schedule.
  • +
+
+
+
+

Deadline Violations

+

This section calculates the margin with the project deadline, if set. Additionally, a pie chart shows the percentage of tasks meeting their deadline. Three types of values are included in the chart:

+
+
    +
  • Percentage of tasks without a deadline configured.
  • +
  • Percentage of ended tasks with an actual end date later than their deadline. The actual end date is taken from the last time tracked for the task.
  • +
  • Percentage of ended tasks with an actual end date earlier than their deadline.
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nl/17-2-pipeline-dashboard.html b/libreplan-webapp/src/main/webapp/help/nl/17-2-pipeline-dashboard.html new file mode 100644 index 000000000..bb54ed657 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/17-2-pipeline-dashboard.html @@ -0,0 +1,33 @@ + + + + + + +Pipeline Dashboard + + + +
+

Pipeline Dashboard

+ +

The pipeline dashboard is a TASKPM perspective that lists all company projects in a table. This "pipeline" table has nine columns, each corresponding to a project status:

+
+
    +
  • PRE-SALES
  • +
  • OFFERED
  • +
  • OUTSOURCED
  • +
  • ACCEPTED
  • +
  • STARTED
  • +
  • ON HOLD
  • +
  • FINISHED
  • +
  • CANCELLED
  • +
  • ARCHIVED
  • +
+
+

Projects are listed by name in each column based on their current status.

+

A project's start date, end date, and current progress can be viewed in a tooltip popup by hovering the mouse cursor over a project's name.

+

Projects with an ARCHIVED status can be hidden by unchecking the "Show archived column data" checkbox.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nl/17-dashboards.html b/libreplan-webapp/src/main/webapp/help/nl/17-dashboards.html new file mode 100644 index 000000000..3dc8f1af4 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/17-dashboards.html @@ -0,0 +1,24 @@ + + + + + + +Dashboards + + + +
+

Dashboards

+ +

TASKPM offers dashboard views for projects, providing an overview of their current status.

+

The two available dashboard views are:

+ +
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nl/18-connectors.html b/libreplan-webapp/src/main/webapp/help/nl/18-connectors.html new file mode 100644 index 000000000..0f879b53d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/18-connectors.html @@ -0,0 +1,238 @@ + + + + + + +Connectors + + + +
+

Connectors

+ + +

Connectors are TASKPM client applications that can be used to communicate with (web) servers to retrieve data, process it, and store it. Currently, there are three connectors: the JIRA connector, the Tim Enterprise connector, and the E-mail connector.

+
+

Configuration

+

Connectors must be configured properly before they can be used. They can be configured from the "Main Settings" screen under the "Connectors" tab.

+

The connector screen includes:

+
    +
  • Pull-down list: A list of available connectors.
  • +
  • Properties edit screen: A property edit form for the selected connector.
  • +
  • Test connection button: A button to test the connection with the connector.
  • +
+

Select the connector you want to configure from the pull-down list of connectors. A property editor form for the selected connector will be displayed. In the property editor form, you can change the property values as needed and test your configurations using the "Test connection" button.

+
+

Note

+

The properties are configured with default values. The most important property is "Activated." By default, it is set to "N." This indicates that the connector will not be used unless you change the value to "Y" and save the changes.

+
+
+
+

JIRA Connector

+

JIRA is an issue and project tracking system.

+

The JIRA connector is an application that can be used to request JIRA web server data for JIRA issues and process the response. The request is based on JIRA labels. In JIRA, labels can be used to categorize issues. The request is structured as follows: retrieve all issues that are categorized by this label name.

+

The connector receives the response, which in this case is the issues, and converts them to TASKPM "Order elements" and "Time sheets."

+

The JIRA connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the JIRA connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the JIRA connector. The default is "N."
  • +
  • Server URL: The absolute path to the JIRA web server.
  • +
  • User name and password: The user credentials for authorization.
  • +
  • JIRA labels: comma-separated list of labels or URL: You can either enter the label URL or a comma-separated list of labels.
  • +
  • Hours type: The type of work hours. The default is "Default."
  • +
+
+

Note

+

JIRA labels: Currently, the JIRA web server does not support providing a list of all available labels. As a workaround, we have developed a simple PHP script that performs a simple SQL query in the JIRA database to fetch all distinct labels. You can either use this PHP script as the "JIRA labels URL" or enter the labels you want as comma-separated text in the "JIRA labels" field.

+
+

Finally, click the "Test connection" button to test if you can connect to the JIRA web server and that your configurations are correct.

+
+
+

Synchronization

+

From the project window, under "General data," you can start synchronizing order elements with JIRA issues.

+

Click the "Sync with JIRA" button to start the synchronization.

+
    +
  • If this is the first time, a pop-up window (with an auto-completed list of labels) will be displayed. In this window, you can select a label to synchronize with and click the "Start sync" button to begin the synchronization process, or click the "Cancel" button to cancel it.
  • +
  • If a label is already synchronized, the last synchronized date and the label will be displayed in the JIRA screen. In this case, no pop-up window to select a label will be displayed. Instead, the synchronization process will start directly for that displayed (already synchronized) label.
  • +
+
+

Note

+

The relationship between "Order" and "label" is one-to-one. Only one label can be synchronized with one "Order."

+
+
+

Note

+

Upon successful (re)synchronization, the information will be written to the database, and the JIRA screen will be updated with the last synchronized date and label.

+
+

(Re)synchronization is performed in two phases:

+
    +
  • Phase 1: Synchronizing order elements, including progress assignment and measurements.
  • +
  • Phase 2: Synchronizing time sheets.
  • +
+
+

Note

+

If Phase 1 fails, Phase 2 will not be performed, and no information will be written to the database.

+
+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+

Upon successful completion of synchronization, the result will be displayed in the "Work Breakdown Structure (WBS tasks)" tab of the "Project details" screen. In this UI, there are two changes from the standard WBS:

+
    +
  • The "Total task hours" column is unmodifiable (read-only) because the synchronization is one-way. Task hours can only be updated in the JIRA web server.
  • +
  • The "Code" column displays the JIRA issue keys, and they are also hyperlinks to the JIRA issues. Click the desired key if you want to go to the document for that key (JIRA issue).
  • +
+
+
+

Scheduling

+

Re-synchronization of JIRA issues can also be performed through the scheduler. Go to the "Job scheduling" screen. In that screen, you can configure a JIRA job to perform synchronization. The job searches for the last synchronized labels in the database and re-synchronizes them accordingly. See also the Scheduler Manual.

+
+
+
+

Tim Enterprise Connector

+

Tim Enterprise is a Dutch product from Aenova. It is a web-based application for the administration of time spent on projects and tasks.

+

The Tim connector is an application that can be used to communicate with the Tim Enterprise server to:

+
    +
  • Export all hours spent by a worker (user) on a project that could be registered in Tim Enterprise.
  • +
  • Import all rosters of the worker (user) to plan the resource effectively.
  • +
+

The Tim connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the Tim connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the Tim connector. The default is "N."
  • +
  • Server URL: The absolute path to the Tim Enterprise server.
  • +
  • User name and password: The user credentials for authorization.
  • +
  • Number of days timesheet to Tim: The number of days back you want to export the time sheets.
  • +
  • Number of days roster from Tim: The number of days forward you want to import the rosters.
  • +
  • Productivity factor: Effective working hours in percentage. The default is "100%."
  • +
  • Department IDs to import roster: Comma-separated department IDs.
  • +
+

Finally, click the "Test connection" button to test if you can connect to the Tim Enterprise server and that your configurations are correct.

+
+
+

Export

+

From the project window, under "General data," you can start exporting time sheets to the Tim Enterprise server.

+

Enter the "Tim product code" and click the "Export to Tim" button to start the export.

+

The Tim connector adds the following fields along with the product code:

+
    +
  • The worker/user's full name.
  • +
  • The date the worker worked on a task.
  • +
  • The effort, or hours worked on the task.
  • +
  • An option indicating whether Tim Enterprise should update the registration or insert a new one.
  • +
+

The Tim Enterprise response contains only a list of record IDs (integers). This makes it difficult to determine what went wrong, as the response list contains only numbers not related to the request fields. The export request (registration in Tim) is assumed to have succeeded if all the list entries do not contain "0" values. Otherwise, the export request has failed for those entries that contain "0" values. Therefore, you cannot see which request failed, as the list entries only contain the value "0." The only way to determine this is to examine the log file on the Tim Enterprise server.

+
+

Note

+

Upon successful exporting, the information will be written to the database, and the Tim screen will be updated with the last exported date and product code.

+
+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+
+
+

Scheduling Export

+

The export process can also be performed through the scheduler. Go to the "Job Scheduling" screen. In that screen, you can configure a Tim Export job. The job searches for the last exported time sheets in the database and re-exports them accordingly. See also the Scheduler manual.

+
+
+

Import

+

Importing rosters only works with the help of the scheduler. There is no user interface designed for this, as no input is needed from the user. Go to the "Job scheduling" screen and configure a Tim Import job. The job loops through all departments configured in the connector properties and imports all rosters for each department. See also the Scheduler Manual.

+

For import, the Tim connector adds the following fields in the request:

+
    +
  • Period: The period (date from - date to) for which you want to import the roster. This can be provided as a filter criterion.
  • +
  • Department: The department for which you want to import the roster. Departments are configurable.
  • +
  • The fields you are interested in (like Person info, RosterCategory, etc.) that the Tim server should include in its response.
  • +
+

The import response contains the following fields, which are sufficient to manage the exception days in TASKPM:

+
    +
  • Person info: Name and network name.
  • +
  • Department: The department the worker is working in.
  • +
  • Roster category: Information on the presence/absence (Aanwzig/afwezig) of the worker and the reason (TASKPM exception type) in case the worker is absent.
  • +
  • Date: The date the worker is present/absent.
  • +
  • Time: The start time of presence/absence, for example, 08:00.
  • +
  • Duration: The number of hours that the worker is present/absent.
  • +
+

By converting the import response to TASKPM's "Exception day," the following translations are taken into account:

+
    +
  • If the roster category contains the name "Vakantie," it will be translated to "RESOURCE HOLIDAY."
  • +
  • The roster category "Feestdag" will be translated to "BANK HOLIDAY."
  • +
  • All the rest, like "Jus uren," "PLB uren," etc., should be added to the "Calendar Exception Days" manually.
  • +
+

Moreover, in the import response, the roster is divided into two or three parts per day: for example, roster-morning, roster-afternoon, and roster-evening. However, TASKPM allows only one "Exception type" per day. The Tim connector is then responsible for merging these parts as one exception type. That is, the roster category with the highest duration is assumed to be a valid exception type, but the total duration is the sum of all durations of these category parts.

+

Contrary to TASKPM, in Tim Enterprise, the total duration in case the worker is on holiday means the worker is not available for that total duration. However, in TASKPM, if the worker is on holiday, the total duration should be zero. The Tim connector also handles this translation.

+
+
+
+

E-mail Connector

+

E-mail is a method of exchanging digital messages from an author to one or more recipients.

+

The E-mail connector can be used to set Simple Mail Transfer Protocol (SMTP) server connection properties.

+

The E-mail connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the E-mail connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the E-mail connector. The default is "N."
  • +
  • Protocol: The type of SMTP protocol.
  • +
  • Host: The absolute path to the SMTP server.
  • +
  • Port: The port of the SMTP server.
  • +
  • From address: The e-mail address of the message sender.
  • +
  • Username: The username for the SMTP server.
  • +
  • Password: The password for the SMTP server.
  • +
+

Finally, click the "Test connection" button to test if you can connect to the SMTP server and that your configurations are correct.

+
+
+

Edit E-mail Template

+

From the project window, under "Configuration" and then "Edit E-mail Templates," you can modify the e-mail templates for messages.

+

You can choose:

+
    +
  • Template language:
  • +
  • Template type:
  • +
  • E-mail subject:
  • +
  • Template contents:
  • +
+

You need to specify the language because the web application will send e-mails to users in the language they have chosen in their preferences. You need to choose the template type. The type is the user role, meaning that this e-mail will be sent only to users who are in the selected role (type). You need to set the e-mail subject. The subject is a brief summary of the topic of the message. You need to set the e-mail contents. This is any information that you want to send to the user. There are also some keywords that you may use in the message; the web application will parse them and set a new value instead of the keyword.

+
+
+

Scheduling E-mails

+

Sending e-mails can only be performed through the scheduler. Go to "Configuration," then the "Job Scheduling" screen. In that screen, you can configure an e-mail sending job. The job takes a list of e-mail notifications, gathers data, and sends it to the user's e-mail. See also the Scheduler manual.

+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nl/19-scheduler.html b/libreplan-webapp/src/main/webapp/help/nl/19-scheduler.html new file mode 100644 index 000000000..8379b5b4c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/19-scheduler.html @@ -0,0 +1,107 @@ + + + + + + +Scheduler + + + +
+

Scheduler

+ + +

The scheduler is designed to schedule jobs dynamically. It is developed using the Spring Framework Quartz scheduler.

+

To use this scheduler effectively, the jobs (Quartz jobs) that should be scheduled must be created first. Then, these jobs can be added to the database, as all jobs to be scheduled are stored in the database.

+

When the scheduler starts, it reads the jobs to be scheduled or unscheduled from the database and schedules or removes them accordingly. Afterward, jobs can be added, updated, or removed dynamically using the Job scheduling user interface.

+
+

Note

+

The scheduler starts when the TASKPM web application starts and stops when the application stops.

+
+
+

Note

+

This scheduler supports only cron expressions to schedule jobs.

+
+

The criteria that the scheduler uses to schedule or remove jobs when it starts are as follows:

+

For all jobs:

+
    +
  • Schedule
      +
    • Job has a Connector, and the Connector is activated, and the job is allowed to be scheduled.
    • +
    • Job has no Connector and is allowed to be scheduled.
    • +
    +
  • +
  • Remove
      +
    • Job has a Connector, and the Connector is not activated.
    • +
    • Job has a Connector, and the Connector is activated, but the job is not allowed to be scheduled.
    • +
    • Job has no Connector and is not allowed to be scheduled.
    • +
    +
  • +
+
+

Note

+

Jobs cannot be rescheduled or unscheduled if they are currently running.

+
+
+

Job Scheduling List View

+

The Job scheduling list view allows users to:

+
    +
  • Add a new job.
  • +
  • Edit an existing job.
  • +
  • Remove a job.
  • +
  • Start a process manually.
  • +
+
+
+

Add or Edit Job

+

From the Job scheduling list view, click:

+
    +
  • Create to add a new job, or
  • +
  • Edit to modify the selected job.
  • +
+

Both actions will open a create/edit job form. The form displays the following properties:

+
    +
  • Fields:
      +
    • Job group: The name of the job group.
    • +
    • Job name: The name of the job.
    • +
    • Cron expression: A read-only field with an Edit button to open the cron expression input window.
    • +
    • Job class name: A pull-down list to select the job (an existing job).
    • +
    • Connector: A pull-down list to select a connector. This is not mandatory.
    • +
    • Schedule: A checkbox to indicate whether to schedule this job.
    • +
    +
  • +
  • Buttons:
      +
    • Save: To save or update a job in both the database and the scheduler. The user is then returned to the Job scheduling list view.
    • +
    • Save and continue: The same as "Save," but the user is not returned to the Job scheduling list view.
    • +
    • Cancel: Nothing is saved, and the user is returned to the Job scheduling list view.
    • +
    +
  • +
  • And a hint section about cron expression syntax.
  • +
+
+

Cron Expression Pop-up

+

To enter the cron expression correctly, a cron expression pop-up form is used. In this form, you can enter the desired cron expression. See also the hint about the cron expression. If you enter an invalid cron expression, you will be notified immediately.

+
+
+
+

Remove Job

+

Click the Remove button to delete the job from both the database and the scheduler. The success or failure of this action will be displayed.

+
+
+

Start Job Manually

+

As an alternative to waiting for the job to run as scheduled, you can click this button to start the process directly. Afterward, the success or failure information will be displayed in a pop-up window.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nl/20-acerca-de.html b/libreplan-webapp/src/main/webapp/help/nl/20-acerca-de.html new file mode 100644 index 000000000..569e69e4d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/20-acerca-de.html @@ -0,0 +1,155 @@ + + + + + + +About + + + +
+

About

+ + + +
+

License

+

This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version.

+

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/>.

+
+
+

Written by

+
+

TASKPM Team

+ +
+
+

Previous Team Members

+ +
+
+

Translators

+ +
+
+

Contributors

+ +
+
+
+

Public Funding

+

This project currently accepts donations through the Open Collective organization <https://opencollective.com/TASKPM>.

+

Within the global scope that TASKPM is designed for regarding planning management, a project was developed to solve some common planning problems.

+

This project was partially financed by Xunta de Galicia, Ministerio de Industria, Turismo e Comercio, and by the European Union, Fondo Europeo de Desenvolvemento Rexional.

+
+images/logos.png +
+ +++ + + + +
scale:100
+

This project was part of Plan Avanza:

+
+images/avanza.png +
+ +++ + + + +
scale:100
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nl/21-communications.html b/libreplan-webapp/src/main/webapp/help/nl/21-communications.html new file mode 100644 index 000000000..e4f5ea081 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/21-communications.html @@ -0,0 +1,18 @@ + + + + + + +Subcontractor Work Description + + + +
+

Subcontractor Work Description

+ +

While it is possible to leave this field empty, doing so can lead to errors in communication functionality when multiple empty fields exist.

+

Therefore, we strongly recommend always using a unique work description.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nl/22-pert.html b/libreplan-webapp/src/main/webapp/help/nl/22-pert.html new file mode 100644 index 000000000..c27af3c56 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/22-pert.html @@ -0,0 +1,17 @@ + + + + + + +PERT Chart + + + +
+

PERT Chart

+ +

Unlike Libreplan, which was focused on the GANNT chart and did not have a PERT chart, TASKPM does have a PERT chart and is more focused on it.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nl/23-subnets.html b/libreplan-webapp/src/main/webapp/help/nl/23-subnets.html new file mode 100644 index 000000000..42cd9e634 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/23-subnets.html @@ -0,0 +1,17 @@ + + + + + + +Task Subnets + + + +
+

Task Subnets

+ +

Unlike Libreplan, which only had a single level of planning, the whole project, TASKPM has subnetworks of activities which can be embedded in a master project.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/advance-assignment.png b/libreplan-webapp/src/main/webapp/help/nl/images/advance-assignment.png new file mode 100644 index 000000000..aeb55b2b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/advance-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/asignacion-especifica.png b/libreplan-webapp/src/main/webapp/help/nl/images/asignacion-especifica.png new file mode 100644 index 000000000..9ee94d9c6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/asignacion-especifica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/asignacion-xenerica.png b/libreplan-webapp/src/main/webapp/help/nl/images/asignacion-xenerica.png new file mode 100644 index 000000000..d2a16597f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/asignacion-xenerica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/avance.png b/libreplan-webapp/src/main/webapp/help/nl/images/avance.png new file mode 100644 index 000000000..ee289e19c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/avanza.png b/libreplan-webapp/src/main/webapp/help/nl/images/avanza.png new file mode 100644 index 000000000..a51893f80 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/avanza.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/calendar-administration.png b/libreplan-webapp/src/main/webapp/help/nl/images/calendar-administration.png new file mode 100644 index 000000000..bb4e17032 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/calendar-administration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/calendar-create-derived.png b/libreplan-webapp/src/main/webapp/help/nl/images/calendar-create-derived.png new file mode 100644 index 000000000..9f01f2c33 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/calendar-create-derived.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/calendar-edition.png b/libreplan-webapp/src/main/webapp/help/nl/images/calendar-edition.png new file mode 100644 index 000000000..a98cc4454 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/calendar-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/calendar-exceptions.png b/libreplan-webapp/src/main/webapp/help/nl/images/calendar-exceptions.png new file mode 100644 index 000000000..c2a53a684 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/calendar-exceptions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/category-cost-edit.png b/libreplan-webapp/src/main/webapp/help/nl/images/category-cost-edit.png new file mode 100644 index 000000000..1755ee79e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/category-cost-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/category-cost-list.png b/libreplan-webapp/src/main/webapp/help/nl/images/category-cost-list.png new file mode 100644 index 000000000..1d7ff838c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/category-cost-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/company_view.png b/libreplan-webapp/src/main/webapp/help/nl/images/company_view.png new file mode 100644 index 000000000..c3a7631e6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/company_view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/contraste-avance.png b/libreplan-webapp/src/main/webapp/help/nl/images/contraste-avance.png new file mode 100644 index 000000000..831cceac3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/contraste-avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/default-calendar.png b/libreplan-webapp/src/main/webapp/help/nl/images/default-calendar.png new file mode 100644 index 000000000..6fd379d08 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/default-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/edicion-criterio.png b/libreplan-webapp/src/main/webapp/help/nl/images/edicion-criterio.png new file mode 100644 index 000000000..2b879ced5 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/edicion-criterio.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/hour-type-edit.png b/libreplan-webapp/src/main/webapp/help/nl/images/hour-type-edit.png new file mode 100644 index 000000000..4917b08a8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/hour-type-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/hour-type-list.png b/libreplan-webapp/src/main/webapp/help/nl/images/hour-type-list.png new file mode 100644 index 000000000..1872eb4f7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/hour-type-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/lista-criterios.png b/libreplan-webapp/src/main/webapp/help/nl/images/lista-criterios.png new file mode 100644 index 000000000..a2e7d03cb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/lista-criterios.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/logo.png b/libreplan-webapp/src/main/webapp/help/nl/images/logo.png new file mode 100644 index 000000000..4e7d02651 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/logo.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/logos.png b/libreplan-webapp/src/main/webapp/help/nl/images/logos.png new file mode 100644 index 000000000..7314a0759 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/logos.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/machine-calendar.png b/libreplan-webapp/src/main/webapp/help/nl/images/machine-calendar.png new file mode 100644 index 000000000..a725f67a2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/machine-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/machine-configuration.png b/libreplan-webapp/src/main/webapp/help/nl/images/machine-configuration.png new file mode 100644 index 000000000..0777473fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/machine-configuration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/machine-costcategory.png b/libreplan-webapp/src/main/webapp/help/nl/images/machine-costcategory.png new file mode 100644 index 000000000..b8414eac6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/machine-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/machine-criterions.png b/libreplan-webapp/src/main/webapp/help/nl/images/machine-criterions.png new file mode 100644 index 000000000..7c270bf35 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/machine-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/machine-data.png b/libreplan-webapp/src/main/webapp/help/nl/images/machine-data.png new file mode 100644 index 000000000..5edb47d12 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/machine-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/manage-user-profile.png b/libreplan-webapp/src/main/webapp/help/nl/images/manage-user-profile.png new file mode 100644 index 000000000..6a86064e2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/manage-user-profile.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/manage-user.png b/libreplan-webapp/src/main/webapp/help/nl/images/manage-user.png new file mode 100644 index 000000000..df59f1b7c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/manage-user.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/material.png b/libreplan-webapp/src/main/webapp/help/nl/images/material.png new file mode 100644 index 000000000..a77b5aa41 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/menu.png b/libreplan-webapp/src/main/webapp/help/nl/images/menu.png new file mode 100644 index 000000000..f4eec5250 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/menu.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/new-resource-calendar.png b/libreplan-webapp/src/main/webapp/help/nl/images/new-resource-calendar.png new file mode 100644 index 000000000..9040e0bc0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/new-resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/order-assigned-hours.png b/libreplan-webapp/src/main/webapp/help/nl/images/order-assigned-hours.png new file mode 100644 index 000000000..4fd629386 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/order-assigned-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/order-criterions.png b/libreplan-webapp/src/main/webapp/help/nl/images/order-criterions.png new file mode 100644 index 000000000..e59bd833f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/order-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/order-edition.png b/libreplan-webapp/src/main/webapp/help/nl/images/order-edition.png new file mode 100644 index 000000000..ff67134db Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/order-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/order-element-criterion.png b/libreplan-webapp/src/main/webapp/help/nl/images/order-element-criterion.png new file mode 100644 index 000000000..f167979b0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/order-element-criterion.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/order-element-edition.png b/libreplan-webapp/src/main/webapp/help/nl/images/order-element-edition.png new file mode 100644 index 000000000..66e5e8602 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/order-element-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/order-element-hours.png b/libreplan-webapp/src/main/webapp/help/nl/images/order-element-hours.png new file mode 100644 index 000000000..06cc1dc37 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/order-element-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/order-element-material-assign.png b/libreplan-webapp/src/main/webapp/help/nl/images/order-element-material-assign.png new file mode 100644 index 000000000..90f973766 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/order-element-material-assign.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/order-element-material-search.png b/libreplan-webapp/src/main/webapp/help/nl/images/order-element-material-search.png new file mode 100644 index 000000000..550f1d7fa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/order-element-material-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/order-element-quality.png b/libreplan-webapp/src/main/webapp/help/nl/images/order-element-quality.png new file mode 100644 index 000000000..3272ce70e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/order-element-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/order-element-tags.png b/libreplan-webapp/src/main/webapp/help/nl/images/order-element-tags.png new file mode 100644 index 000000000..e43a7d795 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/order-element-tags.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/order-elements-list.png b/libreplan-webapp/src/main/webapp/help/nl/images/order-elements-list.png new file mode 100644 index 000000000..271ac9bf6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/order-elements-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/order-labels.png b/libreplan-webapp/src/main/webapp/help/nl/images/order-labels.png new file mode 100644 index 000000000..076e0a745 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/order-labels.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/order-material.png b/libreplan-webapp/src/main/webapp/help/nl/images/order-material.png new file mode 100644 index 000000000..9197679e7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/order-material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/order-quality.png b/libreplan-webapp/src/main/webapp/help/nl/images/order-quality.png new file mode 100644 index 000000000..ee9e9027e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/order-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/order_list.png b/libreplan-webapp/src/main/webapp/help/nl/images/order_list.png new file mode 100644 index 000000000..72e70f3b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/order_list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/planning-view.png b/libreplan-webapp/src/main/webapp/help/nl/images/planning-view.png new file mode 100644 index 000000000..de74811eb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/planning-view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/quality.png b/libreplan-webapp/src/main/webapp/help/nl/images/quality.png new file mode 100644 index 000000000..1850f51b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/resource-assignment-generic.png b/libreplan-webapp/src/main/webapp/help/nl/images/resource-assignment-generic.png new file mode 100644 index 000000000..3519a5087 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/resource-assignment-generic.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/resource-assignment-planning.png b/libreplan-webapp/src/main/webapp/help/nl/images/resource-assignment-planning.png new file mode 100644 index 000000000..c4233780d Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/resource-assignment-planning.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/resource-assignment-search.png b/libreplan-webapp/src/main/webapp/help/nl/images/resource-assignment-search.png new file mode 100644 index 000000000..cae142d81 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/resource-assignment-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/resource-assignment-specific.png b/libreplan-webapp/src/main/webapp/help/nl/images/resource-assignment-specific.png new file mode 100644 index 000000000..8f7b1cba2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/resource-assignment-specific.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/resource-assignment.png b/libreplan-webapp/src/main/webapp/help/nl/images/resource-assignment.png new file mode 100644 index 000000000..427d25b79 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/resource-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/resource-calendar.png b/libreplan-webapp/src/main/webapp/help/nl/images/resource-calendar.png new file mode 100644 index 000000000..749c7b829 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/resource-load.png b/libreplan-webapp/src/main/webapp/help/nl/images/resource-load.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/resource-load.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/resources_global.png b/libreplan-webapp/src/main/webapp/help/nl/images/resources_global.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/resources_global.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/stretches.png b/libreplan-webapp/src/main/webapp/help/nl/images/stretches.png new file mode 100644 index 000000000..d661a63f6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/stretches.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/tag-types-edition.png b/libreplan-webapp/src/main/webapp/help/nl/images/tag-types-edition.png new file mode 100644 index 000000000..d366c09c2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/tag-types-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/tag-types-list.png b/libreplan-webapp/src/main/webapp/help/nl/images/tag-types-list.png new file mode 100644 index 000000000..e7de5048c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/tag-types-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/tipos-avances.png b/libreplan-webapp/src/main/webapp/help/nl/images/tipos-avances.png new file mode 100644 index 000000000..bb417f52c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/tipos-avances.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/virtual-resources.png b/libreplan-webapp/src/main/webapp/help/nl/images/virtual-resources.png new file mode 100644 index 000000000..3a54f95d3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/virtual-resources.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/work-report-hours.png b/libreplan-webapp/src/main/webapp/help/nl/images/work-report-hours.png new file mode 100644 index 000000000..568e9fed6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/work-report-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/work-report-type.png b/libreplan-webapp/src/main/webapp/help/nl/images/work-report-type.png new file mode 100644 index 000000000..2549d8b5e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/work-report-type.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/work-report-types.png b/libreplan-webapp/src/main/webapp/help/nl/images/work-report-types.png new file mode 100644 index 000000000..986f705aa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/work-report-types.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/worker-calendar.png b/libreplan-webapp/src/main/webapp/help/nl/images/worker-calendar.png new file mode 100644 index 000000000..1227969b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/worker-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/worker-costcategory.png b/libreplan-webapp/src/main/webapp/help/nl/images/worker-costcategory.png new file mode 100644 index 000000000..f330db68c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/worker-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/worker-criterions.png b/libreplan-webapp/src/main/webapp/help/nl/images/worker-criterions.png new file mode 100644 index 000000000..a131a29fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/worker-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/images/worker-personal-data.png b/libreplan-webapp/src/main/webapp/help/nl/images/worker-personal-data.png new file mode 100644 index 000000000..6a5033ba8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/nl/images/worker-personal-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/nl/index.html b/libreplan-webapp/src/main/webapp/help/nl/index.html new file mode 100644 index 000000000..7a9b74000 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/index.html @@ -0,0 +1,47 @@ + + + + + + +LibrePlan: User documentation + + + +
+

LibrePlan: User documentation

+ +images/logo.png +

Following document contains necessary help for using LibrePlan, the opensource web application for project planning.

+

This document is divided in three main sections:

+

First, global goals and behaviour.

+

Second, basic entities to understand the minimum concepts to use LibrePlan.

+

Finally, complete processes description to create orders, projects, project planning, resources assignment, advance assignment and result extraction.

+
    +
  1. Introduction
  2. +
  3. Criteria
  4. +
  5. Calendars
  6. +
  7. Progress
  8. +
  9. Resource Management
  10. +
  11. Orders and Order Elements
  12. +
  13. Task Planning
  14. +
  15. Resource Assignment
  16. +
  17. Work Reports
  18. +
  19. Labels
  20. +
  21. Materials Management
  22. +
  23. Quality Forms
  24. +
  25. User Management
  26. +
  27. Cost management
  28. +
  29. Reports
  30. +
  31. LDAP Configuration
  32. +
  33. Dashboards
  34. +
  35. Connectors
  36. +
  37. Scheduler
  38. +
  39. About
  40. +
  41. Subcontractor Work Description
  42. +
  43. PERT Chart
  44. +
  45. Task Subnets
  46. +
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/nl/lsr.css b/libreplan-webapp/src/main/webapp/help/nl/lsr.css new file mode 100644 index 000000000..ced6c967a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/nl/lsr.css @@ -0,0 +1,250 @@ +/* +Author: Peter Parente +Date: 2008/01/22 +Version: 1.0 +Copyright: This stylesheet has been placed in the public domain - free to edit and use for all uses. +*/ + +body { + font: 0.8em Verdana, Tahoma, sans-serif; + background: #ffffff; + color: black; + margin: 2em; +} + +p.topic-title { + font-weight: bold; +} + +table.docinfo { + text-align: left; + margin: 2em 0; +} + +a[href] { + color: #436976; + background-color: transparent; +} + +a.toc-backref { + text-decoration: none; +} + +h1 a[href] { + color: #003a6b; + text-decoration: none; + background-color: transparent; +} + +a.strong { + font-weight: bold; +} + +img { + margin: 0; + border: 0; +} + +p { + margin: 0.5em 0 1em 0; + line-height: 1.5em; +} + +p a:visited { + color: purple; + background-color: transparent; +} + +p a:active { + color: red; + background-color: transparent; +} + +a:hover { + text-decoration: none; +} + +p img { + border: 0; + margin: 0; +} + +p.rubric { + font-weight: bold; + font-style: italic; +} + +h1.title { + color: #003a6b; + font-size: 250%; + margin-bottom: 0; +} + +h2.subtitle { + color: #003a6b; + border-bottom: 0; +} + +h1, h2, h3, h4, h5, h6 { + color: #555; + background-color: transparent; + margin: 0; + padding-top: 0.5em; +} + +h1 { + font-size: 160%; + margin-bottom: 0.5em; + border-bottom: 2px solid #aaa; +} + +h2 { + font-size: 140%; + margin-bottom: 0.5em; + border-bottom: 1px solid #aaa; +} + +h3 { + font-size: 130%; + margin-bottom: 0.5em; +} + +h4 { + font-size: 110%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h5 { + font-size: 105%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h6 { + font-size: 100%; + font-weight: bold; + margin-bottom: 0.5em; +} + +dt { + font-style: italic; +} + +dd { + margin-bottom: 1.5em; +} + +div.admonition, div.note, div.tip, div.caution, div.important, div.warning { + margin: 2em 2em; + padding: 0 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +div.important { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +div.caution { + background: transparent url('../images/caution.png') 10px 2px no-repeat; +} + +div.note { + background: transparent url('../images/note.png') 10px 2px no-repeat; +} + +div.tip { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-example { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-critical-example { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +p.admonition-title { + font-weight: bold; + border-bottom: 1px solid #aaa; + padding-left: 30px; +} + +table.docutils { + text-align: left; + border: 1px solid gray; + border-collapse: collapse; + width: 100%; + margin: 1.5em 0; +} + +table.docutils caption { + font-style: italic; +} + +table.docutils td, table.docutils th { + padding: 0.25em 0.5em; +} + +table.docutils th { + background-color: #dddddd; +} + +div.sidebar { + width: 33%; + float: right; + margin: 0 2em; + padding: 0 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +p.sidebar-title { + margin-bottom: 0; + color: #003a6b; + border-bottom: 1px solid #aaa; + font-weight: bold; +} + +p.sidebar-subtitle { + margin-top: 0; + font-style: italic; + color: #003a6b; +} + +div.figure { + text-align: center; +} + +div.figure img { + background: #f8f8f8; + padding: 0.25em; + border: 1px solid #888; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +div.figure img:hover { + background: #e0e0e0; +} + +div.figure p.caption { + text-align: center; + margin-top: 0.1em; + font-style: italic; + color: #444; +} + +pre.literal-block { + padding: 0.15em; + background: #f8f8f8; + border: 1px solid #dfdfdf; + border-left: 0.25em solid #dfdfdf +} diff --git a/libreplan-webapp/src/main/webapp/help/pl/01-introducion.html b/libreplan-webapp/src/main/webapp/help/pl/01-introducion.html new file mode 100644 index 000000000..51e520ad7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/01-introducion.html @@ -0,0 +1,132 @@ + + + + + + +Introduction + + + +
+

Introduction

+ + +

This document describes the features of TASKPM and provides user information on how to configure and use the application.

+

TASKPM is an open-source web application for project planning. Its primary goal is to provide a comprehensive solution for company project management. For any specific information you may need about this software, please contact the development team at http://www.libreplan.com/contact/

+
+images/company_view.png +

Company Overview

+
+
+

Company Overview and View Management

+

As shown in the program's main screen (see the previous screenshot) and the company overview, users can view a list of planned projects. This allows them to understand the company's overall status regarding orders and resource utilization. The company overview offers three distinct views:

+
    +
  • Planning View: This view combines two perspectives:

    +
    +
      +
    • Order and Time Tracking: Each project is represented by a Gantt chart, indicating the project's start and end dates. This information is displayed alongside the agreed-upon deadline. A comparison is then made between the percentage of progress achieved and the actual time dedicated to each project. This provides a clear picture of the company's performance at any given time. This view is the program's default landing page.
    • +
    • Company Resource Utilization Graph: This graph displays information on resource allocation across projects, providing a summary of the entire company's resource usage. Green indicates that resource allocation is below 100% of capacity. The black line represents the total available resource capacity. Yellow indicates that resource allocation exceeds 100%. It's possible to have under-allocation overall while simultaneously experiencing over-allocation for specific resources.
    • +
    +
    +
  • +
  • Resource Load View: This screen displays a list of the company's workers and their specific task allocations, or generic allocations based on defined criteria. To access this view, click on Overall load of resources. See the following image for an example.

    +
  • +
  • Orders Administration View: This screen displays a list of company orders, allowing users to perform the following actions: filter, edit, delete, visualize planning, or create a new order. To access this view, click on Order list.

    +
  • +
+
+images/resources_global.png +

Resource Overview

+
+
+images/order_list.png +

Work Breakdown Structure

+
+

The view management described above for the company overview is very similar to the management available for a single project. A project can be accessed in several ways:

+
    +
  • Right-click on the Gantt chart for the order and select Plan.
  • +
  • Access the order list and click on the Gantt diagram icon.
  • +
  • Create a new order and change the current order view.
  • +
+

The program offers the following views for an order:

+
    +
  • Planning View: This view allows users to visualize task planning, dependencies, milestones, and more. See the Planning section for further details.
  • +
  • Resource Load View: This view allows users to check the designated resource load for a project. The color code is consistent with the company overview: green for a load less than 100%, yellow for a load equal to 100%, and red for a load over 100%. The load may originate from a specific task or a set of criteria (generic allocation).
  • +
  • Editing Order View: This view allows users to modify the details of the order. See the Orders section for more information.
  • +
  • Advanced Resource Allocation View: This view allows users to allocate resources with advanced options, such as specifying hours per day or the allocated functions to be performed. See the Resource allocation section for more information.
  • +
+
+
+

What Makes TASKPM Useful?

+

TASKPM is a general-purpose planning tool developed to address challenges in industrial project planning that were not adequately covered by existing tools. The development of TASKPM was also motivated by the desire to provide a free, open-source, and entirely web-based alternative to proprietary planning tools.

+

The core concepts underpinning the program are as follows:

+
    +
  • Company and Multi-Project Overview: TASKPM is specifically designed to provide users with information about multiple projects being carried out within a company. Therefore, it is inherently a multi-project program. The program's focus is not limited to individual projects, although specific views for individual projects are also available.
  • +
  • View Management: The company overview, or multi-project view, is accompanied by various views of the stored information. For example, the company overview allows users to view orders and compare their status, view the company's overall resource load, and manage orders. Users can also access the planning view, resource load view, advanced resource allocation view, and editing order view for individual projects.
  • +
  • Criteria: Criteria are a system entity that enables the classification of both resources (human and machine) and tasks. Resources must meet certain criteria, and tasks require specific criteria to be fulfilled. This is one of the program's most important features, as criteria form the basis of generic allocation and address a significant challenge in the industry: the time-consuming nature of human resource management and the difficulty of long-term company load estimations.
  • +
  • Resources: There are two types of resources: human and machine. Human resources are the company's workers, used for planning, monitoring, and controlling the company's workload. Machine resources, dependent on the people who operate them, function similarly to human resources.
  • +
  • Resource Allocation: A key feature of the program is the ability to designate resources in two ways: specifically and generically. Generic allocation is based on the criteria required to complete a task and must be fulfilled by resources capable of meeting those criteria. To understand generic allocation, consider this example: John Smith is a welder. Typically, John Smith would be specifically assigned to a planned task. However, TASKPM offers the option of selecting any welder within the company, without needing to specify that John Smith is the assigned person.
  • +
  • Company Load Control: The program allows for easy control of the company's resource load. This control extends to both the mid-term and long-term, as current and future projects can be managed within the program. TASKPM provides graphs that visually represent resource utilization.
  • +
  • Labels: Labels are used to categorize project tasks. With these labels, users can group tasks by concept, allowing for later review as a group or after filtering.
  • +
  • Filters: Because the system naturally includes elements that label or characterize tasks and resources, criteria filters or labels can be used. This is very useful for reviewing categorized information or generating specific reports based on criteria or labels.
  • +
  • Calendars: Calendars define the available productive hours for different resources. Users can create general company calendars or define more specific calendars, allowing for the creation of calendars for individual resources and tasks.
  • +
  • Orders and Order Elements: Work requested by clients is treated as an order within the application, structured into order elements. The order and its elements follow a hierarchical structure with x levels. This element tree forms the basis for work planning.
  • +
  • Progress: The program can manage various types of progress. A project's progress can be measured as a percentage, in units, against the agreed budget, and more. The responsibility for determining which type of progress to use for comparison at higher project levels lies with the planning manager.
  • +
  • Tasks: Tasks are the fundamental planning elements within the program. They are used to schedule work to be carried out. Key characteristics of tasks include: dependencies between tasks, and the potential requirement for specific criteria to be met before resources can be allocated.
  • +
  • Work Reports: These reports, submitted by the company's workers, detail the hours worked and the tasks associated with those hours. This information allows the system to calculate the actual time taken to complete a task compared to the budgeted time. Progress can then be compared against the actual hours used.
  • +
+

In addition to the core functions, TASKPM offers other features that distinguish it from similar programs:

+
    +
  • Integration with ERP: The program can directly import information from company ERP systems, including orders, human resources, work reports, and specific criteria.
  • +
  • Version Management: The program can manage multiple planning versions, while still allowing users to review the information from each version.
  • +
  • History Management: The program does not delete information; it only marks it as invalid. This allows users to review historical information using date filters.
  • +
+
+
+

Usability Conventions

+
+

Information About Forms

+

Before describing the various functions associated with the most important modules, we need to explain the general navigation and form behavior.

+

There are essentially three types of editing forms:

+
    +
  • Forms with a *Return* button: These forms are part of a larger context, and the changes made are stored in memory. The changes are only applied when the user explicitly saves all the details on the screen from which the form originated.
  • +
  • Forms with *Save* and *Close* buttons: These forms allow for two actions. The first saves the changes and closes the current window. The second closes the window without saving any changes.
  • +
  • Forms with *Save and continue*, *Save*, and *Close* buttons: These forms allow for three actions. The first saves the changes and keeps the current form open. The second saves the changes and closes the form. The third closes the window without saving any changes.
  • +
+
+
+

Standard Icons and Buttons

+
    +
  • Editing: In general, records in the program can be edited by clicking on an icon that looks like a pencil on a white notebook.
  • +
  • Left Indent: These operations are generally used for elements within a tree structure that need to be moved to a deeper level. This is done by clicking on the icon that looks like a green arrow pointing to the right.
  • +
  • Right Indent: These operations are generally used for elements within a tree structure that need to be moved to a higher level. This is done by clicking on the icon that looks like a green arrow pointing to the left.
  • +
  • Deleting: Users can delete information by clicking on the trash can icon.
  • +
  • Search: The magnifying glass icon indicates that the text field to its left is used for searching for elements.
  • +
+
+
+

Tabs

+

The program uses tabs to organize content editing and administration forms. This method is used to divide a comprehensive form into different sections, accessible by clicking on the tab names. The other tabs retain their current status. In all cases, the save and cancel options apply to all sub-forms within the different tabs.

+
+
+

Explicit Actions and Context Help

+

The program includes components that provide additional descriptions of elements when the mouse hovers over them for one second. The actions that the user can perform are indicated on the button labels, in the help texts associated with them, in the browsing menu options, and in the context menus that appear when right-clicking in the planner area. Furthermore, shortcuts are provided for the main operations, such as double-clicking on listed elements or using key events with the cursor and the Enter key to add elements when navigating through forms.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pl/02-criterios.html b/libreplan-webapp/src/main/webapp/help/pl/02-criterios.html new file mode 100644 index 000000000..42fad10d3 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/02-criterios.html @@ -0,0 +1,69 @@ + + + + + + +Criteria + + + +
+

Criteria

+ +
+

Contents

+ +
+

Criteria are elements used within the program to categorize both resources and tasks. Tasks require specific criteria, and resources must meet those criteria.

+

Here's an example of how criteria are used: A resource is assigned the criterion "welder" (meaning the resource fulfills the "welder" category), and a task requires the "welder" criterion to be completed. Consequently, when resources are allocated to tasks using generic allocation (as opposed to specific allocation), workers with the "welder" criterion will be considered. For more information on the different types of allocation, refer to the chapter on resource allocation.

+

The program allows for several operations involving criteria:

+
    +
  • Criteria administration
  • +
  • Assigning criteria to resources
  • +
  • Assigning criteria to tasks
  • +
  • Filtering entities based on criteria. Tasks and order items can be filtered by criteria to perform various operations within the program.
  • +
+

This section will only explain the first function, criteria administration. The two types of allocation will be covered later: resource allocation in the "Resource Management" chapter, and filtering in the "Task Planning" chapter.

+
+

Criteria Administration

+

Criteria administration can be accessed through the administration menu:

+
+images/menu.png +

First-Level Menu Tabs

+
+

The specific operation for managing criteria is Manage criteria. This operation allows you to list the criteria available in the system.

+
+images/lista-criterios.png +

List of Criteria

+
+

You can access the create/edit criterion form by clicking the Create button. To edit an existing criterion, click the edit icon.

+
+images/edicion-criterio.png +

Editing Criteria

+
+

The criteria editing form, as shown in the previous image, allows you to perform the following operations:

+
    +
  • Edit the criterion's name.
  • +
  • Specify whether multiple values can be assigned simultaneously or only one value for the selected criterion type. For example, a resource could fulfill two criteria, "welder" and "lathe operator."
  • +
  • Specify the criterion type:
      +
    • Generic: A criterion that can be used for both machines and workers.
    • +
    • Worker: A criterion that can only be used for workers.
    • +
    • Machine: A criterion that can only be used for machines.
    • +
    +
  • +
  • Indicate whether the criterion is hierarchical. Sometimes, criteria need to be treated hierarchically. For example, assigning a criterion to an element does not automatically assign it to elements derived from it. A clear example of a hierarchical criterion is "location." For instance, a person designated with the location "Galicia" will also belong to "Spain."
  • +
  • Indicate whether the criterion is authorized. This is how users deactivate criteria. Once a criterion has been created and used in historical data, it cannot be changed. Instead, it can be deactivated to prevent it from appearing in selection lists.
  • +
  • Describe the criterion.
  • +
  • Add new values. A text entry field with the New criterion button is located in the second part of the form.
  • +
  • Edit the names of existing criteria values.
  • +
  • Move criteria values up or down in the list of current criteria values.
  • +
  • Remove a criterion value from the list.
  • +
+

The criteria administration form follows the form behavior described in the introduction, offering three actions: Save, Save and Close, and Close.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pl/03-calendarios.html b/libreplan-webapp/src/main/webapp/help/pl/03-calendarios.html new file mode 100644 index 000000000..0d0bbf0d5 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/03-calendarios.html @@ -0,0 +1,187 @@ + + + + + + +Calendars + + + +
+

Calendars

+ + +

Calendars are entities within the program that define the working capacity of resources. A calendar consists of a series of days throughout the year, with each day divided into available working hours.

+

For example, a public holiday might have 0 available working hours. Conversely, a typical workday might have 8 hours designated as available working time.

+

There are two primary ways to define the number of working hours in a day:

+
    +
  • By Weekday: This method sets a standard number of working hours for each day of the week. For example, Mondays might typically have 8 working hours.
  • +
  • By Exception: This method allows for specific deviations from the standard weekday schedule. For example, Monday, January 30th, might have 10 working hours, overriding the standard Monday schedule.
  • +
+
+

Calendar Administration

+

The calendar system is hierarchical, allowing you to create base calendars and then derive new calendars from them, forming a tree structure. A calendar derived from a higher-level calendar will inherit its daily schedules and exceptions unless explicitly modified. To effectively manage calendars, it's important to understand the following concepts:

+
    +
  • Day Independence: Each day is treated independently, and each year has its own set of days. For example, if December 8th, 2009, is a public holiday, this does not automatically mean that December 8th, 2010, is also a public holiday.
  • +
  • Weekday-Based Working Days: Standard working days are based on weekdays. For example, if Mondays typically have 8 working hours, then all Mondays in all weeks of all years will have 8 available hours unless an exception is defined.
  • +
  • Exceptions and Exception Periods: You can define exceptions or exception periods to deviate from the standard weekday schedule. For example, you can specify a single day or a range of days with a different number of available working hours than the general rule for those weekdays.
  • +
+
+images/calendar-administration.png +

Calendar Administration

+
+

Calendar administration is accessible through the "Administration" menu. From there, users can perform the following actions:

+
    +
  1. Create a new calendar from scratch.
  2. +
  3. Create a calendar derived from an existing one.
  4. +
  5. Create a calendar as a copy of an existing one.
  6. +
  7. Edit an existing calendar.
  8. +
+
+

Creating a New Calendar

+

To create a new calendar, click the "Create" button. The system will display a form where you can configure the following:

+
    +
  • Select the Tab: Choose the tab you want to work on:
      +
    • Marking Exceptions: Define exceptions to the standard schedule.
    • +
    • Working Hours per Day: Define the standard working hours for each weekday.
    • +
    +
  • +
  • Marking Exceptions: If you select the "Marking Exceptions" option, you can:
      +
    • Select a specific day on the calendar.
    • +
    • Select the type of exception. The available types are: holiday, illness, strike, public holiday, and working holiday.
    • +
    • Select the end date of the exception period. (This field does not need to be changed for single-day exceptions.)
    • +
    • Define the number of working hours during the days of the exception period.
    • +
    • Delete previously defined exceptions.
    • +
    +
  • +
  • Working Hours per Day: If you select the "Working Hours per Day" option, you can:
      +
    • Define the available working hours for each weekday (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, and Sunday).
    • +
    • Define different weekly hour distributions for future periods.
    • +
    • Delete previously defined hour distributions.
    • +
    +
  • +
+

These options allow users to fully customize calendars according to their specific needs. Click the "Save" button to store any changes made to the form.

+
+images/calendar-edition.png +

Editing Calendars

+
+
+images/calendar-exceptions.png +

Adding an Exception to a Calendar

+
+
+
+

Creating Derived Calendars

+

A derived calendar is created based on an existing calendar. It inherits all the features of the original calendar, but you can modify it to include different options.

+

A common use case for derived calendars is when you have a general calendar for a country, such as Spain, and you need to create a derived calendar to include additional public holidays specific to a region, such as Galicia.

+

It's important to note that any changes made to the original calendar will automatically propagate to the derived calendar, unless a specific exception has been defined in the derived calendar. For example, the calendar for Spain might have an 8-hour working day on May 17th. However, the calendar for Galicia (a derived calendar) might have no working hours on that same day because it's a regional public holiday. If the Spanish calendar is later changed to have 4 available working hours per day for the week of May 17th, the Galician calendar will also change to have 4 available working hours for every day in that week, except for May 17th, which will remain a non-working day due to the defined exception.

+
+images/calendar-create-derived.png +

Creating a Derived Calendar

+
+

To create a derived calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Calendar administration option.
  • +
  • Select the calendar you want to use as the basis for the derived calendar and click the "Create" button.
  • +
  • The system will display an editing form with the same characteristics as the form used to create a calendar from scratch, except that the proposed exceptions and the working hours per weekday will be based on the original calendar.
  • +
+
+
+

Creating a Calendar by Copying

+

A copied calendar is an exact duplicate of an existing calendar. It inherits all the features of the original calendar, but you can modify it independently.

+

The key difference between a copied calendar and a derived calendar is how they are affected by changes to the original. If the original calendar is modified, the copied calendar remains unchanged. However, derived calendars are affected by changes made to the original, unless an exception is defined.

+

A common use case for copied calendars is when you have a calendar for one location, such as "Pontevedra," and you need a similar calendar for another location, such as "A Coruña," where most of the features are the same. However, changes to one calendar should not affect the other.

+

To create a copied calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Calendar administration option.
  • +
  • Select the calendar you want to copy and click the "Create" button.
  • +
  • The system will display an editing form with the same characteristics as the form used to create a calendar from scratch, except that the proposed exceptions and the working hours per weekday will be based on the original calendar.
  • +
+
+
+

Default Calendar

+

One of the existing calendars can be designated as the default calendar. This calendar will be automatically assigned to any entity in the system that is managed with calendars unless a different calendar is specified.

+

To set up a default calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Configuration option.
  • +
  • In the Default calendar field, select the calendar you want to use as the program's default calendar.
  • +
  • Click Save.
  • +
+
+images/default-calendar.png +

Setting a Default Calendar

+
+
+
+

Assigning a Calendar to Resources

+

Resources can only be activated (i.e., have available working hours) if they have an assigned calendar with a valid activation period. If no calendar is assigned to a resource, the default calendar is assigned automatically, with an activation period that begins on the start date and has no expiry date.

+
+images/resource-calendar.png +

Resource Calendar

+
+

However, you can delete the calendar that has been previously assigned to a resource and create a new calendar based on an existing one. This allows for complete customization of calendars for individual resources.

+

To assign a calendar to a resource:

+
    +
  • Go to the Edit resources option.
  • +
  • Select a resource and click Edit.
  • +
  • Select the "Calendar" tab.
  • +
  • The calendar, along with its exceptions, working hours per day, and activation periods, will be displayed.
  • +
  • Each tab will have the following options:
      +
    • Exceptions: Define exceptions and the period to which they apply, such as holidays, public holidays, or different workdays.
    • +
    • Working Week: Modify the working hours for each weekday (Monday, Tuesday, etc.).
    • +
    • Activation Periods: Create new activation periods to reflect the start and end dates of contracts associated with the resource. See the following image.
    • +
    +
  • +
  • Click Save to store the information.
  • +
  • Click Delete if you want to change the calendar assigned to a resource.
  • +
+
+images/new-resource-calendar.png +

Assigning a New Calendar to a Resource

+
+
+
+

Assigning Calendars to Orders

+

Projects can have a different calendar than the default calendar. To change the calendar for an order:

+
    +
  • Access the order list in the company overview.
  • +
  • Edit the order in question.
  • +
  • Access the "General information" tab.
  • +
  • Select the calendar to be assigned from the drop-down menu.
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+

Assigning Calendars to Tasks

+

Similar to resources and orders, you can assign specific calendars to individual tasks. This allows you to define different calendars for specific stages of a project. To assign a calendar to a task:

+
    +
  • Access the planning view of a project.
  • +
  • Right-click the task to which you want to assign a calendar.
  • +
  • Select the "Assign calendar" option.
  • +
  • Select the calendar to be assigned to the task.
  • +
  • Click Accept.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pl/04-avances.html b/libreplan-webapp/src/main/webapp/help/pl/04-avances.html new file mode 100644 index 000000000..615d6109f --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/04-avances.html @@ -0,0 +1,97 @@ + + + + + + +Progress + + + +
+

Progress

+ + +

Project progress indicates the degree to which the estimated completion time of the project is being met. Task progress indicates the degree to which the task is being completed according to its estimated completion.

+

Generally, progress cannot be measured automatically. A staff member with experience or a checklist must determine the degree of completion for a task or project.

+

It's important to note the distinction between the hours assigned to a task or project and the progress of that task or project. While the number of hours used may be more or less than expected, the project may be ahead of or behind its estimated completion on the monitored day. Several situations can arise from these two measurements:

+
    +
  • Fewer hours consumed than expected, but the project is behind schedule: Progress is lower than estimated for the monitored day.
  • +
  • Fewer hours consumed than expected, and the project is ahead of schedule: Progress is higher than estimated for the monitored day.
  • +
  • More hours consumed than expected, and the project is behind schedule: Progress is lower than estimated for the monitored day.
  • +
  • More hours consumed than expected, but the project is ahead of schedule: Progress is higher than estimated for the monitored day.
  • +
+

The planning view allows you to compare these situations by using information about the progress made and the hours used. This chapter will explain how to enter information to monitor progress.

+

The philosophy behind progress monitoring is based on users defining the level at which they want to monitor their projects. For example, if users want to monitor orders, they only need to enter information for level-1 elements. If they want more precise monitoring at the task level, they must enter progress information at lower levels. The system will then aggregate the data upward through the hierarchy.

+
+

Managing Progress Types

+

Companies have varying needs when monitoring project progress, particularly the tasks involved. Therefore, the system includes "progress types." Users can define different progress types to measure a task's progress. For example, a task can be measured as a percentage, but this percentage can also be translated into progress in Tonnes based on the agreement with the client.

+

A progress type has a name, a maximum value, and a precision value:

+
    +
  • Name: A descriptive name that users will recognize when selecting the progress type. This name should clearly indicate what kind of progress is being measured.
  • +
  • Maximum Value: The maximum value that can be established for a task or project as the total progress measurement. For example, if you're working with Tonnes and the normal maximum is 4000 tonnes, and no task will ever require more than 4000 tonnes of any material, then 4000 would be the maximum value.
  • +
  • Precision Value: The increment value allowed for the progress type. For example, if progress in Tonnes is to be measured in whole numbers, the precision value would be 1. From that point on, only whole numbers can be entered as progress measurements (e.g., 1, 2, 300).
  • +
+

The system has two default progress types:

+
    +
  • Percentage: A general progress type that measures the progress of a project or task based on an estimated completion percentage. For example, a task is 30% complete out of the 100% estimated for a specific day.
  • +
  • Units: A general progress type that measures progress in units without specifying the type of unit. For example, a task involves creating 3000 units, and the progress is 500 units out of the total of 3000.
  • +
+
+images/tipos-avances.png +

Administration of Progress Types

+
+

Users can create new progress types as follows:

+
    +
  • Go to the "Administration" section.
  • +
  • Click the "Manage types of progress" option in the second-level menu.
  • +
  • The system will display a list of existing progress types.
  • +
  • For each progress type, users can:
      +
    • Edit
    • +
    • Delete
    • +
    +
  • +
  • Users can then create a new progress type.
  • +
  • When editing or creating a progress type, the system displays a form with the following information:
      +
    • Name of the progress type.
    • +
    • Maximum value allowed for the progress type.
    • +
    • Precision value for the progress type.
    • +
    +
  • +
+
+
+

Entering Progress Based on Type

+

Progress is entered for order elements, but it can also be entered using a shortcut from the planning tasks. Users are responsible for deciding which progress type to associate with each order element.

+

Users can enter a single, default progress type for the entire order.

+

Before measuring progress, users must associate the chosen progress type with the order. For example, they might choose percentage progress to measure progress on the entire task or an agreed progress rate if progress measurements agreed upon with the client will be entered in the future.

+
+images/avance.png +

Progress Entry Screen with Graphic Visualization

+
+

To enter progress measurements:

+
    +
  • Select the progress type to which the progress will be added. +* If no progress type exists, a new one must be created.
  • +
  • In the form that appears under the "Value" and "Date" fields, enter the absolute value of the measurement and the date of the measurement.
  • +
  • The system automatically stores the entered data.
  • +
+
+
+

Comparing Progress for an Order Element

+

Users can graphically compare the progress made on orders with the measurements taken. All progress types have a column with a check button ("Show"). When this button is selected, the progress chart of measurements taken is displayed for the order element.

+
+images/contraste-avance.png +

Comparison of Several Progress Types

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pl/05-recursos.html b/libreplan-webapp/src/main/webapp/help/pl/05-recursos.html new file mode 100644 index 000000000..07190538a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/05-recursos.html @@ -0,0 +1,186 @@ + + + + + + +Resource Management + + + +
+

Resource Management

+ + +

The program manages two distinct types of resources: staff and machines.

+
+

Staff Resources

+

Staff resources represent the company's workers. Their key characteristics are:

+
    +
  • They fulfill one or more generic or worker-specific criteria.
  • +
  • They can be specifically assigned to a task.
  • +
  • They can be assigned generically to a task that requires a resource criterion.
  • +
  • They can have a default or a specific calendar, as needed.
  • +
+
+
+

Machine Resources

+

Machine resources represent the company's machinery. Their key characteristics are:

+
    +
  • They fulfill one or more generic or machine-specific criteria.
  • +
  • They can be specifically assigned to a task.
  • +
  • They can be assigned generically to a task that requires a machine criterion.
  • +
  • They can have a default or a specific calendar, as needed.
  • +
  • The program includes a configuration screen where an alpha value can be defined to represent the machine/worker ratio.
      +
    • The alpha value indicates the amount of worker time required to operate the machine. For example, an alpha value of 0.5 means that every 8 hours of machine operation requires 4 hours of a worker's time.
    • +
    • Users can assign an alpha value specifically to a worker, designating that worker to operate the machine for that percentage of time.
    • +
    • Users can also make a generic assignment based on a criterion, so that a percentage of use is assigned to all resources that meet that criterion and have available time. Generic assignment works similarly to generic assignment for tasks, as described previously.
    • +
    +
  • +
+
+
+

Managing Resources

+

Users can create, edit, and deactivate (but not permanently delete) workers and machines within the company by navigating to the "Resources" section. This section provides the following features:

+
    +
  • List of Workers: Displays a numbered list of workers, allowing users to manage their details.
  • +
  • List of Machines: Displays a numbered list of machines, allowing users to manage their details.
  • +
+
+

Managing Workers

+

Worker management is accessed by going to the "Resources" section and then selecting "List of workers." Users can edit any worker in the list by clicking the standard edit icon.

+

When editing a worker, users can access the following tabs:

+
    +
  1. Worker Details: This tab allows users to edit the worker's basic identification details:

    +
      +
    • Name
    • +
    • Surname(s)
    • +
    • National ID document (DNI)
    • +
    • Queue-based resource (see section on Queue-based Resources)
    • +
    +
    +images/worker-personal-data.png +

    Editing Workers' Personal Details

    +
    +
  2. +
  3. Criteria: This tab is used to configure the criteria that a worker fulfills. Users can assign any worker or generic criteria they deem appropriate. It's crucial for workers to fulfill criteria to maximize the program's functionality. To assign criteria:

    +
      +
    1. Click the "Add criteria" button.
    2. +
    3. Search for the criterion to be added and select the most appropriate one.
    4. +
    5. Click the "Add" button.
    6. +
    7. Select the start date when the criterion becomes applicable.
    8. +
    9. Select the end date for applying the criterion to the resource. This date is optional if the criterion is considered indefinite.
    10. +
    +
    +images/worker-criterions.png +

    Associating Criteria with Workers

    +
    +
  4. +
  5. Calendar: This tab allows users to configure a specific calendar for the worker. All workers have a default calendar assigned; however, it's possible to assign a specific calendar to each worker based on an existing calendar.

    +
    +images/worker-calendar.png +

    Calendar Tab for a Resource

    +
    +
  6. +
  7. Cost Category: This tab allows users to configure the cost category that a worker fulfills during a given period. This information is used to calculate the costs associated with a worker on a project.

    +
    +images/worker-costcategory.png +

    Cost Category Tab for a Resource

    +
    +
  8. +
+

Resource assignment is explained in the "Resource Assignment" section.

+
+
+

Managing Machines

+

Machines are treated as resources for all purposes. Therefore, similar to workers, machines can be managed and assigned to tasks. Resource assignment is covered in the "Resource Assignment" section, which will explain the specific features of machines.

+

Machines are managed from the "Resources" menu entry. This section has an operation called "Machine list," which displays the company's machines. Users can edit or delete a machine from this list.

+

When editing machines, the system displays a series of tabs for managing different details:

+
    +
  1. Machine Details: This tab allows users to edit the machine's identification details:

    +
      +
    1. Name
    2. +
    3. Machine code
    4. +
    5. Description of the machine
    6. +
    +
    +images/machine-data.png +

    Editing Machine Details

    +
    +
  2. +
  3. Criteria: As with worker resources, this tab is used to add criteria that the machine fulfills. Two types of criteria can be assigned to machines: machine-specific or generic. Worker criteria cannot be assigned to machines. To assign criteria:

    +
      +
    1. Click the "Add criteria" button.
    2. +
    3. Search for the criterion to be added and select the most appropriate one.
    4. +
    5. Select the start date when the criterion becomes applicable.
    6. +
    7. Select the end date for applying the criterion to the resource. This date is optional if the criterion is considered indefinite.
    8. +
    9. Click the "Save and continue" button.
    10. +
    +
    +images/machine-criterions.png +

    Assigning Criteria to Machines

    +
    +
  4. +
  5. Calendar: This tab allows users to configure a specific calendar for the machine. All machines have a default calendar assigned; however, it's possible to assign a specific calendar to each machine based on an existing calendar.

    +
    +images/machine-calendar.png +

    Assigning Calendars to Machines

    +
    +
  6. +
  7. Machine Configuration: This tab allows users to configure the ratio of machines to worker resources. A machine has an alpha value that indicates the machine/worker ratio. As mentioned previously, an alpha value of 0.5 indicates that 0.5 people are required for each full day of machine operation. Based on the alpha value, the system automatically assigns workers who are associated with the machine once the machine is assigned to a task. Associating a worker with a machine can be done in two ways:

    +
      +
    1. Specific Assignment: Assign a range of dates during which the worker is assigned to the machine. This is a specific assignment, as the system automatically assigns hours to the worker when the machine is scheduled.
    2. +
    3. Generic Assignment: Assign criteria that must be fulfilled by workers assigned to the machine. This creates a generic assignment of workers who meet the criteria.
    4. +
    +
    +images/machine-configuration.png +

    Configuration of Machines

    +
    +
  8. +
  9. Cost Category: This tab allows users to configure the cost category that a machine fulfills during a given period. This information is used to calculate the costs associated with a machine on a project.

    +
    +images/machine-costcategory.png +

    Assigning Cost Categories to Machines

    +
    +
  10. +
+
+
+

Virtual Worker Groups

+

The program allows users to create virtual worker groups, which are not real workers but simulated staff. These groups enable users to model increased production capacity at specific times, based on the calendar settings.

+

Virtual worker groups allow users to assess how project planning would be affected by hiring and assigning staff who meet specific criteria, thus aiding in the decision-making process.

+

The tabs for creating virtual worker groups are the same as those for configuring workers:

+
    +
  • General Details
  • +
  • Assigned Criteria
  • +
  • Calendars
  • +
  • Associated Hours
  • +
+

The difference between virtual worker groups and actual workers is that virtual worker groups have a name for the group and a quantity, which represents the number of real people in the group. There is also a field for comments, where additional information can be provided, such as which project would require hiring equivalent to the virtual worker group.

+
+images/virtual-resources.png +

Virtual Resources

+
+
+
+

Queue-based Resources

+

Queue-based resources are a specific type of productive element that can either be unassigned or have 100% dedication. In other words, they cannot have more than one task scheduled at the same time, nor can they be over-allocated.

+

For each queue-based resource, a queue is automatically created. The tasks scheduled for these resources can be managed specifically using the provided assignment methods, creating automatic assignments between tasks and queues that match the required criteria, or by moving tasks between queues.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pl/06-pedidos.html b/libreplan-webapp/src/main/webapp/help/pl/06-pedidos.html new file mode 100644 index 000000000..87fd79071 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/06-pedidos.html @@ -0,0 +1,315 @@ + + + + + + +Orders and Order Elements + + + +
+

Orders and Order Elements

+ + +

Orders represent the work to be performed by users of the program. Each order corresponds to a project that the company will offer to its clients.

+

An order consists of one or more order elements. Each order element represents a specific part of the work to be done and defines how the work on the order should be planned and executed. Order elements are organized hierarchically, with no limitations on the depth of the hierarchy. This hierarchical structure allows for the inheritance of certain features, such as labels.

+

The following sections describe the operations that users can perform with orders and order elements.

+
+

Orders

+

An order represents a project or work requested by a client from the company. The order identifies the project within the company's planning. Unlike comprehensive management programs, TASKPM only requires certain key details for an order. These details are:

+
    +
  • Order Name: The name of the order.
  • +
  • Order Code: A unique code for the order.
  • +
  • Total Order Amount: The total financial value of the order.
  • +
  • Estimated Start Date: The planned start date for the order.
  • +
  • End Date: The planned completion date for the order.
  • +
  • Person in Charge: The individual responsible for the order.
  • +
  • Description: A description of the order.
  • +
  • Assigned Calendar: The calendar associated with the order.
  • +
  • Automatic Generation of Codes: A setting to instruct the system to automatically generate codes for order elements and hour groups.
  • +
  • Preference between Dependencies and Restrictions: Users can choose whether dependencies or restrictions take priority in case of conflicts.
  • +
+

However, a complete order also includes other associated entities:

+
    +
  • Hours Assigned to the Order: The total hours allocated to the order.
  • +
  • Progress Attributed to the Order: The progress made on the order.
  • +
  • Labels: Labels assigned to the order.
  • +
  • Criteria Assigned to the Order: Criteria associated with the order.
  • +
  • Materials: Materials required for the order.
  • +
  • Quality Forms: Quality forms associated with the order.
  • +
+

Creating or editing an order can be done from several locations within the program:

+
    +
  • From the "Order List" in the Company Overview:
      +
    • Editing: Click the edit button on the desired order.
    • +
    • Creating: Click "New order."
    • +
    +
  • +
  • From an Order in the Gantt Chart: Change to the order details view.
  • +
+

Users can access the following tabs when editing an order:

+
    +
  • Editing Order Details: This screen allows users to edit basic order details:

    +
      +
    • Name
    • +
    • Code
    • +
    • Estimated Start Date
    • +
    • End Date
    • +
    • Person in Charge
    • +
    • Client
    • +
    • Description
    • +
    +
    +images/order-edition.png +

    Editing Orders

    +
    +
  • +
  • Order Element List: This screen allows users to perform several operations on order elements:

    +
      +
    • Creating new order elements.
    • +
    • Promoting an order element one level up in the hierarchy.
    • +
    • Demoting an order element one level down in the hierarchy.
    • +
    • Indenting an order element (moving it down the hierarchy).
    • +
    • Unindenting an order element (moving it up the hierarchy).
    • +
    • Filtering order elements.
    • +
    • Deleting order elements.
    • +
    • Moving an element within the hierarchy by dragging and dropping.
    • +
    +
    +images/order-elements-list.png +

    Order Element List

    +
    +
  • +
  • Assigned Hours: This screen displays the total hours attributed to the project, grouping the hours entered in the order elements.

    +
    +images/order-assigned-hours.png +

    Assigning Hours Attributed to the Order by Workers

    +
    +
  • +
  • Progress: This screen allows users to assign progress types and enter progress measurements for the order. See the "Progress" section for more details.

    +
  • +
  • Labels: This screen allows users to assign labels to an order and view previously assigned direct and indirect labels. See the following section on editing order elements for a detailed description of label management.

    +
    +images/order-labels.png +

    Order Labels

    +
    +
  • +
  • Criteria: This screen allows users to assign criteria that will apply to all tasks within the order. These criteria will be automatically applied to all order elements, except those that have been explicitly invalidated. The hour groups of order elements, which are grouped by criteria, can also be viewed, allowing users to identify the criteria required for an order.

    +
    +images/order-criterions.png +

    Order Criteria

    +
    +
  • +
  • Materials: This screen allows users to assign materials to orders. Materials can be selected from the available material categories in the program. Materials are managed as follows:

    +
      +
    • Select the "Search materials" tab at the bottom of the screen.
    • +
    • Enter text to search for materials or select the categories for which you want to find materials.
    • +
    • The system filters the results.
    • +
    • Select the desired materials (multiple materials can be selected by pressing the "Ctrl" key).
    • +
    • Click "Assign."
    • +
    • The system displays the list of materials already assigned to the order.
    • +
    • Select the units and the status to assign to the order.
    • +
    • Click "Save" or "Save and continue."
    • +
    • To manage the receipt of materials, click "Divide" to change the status of a partial quantity of material.
    • +
    +
    +images/order-material.png +

    Materials Associated with an Order

    +
    +
  • +
  • Quality: Users can assign a quality form to the order. This form is then completed to ensure that certain activities associated with the order are carried out. See the following section on editing order elements for details on managing quality forms.

    +
    +images/order-quality.png +

    Quality Form Associated with the Order

    +
    +
  • +
+
+
+

Editing Order Elements

+

Order elements are edited from the "Order element list" tab by clicking the edit icon. This opens a new screen where users can:

+
    +
  • Edit information about the order element.
  • +
  • View hours attributed to order elements.
  • +
  • Manage progress of order elements.
  • +
  • Manage order labels.
  • +
  • Manage criteria required by the order element.
  • +
  • Manage materials.
  • +
  • Manage quality forms.
  • +
+

The following subsections describe each of these operations in detail.

+
+

Editing Information about the Order Element

+

Editing information about the order element includes modifying the following details:

+
    +
  • Order Element Name: The name of the order element.
  • +
  • Order Element Code: A unique code for the order element.
  • +
  • Start Date: The planned start date of the order element.
  • +
  • Estimated End Date: The planned completion date of the order element.
  • +
  • Total Hours: The total hours allocated to the order element. These hours can be calculated from the added hour groups or entered directly. If entered directly, the hours must be distributed among the hour groups, and a new hour group created if the percentages do not match the initial percentages.
  • +
  • Hour Groups: One or more hour groups can be added to the order element. The purpose of these hour groups is to define the requirements for the resources that will be assigned to perform the work.
  • +
  • Criteria: Criteria can be added that must be met to enable generic assignment for the order element.
  • +
+
+images/order-element-edition.png +

Editing Order Elements

+
+
+
+

Viewing Hours Attributed to Order Elements

+

The "Assigned hours" tab allows users to view the work reports associated with an order element and see how many of the estimated hours have already been completed.

+
+images/order-element-hours.png +

Hours Assigned to Order Elements

+
+

The screen is divided into two parts:

+
    +
  • Work Report List: Users can view the list of work reports associated with the order element, including the date and time, resource, and number of hours devoted to the task.
  • +
  • Use of Estimated Hours: The system calculates the total number of hours devoted to the task and compares them with the estimated hours.
  • +
+
+
+

Managing Progress of Order Elements

+

Entering progress types and managing order element progress is described in the "Progress" chapter.

+
+
+

Managing Order Labels

+

Labels, as described in the chapter on labels, allow users to categorize order elements. This enables users to group planning or order information based on these labels.

+

Users can assign labels directly to an order element or to a higher-level order element in the hierarchy. Once a label is assigned using either method, the order element and the related planning task are associated with the label and can be used for subsequent filtering.

+
+images/order-element-tags.png +

Assigning Labels for Order Elements

+
+

As shown in the image, users can perform the following actions from the Labels tab:

+
    +
  • View Inherited Labels: View labels associated with the order element that were inherited from a higher-level order element. The planning task associated with each order element has the same associated labels.
  • +
  • View Directly Assigned Labels: View labels directly associated with the order element using the assignment form for lower-level labels.
  • +
  • Assign Existing Labels: Assign labels by searching for them among the available labels in the form below the direct label list. To search for a label, click the magnifying glass icon or enter the first letters of the label in the text box to display the available options.
  • +
  • Create and Assign New Labels: Create new labels associated with an existing label type from this form. To do this, select a label type and enter the label value for the selected type. The system automatically creates the label and assigns it to the order element when "Create and assign" is clicked.
  • +
+
+
+

Managing Criteria Required by the Order Element and Hour Groups

+

Both an order and an order element can have criteria assigned that must be met for the work to be performed. Criteria can be direct or indirect:

+
    +
  • Direct Criteria: These are assigned directly to the order element. They are criteria required by the hour groups on the order element.
  • +
  • Indirect Criteria: These are assigned to higher-level order elements in the hierarchy and are inherited by the element being edited.
  • +
+

In addition to the required criteria, one or more hour groups that are part of the order element can be defined. This depends on whether the order element contains other order elements as child nodes or if it is a leaf node. In the first case, information about hours and hour groups can only be viewed. However, leaf nodes can be edited. Leaf nodes work as follows:

+
    +
  • The system creates a default hour group associated with the order element. The details that can be modified for an hour group are:
      +
    • Code: The code for the hour group (if not automatically generated).
    • +
    • Criterion Type: Users can choose to assign a machine or worker criterion.
    • +
    • Number of Hours: The number of hours in the hour group.
    • +
    • List of Criteria: The criteria to be applied to the hour group. To add new criteria, click "Add criterion" and select one from the search engine that appears after clicking the button.
    • +
    +
  • +
  • Users can add new hour groups with different features than previous hour groups. For example, an order element might require a welder (30 hours) and a painter (40 hours).
  • +
+
+images/order-element-criterion.png +

Assigning Criteria to Order Elements

+
+
+
+

Managing Materials

+

Materials are managed in projects as a list associated with each order element or an order in general. The list of materials includes the following fields:

+
    +
  • Code: The material code.
  • +
  • Date: The date associated with the material.
  • +
  • Units: The required number of units.
  • +
  • Unit Type: The type of unit used to measure the material.
  • +
  • Unit Price: The price per unit.
  • +
  • Total Price: The total price (calculated by multiplying the unit price by the number of units).
  • +
  • Category: The category to which the material belongs.
  • +
  • Status: The status of the material (e.g., Received, Requested, Pending, Processing, Cancelled).
  • +
+

Working with materials is done as follows:

+
    +
  • Select the "Materials" tab on an order element.
  • +
  • The system displays two sub-tabs: "Materials" and "Search materials."
  • +
  • If the order element has no assigned materials, the first tab will be empty.
  • +
  • Click "Search materials" in the lower-left part of the window.
  • +
  • The system displays the list of available categories and associated materials.
  • +
+
+images/order-element-material-search.png +

Searching for Materials

+
+
    +
  • Select categories to refine the material search.
  • +
  • The system displays the materials that belong to the selected categories.
  • +
  • From the materials list, select the materials to assign to the order element.
  • +
  • Click "Assign."
  • +
  • The system displays the selected list of materials on the "Materials" tab with new fields to complete.
  • +
+
+images/order-element-material-assign.png +

Assigning Materials to Order Elements

+
+
    +
  • Select the units, status, and date for the assigned materials.
  • +
+

For subsequent monitoring of materials, it's possible to change the status of a group of units of the received material. This is done as follows:

+
    +
  • Click the "Divide" button on the list of materials to the right of each row.
  • +
  • Select the number of units to divide the row into.
  • +
  • The program displays two rows with the material divided.
  • +
  • Change the status of the row containing the material.
  • +
+

The advantage of using this dividing tool is the ability to receive partial deliveries of material without having to wait for the entire delivery to mark it as received.

+
+
+

Managing Quality Forms

+

Some order elements require certification that certain tasks have been completed before they can be marked as complete. This is why the program has quality forms, which consist of a list of questions that are considered important if answered positively.

+

It's important to note that a quality form must be created beforehand to be assigned to an order element.

+

To manage quality forms:

+
    +
  • Go to the "Quality forms" tab.

    +
    +images/order-element-quality.png +

    Assigning Quality Forms to Order Elements

    +
    +
  • +
  • The program has a search engine for quality forms. There are two types of quality forms: by element or by percentage.

    +
      +
    • Element: Each element is independent.
    • +
    • Percentage: Each question increases the progress of the order element by a percentage. The percentages must be able to add up to 100%.
    • +
    +
  • +
  • Select one of the forms created in the administration interface and click "Assign."

    +
  • +
  • The program assigns the chosen form from the list of forms assigned to the order element.

    +
  • +
  • Click the "Edit" button on the order element.

    +
  • +
  • The program displays the questions from the quality form in the lower list.

    +
  • +
  • Mark the questions that have been completed as achieved.

    +
      +
    • If the quality form is based on percentages, the questions are answered in order.
    • +
    • If the quality form is based on elements, the questions can be answered in any order.
    • +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pl/07-planificacion.html b/libreplan-webapp/src/main/webapp/help/pl/07-planificacion.html new file mode 100644 index 000000000..7b8954f83 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/07-planificacion.html @@ -0,0 +1,117 @@ + + + + + + +Task Planning + + + +
+

Task Planning

+ + +
+

Task Planning

+

Planning in TASKPM is a process that has been described throughout the user guide, with the chapters on orders and resource assignment being particularly important. This chapter describes the basic planning procedures after the order and Gantt charts have been properly configured.

+
+images/planning-view.png +

Work Planning View

+
+

As with the company overview, the project planning view is divided into several views based on the information being analyzed. The views available for a specific project are:

+
    +
  • Planning View
  • +
  • Resource Load View
  • +
  • Order List View
  • +
  • Advanced Assignment View
  • +
+
+

Planning View

+

The Planning View combines three different perspectives:

+
    +
  • Project Planning: Project planning is displayed in the upper right-hand part of the program as a Gantt chart. This view allows users to temporarily move tasks, assign dependencies between them, define milestones, and establish restrictions.
  • +
  • Resource Load: The Resource Load view, located in the lower right-hand part of the screen, shows resource availability based on assignments, as opposed to the assignments made to tasks. The information displayed in this view is as follows:
      +
    • Purple Area: Indicates a resource load below 100% of its capacity.
    • +
    • Green Area: Indicates a resource load below 100%, resulting from the resource being planned for another project.
    • +
    • Orange Area: Indicates a resource load over 100% as a result of the current project.
    • +
    • Yellow Area: Indicates a resource load over 100% as a result of other projects.
    • +
    +
  • +
  • Graph View and Earned Value Indicators: These can be viewed from the "Earned Value" tab. The generated graph is based on the earned value technique, and the indicators are calculated for each workday of the project. The calculated indicators are:
      +
    • BCWS (Budgeted Cost of Work Scheduled): The cumulative time function for the number of hours planned up to a certain date. It will be 0 at the planned start of the task and equal to the total number of planned hours at the end. As with all cumulative graphs, it will always increase. The function for a task will be the sum of the daily assignments until the calculation date. This function has values for all times, provided that resources have been assigned.
    • +
    • ACWP (Actual Cost of Work Performed): The cumulative time function for the hours reported in work reports up to a certain date. This function will only have a value of 0 before the date of the task's first work report, and its value will continue to increase as time passes and work report hours are added. It will have no value after the date of the last work report.
    • +
    • BCWP (Budgeted Cost of Work Performed): The cumulative time function that includes the resultant value of multiplying task progress by the amount of work that the task was estimated to require for completion. This function's values increase as time passes, as do progress values. Progress is multiplied by the total number of estimated hours for all tasks. The BCWP value is the sum of the values for the tasks being calculated. Progress is totaled when it is configured.
    • +
    • CV (Cost Variance): CV = BCWP - ACWP
    • +
    • SV (Schedule Variance): SV = BCWP - BCWS
    • +
    • BAC (Budget at Completion): BAC = max (BCWS)
    • +
    • EAC (Estimate at Completion): EAC = (ACWP / BCWP) * BAC
    • +
    • VAC (Variance at Completion): VAC = BAC - EAC
    • +
    • ETC (Estimate to Complete): ETC = EAC - ACWP
    • +
    • CPI (Cost Performance Index): CPI = BCWP / ACWP
    • +
    • SPI (Schedule Performance Index): SPI = BCWP / BCWS
    • +
    +
  • +
+

In the project planning view, users can perform the following actions:

+
    +
  • Assigning Dependencies: Right-click a task, choose "Add dependency," and drag the mouse pointer to the task to which the dependency should be assigned.
      +
    • To change the type of dependency, right-click the dependency and choose the desired type.
    • +
    +
  • +
  • Creating a New Milestone: Click the task before which the milestone is to be added and select the "Add milestone" option. Milestones can be moved by selecting the milestone with the mouse pointer and dragging it to the desired position.
  • +
  • Moving Tasks without Disturbing Dependencies: Right-click the body of the task and drag it to the desired position. If no restrictions or dependencies are violated, the system will update the daily assignment of resources to the task and place the task on the selected date.
  • +
  • Assigning Restrictions: Click the task in question and select the "Task properties" option. A pop-up window will appear with a "Restrictions" field that can be modified. Restrictions can conflict with dependencies, which is why each order specifies whether dependencies take priority over restrictions. The restrictions that can be established are:
      +
    • As Soon as Possible: Indicates that the task must start as soon as possible.
    • +
    • Not Before: Indicates that the task must not start before a certain date.
    • +
    • Start on a Specific Date: Indicates that the task must start on a specific date.
    • +
    +
  • +
+

The planning view also offers several procedures that function as viewing options:

+
    +
  • Zoom Level: Users can choose the desired zoom level. There are several zoom levels: annual, four-monthly, monthly, weekly, and daily.
  • +
  • Search Filters: Users can filter tasks based on labels or criteria.
  • +
  • Critical Path: As a result of using the Dijkstra algorithm to calculate paths on graphs, the critical path was implemented. It can be viewed by clicking the "Critical path" button in the viewing options.
  • +
  • Show Labels: Enables users to view the labels assigned to tasks in a project, which can be viewed on screen or printed.
  • +
  • Show Resources: Enables users to view the resources assigned to tasks in a project, which can be viewed on screen or printed.
  • +
  • Print: Enables users to print the Gantt chart being viewed.
  • +
+
+
+

Resource Load View

+

The Resource Load View provides a list of resources that contains a list of tasks or criteria that generate workloads. Each task or criterion is shown as a Gantt chart so that the start and end dates of the load can be seen. A different color is shown depending on whether the resource has a load that is higher or lower than 100%:

+
    +
  • Green: Load lower than 100%
  • +
  • Orange: 100% load
  • +
  • Red: Load over 100%
  • +
+
+images/resource-load.png +

Resource Load View for a Specific Order

+
+

If the mouse pointer is placed on the resource's Gantt chart, the load percentage for the worker will be shown.

+
+
+

Order List View

+

The Order List View allows users to access the order editing and deleting options. See the "Orders" chapter for more information.

+
+
+

Advanced Assignment View

+

The Advanced Assignment View is explained in depth in the "Resource Assignment" chapter.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pl/08-asignacion.html b/libreplan-webapp/src/main/webapp/help/pl/08-asignacion.html new file mode 100644 index 000000000..46da7239c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/08-asignacion.html @@ -0,0 +1,179 @@ + + + + + + +Resource Assignment + + + +
+

Resource Assignment

+ + +

Resource assignment is one of the program's most important features and can be carried out in two different ways:

+
    +
  • Specific assignment
  • +
  • Generic assignment
  • +
+

Both types of assignment are explained in the following sections.

+

To perform either type of resource assignment, the following steps are necessary:

+
    +
  • Go to the planning view of an order.
  • +
  • Right-click on the task to be planned.
  • +
+
+images/resource-assignment-planning.png +

Resource Assignment Menu

+
+
    +
  • The program displays a screen with the following information:
      +
    • List of Criteria to be Fulfilled: For each hour group, a list of required criteria is shown.
    • +
    • Task Information: The start and end dates of the task.
    • +
    • Type of Calculation: The system allows users to choose the strategy for calculating assignments:
        +
      • Calculate Number of Hours: This calculates the number of hours required from the assigned resources, given an end date and a number of resources per day.
      • +
      • Calculate End Date: This calculates the end date of the task based on the number of resources assigned to the task and the total number of hours required to complete the task.
      • +
      • Calculate Number of Resources: This calculates the number of resources required to finish the task by a specific date, given a known number of hours per resource.
      • +
      +
    • +
    • Recommended Assignment: This option allows the program to gather the criteria to be fulfilled and the total number of hours from all hour groups, and then recommend a generic assignment. If a prior assignment exists, the system deletes it and replaces it with the new one.
    • +
    • Assignments: A list of assignments that have been made. This list shows the generic assignments (the number will be the list of fulfilled criteria, and the number of hours and resources per day). Each assignment can be explicitly removed by clicking the delete button.
    • +
    +
  • +
+
+images/resource-assignment.png +

Resource Assignment

+
+
    +
  • Users select "Search resources."
  • +
  • The program displays a new screen consisting of a criteria tree and a list of workers who fulfill the selected criteria on the right:
  • +
+
+images/resource-assignment-search.png +

Resource Assignment Search

+
+
    +
  • Users can select:
      +
    • Specific Assignment: See the "Specific Assignment" section for details on this option.
    • +
    • Generic Assignment: See the "Generic Assignment" section for details on this option.
    • +
    +
  • +
  • Users select a list of criteria (generic) or a list of workers (specific). Multiple selections can be made by pressing the "Ctrl" key while clicking each worker/criterion.
  • +
  • Users then click the "Select" button. It's important to remember that if a generic assignment is not selected, users must choose a worker or machine to perform the assignment. If a generic assignment is selected, it is sufficient for users to choose one or more criteria.
  • +
  • The program then displays the selected criteria or resource list in the list of assignments on the original resource assignment screen.
  • +
  • Users must choose the hours or resources per day, depending on the assignment method used in the program.
  • +
+
+

Specific Assignment

+

This is the specific assignment of a resource to a project task. In other words, the user decides which specific worker (by name and surname) or machine must be assigned to a task.

+

Specific assignment can be carried out on the screen shown in this image:

+
+images/asignacion-especifica.png +

Specific Resource Assignment

+
+

When a resource is specifically assigned, the program creates daily assignments based on the percentage of daily assigned resources selected, after comparing it with the available resource calendar. For example, an assignment of 0.5 resources for a 32-hour task means that 4 hours per day are assigned to the specific resource to complete the task (assuming a working calendar of 8 hours per day).

+
+

Specific Machine Assignment

+

Specific machine assignment functions in the same way as worker assignment. When a machine is assigned to a task, the system stores a specific assignment of hours for the chosen machine. The main difference is that the system searches the list of assigned workers or criteria at the moment the machine is assigned:

+
    +
  • If the machine has a list of assigned workers, the program chooses from those that are required by the machine, based on the assigned calendar. For example, if the machine calendar is 16 hours per day and the resource calendar is 8 hours, two resources are assigned from the list of available resources.
  • +
  • If the machine has one or more assigned criteria, generic assignments are made from among the resources that fulfill the criteria assigned to the machine.
  • +
+
+
+
+

Generic Assignment

+

Generic assignment occurs when users do not choose resources specifically but leave the decision to the program, which distributes the loads among the company's available resources.

+
+images/asignacion-xenerica.png +

Generic Resource Assignment

+
+

The assignment system uses the following assumptions as a basis:

+
    +
  • Tasks have criteria that are required from resources.
  • +
  • Resources are configured to fulfill criteria.
  • +
+

However, the system does not fail when criteria have not been assigned, but when all resources fulfill the non-requirement of criteria.

+

The generic assignment algorithm functions as follows:

+
    +
  • All resources and days are treated as containers where daily assignments of hours fit, based on the maximum assignment capacity in the task calendar.
  • +
  • The system searches for the resources that fulfill the criterion.
  • +
  • The system analyzes which assignments currently have different resources that fulfill criteria.
  • +
  • The resources that fulfill the criteria are chosen from those that have sufficient availability.
  • +
  • If freer resources are not available, assignments are made to the resources that have less availability.
  • +
  • Over-assignment of resources only begins when all the resources that fulfill the respective criteria are 100% assigned, until the total amount required to carry out the task is attained.
  • +
+
+

Generic Machine Assignment

+

Generic machine assignment functions in the same way as worker assignment. For example, when a machine is assigned to a task, the system stores a generic assignment of hours for all machines that fulfill the criteria, as described for resources in general. However, in addition, the system performs the following procedure for machines:

+
    +
  • For all machines chosen for generic assignment:
      +
    • It collects the machine's configuration information: alpha value, assigned workers, and criteria.
    • +
    • If the machine has an assigned list of workers, the program chooses the number required by the machine, depending on the assigned calendar. For example, if the machine calendar is 16 hours per day and the resource calendar is 8 hours, the program assigns two resources from the list of available resources.
    • +
    • If the machine has one or more assigned criteria, the program makes generic assignments from among the resources that fulfill the criteria assigned to the machine.
    • +
    +
  • +
+
+
+
+

Advanced Assignment

+

Advanced assignments allow users to design assignments that are automatically carried out by the application to personalize them. This procedure allows users to manually choose the daily hours that are dedicated by resources to assigned tasks or define a function that is applied to the assignment.

+

The steps to follow to manage advanced assignments are:

+
    +
  • Go to the advanced assignment window. There are two ways to access advanced assignments:
      +
    • Go to a specific order and change the view to advanced assignment. In this case, all the tasks on the order and assigned resources (specific and generic) will be shown.
    • +
    • Go to the resource assignment window by clicking the "Advanced assignment" button. In this case, the assignments that show the resources (generic and specific) assigned to a task will be shown.
    • +
    +
  • +
+
+images/advance-assignment.png +

Advanced Resource Assignment

+
+
    +
  • Users can choose the desired zoom level:
      +
    • Zoom Levels Greater Than One Day: If users change the assigned hour value to a week, month, four-month, or six-month period, the system distributes the hours linearly across all days throughout the chosen period.
    • +
    • Daily Zoom: If users change the assigned hour value to a day, these hours only apply to that day. Consequently, users can decide how many hours they want to assign per day to task resources.
    • +
    +
  • +
  • Users can choose to design an advanced assignment function. To do so, users must:
      +
    • Choose the function from the selection list that appears next to each resource and click "Configure."
    • +
    • The system displays a new window if the chosen function needs to be specifically configured. Supported functions:
        +
      • Segments: A function that allows users to define segments to which a polynomial function is applied. The function per segment is configured as follows:
          +
        • Date: The date on which the segment ends. If the following value (length) is established, the date is calculated; alternatively, length is calculated.
        • +
        • Defining the Length of Each Segment: This indicates what percentage of the task's duration is required for the segment.
        • +
        • Defining the Amount of Work: This indicates what workload percentage is expected to be completed in this segment. The quantity of work must be incremental. For example, if there is a 10% segment, the next one must be larger (for example, 20%).
        • +
        • Segment Graphs and Accumulated Loads.
        • +
        +
      • +
      +
    • +
    • Users then click "Accept."
    • +
    • The program stores the function and applies it to the daily resource assignments.
    • +
    +
  • +
+
+images/stretches.png +

Configuration of the Segment Function

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pl/09-partes.html b/libreplan-webapp/src/main/webapp/help/pl/09-partes.html new file mode 100644 index 000000000..90242b6c7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/09-partes.html @@ -0,0 +1,84 @@ + + + + + + +Work Reports + + + +
+

Work Reports

+ + +

Work reports enable the monitoring of the hours that resources dedicate to the tasks to which they are assigned.

+

The program allows users to configure new forms for entering dedicated hours, specifying the fields that they want to appear in these forms. This allows for the incorporation of reports from tasks carried out by workers and the monitoring of worker activity.

+

Before users can add entries for resources, they must define at least one work report type. This type defines the structure of the report, including all the rows that are added to it. Users can create as many work report types as necessary within the system.

+
+

Work Report Types

+

A work report consists of a series of fields that are common to the entire report and a set of work report lines with specific values for the fields defined in each row. For example, resources and tasks are common to all reports. However, there can be other new fields, such as "incidents," which are not required in all report types.

+

Users can configure different work report types so that a company can design its reports to meet its specific needs:

+
+images/work-report-types.png +

Work Report Types

+
+

The administration of work report types allows users to configure these types and add new text fields or optional tags. In the first tab for editing work report types, it is possible to configure the type for the mandatory attributes (whether they apply to the whole report or are specified at the line level) and add new optional fields.

+

The mandatory fields that must appear in all work reports are as follows:

+
    +
  • Name and Code: Identification fields for the name of the work report type and its code.
  • +
  • Date: Field for the date of the report.
  • +
  • Resource: Worker or machine appearing on the report or work report line.
  • +
  • Order Element: Code for the order element to which the performed work is attributed.
  • +
  • Hour Management: Determines the hour attribution policy to be used, which can be:
      +
    • According to Assigned Hours: Hours are attributed based on the assigned hours.
    • +
    • According to Start and Finish Times: Hours are calculated based on the start and finish times.
    • +
    • According to the Number of Hours and Start and Finish Range: Discrepancies are allowed, and the number of hours takes priority.
    • +
    +
  • +
+

Users can add new fields to the reports:

+
    +
  • Tag Type: Users can request the system to display a tag when completing the work report. For example, the client tag type, if the user wishes to enter the client for whom the work was carried out in each report.
  • +
  • Free Fields: Fields where text can be entered freely in the work report.
  • +
+
+images/work-report-type.png +

Creating a Work Report Type with Personalized Fields

+
+

Users can configure date, resource, and order element fields to appear in the header of the report, which means they apply to the entire report, or they can be added to each of the rows.

+

Finally, new additional text fields or tags can be added to the existing ones, in the work report header or in each line, by using the "Additional text" and "Tag type" fields, respectively. Users can configure the order in which these elements are to be entered in the "Management of additional fields and tags" tab.

+
+
+

Work Report List

+

Once the format of the reports to be incorporated into the system has been configured, users can enter the details in the created form according to the structure defined in the corresponding work report type. To do this, users need to follow these steps:

+
    +
  • Click the "New work report" button associated with the desired report from the list of work report types.
  • +
  • The program then displays the report based on the configurations given for the type. See the following image.
  • +
+
+images/work-report-type.png +

Structure of the Work Report Based on Type

+
+
    +
  • Select all the fields shown for the report:
      +
    • Resource: If the header has been chosen, the resource is only shown once. Alternatively, for each line of the report, it is necessary to choose a resource.
    • +
    • Task Code: Code of the task to which the work report is being assigned. Similar to the rest of the fields, if the field is in the header, the value is entered once or as many times as necessary on the lines of the report.
    • +
    • Date: Date of the report or each line, depending on whether the header or line is configured.
    • +
    • Number of Hours: The number of work hours in the project.
    • +
    • Start and Finish Times: Start and finish times for the work in order to calculate definitive work hours. This field only appears in the case of the hour assignment policies, "According to Start and Finish Times" and "According to the Number of Hours and Start and Finish Range."
    • +
    • Type of Hours: Enables users to choose the type of hour, e.g., "Normal," "Extraordinary," etc.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pl/10-etiquetas.html b/libreplan-webapp/src/main/webapp/help/pl/10-etiquetas.html new file mode 100644 index 000000000..eb6451798 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/10-etiquetas.html @@ -0,0 +1,68 @@ + + + + + + +Labels + + + +
+

Labels

+ +
+

Contents

+ +
+

Labels are entities used in the program to conceptually organize tasks or order elements.

+

Labels are categorized according to label type. A label can only belong to one label type; however, users can create many similar labels belonging to different label types.

+
+

Label Types

+

Label types are used to group the types of labels that users want to manage in the program. Here are some examples of possible label types:

+
    +
  • Client: Users may be interested in labeling tasks, orders, or order elements in relation to the client who requests them.
  • +
  • Area: Users may be interested in labeling tasks, orders, or order elements in relation to the areas in which they are carried out.
  • +
+

The administration of label types is managed from the "Administration" menu option. This is where users can edit label types, create new label types, and add labels to label types. Users can access the list of labels from this option.

+
+images/tag-types-list.png +

List of Label Types

+
+

From the list of label types, users can:

+
    +
  • Create a new label type.
  • +
  • Edit an existing label type.
  • +
  • Delete a label type with all of its labels.
  • +
+

Editing and creating labels share the same form. From this form, the user can assign a name to the label type, create or delete labels, and store the changes. The procedure is as follows:

+
    +
  • Select a label to edit or click the create button for a new one.
  • +
  • The system displays a form with a text entry for the name and a list of text entries with existing and assigned labels.
  • +
  • If users wish to add a new label, they must click the "New label" button.
  • +
  • The system displays a new row on the list with an empty text box that users must edit.
  • +
  • Users enter a name for the label.
  • +
  • The system adds the name to the list.
  • +
  • Users click "Save" or "Save and continue" to continue editing the form.
  • +
+
+images/tag-types-edition.png +

Editing Label Types

+
+
+
+

Labels

+

Labels are entities that belong to a label type. These entities can be assigned to order elements. Assigning a label to an order element means that all the elements descending from this element will inherit the label to which they belong. Having an assigned label means that these entities can be filtered where searches can be carried out:

+
    +
  • Search for tasks in the Gantt chart.
  • +
  • Search for order elements in the list of order elements.
  • +
  • Filters for reports.
  • +
+

The assignment of labels to order elements is covered in the chapter on orders.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pl/11-materiales.html b/libreplan-webapp/src/main/webapp/help/pl/11-materiales.html new file mode 100644 index 000000000..a06770897 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/11-materiales.html @@ -0,0 +1,54 @@ + + + + + + +Materials Management + + + +
+

Materials Management

+ +
+

Contents

+ +
+
+

Administration of Materials

+

Users can manage a basic database of materials, organized by categories.

+

Categories are containers to which specific materials and other categories can be assigned. They are stored in a hierarchical tree structure, as materials can belong to leaf categories or intermediary categories.

+

To manage categories, users must follow these steps:

+
    +
  • Go to the "Administration -> Materials" option.
  • +
  • The program displays a tree of categories.
  • +
  • Enter a category name in the text box and then click "Add."
  • +
  • The program adds the category to the tree.
  • +
+

To insert a category into the category tree, users must first select the parent category in the tree and then click "Add."

+
+images/material.png +

Material Administration Screen

+
+

To manage materials, users must follow these steps:

+
    +
  • Select the category to which materials are to be added and click "Add" to the right of "Materials."
  • +
  • The program adds a new empty row with fields to enter details about the material:
      +
    • Code: Material type code (this can be the external code from an ERP).
    • +
    • Description: Description of the material.
    • +
    • Unit Price: Unit price of each piece of material.
    • +
    • Unit: Unit used to measure each unit of material.
    • +
    • Category: Category to which the material belongs.
    • +
    • Availability: Indicates whether or not the material is active.
    • +
    +
  • +
  • Users complete the fields and click "Save."
  • +
+

The assignment of materials to order elements is explained in the chapter on "Orders."

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pl/12-formularios-calidad.html b/libreplan-webapp/src/main/webapp/help/pl/12-formularios-calidad.html new file mode 100644 index 000000000..97a584178 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/12-formularios-calidad.html @@ -0,0 +1,52 @@ + + + + + + +Quality Forms + + + +
+

Quality Forms

+ + +
+

Administration of Quality Forms

+

Quality forms consist of a list of questions or statements that indicate the tasks or processes that should have been completed before a task can be marked as complete by the company. These forms include the following fields:

+
    +
  • Name: The name of the quality form.
  • +
  • Description: A description of the quality form.
  • +
  • Type of Quality Form: The type can have two values:
      +
    • Percentage: Indicates that the questions must be answered in a logical order, and affirmative answers indicate that the task is progressing. For example, a basic process for a task might suggest that the task is 15% complete. Users must answer a question before proceeding to the next one.
    • +
    • Item: Indicates that the questions do not need to be answered in a logical order and can be answered in any sequence.
    • +
    +
  • +
+

Users must follow these steps to manage quality forms:

+
    +
  • From the "Administration" menu, access the "Quality forms" option.
  • +
  • Click "Edit" on an existing form or click "Create" to create a new one.
  • +
  • The program displays a form with fields for the name, description, and type.
  • +
  • Select the type.
  • +
  • The program displays the fields that are allowed for each type:
      +
    • Percentage: Question and percentage.
    • +
    • Item: Question.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+images/quality.png +

Quality Form Administration Screen

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pl/13-usuarios.html b/libreplan-webapp/src/main/webapp/help/pl/13-usuarios.html new file mode 100644 index 000000000..f46a23ded --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/13-usuarios.html @@ -0,0 +1,79 @@ + + + + + + +User Management + + + +
+

User Management

+ +
+

Contents

+ +
+
+

Managing Users

+

TASKPM's system allows administrators to manage user profiles, authorizations, and users. Users are assigned to user profiles, which can have a series of predefined roles that grant access to the program's features. Roles are defined authorizations within TASKPM. Examples of roles include:

+
    +
  • Administration: A role that must be assigned to administrators to enable them to perform administrative operations.
  • +
  • Web Service Reader: A role required for users to consult the program's web services.
  • +
  • Web Service Writer: A role required for users to write data via the program's web services.
  • +
+

Roles are predefined within the system. A user profile consists of one or more roles. Users must have specific roles to perform certain operations.

+

Users can be assigned one or more profiles, or one or more roles directly, allowing for specific or generic authorization to be granted.

+

To manage users, follow these steps:

+
    +
  • Go to "Manage users" in the "Administration" menu.
  • +
  • The program displays a form with a list of users.
  • +
  • Click the edit button for the desired user or click the "Create" button.
  • +
  • A form will appear with the following fields:
      +
    • User Name: The user's login name.
    • +
    • Password: The user's password.
    • +
    • Authorized/Unauthorized: A setting to enable or disable the user's account.
    • +
    • Email: The user's email address.
    • +
    • List of Associated Roles: To add a new role, users must search for a role in the selection list and click "Assign."
    • +
    • List of Associated Profiles: To add a new profile, users must search for a profile in the selection list and click "Assign."
    • +
    +
  • +
+
+images/manage-user.png +

Managing Users

+
+
    +
  • Click "Save" or "Save and continue."
  • +
+
+

Managing Profiles

+

To manage the program's profiles, users must follow these steps:

+
    +
  • Go to "Manage user profiles" in the "Administration" menu.
  • +
  • The program displays a list of profiles.
  • +
  • Click the edit button for the desired profile or click "Create."
  • +
  • A form appears in the program with the following fields:
      +
    • Name: The name of the user profile.
    • +
    • List of Roles (Authorizations): To add a role to the profile, users must select a role from the role list and click "Add."
    • +
    +
  • +
+
+images/manage-user-profile.png +

Managing User Profiles

+
+
    +
  • Click "Save" or "Save and continue," and the system will store the created or modified profile.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pl/14-custos.html b/libreplan-webapp/src/main/webapp/help/pl/14-custos.html new file mode 100644 index 000000000..5c35ce71d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/14-custos.html @@ -0,0 +1,110 @@ + + + + + + +Cost management + + + +
+

Cost management

+ +
+

Contents

+ +
+
+

Costs

+

Cost management allows users to estimate the costs of resources used in a project. To manage costs, the following entities must be defined:

+
    +
  • Hour Types: These indicate the types of hours worked by a resource. Users can define hour types for both machines and workers. Examples of hour types include: "Additional hours paid at €20 per hour." The following fields can be defined for hour types:
      +
    • Code: External code for the hour type.
    • +
    • Name: Name of the hour type. For example, "Additional."
    • +
    • Default Rate: Basic default rate for the hour type.
    • +
    • Activation: Indicates whether the hour type is active or not.
    • +
    +
  • +
  • Cost Categories: Cost categories define the costs associated with different hour types during specific periods (which may be indefinite). For example, the cost of additional hours for first-grade skilled workers in the following year is €24 per hour. Cost categories include:
      +
    • Name: Cost category name.
    • +
    • Activation: Indicates whether the category is active or not.
    • +
    • List of Hour Types: This list defines the hour types included in the cost category. It specifies the periods and rates for each hour type. For example, as rates change, each year can be included on this list as an hour type period, with a specific hourly rate for each hour type (which may differ from the default hourly rate for that hour type).
    • +
    +
  • +
+
+

Managing Hour Types

+

Users must follow these steps to register hour types:

+
    +
  • Select "Manage hour types worked" on the "Administration" menu.
  • +
  • The program displays a list of existing hour types.
  • +
+
+images/hour-type-list.png +

Hour Type List

+
+
    +
  • Click "Edit" or "Create."
  • +
  • The program displays an hour type editing form.
  • +
+
+images/hour-type-edit.png +

Editing Hour Types

+
+
    +
  • Users can enter or change:
      +
    • The hour type name.
    • +
    • The hour type code.
    • +
    • The default rate.
    • +
    • Hour type activation/deactivation.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+

Cost Categories

+

Users must follow these steps to register cost categories:

+
    +
  • Select "Manage cost categories" on the "Administration" menu.
  • +
  • The program displays a list of existing categories.
  • +
+
+images/category-cost-list.png +

Cost Category List

+
+
    +
  • Click the "Edit" or "Create" button.
  • +
  • The program displays a cost category editing form.
  • +
+
+images/category-cost-edit.png +

Editing Cost Categories

+
+
    +
  • Users enter or change:
      +
    • The name of the cost category.
    • +
    • The activation/deactivation of the cost category.
    • +
    • The list of hour types included in the category. All hour types have the following fields:
        +
      • Hour Type: Choose one of the existing hour types in the system. If none exist, an hour type must be created (this process is explained in the previous subsection).
      • +
      • Start and Finish Date: The start and finish dates (the latter is optional) for the period that applies to the cost category.
      • +
      • Hourly Rate: The hourly rate for this specific category.
      • +
      +
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+

The assignment of cost categories to resources is described in the chapter on resources. Go to the "Resources" section.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pl/15-1-report-hours-worked-by-resource.html b/libreplan-webapp/src/main/webapp/help/pl/15-1-report-hours-worked-by-resource.html new file mode 100644 index 000000000..f97f118aa --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/15-1-report-hours-worked-by-resource.html @@ -0,0 +1,101 @@ + + + + + + +Hours Worked by Resource Report + + + +
+

Hours Worked by Resource Report

+ + +
+

Purpose

+

This report extracts a list of tasks and the time resources have dedicated to them within a specified period. Several filters allow users to refine the query to obtain only the desired information and exclude extraneous data.

+
+
+

Input Parameters and Filters

+
    +
  • +
    Dates.
    +
      +
    • Type: Optional.
    • +
    • +
      Two date fields:
      +
        +
      • Start Date: This is the earliest date for work reports to be included. Work reports with dates earlier than the Start Date are excluded. If this parameter is left blank, work reports are not filtered by Start Date.
      • +
      • End Date: This is the latest date for work reports to be included. Work reports with dates later than the End Date are excluded. If this parameter is left blank, work reports are not filtered by End Date.
      • +
      +
      +
      +
    • +
    +
    +
    +
  • +
  • Filter by Workers: +* Type: Optional. +* How it works: You can select one or more workers to restrict the work reports to the time tracked by those specific workers. To add a worker as a filter, search for them in the selector and click the Add button. If this filter is left empty, work reports are retrieved regardless of the worker.
  • +
  • Filter by Labels: +* Type: Optional. +* How it works: You can add one or more labels to use as filters by searching for them in the selector and clicking the Add button. These labels are used to select the tasks to be included in the results when calculating the hours dedicated to them. This filter can be applied to timesheets, tasks, both, or neither.
  • +
  • Filter by Criteria: +* Type: Optional. +* How it works: You can select one or more criteria by searching for them in the selector and then clicking the Add button. These criteria are used to select the resources that satisfy at least one of them. The report will show all the time dedicated by the resources that meet one of the selected criteria.
  • +
+
+
+

Output

+
+

Heading

+

The report heading displays the filters that were configured and applied to the current report.

+
+ +
+

Body

+

The report body consists of several groups of information.

+
    +
  • The first level of aggregation is by resource. All the time dedicated by a resource is shown together below the header. Each resource is identified by:

    +
      +
    • Worker: Surname, First Name.
    • +
    • Machine: Name.
    • +
    +

    A summary line shows the total number of hours worked by the resource.

    +
  • +
  • The second level of grouping is by date. All the reports from a specific resource on the same date are shown together.

    +

    A summary line shows the total number of hours worked by the resource on that date.

    +
  • +
  • The final level lists the work reports for the worker on that day. The information displayed for each work report line is:

    +
      +
    • Task Code: The code of the task to which the tracked hours are attributed.
    • +
    • Task Name: The name of the task to which the tracked hours are attributed.
    • +
    • Starting Time: This is optional. It is the time at which the resource began working on the task.
    • +
    • Ending Time: This is optional. It is the time at which the resource finished working on the task on the specified date.
    • +
    • Text Fields: This is optional. If the work report line has text fields, the filled values are shown here. The format is: <Name of the text field>:<Value>
    • +
    • Labels: This depends on whether the work report model has a label field in its definition. If there are multiple labels, they are shown in the same column. The format is: <Name of the label type>:<Value of the label>
    • +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pl/15-2-total-hours-by-resource-month.html b/libreplan-webapp/src/main/webapp/help/pl/15-2-total-hours-by-resource-month.html new file mode 100644 index 000000000..246cfc9c1 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/15-2-total-hours-by-resource-month.html @@ -0,0 +1,67 @@ + + + + + + +Total Hours Worked by Resource in a Month Report + + + +
+

Total Hours Worked by Resource in a Month Report

+ + +
+

Purpose

+

This report provides the total number of hours worked by each resource in a given month. This information can be useful for determining worker overtime or, depending on the organization, the number of hours for which each resource should be compensated.

+

The application tracks work reports for both workers and machines. For machines, the report sums up the number of hours they were in operation during the month.

+
+
+

Input Parameters and Filters

+

To generate this report, users must specify the year and month for which they want to retrieve the total number of hours worked by each resource.

+
+
+

Output

+

The output format is as follows:

+ + +
+

Body

+

The data section of the report consists of a single table with two columns:

+
+
    +
  • One column labeled Name for the name of the resource.
  • +
  • One column labeled Hours with the total number of hours worked by the resource in that row.
  • +
+
+

There is a final row that aggregates the total number of hours worked by all resources during the specified month and year.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pl/15-3-work-progress-per-project.html b/libreplan-webapp/src/main/webapp/help/pl/15-3-work-progress-per-project.html new file mode 100644 index 000000000..e2f5053a9 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/15-3-work-progress-per-project.html @@ -0,0 +1,125 @@ + + + + + + +Work and Progress per Project Report + + + +
+

Work and Progress per Project Report

+ + +
+

Purpose

+

This report provides an overview of the status of projects, considering both progress and cost.

+

It analyzes the current progress of each project, comparing it with the planned progress and the work completed.

+

The report also displays several ratios related to project cost, comparing current performance with the planned performance.

+
+
+

Input Parameters and Filters

+

There are several mandatory parameters:

+
+
    +
  • Reference Date: This is the date used as a reference point for comparing the planned status of the project with its actual performance. The default value for this field is the current date.
  • +
  • Progress Type: This is the progress type used to measure project progress. The application allows a project to be measured simultaneously with different progress types. The type selected by the user in the dropdown menu is used for calculating the report data. The default value for the progress type is spread, which is a special progress type that uses the preferred method of measuring progress configured for each WBS element.
  • +
+
+

The optional parameters are:

+
+
    +
  • Starting Date: This is the earliest start date for projects to be included in the report. If this field is left blank, there is no minimum start date for the projects.
  • +
  • Ending Date: This is the latest end date for projects to be included in the report. All projects that finish after the Ending Date will be excluded.
  • +
  • Filter by Projects: This filter allows users to select the specific projects to be included in the report. If no projects are added to the filter, the report will include all projects in the database. A searchable dropdown menu is provided to find the desired project. Projects are added to the filter by clicking the Add button.
  • +
+
+
+
+

Output

+

The output format is as follows:

+
+

Heading

+

The report header displays the following fields:

+
+
    +
  • Starting Date: The filtering start date. This is not displayed if the report is not filtered by this field.
  • +
  • Ending Date: The filtering end date. This is not displayed if the report is not filtered by this field.
  • +
  • Progress Type: The progress type used for the report.
  • +
  • Projects: This indicates the filtered projects for which the report is generated. It will show the string All when the report includes all projects that satisfy the other filters.
  • +
  • Reference Date: The mandatory input reference date selected for the report.
  • +
+
+
+ +
+

Body

+

The body of the report consists of a list of projects selected based on the input filters.

+

Filters work by adding conditions, except for the set formed by the date filters (Starting Date, Ending Date) and the Filter by Projects. In this case, if one or both date filters are filled and the Filter by Projects has a list of selected projects, the latter filter takes precedence. This means that the projects included in the report are those provided by the Filter by Projects, regardless of the date filters.

+

It's important to note that progress in the report is calculated as a fraction of unity, ranging between 0 and 1.

+

For each project selected for inclusion in the report output, the following information is displayed:

+
+
    +
  • Project Name.
  • +
  • +
    Total Hours. The total hours for the project are shown by adding the hours for each task. Two types of total hours are shown:
    +
      +
    • Estimated (TE). This is the sum of all the estimated hours in the project's WBS. It represents the total number of hours estimated to complete the project.
    • +
    • Planned (TP). In TASKPM, it's possible to have two different quantities: the estimated number of hours for a task (the number of hours initially estimated to complete the task) and the planned hours (the hours allocated in the plan to complete the task). The planned hours can be equal to, less than, or greater than the estimated hours and are determined in a later phase, the assignment operation. Therefore, the total planned hours for a project are the sum of all the allocated hours for its tasks.
    • +
    +
    +
    +
  • +
  • +
    Progress. Three measurements related to the overall progress of the type specified in the progress input filter for each project at the reference date are shown:
    +
      +
    • Measured (PM). This is the overall progress considering the progress measurements with a date earlier than the Reference Date in the input parameters of the report. All tasks are taken into account, and the sum is weighted by the number of hours for each task.
    • +
    • Imputed (PI). This is the progress assuming that work continues at the same pace as the hours completed for a task. If X hours out of Y hours for a task are completed, the overall imputed progress is considered to be X/Y.
    • +
    • Planned (PP). This is the overall progress of the project according to the planned schedule at the reference date. If everything happened exactly as planned, the measured progress should be the same as the planned progress.
    • +
    +
    +
    +
  • +
  • +
    Hours up to Date. There are two fields that show the number of hours up to the reference date from two perspectives:
    +
      +
    • Planned (HP). This number is the sum of the hours allocated to any task in the project with a date less than or equal to the Reference Date.
    • +
    • Actual (HR). This number is the sum of the hours reported in the work reports for any of the tasks in the project with a date less than or equal to the Reference Date.
    • +
    +
    +
    +
  • +
  • +
    Difference. Under this heading, there are several metrics related to cost:
    +
      +
    • Cost. This is the difference in hours between the number of hours spent, considering the measured progress, and the hours completed up to the reference date. The formula is: PM*TP - HR.
    • +
    • Planned. This is the difference between the hours spent according to the overall measured project progress and the number planned up to the Reference Date. It measures the advantage or delay in time. The formula is: PM*TP - HP.
    • +
    • Cost Ratio. This is calculated by dividing PM / PI. If it is greater than 1, it means that the project is profitable at this point. If it is less than 1, it means that the project is losing money.
    • +
    • Planned Ratio. This is calculated by dividing PM / PP. If it is greater than 1, it means that the project is ahead of schedule. If it is less than 1, it means that the project is behind schedule.
    • +
    +
    +
    +
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pl/15-informes.html b/libreplan-webapp/src/main/webapp/help/pl/15-informes.html new file mode 100644 index 000000000..c2c7cafab --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/15-informes.html @@ -0,0 +1,26 @@ + + + + + + +Reports + + + +
+

Reports

+ +

TASKPM integrates with JasperReports to provide report management, enabling users to generate various reports for analyzing the data available in the program.

+

The available reports are:

+ +
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pl/16-ldap-authentication.html b/libreplan-webapp/src/main/webapp/help/pl/16-ldap-authentication.html new file mode 100644 index 000000000..ad5d4976d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/16-ldap-authentication.html @@ -0,0 +1,251 @@ + + + + + + +LDAP Configuration + + + +
+

LDAP Configuration

+ + +

This screen allows you to establish a connection with LDAP to delegate +authentication and/or authorization.

+

It is divided into four different areas, which are explained below:

+
+

Activation

+

This area is used to set the properties that determine how TASKPM uses +LDAP.

+

If the field Enable LDAP authentication is checked, TASKPM will query +LDAP each time a user attempts to log in to the application.

+

The field Use LDAP roles checked means that a mapping between LDAP roles and +TASKPM roles is established. Consequently, the permissions for a user in +TASKPM will depend on the roles the user has in LDAP.

+
+
+

Configuration

+

This section contains the parameter values for accessing LDAP. Base, UserDN, and +Password are parameters used to connect to LDAP and search for users. Therefore, +the specified user must have permission to perform this operation in LDAP. At the +bottom of this section, there is a button to check if an LDAP connection is +possible with the given parameters. It is advisable to test the connection before +continuing the configuration.

+
+

Note

+

If your LDAP is configured to work with anonymous authentication, you can +leave the UserDN and Password attributes empty.

+
+
+

Tip

+

Regarding Active Directory (AD) configuration, the Base field must be the +exact location where the bound user resides in AD.

+

Example: ou=organizational_unit,dc=example,dc=org

+
+
+
+

Authentication

+

Here, you can configure the property in LDAP nodes where the given username +should be found. The property UserId must be filled with the name of the +property where the username is stored in LDAP.

+

The checkbox Save passwords in database, when checked, means that the +password is also stored in the TASKPM database. In this way, if LDAP is +offline or unreachable, LDAP users can authenticate against the TASKPM +database. If it is not checked, LDAP users can only be authenticated against +LDAP.

+
+
+

Authorization

+

This section allows you to define a strategy for matching LDAP roles with +TASKPM roles. The first choice is the strategy to use, depending on the +LDAP implementation.

+
+

Group Strategy

+

When this strategy is used, it indicates that LDAP has a role-group strategy. +This means that users in LDAP are nodes that are directly under a branch that +represents the group.

+

The next example represents a valid LDAP structure for using the group strategy.

+
    +
  • LDAP structure:

    +
    +dc=example,dc=org
    +|- ou=groups
    +   |- cn=admins
    +   |- cn=itpeople
    +   |- cn=workers
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

In this case, each group will have an attribute, for example, called member, +with the list of users belonging to the group:

+
    +
  • cn=admins:
      +
    • member: uid=admin1,ou=people,dc=example,dc=org
    • +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=itpeople:
      +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    • member: uid=it2,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=workers:
      +
    • member: uid=worker1,ou=people,dc=example,dc=org
    • +
    • member: uid=worker2,ou=people,dc=example,dc=org
    • +
    • member: uid=worker3,ou=people,dc=example,dc=org
    • +
    +
  • +
+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Group strategy
  • +
  • Group path: ou=groups
  • +
  • Role property: member
  • +
  • Role search query: uid=[USER_ID],ou=people,dc=example,dc=org
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: cn=admins;cn=itpeople
  • +
  • Web service reader: cn=itpeople
  • +
  • Web service writer: cn=itpeople
  • +
  • All projects read allowed: cn=admins
  • +
  • All projects edition allowed: cn=admins
  • +
  • Project creation allowed: cn=workers
  • +
+
+
+

Property Strategy

+

When an administrator decides to use this strategy, it indicates that each user +is an LDAP node, and within the node, there exists a property that represents +the group(s) for the user. In this case, the configuration does not require the +Group path parameter.

+

The next example represents a valid LDAP structure for using the property strategy.

+
    +
  • LDAP structure:

    +
    +dc=example,dc=org
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

With Attribute

+

In this case, each user will have an attribute, for example, called group, +with the name of the group to which they belong:

+
    +
  • uid=admin1:
      +
    • group: admins
    • +
    +
  • +
  • uid=it1:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=it2:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=worker1:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker2:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker3:
      +
    • group: workers
    • +
    +
  • +
+
+

Warning

+

This strategy has a restriction: each user can belong to only one group.

+
+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Property strategy
  • +
  • Group path:
  • +
  • Role property: group
  • +
  • Role search query: [USER_ID]
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: admins;itpeople
  • +
  • Web service reader: itpeople
  • +
  • Web service writer: itpeople
  • +
  • All projects read allowed: admins
  • +
  • All projects edition allowed: admins
  • +
  • Project creation allowed: workers
  • +
+

By User Identifier

+

You can even use a workaround to specify TASKPM roles directly to users +without having an attribute in each LDAP user.

+

In this case, you will specify which users have the different TASKPM roles +by uid.

+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Property strategy
  • +
  • Group path:
  • +
  • Role property: uid
  • +
  • Role search query: [USER_ID]
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: admin1;it1
  • +
  • Web service reader: it1;it2
  • +
  • Web service writer: it1;it2
  • +
  • All projects read allowed: admin1
  • +
  • All projects edition allowed: admin1
  • +
  • Project creation allowed: worker1;worker2;worker3
  • +
+
+
+

Role Matching

+

At the bottom of this section, there is a table with all the TASKPM roles +and a text field next to each one. This is for matching roles. For instance, +if an administrator decides that the Administration TASKPM role matches +the admin and administrators roles of LDAP, the text field should contain: +"admin;administrators". The character for splitting roles is ";".

+
+

Note

+

If you want to specify that all users or all groups have one permission, you +can use an asterisk (*) as a wildcard to refer to them. For example, if +you want everyone to have the Project creation allowed role, you will +configure the role matching as follows:

+
    +
  • Project creation allowed: *
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pl/17-1-project-dashboard.html b/libreplan-webapp/src/main/webapp/help/pl/17-1-project-dashboard.html new file mode 100644 index 000000000..5dc0899b7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/17-1-project-dashboard.html @@ -0,0 +1,173 @@ + + + + + + +Project Dashboard + + + +
+

Project Dashboard

+ + +

The project dashboard is a TASKPM perspective that contains a set of KPIs (Key Performance Indicators) to help assess a project's performance in terms of:

+
+
    +
  • Work progress
  • +
  • Cost
  • +
  • Status of allocated resources
  • +
  • Time constraints
  • +
+
+
+

Progress Performance Indicators

+

Two indicators are calculated: project progress percentage and task status.

+
+

Project Progress Percentage

+

This chart displays the overall progress of a project, comparing it to the expected progress based on the Gantt chart.

+

Progress is represented by two bars:

+
+
    +
  • Current Progress: The current progress based on the measurements taken.
  • +
  • Expected Progress: The progress the project should have achieved at this point, according to the project plan.
  • +
+
+

To view the actual measured value for each bar, hover the mouse cursor over the bar.

+

The overall project progress is estimated using several different methods, as there is no single, universally correct approach:

+
+
    +
  • Spreading Progress: This is the progress type set as the spreading progress at the project level. In this case, there is no way to calculate an expected value, and only the current bar is displayed.
  • +
  • By All Task Hours: The progress of all project tasks is averaged to calculate the overall value. This is a weighted average that considers the number of hours allocated to each task.
  • +
  • By Critical Path Hours: The progress of tasks belonging to any of the project's critical paths is averaged to obtain the overall value. This is a weighted average that considers the total allocated hours for each involved task.
  • +
  • By Critical Path Duration: The progress of tasks belonging to any of the critical paths is averaged using a weighted average, but this time considering the duration of each involved task instead of the assigned hours.
  • +
+
+
+
+

Task Status

+

A pie chart shows the percentage of project tasks in different states. The defined states are:

+
+
    +
  • Finished: Completed tasks, identified by a 100% progress value.
  • +
  • In Progress: Tasks that are currently underway. These tasks have a progress value other than 0% or 100%, or some work time has been tracked.
  • +
  • Ready to Start: Tasks with 0% progress, no tracked time, all their FINISH_TO_START dependent tasks are finished, and all their START_TO_START dependent tasks are finished or in progress.
  • +
  • Blocked: Tasks with 0% progress, no tracked time, and with previous dependent tasks that are neither in progress nor in the ready to start state.
  • +
+
+
+
+
+

Cost Indicators

+

Several Earned Value Management cost indicators are calculated:

+
+
    +
  • CV (Cost Variance): The difference between the Earned Value curve and the Actual Cost curve at the current moment. Positive values indicate a benefit, and negative values indicate a loss.

    +
  • +
  • ACWP (Actual Cost of Work Performed): The total number of hours tracked in the project at the current moment.

    +
  • +
  • CPI (Cost Performance Index): The Earned Value / Actual Cost ratio.

    +
    +
      +
    • > 100 is favorable, indicating that the project is under budget.
    • +
    • = 100 is also favorable, indicating that the cost is right on plan.
    • +
    • < 100 is unfavorable, indicating that the cost of completing the work is higher than planned.
    • +
    +
    +
  • +
  • ETC (Estimate To Complete): The time remaining to complete the project.

    +
  • +
  • BAC (Budget At Completion): The total amount of work allocated in the project plan.

    +
  • +
  • EAC (Estimate At Completion): The manager's projection of the total cost at project completion, based on the CPI.

    +
  • +
  • VAC (Variance At Completion): The difference between the BAC and the EAC.

    +
    +
      +
    • < 0 indicates that the project is over budget.
    • +
    • > 0 indicates that the project is under budget.
    • +
    +
    +
  • +
+
+
+
+

Resources

+

To analyze the project from the resources' point of view, two ratios and a histogram are provided.

+
+

Estimation Deviation on Completed Task Histogram

+

This histogram calculates the deviation between the number of hours allocated to the project tasks and the actual number of hours dedicated to them.

+

The deviation is calculated as a percentage for all finished tasks, and the calculated deviations are represented in a histogram. The vertical axis shows the number of tasks within each deviation interval. Six deviation intervals are dynamically calculated.

+
+
+

Overtime Ratio

+

This ratio summarizes the overload of resources allocated to the project tasks. It is calculated using the formula: overtime ratio = overload / (load + overload).

+
+
    +
  • = 0 is favorable, indicating that the resources are not overloaded.
  • +
  • > 0 is unfavorable, indicating that the resources are overloaded.
  • +
+
+
+
+

Availability Ratio

+

This ratio summarizes the free capacity of the resources currently allocated to the project. Therefore, it measures the resources' availability to receive more allocations without being overloaded. It is calculated as: availability ratio = (1 - load/capacity) * 100

+
+
    +
  • Possible values are between 0% (fully assigned) and 100% (not assigned).
  • +
+
+
+
+
+

Time

+

Two charts are included: a histogram for the time deviation in the finish time of project tasks and a pie chart for deadline violations.

+
+

Task Completion Lead or Lag

+

This calculation determines the difference in days between the planned end time for project tasks and their actual end time. The planned completion date is taken from the Gantt chart, and the actual finish date is taken from the last time tracked for the task.

+

The lag or lead in task completion is represented in a histogram. The vertical axis shows the number of tasks with a lead/lag day difference value corresponding to the abscissa days interval. Six dynamic task completion deviation intervals are calculated.

+
+
    +
  • Negative values mean finishing ahead of schedule.
  • +
  • Positive values mean finishing behind schedule.
  • +
+
+
+
+

Deadline Violations

+

This section calculates the margin with the project deadline, if set. Additionally, a pie chart shows the percentage of tasks meeting their deadline. Three types of values are included in the chart:

+
+
    +
  • Percentage of tasks without a deadline configured.
  • +
  • Percentage of ended tasks with an actual end date later than their deadline. The actual end date is taken from the last time tracked for the task.
  • +
  • Percentage of ended tasks with an actual end date earlier than their deadline.
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pl/17-2-pipeline-dashboard.html b/libreplan-webapp/src/main/webapp/help/pl/17-2-pipeline-dashboard.html new file mode 100644 index 000000000..bb54ed657 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/17-2-pipeline-dashboard.html @@ -0,0 +1,33 @@ + + + + + + +Pipeline Dashboard + + + +
+

Pipeline Dashboard

+ +

The pipeline dashboard is a TASKPM perspective that lists all company projects in a table. This "pipeline" table has nine columns, each corresponding to a project status:

+
+
    +
  • PRE-SALES
  • +
  • OFFERED
  • +
  • OUTSOURCED
  • +
  • ACCEPTED
  • +
  • STARTED
  • +
  • ON HOLD
  • +
  • FINISHED
  • +
  • CANCELLED
  • +
  • ARCHIVED
  • +
+
+

Projects are listed by name in each column based on their current status.

+

A project's start date, end date, and current progress can be viewed in a tooltip popup by hovering the mouse cursor over a project's name.

+

Projects with an ARCHIVED status can be hidden by unchecking the "Show archived column data" checkbox.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pl/17-dashboards.html b/libreplan-webapp/src/main/webapp/help/pl/17-dashboards.html new file mode 100644 index 000000000..3dc8f1af4 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/17-dashboards.html @@ -0,0 +1,24 @@ + + + + + + +Dashboards + + + +
+

Dashboards

+ +

TASKPM offers dashboard views for projects, providing an overview of their current status.

+

The two available dashboard views are:

+ +
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pl/18-connectors.html b/libreplan-webapp/src/main/webapp/help/pl/18-connectors.html new file mode 100644 index 000000000..0f879b53d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/18-connectors.html @@ -0,0 +1,238 @@ + + + + + + +Connectors + + + +
+

Connectors

+ + +

Connectors are TASKPM client applications that can be used to communicate with (web) servers to retrieve data, process it, and store it. Currently, there are three connectors: the JIRA connector, the Tim Enterprise connector, and the E-mail connector.

+
+

Configuration

+

Connectors must be configured properly before they can be used. They can be configured from the "Main Settings" screen under the "Connectors" tab.

+

The connector screen includes:

+
    +
  • Pull-down list: A list of available connectors.
  • +
  • Properties edit screen: A property edit form for the selected connector.
  • +
  • Test connection button: A button to test the connection with the connector.
  • +
+

Select the connector you want to configure from the pull-down list of connectors. A property editor form for the selected connector will be displayed. In the property editor form, you can change the property values as needed and test your configurations using the "Test connection" button.

+
+

Note

+

The properties are configured with default values. The most important property is "Activated." By default, it is set to "N." This indicates that the connector will not be used unless you change the value to "Y" and save the changes.

+
+
+
+

JIRA Connector

+

JIRA is an issue and project tracking system.

+

The JIRA connector is an application that can be used to request JIRA web server data for JIRA issues and process the response. The request is based on JIRA labels. In JIRA, labels can be used to categorize issues. The request is structured as follows: retrieve all issues that are categorized by this label name.

+

The connector receives the response, which in this case is the issues, and converts them to TASKPM "Order elements" and "Time sheets."

+

The JIRA connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the JIRA connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the JIRA connector. The default is "N."
  • +
  • Server URL: The absolute path to the JIRA web server.
  • +
  • User name and password: The user credentials for authorization.
  • +
  • JIRA labels: comma-separated list of labels or URL: You can either enter the label URL or a comma-separated list of labels.
  • +
  • Hours type: The type of work hours. The default is "Default."
  • +
+
+

Note

+

JIRA labels: Currently, the JIRA web server does not support providing a list of all available labels. As a workaround, we have developed a simple PHP script that performs a simple SQL query in the JIRA database to fetch all distinct labels. You can either use this PHP script as the "JIRA labels URL" or enter the labels you want as comma-separated text in the "JIRA labels" field.

+
+

Finally, click the "Test connection" button to test if you can connect to the JIRA web server and that your configurations are correct.

+
+
+

Synchronization

+

From the project window, under "General data," you can start synchronizing order elements with JIRA issues.

+

Click the "Sync with JIRA" button to start the synchronization.

+
    +
  • If this is the first time, a pop-up window (with an auto-completed list of labels) will be displayed. In this window, you can select a label to synchronize with and click the "Start sync" button to begin the synchronization process, or click the "Cancel" button to cancel it.
  • +
  • If a label is already synchronized, the last synchronized date and the label will be displayed in the JIRA screen. In this case, no pop-up window to select a label will be displayed. Instead, the synchronization process will start directly for that displayed (already synchronized) label.
  • +
+
+

Note

+

The relationship between "Order" and "label" is one-to-one. Only one label can be synchronized with one "Order."

+
+
+

Note

+

Upon successful (re)synchronization, the information will be written to the database, and the JIRA screen will be updated with the last synchronized date and label.

+
+

(Re)synchronization is performed in two phases:

+
    +
  • Phase 1: Synchronizing order elements, including progress assignment and measurements.
  • +
  • Phase 2: Synchronizing time sheets.
  • +
+
+

Note

+

If Phase 1 fails, Phase 2 will not be performed, and no information will be written to the database.

+
+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+

Upon successful completion of synchronization, the result will be displayed in the "Work Breakdown Structure (WBS tasks)" tab of the "Project details" screen. In this UI, there are two changes from the standard WBS:

+
    +
  • The "Total task hours" column is unmodifiable (read-only) because the synchronization is one-way. Task hours can only be updated in the JIRA web server.
  • +
  • The "Code" column displays the JIRA issue keys, and they are also hyperlinks to the JIRA issues. Click the desired key if you want to go to the document for that key (JIRA issue).
  • +
+
+
+

Scheduling

+

Re-synchronization of JIRA issues can also be performed through the scheduler. Go to the "Job scheduling" screen. In that screen, you can configure a JIRA job to perform synchronization. The job searches for the last synchronized labels in the database and re-synchronizes them accordingly. See also the Scheduler Manual.

+
+
+
+

Tim Enterprise Connector

+

Tim Enterprise is a Dutch product from Aenova. It is a web-based application for the administration of time spent on projects and tasks.

+

The Tim connector is an application that can be used to communicate with the Tim Enterprise server to:

+
    +
  • Export all hours spent by a worker (user) on a project that could be registered in Tim Enterprise.
  • +
  • Import all rosters of the worker (user) to plan the resource effectively.
  • +
+

The Tim connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the Tim connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the Tim connector. The default is "N."
  • +
  • Server URL: The absolute path to the Tim Enterprise server.
  • +
  • User name and password: The user credentials for authorization.
  • +
  • Number of days timesheet to Tim: The number of days back you want to export the time sheets.
  • +
  • Number of days roster from Tim: The number of days forward you want to import the rosters.
  • +
  • Productivity factor: Effective working hours in percentage. The default is "100%."
  • +
  • Department IDs to import roster: Comma-separated department IDs.
  • +
+

Finally, click the "Test connection" button to test if you can connect to the Tim Enterprise server and that your configurations are correct.

+
+
+

Export

+

From the project window, under "General data," you can start exporting time sheets to the Tim Enterprise server.

+

Enter the "Tim product code" and click the "Export to Tim" button to start the export.

+

The Tim connector adds the following fields along with the product code:

+
    +
  • The worker/user's full name.
  • +
  • The date the worker worked on a task.
  • +
  • The effort, or hours worked on the task.
  • +
  • An option indicating whether Tim Enterprise should update the registration or insert a new one.
  • +
+

The Tim Enterprise response contains only a list of record IDs (integers). This makes it difficult to determine what went wrong, as the response list contains only numbers not related to the request fields. The export request (registration in Tim) is assumed to have succeeded if all the list entries do not contain "0" values. Otherwise, the export request has failed for those entries that contain "0" values. Therefore, you cannot see which request failed, as the list entries only contain the value "0." The only way to determine this is to examine the log file on the Tim Enterprise server.

+
+

Note

+

Upon successful exporting, the information will be written to the database, and the Tim screen will be updated with the last exported date and product code.

+
+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+
+
+

Scheduling Export

+

The export process can also be performed through the scheduler. Go to the "Job Scheduling" screen. In that screen, you can configure a Tim Export job. The job searches for the last exported time sheets in the database and re-exports them accordingly. See also the Scheduler manual.

+
+
+

Import

+

Importing rosters only works with the help of the scheduler. There is no user interface designed for this, as no input is needed from the user. Go to the "Job scheduling" screen and configure a Tim Import job. The job loops through all departments configured in the connector properties and imports all rosters for each department. See also the Scheduler Manual.

+

For import, the Tim connector adds the following fields in the request:

+
    +
  • Period: The period (date from - date to) for which you want to import the roster. This can be provided as a filter criterion.
  • +
  • Department: The department for which you want to import the roster. Departments are configurable.
  • +
  • The fields you are interested in (like Person info, RosterCategory, etc.) that the Tim server should include in its response.
  • +
+

The import response contains the following fields, which are sufficient to manage the exception days in TASKPM:

+
    +
  • Person info: Name and network name.
  • +
  • Department: The department the worker is working in.
  • +
  • Roster category: Information on the presence/absence (Aanwzig/afwezig) of the worker and the reason (TASKPM exception type) in case the worker is absent.
  • +
  • Date: The date the worker is present/absent.
  • +
  • Time: The start time of presence/absence, for example, 08:00.
  • +
  • Duration: The number of hours that the worker is present/absent.
  • +
+

By converting the import response to TASKPM's "Exception day," the following translations are taken into account:

+
    +
  • If the roster category contains the name "Vakantie," it will be translated to "RESOURCE HOLIDAY."
  • +
  • The roster category "Feestdag" will be translated to "BANK HOLIDAY."
  • +
  • All the rest, like "Jus uren," "PLB uren," etc., should be added to the "Calendar Exception Days" manually.
  • +
+

Moreover, in the import response, the roster is divided into two or three parts per day: for example, roster-morning, roster-afternoon, and roster-evening. However, TASKPM allows only one "Exception type" per day. The Tim connector is then responsible for merging these parts as one exception type. That is, the roster category with the highest duration is assumed to be a valid exception type, but the total duration is the sum of all durations of these category parts.

+

Contrary to TASKPM, in Tim Enterprise, the total duration in case the worker is on holiday means the worker is not available for that total duration. However, in TASKPM, if the worker is on holiday, the total duration should be zero. The Tim connector also handles this translation.

+
+
+
+

E-mail Connector

+

E-mail is a method of exchanging digital messages from an author to one or more recipients.

+

The E-mail connector can be used to set Simple Mail Transfer Protocol (SMTP) server connection properties.

+

The E-mail connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the E-mail connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the E-mail connector. The default is "N."
  • +
  • Protocol: The type of SMTP protocol.
  • +
  • Host: The absolute path to the SMTP server.
  • +
  • Port: The port of the SMTP server.
  • +
  • From address: The e-mail address of the message sender.
  • +
  • Username: The username for the SMTP server.
  • +
  • Password: The password for the SMTP server.
  • +
+

Finally, click the "Test connection" button to test if you can connect to the SMTP server and that your configurations are correct.

+
+
+

Edit E-mail Template

+

From the project window, under "Configuration" and then "Edit E-mail Templates," you can modify the e-mail templates for messages.

+

You can choose:

+
    +
  • Template language:
  • +
  • Template type:
  • +
  • E-mail subject:
  • +
  • Template contents:
  • +
+

You need to specify the language because the web application will send e-mails to users in the language they have chosen in their preferences. You need to choose the template type. The type is the user role, meaning that this e-mail will be sent only to users who are in the selected role (type). You need to set the e-mail subject. The subject is a brief summary of the topic of the message. You need to set the e-mail contents. This is any information that you want to send to the user. There are also some keywords that you may use in the message; the web application will parse them and set a new value instead of the keyword.

+
+
+

Scheduling E-mails

+

Sending e-mails can only be performed through the scheduler. Go to "Configuration," then the "Job Scheduling" screen. In that screen, you can configure an e-mail sending job. The job takes a list of e-mail notifications, gathers data, and sends it to the user's e-mail. See also the Scheduler manual.

+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pl/19-scheduler.html b/libreplan-webapp/src/main/webapp/help/pl/19-scheduler.html new file mode 100644 index 000000000..8379b5b4c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/19-scheduler.html @@ -0,0 +1,107 @@ + + + + + + +Scheduler + + + +
+

Scheduler

+ + +

The scheduler is designed to schedule jobs dynamically. It is developed using the Spring Framework Quartz scheduler.

+

To use this scheduler effectively, the jobs (Quartz jobs) that should be scheduled must be created first. Then, these jobs can be added to the database, as all jobs to be scheduled are stored in the database.

+

When the scheduler starts, it reads the jobs to be scheduled or unscheduled from the database and schedules or removes them accordingly. Afterward, jobs can be added, updated, or removed dynamically using the Job scheduling user interface.

+
+

Note

+

The scheduler starts when the TASKPM web application starts and stops when the application stops.

+
+
+

Note

+

This scheduler supports only cron expressions to schedule jobs.

+
+

The criteria that the scheduler uses to schedule or remove jobs when it starts are as follows:

+

For all jobs:

+
    +
  • Schedule
      +
    • Job has a Connector, and the Connector is activated, and the job is allowed to be scheduled.
    • +
    • Job has no Connector and is allowed to be scheduled.
    • +
    +
  • +
  • Remove
      +
    • Job has a Connector, and the Connector is not activated.
    • +
    • Job has a Connector, and the Connector is activated, but the job is not allowed to be scheduled.
    • +
    • Job has no Connector and is not allowed to be scheduled.
    • +
    +
  • +
+
+

Note

+

Jobs cannot be rescheduled or unscheduled if they are currently running.

+
+
+

Job Scheduling List View

+

The Job scheduling list view allows users to:

+
    +
  • Add a new job.
  • +
  • Edit an existing job.
  • +
  • Remove a job.
  • +
  • Start a process manually.
  • +
+
+
+

Add or Edit Job

+

From the Job scheduling list view, click:

+
    +
  • Create to add a new job, or
  • +
  • Edit to modify the selected job.
  • +
+

Both actions will open a create/edit job form. The form displays the following properties:

+
    +
  • Fields:
      +
    • Job group: The name of the job group.
    • +
    • Job name: The name of the job.
    • +
    • Cron expression: A read-only field with an Edit button to open the cron expression input window.
    • +
    • Job class name: A pull-down list to select the job (an existing job).
    • +
    • Connector: A pull-down list to select a connector. This is not mandatory.
    • +
    • Schedule: A checkbox to indicate whether to schedule this job.
    • +
    +
  • +
  • Buttons:
      +
    • Save: To save or update a job in both the database and the scheduler. The user is then returned to the Job scheduling list view.
    • +
    • Save and continue: The same as "Save," but the user is not returned to the Job scheduling list view.
    • +
    • Cancel: Nothing is saved, and the user is returned to the Job scheduling list view.
    • +
    +
  • +
  • And a hint section about cron expression syntax.
  • +
+
+

Cron Expression Pop-up

+

To enter the cron expression correctly, a cron expression pop-up form is used. In this form, you can enter the desired cron expression. See also the hint about the cron expression. If you enter an invalid cron expression, you will be notified immediately.

+
+
+
+

Remove Job

+

Click the Remove button to delete the job from both the database and the scheduler. The success or failure of this action will be displayed.

+
+
+

Start Job Manually

+

As an alternative to waiting for the job to run as scheduled, you can click this button to start the process directly. Afterward, the success or failure information will be displayed in a pop-up window.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pl/20-acerca-de.html b/libreplan-webapp/src/main/webapp/help/pl/20-acerca-de.html new file mode 100644 index 000000000..569e69e4d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/20-acerca-de.html @@ -0,0 +1,155 @@ + + + + + + +About + + + +
+

About

+ + + +
+

License

+

This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version.

+

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/>.

+
+
+

Written by

+
+

TASKPM Team

+ +
+
+

Previous Team Members

+ +
+
+

Translators

+ +
+
+

Contributors

+ +
+
+
+

Public Funding

+

This project currently accepts donations through the Open Collective organization <https://opencollective.com/TASKPM>.

+

Within the global scope that TASKPM is designed for regarding planning management, a project was developed to solve some common planning problems.

+

This project was partially financed by Xunta de Galicia, Ministerio de Industria, Turismo e Comercio, and by the European Union, Fondo Europeo de Desenvolvemento Rexional.

+
+images/logos.png +
+ +++ + + + +
scale:100
+

This project was part of Plan Avanza:

+
+images/avanza.png +
+ +++ + + + +
scale:100
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pl/21-communications.html b/libreplan-webapp/src/main/webapp/help/pl/21-communications.html new file mode 100644 index 000000000..e4f5ea081 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/21-communications.html @@ -0,0 +1,18 @@ + + + + + + +Subcontractor Work Description + + + +
+

Subcontractor Work Description

+ +

While it is possible to leave this field empty, doing so can lead to errors in communication functionality when multiple empty fields exist.

+

Therefore, we strongly recommend always using a unique work description.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pl/22-pert.html b/libreplan-webapp/src/main/webapp/help/pl/22-pert.html new file mode 100644 index 000000000..c27af3c56 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/22-pert.html @@ -0,0 +1,17 @@ + + + + + + +PERT Chart + + + +
+

PERT Chart

+ +

Unlike Libreplan, which was focused on the GANNT chart and did not have a PERT chart, TASKPM does have a PERT chart and is more focused on it.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pl/23-subnets.html b/libreplan-webapp/src/main/webapp/help/pl/23-subnets.html new file mode 100644 index 000000000..42cd9e634 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/23-subnets.html @@ -0,0 +1,17 @@ + + + + + + +Task Subnets + + + +
+

Task Subnets

+ +

Unlike Libreplan, which only had a single level of planning, the whole project, TASKPM has subnetworks of activities which can be embedded in a master project.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/advance-assignment.png b/libreplan-webapp/src/main/webapp/help/pl/images/advance-assignment.png new file mode 100644 index 000000000..aeb55b2b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/advance-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/asignacion-especifica.png b/libreplan-webapp/src/main/webapp/help/pl/images/asignacion-especifica.png new file mode 100644 index 000000000..9ee94d9c6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/asignacion-especifica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/asignacion-xenerica.png b/libreplan-webapp/src/main/webapp/help/pl/images/asignacion-xenerica.png new file mode 100644 index 000000000..d2a16597f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/asignacion-xenerica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/avance.png b/libreplan-webapp/src/main/webapp/help/pl/images/avance.png new file mode 100644 index 000000000..ee289e19c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/avanza.png b/libreplan-webapp/src/main/webapp/help/pl/images/avanza.png new file mode 100644 index 000000000..a51893f80 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/avanza.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/calendar-administration.png b/libreplan-webapp/src/main/webapp/help/pl/images/calendar-administration.png new file mode 100644 index 000000000..bb4e17032 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/calendar-administration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/calendar-create-derived.png b/libreplan-webapp/src/main/webapp/help/pl/images/calendar-create-derived.png new file mode 100644 index 000000000..9f01f2c33 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/calendar-create-derived.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/calendar-edition.png b/libreplan-webapp/src/main/webapp/help/pl/images/calendar-edition.png new file mode 100644 index 000000000..a98cc4454 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/calendar-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/calendar-exceptions.png b/libreplan-webapp/src/main/webapp/help/pl/images/calendar-exceptions.png new file mode 100644 index 000000000..c2a53a684 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/calendar-exceptions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/category-cost-edit.png b/libreplan-webapp/src/main/webapp/help/pl/images/category-cost-edit.png new file mode 100644 index 000000000..1755ee79e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/category-cost-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/category-cost-list.png b/libreplan-webapp/src/main/webapp/help/pl/images/category-cost-list.png new file mode 100644 index 000000000..1d7ff838c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/category-cost-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/company_view.png b/libreplan-webapp/src/main/webapp/help/pl/images/company_view.png new file mode 100644 index 000000000..c3a7631e6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/company_view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/contraste-avance.png b/libreplan-webapp/src/main/webapp/help/pl/images/contraste-avance.png new file mode 100644 index 000000000..831cceac3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/contraste-avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/default-calendar.png b/libreplan-webapp/src/main/webapp/help/pl/images/default-calendar.png new file mode 100644 index 000000000..6fd379d08 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/default-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/edicion-criterio.png b/libreplan-webapp/src/main/webapp/help/pl/images/edicion-criterio.png new file mode 100644 index 000000000..2b879ced5 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/edicion-criterio.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/hour-type-edit.png b/libreplan-webapp/src/main/webapp/help/pl/images/hour-type-edit.png new file mode 100644 index 000000000..4917b08a8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/hour-type-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/hour-type-list.png b/libreplan-webapp/src/main/webapp/help/pl/images/hour-type-list.png new file mode 100644 index 000000000..1872eb4f7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/hour-type-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/lista-criterios.png b/libreplan-webapp/src/main/webapp/help/pl/images/lista-criterios.png new file mode 100644 index 000000000..a2e7d03cb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/lista-criterios.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/logo.png b/libreplan-webapp/src/main/webapp/help/pl/images/logo.png new file mode 100644 index 000000000..4e7d02651 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/logo.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/logos.png b/libreplan-webapp/src/main/webapp/help/pl/images/logos.png new file mode 100644 index 000000000..7314a0759 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/logos.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/machine-calendar.png b/libreplan-webapp/src/main/webapp/help/pl/images/machine-calendar.png new file mode 100644 index 000000000..a725f67a2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/machine-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/machine-configuration.png b/libreplan-webapp/src/main/webapp/help/pl/images/machine-configuration.png new file mode 100644 index 000000000..0777473fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/machine-configuration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/machine-costcategory.png b/libreplan-webapp/src/main/webapp/help/pl/images/machine-costcategory.png new file mode 100644 index 000000000..b8414eac6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/machine-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/machine-criterions.png b/libreplan-webapp/src/main/webapp/help/pl/images/machine-criterions.png new file mode 100644 index 000000000..7c270bf35 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/machine-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/machine-data.png b/libreplan-webapp/src/main/webapp/help/pl/images/machine-data.png new file mode 100644 index 000000000..5edb47d12 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/machine-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/manage-user-profile.png b/libreplan-webapp/src/main/webapp/help/pl/images/manage-user-profile.png new file mode 100644 index 000000000..6a86064e2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/manage-user-profile.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/manage-user.png b/libreplan-webapp/src/main/webapp/help/pl/images/manage-user.png new file mode 100644 index 000000000..df59f1b7c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/manage-user.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/material.png b/libreplan-webapp/src/main/webapp/help/pl/images/material.png new file mode 100644 index 000000000..a77b5aa41 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/menu.png b/libreplan-webapp/src/main/webapp/help/pl/images/menu.png new file mode 100644 index 000000000..f4eec5250 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/menu.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/new-resource-calendar.png b/libreplan-webapp/src/main/webapp/help/pl/images/new-resource-calendar.png new file mode 100644 index 000000000..9040e0bc0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/new-resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/order-assigned-hours.png b/libreplan-webapp/src/main/webapp/help/pl/images/order-assigned-hours.png new file mode 100644 index 000000000..4fd629386 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/order-assigned-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/order-criterions.png b/libreplan-webapp/src/main/webapp/help/pl/images/order-criterions.png new file mode 100644 index 000000000..e59bd833f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/order-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/order-edition.png b/libreplan-webapp/src/main/webapp/help/pl/images/order-edition.png new file mode 100644 index 000000000..ff67134db Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/order-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/order-element-criterion.png b/libreplan-webapp/src/main/webapp/help/pl/images/order-element-criterion.png new file mode 100644 index 000000000..f167979b0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/order-element-criterion.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/order-element-edition.png b/libreplan-webapp/src/main/webapp/help/pl/images/order-element-edition.png new file mode 100644 index 000000000..66e5e8602 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/order-element-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/order-element-hours.png b/libreplan-webapp/src/main/webapp/help/pl/images/order-element-hours.png new file mode 100644 index 000000000..06cc1dc37 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/order-element-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/order-element-material-assign.png b/libreplan-webapp/src/main/webapp/help/pl/images/order-element-material-assign.png new file mode 100644 index 000000000..90f973766 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/order-element-material-assign.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/order-element-material-search.png b/libreplan-webapp/src/main/webapp/help/pl/images/order-element-material-search.png new file mode 100644 index 000000000..550f1d7fa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/order-element-material-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/order-element-quality.png b/libreplan-webapp/src/main/webapp/help/pl/images/order-element-quality.png new file mode 100644 index 000000000..3272ce70e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/order-element-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/order-element-tags.png b/libreplan-webapp/src/main/webapp/help/pl/images/order-element-tags.png new file mode 100644 index 000000000..e43a7d795 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/order-element-tags.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/order-elements-list.png b/libreplan-webapp/src/main/webapp/help/pl/images/order-elements-list.png new file mode 100644 index 000000000..271ac9bf6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/order-elements-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/order-labels.png b/libreplan-webapp/src/main/webapp/help/pl/images/order-labels.png new file mode 100644 index 000000000..076e0a745 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/order-labels.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/order-material.png b/libreplan-webapp/src/main/webapp/help/pl/images/order-material.png new file mode 100644 index 000000000..9197679e7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/order-material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/order-quality.png b/libreplan-webapp/src/main/webapp/help/pl/images/order-quality.png new file mode 100644 index 000000000..ee9e9027e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/order-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/order_list.png b/libreplan-webapp/src/main/webapp/help/pl/images/order_list.png new file mode 100644 index 000000000..72e70f3b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/order_list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/planning-view.png b/libreplan-webapp/src/main/webapp/help/pl/images/planning-view.png new file mode 100644 index 000000000..de74811eb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/planning-view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/quality.png b/libreplan-webapp/src/main/webapp/help/pl/images/quality.png new file mode 100644 index 000000000..1850f51b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/resource-assignment-generic.png b/libreplan-webapp/src/main/webapp/help/pl/images/resource-assignment-generic.png new file mode 100644 index 000000000..3519a5087 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/resource-assignment-generic.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/resource-assignment-planning.png b/libreplan-webapp/src/main/webapp/help/pl/images/resource-assignment-planning.png new file mode 100644 index 000000000..c4233780d Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/resource-assignment-planning.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/resource-assignment-search.png b/libreplan-webapp/src/main/webapp/help/pl/images/resource-assignment-search.png new file mode 100644 index 000000000..cae142d81 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/resource-assignment-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/resource-assignment-specific.png b/libreplan-webapp/src/main/webapp/help/pl/images/resource-assignment-specific.png new file mode 100644 index 000000000..8f7b1cba2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/resource-assignment-specific.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/resource-assignment.png b/libreplan-webapp/src/main/webapp/help/pl/images/resource-assignment.png new file mode 100644 index 000000000..427d25b79 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/resource-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/resource-calendar.png b/libreplan-webapp/src/main/webapp/help/pl/images/resource-calendar.png new file mode 100644 index 000000000..749c7b829 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/resource-load.png b/libreplan-webapp/src/main/webapp/help/pl/images/resource-load.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/resource-load.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/resources_global.png b/libreplan-webapp/src/main/webapp/help/pl/images/resources_global.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/resources_global.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/stretches.png b/libreplan-webapp/src/main/webapp/help/pl/images/stretches.png new file mode 100644 index 000000000..d661a63f6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/stretches.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/tag-types-edition.png b/libreplan-webapp/src/main/webapp/help/pl/images/tag-types-edition.png new file mode 100644 index 000000000..d366c09c2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/tag-types-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/tag-types-list.png b/libreplan-webapp/src/main/webapp/help/pl/images/tag-types-list.png new file mode 100644 index 000000000..e7de5048c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/tag-types-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/tipos-avances.png b/libreplan-webapp/src/main/webapp/help/pl/images/tipos-avances.png new file mode 100644 index 000000000..bb417f52c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/tipos-avances.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/virtual-resources.png b/libreplan-webapp/src/main/webapp/help/pl/images/virtual-resources.png new file mode 100644 index 000000000..3a54f95d3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/virtual-resources.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/work-report-hours.png b/libreplan-webapp/src/main/webapp/help/pl/images/work-report-hours.png new file mode 100644 index 000000000..568e9fed6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/work-report-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/work-report-type.png b/libreplan-webapp/src/main/webapp/help/pl/images/work-report-type.png new file mode 100644 index 000000000..2549d8b5e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/work-report-type.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/work-report-types.png b/libreplan-webapp/src/main/webapp/help/pl/images/work-report-types.png new file mode 100644 index 000000000..986f705aa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/work-report-types.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/worker-calendar.png b/libreplan-webapp/src/main/webapp/help/pl/images/worker-calendar.png new file mode 100644 index 000000000..1227969b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/worker-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/worker-costcategory.png b/libreplan-webapp/src/main/webapp/help/pl/images/worker-costcategory.png new file mode 100644 index 000000000..f330db68c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/worker-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/worker-criterions.png b/libreplan-webapp/src/main/webapp/help/pl/images/worker-criterions.png new file mode 100644 index 000000000..a131a29fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/worker-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/images/worker-personal-data.png b/libreplan-webapp/src/main/webapp/help/pl/images/worker-personal-data.png new file mode 100644 index 000000000..6a5033ba8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pl/images/worker-personal-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pl/index.html b/libreplan-webapp/src/main/webapp/help/pl/index.html new file mode 100644 index 000000000..7a9b74000 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/index.html @@ -0,0 +1,47 @@ + + + + + + +LibrePlan: User documentation + + + +
+

LibrePlan: User documentation

+ +images/logo.png +

Following document contains necessary help for using LibrePlan, the opensource web application for project planning.

+

This document is divided in three main sections:

+

First, global goals and behaviour.

+

Second, basic entities to understand the minimum concepts to use LibrePlan.

+

Finally, complete processes description to create orders, projects, project planning, resources assignment, advance assignment and result extraction.

+
    +
  1. Introduction
  2. +
  3. Criteria
  4. +
  5. Calendars
  6. +
  7. Progress
  8. +
  9. Resource Management
  10. +
  11. Orders and Order Elements
  12. +
  13. Task Planning
  14. +
  15. Resource Assignment
  16. +
  17. Work Reports
  18. +
  19. Labels
  20. +
  21. Materials Management
  22. +
  23. Quality Forms
  24. +
  25. User Management
  26. +
  27. Cost management
  28. +
  29. Reports
  30. +
  31. LDAP Configuration
  32. +
  33. Dashboards
  34. +
  35. Connectors
  36. +
  37. Scheduler
  38. +
  39. About
  40. +
  41. Subcontractor Work Description
  42. +
  43. PERT Chart
  44. +
  45. Task Subnets
  46. +
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pl/lsr.css b/libreplan-webapp/src/main/webapp/help/pl/lsr.css new file mode 100644 index 000000000..ced6c967a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pl/lsr.css @@ -0,0 +1,250 @@ +/* +Author: Peter Parente +Date: 2008/01/22 +Version: 1.0 +Copyright: This stylesheet has been placed in the public domain - free to edit and use for all uses. +*/ + +body { + font: 0.8em Verdana, Tahoma, sans-serif; + background: #ffffff; + color: black; + margin: 2em; +} + +p.topic-title { + font-weight: bold; +} + +table.docinfo { + text-align: left; + margin: 2em 0; +} + +a[href] { + color: #436976; + background-color: transparent; +} + +a.toc-backref { + text-decoration: none; +} + +h1 a[href] { + color: #003a6b; + text-decoration: none; + background-color: transparent; +} + +a.strong { + font-weight: bold; +} + +img { + margin: 0; + border: 0; +} + +p { + margin: 0.5em 0 1em 0; + line-height: 1.5em; +} + +p a:visited { + color: purple; + background-color: transparent; +} + +p a:active { + color: red; + background-color: transparent; +} + +a:hover { + text-decoration: none; +} + +p img { + border: 0; + margin: 0; +} + +p.rubric { + font-weight: bold; + font-style: italic; +} + +h1.title { + color: #003a6b; + font-size: 250%; + margin-bottom: 0; +} + +h2.subtitle { + color: #003a6b; + border-bottom: 0; +} + +h1, h2, h3, h4, h5, h6 { + color: #555; + background-color: transparent; + margin: 0; + padding-top: 0.5em; +} + +h1 { + font-size: 160%; + margin-bottom: 0.5em; + border-bottom: 2px solid #aaa; +} + +h2 { + font-size: 140%; + margin-bottom: 0.5em; + border-bottom: 1px solid #aaa; +} + +h3 { + font-size: 130%; + margin-bottom: 0.5em; +} + +h4 { + font-size: 110%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h5 { + font-size: 105%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h6 { + font-size: 100%; + font-weight: bold; + margin-bottom: 0.5em; +} + +dt { + font-style: italic; +} + +dd { + margin-bottom: 1.5em; +} + +div.admonition, div.note, div.tip, div.caution, div.important, div.warning { + margin: 2em 2em; + padding: 0 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +div.important { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +div.caution { + background: transparent url('../images/caution.png') 10px 2px no-repeat; +} + +div.note { + background: transparent url('../images/note.png') 10px 2px no-repeat; +} + +div.tip { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-example { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-critical-example { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +p.admonition-title { + font-weight: bold; + border-bottom: 1px solid #aaa; + padding-left: 30px; +} + +table.docutils { + text-align: left; + border: 1px solid gray; + border-collapse: collapse; + width: 100%; + margin: 1.5em 0; +} + +table.docutils caption { + font-style: italic; +} + +table.docutils td, table.docutils th { + padding: 0.25em 0.5em; +} + +table.docutils th { + background-color: #dddddd; +} + +div.sidebar { + width: 33%; + float: right; + margin: 0 2em; + padding: 0 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +p.sidebar-title { + margin-bottom: 0; + color: #003a6b; + border-bottom: 1px solid #aaa; + font-weight: bold; +} + +p.sidebar-subtitle { + margin-top: 0; + font-style: italic; + color: #003a6b; +} + +div.figure { + text-align: center; +} + +div.figure img { + background: #f8f8f8; + padding: 0.25em; + border: 1px solid #888; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +div.figure img:hover { + background: #e0e0e0; +} + +div.figure p.caption { + text-align: center; + margin-top: 0.1em; + font-style: italic; + color: #444; +} + +pre.literal-block { + padding: 0.15em; + background: #f8f8f8; + border: 1px solid #dfdfdf; + border-left: 0.25em solid #dfdfdf +} diff --git a/libreplan-webapp/src/main/webapp/help/pt/01-introducion.html b/libreplan-webapp/src/main/webapp/help/pt/01-introducion.html new file mode 100644 index 000000000..51e520ad7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/01-introducion.html @@ -0,0 +1,132 @@ + + + + + + +Introduction + + + +
+

Introduction

+ + +

This document describes the features of TASKPM and provides user information on how to configure and use the application.

+

TASKPM is an open-source web application for project planning. Its primary goal is to provide a comprehensive solution for company project management. For any specific information you may need about this software, please contact the development team at http://www.libreplan.com/contact/

+
+images/company_view.png +

Company Overview

+
+
+

Company Overview and View Management

+

As shown in the program's main screen (see the previous screenshot) and the company overview, users can view a list of planned projects. This allows them to understand the company's overall status regarding orders and resource utilization. The company overview offers three distinct views:

+
    +
  • Planning View: This view combines two perspectives:

    +
    +
      +
    • Order and Time Tracking: Each project is represented by a Gantt chart, indicating the project's start and end dates. This information is displayed alongside the agreed-upon deadline. A comparison is then made between the percentage of progress achieved and the actual time dedicated to each project. This provides a clear picture of the company's performance at any given time. This view is the program's default landing page.
    • +
    • Company Resource Utilization Graph: This graph displays information on resource allocation across projects, providing a summary of the entire company's resource usage. Green indicates that resource allocation is below 100% of capacity. The black line represents the total available resource capacity. Yellow indicates that resource allocation exceeds 100%. It's possible to have under-allocation overall while simultaneously experiencing over-allocation for specific resources.
    • +
    +
    +
  • +
  • Resource Load View: This screen displays a list of the company's workers and their specific task allocations, or generic allocations based on defined criteria. To access this view, click on Overall load of resources. See the following image for an example.

    +
  • +
  • Orders Administration View: This screen displays a list of company orders, allowing users to perform the following actions: filter, edit, delete, visualize planning, or create a new order. To access this view, click on Order list.

    +
  • +
+
+images/resources_global.png +

Resource Overview

+
+
+images/order_list.png +

Work Breakdown Structure

+
+

The view management described above for the company overview is very similar to the management available for a single project. A project can be accessed in several ways:

+
    +
  • Right-click on the Gantt chart for the order and select Plan.
  • +
  • Access the order list and click on the Gantt diagram icon.
  • +
  • Create a new order and change the current order view.
  • +
+

The program offers the following views for an order:

+
    +
  • Planning View: This view allows users to visualize task planning, dependencies, milestones, and more. See the Planning section for further details.
  • +
  • Resource Load View: This view allows users to check the designated resource load for a project. The color code is consistent with the company overview: green for a load less than 100%, yellow for a load equal to 100%, and red for a load over 100%. The load may originate from a specific task or a set of criteria (generic allocation).
  • +
  • Editing Order View: This view allows users to modify the details of the order. See the Orders section for more information.
  • +
  • Advanced Resource Allocation View: This view allows users to allocate resources with advanced options, such as specifying hours per day or the allocated functions to be performed. See the Resource allocation section for more information.
  • +
+
+
+

What Makes TASKPM Useful?

+

TASKPM is a general-purpose planning tool developed to address challenges in industrial project planning that were not adequately covered by existing tools. The development of TASKPM was also motivated by the desire to provide a free, open-source, and entirely web-based alternative to proprietary planning tools.

+

The core concepts underpinning the program are as follows:

+
    +
  • Company and Multi-Project Overview: TASKPM is specifically designed to provide users with information about multiple projects being carried out within a company. Therefore, it is inherently a multi-project program. The program's focus is not limited to individual projects, although specific views for individual projects are also available.
  • +
  • View Management: The company overview, or multi-project view, is accompanied by various views of the stored information. For example, the company overview allows users to view orders and compare their status, view the company's overall resource load, and manage orders. Users can also access the planning view, resource load view, advanced resource allocation view, and editing order view for individual projects.
  • +
  • Criteria: Criteria are a system entity that enables the classification of both resources (human and machine) and tasks. Resources must meet certain criteria, and tasks require specific criteria to be fulfilled. This is one of the program's most important features, as criteria form the basis of generic allocation and address a significant challenge in the industry: the time-consuming nature of human resource management and the difficulty of long-term company load estimations.
  • +
  • Resources: There are two types of resources: human and machine. Human resources are the company's workers, used for planning, monitoring, and controlling the company's workload. Machine resources, dependent on the people who operate them, function similarly to human resources.
  • +
  • Resource Allocation: A key feature of the program is the ability to designate resources in two ways: specifically and generically. Generic allocation is based on the criteria required to complete a task and must be fulfilled by resources capable of meeting those criteria. To understand generic allocation, consider this example: John Smith is a welder. Typically, John Smith would be specifically assigned to a planned task. However, TASKPM offers the option of selecting any welder within the company, without needing to specify that John Smith is the assigned person.
  • +
  • Company Load Control: The program allows for easy control of the company's resource load. This control extends to both the mid-term and long-term, as current and future projects can be managed within the program. TASKPM provides graphs that visually represent resource utilization.
  • +
  • Labels: Labels are used to categorize project tasks. With these labels, users can group tasks by concept, allowing for later review as a group or after filtering.
  • +
  • Filters: Because the system naturally includes elements that label or characterize tasks and resources, criteria filters or labels can be used. This is very useful for reviewing categorized information or generating specific reports based on criteria or labels.
  • +
  • Calendars: Calendars define the available productive hours for different resources. Users can create general company calendars or define more specific calendars, allowing for the creation of calendars for individual resources and tasks.
  • +
  • Orders and Order Elements: Work requested by clients is treated as an order within the application, structured into order elements. The order and its elements follow a hierarchical structure with x levels. This element tree forms the basis for work planning.
  • +
  • Progress: The program can manage various types of progress. A project's progress can be measured as a percentage, in units, against the agreed budget, and more. The responsibility for determining which type of progress to use for comparison at higher project levels lies with the planning manager.
  • +
  • Tasks: Tasks are the fundamental planning elements within the program. They are used to schedule work to be carried out. Key characteristics of tasks include: dependencies between tasks, and the potential requirement for specific criteria to be met before resources can be allocated.
  • +
  • Work Reports: These reports, submitted by the company's workers, detail the hours worked and the tasks associated with those hours. This information allows the system to calculate the actual time taken to complete a task compared to the budgeted time. Progress can then be compared against the actual hours used.
  • +
+

In addition to the core functions, TASKPM offers other features that distinguish it from similar programs:

+
    +
  • Integration with ERP: The program can directly import information from company ERP systems, including orders, human resources, work reports, and specific criteria.
  • +
  • Version Management: The program can manage multiple planning versions, while still allowing users to review the information from each version.
  • +
  • History Management: The program does not delete information; it only marks it as invalid. This allows users to review historical information using date filters.
  • +
+
+
+

Usability Conventions

+
+

Information About Forms

+

Before describing the various functions associated with the most important modules, we need to explain the general navigation and form behavior.

+

There are essentially three types of editing forms:

+
    +
  • Forms with a *Return* button: These forms are part of a larger context, and the changes made are stored in memory. The changes are only applied when the user explicitly saves all the details on the screen from which the form originated.
  • +
  • Forms with *Save* and *Close* buttons: These forms allow for two actions. The first saves the changes and closes the current window. The second closes the window without saving any changes.
  • +
  • Forms with *Save and continue*, *Save*, and *Close* buttons: These forms allow for three actions. The first saves the changes and keeps the current form open. The second saves the changes and closes the form. The third closes the window without saving any changes.
  • +
+
+
+

Standard Icons and Buttons

+
    +
  • Editing: In general, records in the program can be edited by clicking on an icon that looks like a pencil on a white notebook.
  • +
  • Left Indent: These operations are generally used for elements within a tree structure that need to be moved to a deeper level. This is done by clicking on the icon that looks like a green arrow pointing to the right.
  • +
  • Right Indent: These operations are generally used for elements within a tree structure that need to be moved to a higher level. This is done by clicking on the icon that looks like a green arrow pointing to the left.
  • +
  • Deleting: Users can delete information by clicking on the trash can icon.
  • +
  • Search: The magnifying glass icon indicates that the text field to its left is used for searching for elements.
  • +
+
+
+

Tabs

+

The program uses tabs to organize content editing and administration forms. This method is used to divide a comprehensive form into different sections, accessible by clicking on the tab names. The other tabs retain their current status. In all cases, the save and cancel options apply to all sub-forms within the different tabs.

+
+
+

Explicit Actions and Context Help

+

The program includes components that provide additional descriptions of elements when the mouse hovers over them for one second. The actions that the user can perform are indicated on the button labels, in the help texts associated with them, in the browsing menu options, and in the context menus that appear when right-clicking in the planner area. Furthermore, shortcuts are provided for the main operations, such as double-clicking on listed elements or using key events with the cursor and the Enter key to add elements when navigating through forms.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt/02-criterios.html b/libreplan-webapp/src/main/webapp/help/pt/02-criterios.html new file mode 100644 index 000000000..42fad10d3 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/02-criterios.html @@ -0,0 +1,69 @@ + + + + + + +Criteria + + + +
+

Criteria

+ +
+

Contents

+ +
+

Criteria are elements used within the program to categorize both resources and tasks. Tasks require specific criteria, and resources must meet those criteria.

+

Here's an example of how criteria are used: A resource is assigned the criterion "welder" (meaning the resource fulfills the "welder" category), and a task requires the "welder" criterion to be completed. Consequently, when resources are allocated to tasks using generic allocation (as opposed to specific allocation), workers with the "welder" criterion will be considered. For more information on the different types of allocation, refer to the chapter on resource allocation.

+

The program allows for several operations involving criteria:

+
    +
  • Criteria administration
  • +
  • Assigning criteria to resources
  • +
  • Assigning criteria to tasks
  • +
  • Filtering entities based on criteria. Tasks and order items can be filtered by criteria to perform various operations within the program.
  • +
+

This section will only explain the first function, criteria administration. The two types of allocation will be covered later: resource allocation in the "Resource Management" chapter, and filtering in the "Task Planning" chapter.

+
+

Criteria Administration

+

Criteria administration can be accessed through the administration menu:

+
+images/menu.png +

First-Level Menu Tabs

+
+

The specific operation for managing criteria is Manage criteria. This operation allows you to list the criteria available in the system.

+
+images/lista-criterios.png +

List of Criteria

+
+

You can access the create/edit criterion form by clicking the Create button. To edit an existing criterion, click the edit icon.

+
+images/edicion-criterio.png +

Editing Criteria

+
+

The criteria editing form, as shown in the previous image, allows you to perform the following operations:

+
    +
  • Edit the criterion's name.
  • +
  • Specify whether multiple values can be assigned simultaneously or only one value for the selected criterion type. For example, a resource could fulfill two criteria, "welder" and "lathe operator."
  • +
  • Specify the criterion type:
      +
    • Generic: A criterion that can be used for both machines and workers.
    • +
    • Worker: A criterion that can only be used for workers.
    • +
    • Machine: A criterion that can only be used for machines.
    • +
    +
  • +
  • Indicate whether the criterion is hierarchical. Sometimes, criteria need to be treated hierarchically. For example, assigning a criterion to an element does not automatically assign it to elements derived from it. A clear example of a hierarchical criterion is "location." For instance, a person designated with the location "Galicia" will also belong to "Spain."
  • +
  • Indicate whether the criterion is authorized. This is how users deactivate criteria. Once a criterion has been created and used in historical data, it cannot be changed. Instead, it can be deactivated to prevent it from appearing in selection lists.
  • +
  • Describe the criterion.
  • +
  • Add new values. A text entry field with the New criterion button is located in the second part of the form.
  • +
  • Edit the names of existing criteria values.
  • +
  • Move criteria values up or down in the list of current criteria values.
  • +
  • Remove a criterion value from the list.
  • +
+

The criteria administration form follows the form behavior described in the introduction, offering three actions: Save, Save and Close, and Close.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt/03-calendarios.html b/libreplan-webapp/src/main/webapp/help/pt/03-calendarios.html new file mode 100644 index 000000000..0d0bbf0d5 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/03-calendarios.html @@ -0,0 +1,187 @@ + + + + + + +Calendars + + + +
+

Calendars

+ + +

Calendars are entities within the program that define the working capacity of resources. A calendar consists of a series of days throughout the year, with each day divided into available working hours.

+

For example, a public holiday might have 0 available working hours. Conversely, a typical workday might have 8 hours designated as available working time.

+

There are two primary ways to define the number of working hours in a day:

+
    +
  • By Weekday: This method sets a standard number of working hours for each day of the week. For example, Mondays might typically have 8 working hours.
  • +
  • By Exception: This method allows for specific deviations from the standard weekday schedule. For example, Monday, January 30th, might have 10 working hours, overriding the standard Monday schedule.
  • +
+
+

Calendar Administration

+

The calendar system is hierarchical, allowing you to create base calendars and then derive new calendars from them, forming a tree structure. A calendar derived from a higher-level calendar will inherit its daily schedules and exceptions unless explicitly modified. To effectively manage calendars, it's important to understand the following concepts:

+
    +
  • Day Independence: Each day is treated independently, and each year has its own set of days. For example, if December 8th, 2009, is a public holiday, this does not automatically mean that December 8th, 2010, is also a public holiday.
  • +
  • Weekday-Based Working Days: Standard working days are based on weekdays. For example, if Mondays typically have 8 working hours, then all Mondays in all weeks of all years will have 8 available hours unless an exception is defined.
  • +
  • Exceptions and Exception Periods: You can define exceptions or exception periods to deviate from the standard weekday schedule. For example, you can specify a single day or a range of days with a different number of available working hours than the general rule for those weekdays.
  • +
+
+images/calendar-administration.png +

Calendar Administration

+
+

Calendar administration is accessible through the "Administration" menu. From there, users can perform the following actions:

+
    +
  1. Create a new calendar from scratch.
  2. +
  3. Create a calendar derived from an existing one.
  4. +
  5. Create a calendar as a copy of an existing one.
  6. +
  7. Edit an existing calendar.
  8. +
+
+

Creating a New Calendar

+

To create a new calendar, click the "Create" button. The system will display a form where you can configure the following:

+
    +
  • Select the Tab: Choose the tab you want to work on:
      +
    • Marking Exceptions: Define exceptions to the standard schedule.
    • +
    • Working Hours per Day: Define the standard working hours for each weekday.
    • +
    +
  • +
  • Marking Exceptions: If you select the "Marking Exceptions" option, you can:
      +
    • Select a specific day on the calendar.
    • +
    • Select the type of exception. The available types are: holiday, illness, strike, public holiday, and working holiday.
    • +
    • Select the end date of the exception period. (This field does not need to be changed for single-day exceptions.)
    • +
    • Define the number of working hours during the days of the exception period.
    • +
    • Delete previously defined exceptions.
    • +
    +
  • +
  • Working Hours per Day: If you select the "Working Hours per Day" option, you can:
      +
    • Define the available working hours for each weekday (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, and Sunday).
    • +
    • Define different weekly hour distributions for future periods.
    • +
    • Delete previously defined hour distributions.
    • +
    +
  • +
+

These options allow users to fully customize calendars according to their specific needs. Click the "Save" button to store any changes made to the form.

+
+images/calendar-edition.png +

Editing Calendars

+
+
+images/calendar-exceptions.png +

Adding an Exception to a Calendar

+
+
+
+

Creating Derived Calendars

+

A derived calendar is created based on an existing calendar. It inherits all the features of the original calendar, but you can modify it to include different options.

+

A common use case for derived calendars is when you have a general calendar for a country, such as Spain, and you need to create a derived calendar to include additional public holidays specific to a region, such as Galicia.

+

It's important to note that any changes made to the original calendar will automatically propagate to the derived calendar, unless a specific exception has been defined in the derived calendar. For example, the calendar for Spain might have an 8-hour working day on May 17th. However, the calendar for Galicia (a derived calendar) might have no working hours on that same day because it's a regional public holiday. If the Spanish calendar is later changed to have 4 available working hours per day for the week of May 17th, the Galician calendar will also change to have 4 available working hours for every day in that week, except for May 17th, which will remain a non-working day due to the defined exception.

+
+images/calendar-create-derived.png +

Creating a Derived Calendar

+
+

To create a derived calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Calendar administration option.
  • +
  • Select the calendar you want to use as the basis for the derived calendar and click the "Create" button.
  • +
  • The system will display an editing form with the same characteristics as the form used to create a calendar from scratch, except that the proposed exceptions and the working hours per weekday will be based on the original calendar.
  • +
+
+
+

Creating a Calendar by Copying

+

A copied calendar is an exact duplicate of an existing calendar. It inherits all the features of the original calendar, but you can modify it independently.

+

The key difference between a copied calendar and a derived calendar is how they are affected by changes to the original. If the original calendar is modified, the copied calendar remains unchanged. However, derived calendars are affected by changes made to the original, unless an exception is defined.

+

A common use case for copied calendars is when you have a calendar for one location, such as "Pontevedra," and you need a similar calendar for another location, such as "A Coruña," where most of the features are the same. However, changes to one calendar should not affect the other.

+

To create a copied calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Calendar administration option.
  • +
  • Select the calendar you want to copy and click the "Create" button.
  • +
  • The system will display an editing form with the same characteristics as the form used to create a calendar from scratch, except that the proposed exceptions and the working hours per weekday will be based on the original calendar.
  • +
+
+
+

Default Calendar

+

One of the existing calendars can be designated as the default calendar. This calendar will be automatically assigned to any entity in the system that is managed with calendars unless a different calendar is specified.

+

To set up a default calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Configuration option.
  • +
  • In the Default calendar field, select the calendar you want to use as the program's default calendar.
  • +
  • Click Save.
  • +
+
+images/default-calendar.png +

Setting a Default Calendar

+
+
+
+

Assigning a Calendar to Resources

+

Resources can only be activated (i.e., have available working hours) if they have an assigned calendar with a valid activation period. If no calendar is assigned to a resource, the default calendar is assigned automatically, with an activation period that begins on the start date and has no expiry date.

+
+images/resource-calendar.png +

Resource Calendar

+
+

However, you can delete the calendar that has been previously assigned to a resource and create a new calendar based on an existing one. This allows for complete customization of calendars for individual resources.

+

To assign a calendar to a resource:

+
    +
  • Go to the Edit resources option.
  • +
  • Select a resource and click Edit.
  • +
  • Select the "Calendar" tab.
  • +
  • The calendar, along with its exceptions, working hours per day, and activation periods, will be displayed.
  • +
  • Each tab will have the following options:
      +
    • Exceptions: Define exceptions and the period to which they apply, such as holidays, public holidays, or different workdays.
    • +
    • Working Week: Modify the working hours for each weekday (Monday, Tuesday, etc.).
    • +
    • Activation Periods: Create new activation periods to reflect the start and end dates of contracts associated with the resource. See the following image.
    • +
    +
  • +
  • Click Save to store the information.
  • +
  • Click Delete if you want to change the calendar assigned to a resource.
  • +
+
+images/new-resource-calendar.png +

Assigning a New Calendar to a Resource

+
+
+
+

Assigning Calendars to Orders

+

Projects can have a different calendar than the default calendar. To change the calendar for an order:

+
    +
  • Access the order list in the company overview.
  • +
  • Edit the order in question.
  • +
  • Access the "General information" tab.
  • +
  • Select the calendar to be assigned from the drop-down menu.
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+

Assigning Calendars to Tasks

+

Similar to resources and orders, you can assign specific calendars to individual tasks. This allows you to define different calendars for specific stages of a project. To assign a calendar to a task:

+
    +
  • Access the planning view of a project.
  • +
  • Right-click the task to which you want to assign a calendar.
  • +
  • Select the "Assign calendar" option.
  • +
  • Select the calendar to be assigned to the task.
  • +
  • Click Accept.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt/04-avances.html b/libreplan-webapp/src/main/webapp/help/pt/04-avances.html new file mode 100644 index 000000000..615d6109f --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/04-avances.html @@ -0,0 +1,97 @@ + + + + + + +Progress + + + +
+

Progress

+ + +

Project progress indicates the degree to which the estimated completion time of the project is being met. Task progress indicates the degree to which the task is being completed according to its estimated completion.

+

Generally, progress cannot be measured automatically. A staff member with experience or a checklist must determine the degree of completion for a task or project.

+

It's important to note the distinction between the hours assigned to a task or project and the progress of that task or project. While the number of hours used may be more or less than expected, the project may be ahead of or behind its estimated completion on the monitored day. Several situations can arise from these two measurements:

+
    +
  • Fewer hours consumed than expected, but the project is behind schedule: Progress is lower than estimated for the monitored day.
  • +
  • Fewer hours consumed than expected, and the project is ahead of schedule: Progress is higher than estimated for the monitored day.
  • +
  • More hours consumed than expected, and the project is behind schedule: Progress is lower than estimated for the monitored day.
  • +
  • More hours consumed than expected, but the project is ahead of schedule: Progress is higher than estimated for the monitored day.
  • +
+

The planning view allows you to compare these situations by using information about the progress made and the hours used. This chapter will explain how to enter information to monitor progress.

+

The philosophy behind progress monitoring is based on users defining the level at which they want to monitor their projects. For example, if users want to monitor orders, they only need to enter information for level-1 elements. If they want more precise monitoring at the task level, they must enter progress information at lower levels. The system will then aggregate the data upward through the hierarchy.

+
+

Managing Progress Types

+

Companies have varying needs when monitoring project progress, particularly the tasks involved. Therefore, the system includes "progress types." Users can define different progress types to measure a task's progress. For example, a task can be measured as a percentage, but this percentage can also be translated into progress in Tonnes based on the agreement with the client.

+

A progress type has a name, a maximum value, and a precision value:

+
    +
  • Name: A descriptive name that users will recognize when selecting the progress type. This name should clearly indicate what kind of progress is being measured.
  • +
  • Maximum Value: The maximum value that can be established for a task or project as the total progress measurement. For example, if you're working with Tonnes and the normal maximum is 4000 tonnes, and no task will ever require more than 4000 tonnes of any material, then 4000 would be the maximum value.
  • +
  • Precision Value: The increment value allowed for the progress type. For example, if progress in Tonnes is to be measured in whole numbers, the precision value would be 1. From that point on, only whole numbers can be entered as progress measurements (e.g., 1, 2, 300).
  • +
+

The system has two default progress types:

+
    +
  • Percentage: A general progress type that measures the progress of a project or task based on an estimated completion percentage. For example, a task is 30% complete out of the 100% estimated for a specific day.
  • +
  • Units: A general progress type that measures progress in units without specifying the type of unit. For example, a task involves creating 3000 units, and the progress is 500 units out of the total of 3000.
  • +
+
+images/tipos-avances.png +

Administration of Progress Types

+
+

Users can create new progress types as follows:

+
    +
  • Go to the "Administration" section.
  • +
  • Click the "Manage types of progress" option in the second-level menu.
  • +
  • The system will display a list of existing progress types.
  • +
  • For each progress type, users can:
      +
    • Edit
    • +
    • Delete
    • +
    +
  • +
  • Users can then create a new progress type.
  • +
  • When editing or creating a progress type, the system displays a form with the following information:
      +
    • Name of the progress type.
    • +
    • Maximum value allowed for the progress type.
    • +
    • Precision value for the progress type.
    • +
    +
  • +
+
+
+

Entering Progress Based on Type

+

Progress is entered for order elements, but it can also be entered using a shortcut from the planning tasks. Users are responsible for deciding which progress type to associate with each order element.

+

Users can enter a single, default progress type for the entire order.

+

Before measuring progress, users must associate the chosen progress type with the order. For example, they might choose percentage progress to measure progress on the entire task or an agreed progress rate if progress measurements agreed upon with the client will be entered in the future.

+
+images/avance.png +

Progress Entry Screen with Graphic Visualization

+
+

To enter progress measurements:

+
    +
  • Select the progress type to which the progress will be added. +* If no progress type exists, a new one must be created.
  • +
  • In the form that appears under the "Value" and "Date" fields, enter the absolute value of the measurement and the date of the measurement.
  • +
  • The system automatically stores the entered data.
  • +
+
+
+

Comparing Progress for an Order Element

+

Users can graphically compare the progress made on orders with the measurements taken. All progress types have a column with a check button ("Show"). When this button is selected, the progress chart of measurements taken is displayed for the order element.

+
+images/contraste-avance.png +

Comparison of Several Progress Types

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt/05-recursos.html b/libreplan-webapp/src/main/webapp/help/pt/05-recursos.html new file mode 100644 index 000000000..07190538a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/05-recursos.html @@ -0,0 +1,186 @@ + + + + + + +Resource Management + + + +
+

Resource Management

+ + +

The program manages two distinct types of resources: staff and machines.

+
+

Staff Resources

+

Staff resources represent the company's workers. Their key characteristics are:

+
    +
  • They fulfill one or more generic or worker-specific criteria.
  • +
  • They can be specifically assigned to a task.
  • +
  • They can be assigned generically to a task that requires a resource criterion.
  • +
  • They can have a default or a specific calendar, as needed.
  • +
+
+
+

Machine Resources

+

Machine resources represent the company's machinery. Their key characteristics are:

+
    +
  • They fulfill one or more generic or machine-specific criteria.
  • +
  • They can be specifically assigned to a task.
  • +
  • They can be assigned generically to a task that requires a machine criterion.
  • +
  • They can have a default or a specific calendar, as needed.
  • +
  • The program includes a configuration screen where an alpha value can be defined to represent the machine/worker ratio.
      +
    • The alpha value indicates the amount of worker time required to operate the machine. For example, an alpha value of 0.5 means that every 8 hours of machine operation requires 4 hours of a worker's time.
    • +
    • Users can assign an alpha value specifically to a worker, designating that worker to operate the machine for that percentage of time.
    • +
    • Users can also make a generic assignment based on a criterion, so that a percentage of use is assigned to all resources that meet that criterion and have available time. Generic assignment works similarly to generic assignment for tasks, as described previously.
    • +
    +
  • +
+
+
+

Managing Resources

+

Users can create, edit, and deactivate (but not permanently delete) workers and machines within the company by navigating to the "Resources" section. This section provides the following features:

+
    +
  • List of Workers: Displays a numbered list of workers, allowing users to manage their details.
  • +
  • List of Machines: Displays a numbered list of machines, allowing users to manage their details.
  • +
+
+

Managing Workers

+

Worker management is accessed by going to the "Resources" section and then selecting "List of workers." Users can edit any worker in the list by clicking the standard edit icon.

+

When editing a worker, users can access the following tabs:

+
    +
  1. Worker Details: This tab allows users to edit the worker's basic identification details:

    +
      +
    • Name
    • +
    • Surname(s)
    • +
    • National ID document (DNI)
    • +
    • Queue-based resource (see section on Queue-based Resources)
    • +
    +
    +images/worker-personal-data.png +

    Editing Workers' Personal Details

    +
    +
  2. +
  3. Criteria: This tab is used to configure the criteria that a worker fulfills. Users can assign any worker or generic criteria they deem appropriate. It's crucial for workers to fulfill criteria to maximize the program's functionality. To assign criteria:

    +
      +
    1. Click the "Add criteria" button.
    2. +
    3. Search for the criterion to be added and select the most appropriate one.
    4. +
    5. Click the "Add" button.
    6. +
    7. Select the start date when the criterion becomes applicable.
    8. +
    9. Select the end date for applying the criterion to the resource. This date is optional if the criterion is considered indefinite.
    10. +
    +
    +images/worker-criterions.png +

    Associating Criteria with Workers

    +
    +
  4. +
  5. Calendar: This tab allows users to configure a specific calendar for the worker. All workers have a default calendar assigned; however, it's possible to assign a specific calendar to each worker based on an existing calendar.

    +
    +images/worker-calendar.png +

    Calendar Tab for a Resource

    +
    +
  6. +
  7. Cost Category: This tab allows users to configure the cost category that a worker fulfills during a given period. This information is used to calculate the costs associated with a worker on a project.

    +
    +images/worker-costcategory.png +

    Cost Category Tab for a Resource

    +
    +
  8. +
+

Resource assignment is explained in the "Resource Assignment" section.

+
+
+

Managing Machines

+

Machines are treated as resources for all purposes. Therefore, similar to workers, machines can be managed and assigned to tasks. Resource assignment is covered in the "Resource Assignment" section, which will explain the specific features of machines.

+

Machines are managed from the "Resources" menu entry. This section has an operation called "Machine list," which displays the company's machines. Users can edit or delete a machine from this list.

+

When editing machines, the system displays a series of tabs for managing different details:

+
    +
  1. Machine Details: This tab allows users to edit the machine's identification details:

    +
      +
    1. Name
    2. +
    3. Machine code
    4. +
    5. Description of the machine
    6. +
    +
    +images/machine-data.png +

    Editing Machine Details

    +
    +
  2. +
  3. Criteria: As with worker resources, this tab is used to add criteria that the machine fulfills. Two types of criteria can be assigned to machines: machine-specific or generic. Worker criteria cannot be assigned to machines. To assign criteria:

    +
      +
    1. Click the "Add criteria" button.
    2. +
    3. Search for the criterion to be added and select the most appropriate one.
    4. +
    5. Select the start date when the criterion becomes applicable.
    6. +
    7. Select the end date for applying the criterion to the resource. This date is optional if the criterion is considered indefinite.
    8. +
    9. Click the "Save and continue" button.
    10. +
    +
    +images/machine-criterions.png +

    Assigning Criteria to Machines

    +
    +
  4. +
  5. Calendar: This tab allows users to configure a specific calendar for the machine. All machines have a default calendar assigned; however, it's possible to assign a specific calendar to each machine based on an existing calendar.

    +
    +images/machine-calendar.png +

    Assigning Calendars to Machines

    +
    +
  6. +
  7. Machine Configuration: This tab allows users to configure the ratio of machines to worker resources. A machine has an alpha value that indicates the machine/worker ratio. As mentioned previously, an alpha value of 0.5 indicates that 0.5 people are required for each full day of machine operation. Based on the alpha value, the system automatically assigns workers who are associated with the machine once the machine is assigned to a task. Associating a worker with a machine can be done in two ways:

    +
      +
    1. Specific Assignment: Assign a range of dates during which the worker is assigned to the machine. This is a specific assignment, as the system automatically assigns hours to the worker when the machine is scheduled.
    2. +
    3. Generic Assignment: Assign criteria that must be fulfilled by workers assigned to the machine. This creates a generic assignment of workers who meet the criteria.
    4. +
    +
    +images/machine-configuration.png +

    Configuration of Machines

    +
    +
  8. +
  9. Cost Category: This tab allows users to configure the cost category that a machine fulfills during a given period. This information is used to calculate the costs associated with a machine on a project.

    +
    +images/machine-costcategory.png +

    Assigning Cost Categories to Machines

    +
    +
  10. +
+
+
+

Virtual Worker Groups

+

The program allows users to create virtual worker groups, which are not real workers but simulated staff. These groups enable users to model increased production capacity at specific times, based on the calendar settings.

+

Virtual worker groups allow users to assess how project planning would be affected by hiring and assigning staff who meet specific criteria, thus aiding in the decision-making process.

+

The tabs for creating virtual worker groups are the same as those for configuring workers:

+
    +
  • General Details
  • +
  • Assigned Criteria
  • +
  • Calendars
  • +
  • Associated Hours
  • +
+

The difference between virtual worker groups and actual workers is that virtual worker groups have a name for the group and a quantity, which represents the number of real people in the group. There is also a field for comments, where additional information can be provided, such as which project would require hiring equivalent to the virtual worker group.

+
+images/virtual-resources.png +

Virtual Resources

+
+
+
+

Queue-based Resources

+

Queue-based resources are a specific type of productive element that can either be unassigned or have 100% dedication. In other words, they cannot have more than one task scheduled at the same time, nor can they be over-allocated.

+

For each queue-based resource, a queue is automatically created. The tasks scheduled for these resources can be managed specifically using the provided assignment methods, creating automatic assignments between tasks and queues that match the required criteria, or by moving tasks between queues.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt/06-pedidos.html b/libreplan-webapp/src/main/webapp/help/pt/06-pedidos.html new file mode 100644 index 000000000..87fd79071 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/06-pedidos.html @@ -0,0 +1,315 @@ + + + + + + +Orders and Order Elements + + + +
+

Orders and Order Elements

+ + +

Orders represent the work to be performed by users of the program. Each order corresponds to a project that the company will offer to its clients.

+

An order consists of one or more order elements. Each order element represents a specific part of the work to be done and defines how the work on the order should be planned and executed. Order elements are organized hierarchically, with no limitations on the depth of the hierarchy. This hierarchical structure allows for the inheritance of certain features, such as labels.

+

The following sections describe the operations that users can perform with orders and order elements.

+
+

Orders

+

An order represents a project or work requested by a client from the company. The order identifies the project within the company's planning. Unlike comprehensive management programs, TASKPM only requires certain key details for an order. These details are:

+
    +
  • Order Name: The name of the order.
  • +
  • Order Code: A unique code for the order.
  • +
  • Total Order Amount: The total financial value of the order.
  • +
  • Estimated Start Date: The planned start date for the order.
  • +
  • End Date: The planned completion date for the order.
  • +
  • Person in Charge: The individual responsible for the order.
  • +
  • Description: A description of the order.
  • +
  • Assigned Calendar: The calendar associated with the order.
  • +
  • Automatic Generation of Codes: A setting to instruct the system to automatically generate codes for order elements and hour groups.
  • +
  • Preference between Dependencies and Restrictions: Users can choose whether dependencies or restrictions take priority in case of conflicts.
  • +
+

However, a complete order also includes other associated entities:

+
    +
  • Hours Assigned to the Order: The total hours allocated to the order.
  • +
  • Progress Attributed to the Order: The progress made on the order.
  • +
  • Labels: Labels assigned to the order.
  • +
  • Criteria Assigned to the Order: Criteria associated with the order.
  • +
  • Materials: Materials required for the order.
  • +
  • Quality Forms: Quality forms associated with the order.
  • +
+

Creating or editing an order can be done from several locations within the program:

+
    +
  • From the "Order List" in the Company Overview:
      +
    • Editing: Click the edit button on the desired order.
    • +
    • Creating: Click "New order."
    • +
    +
  • +
  • From an Order in the Gantt Chart: Change to the order details view.
  • +
+

Users can access the following tabs when editing an order:

+
    +
  • Editing Order Details: This screen allows users to edit basic order details:

    +
      +
    • Name
    • +
    • Code
    • +
    • Estimated Start Date
    • +
    • End Date
    • +
    • Person in Charge
    • +
    • Client
    • +
    • Description
    • +
    +
    +images/order-edition.png +

    Editing Orders

    +
    +
  • +
  • Order Element List: This screen allows users to perform several operations on order elements:

    +
      +
    • Creating new order elements.
    • +
    • Promoting an order element one level up in the hierarchy.
    • +
    • Demoting an order element one level down in the hierarchy.
    • +
    • Indenting an order element (moving it down the hierarchy).
    • +
    • Unindenting an order element (moving it up the hierarchy).
    • +
    • Filtering order elements.
    • +
    • Deleting order elements.
    • +
    • Moving an element within the hierarchy by dragging and dropping.
    • +
    +
    +images/order-elements-list.png +

    Order Element List

    +
    +
  • +
  • Assigned Hours: This screen displays the total hours attributed to the project, grouping the hours entered in the order elements.

    +
    +images/order-assigned-hours.png +

    Assigning Hours Attributed to the Order by Workers

    +
    +
  • +
  • Progress: This screen allows users to assign progress types and enter progress measurements for the order. See the "Progress" section for more details.

    +
  • +
  • Labels: This screen allows users to assign labels to an order and view previously assigned direct and indirect labels. See the following section on editing order elements for a detailed description of label management.

    +
    +images/order-labels.png +

    Order Labels

    +
    +
  • +
  • Criteria: This screen allows users to assign criteria that will apply to all tasks within the order. These criteria will be automatically applied to all order elements, except those that have been explicitly invalidated. The hour groups of order elements, which are grouped by criteria, can also be viewed, allowing users to identify the criteria required for an order.

    +
    +images/order-criterions.png +

    Order Criteria

    +
    +
  • +
  • Materials: This screen allows users to assign materials to orders. Materials can be selected from the available material categories in the program. Materials are managed as follows:

    +
      +
    • Select the "Search materials" tab at the bottom of the screen.
    • +
    • Enter text to search for materials or select the categories for which you want to find materials.
    • +
    • The system filters the results.
    • +
    • Select the desired materials (multiple materials can be selected by pressing the "Ctrl" key).
    • +
    • Click "Assign."
    • +
    • The system displays the list of materials already assigned to the order.
    • +
    • Select the units and the status to assign to the order.
    • +
    • Click "Save" or "Save and continue."
    • +
    • To manage the receipt of materials, click "Divide" to change the status of a partial quantity of material.
    • +
    +
    +images/order-material.png +

    Materials Associated with an Order

    +
    +
  • +
  • Quality: Users can assign a quality form to the order. This form is then completed to ensure that certain activities associated with the order are carried out. See the following section on editing order elements for details on managing quality forms.

    +
    +images/order-quality.png +

    Quality Form Associated with the Order

    +
    +
  • +
+
+
+

Editing Order Elements

+

Order elements are edited from the "Order element list" tab by clicking the edit icon. This opens a new screen where users can:

+
    +
  • Edit information about the order element.
  • +
  • View hours attributed to order elements.
  • +
  • Manage progress of order elements.
  • +
  • Manage order labels.
  • +
  • Manage criteria required by the order element.
  • +
  • Manage materials.
  • +
  • Manage quality forms.
  • +
+

The following subsections describe each of these operations in detail.

+
+

Editing Information about the Order Element

+

Editing information about the order element includes modifying the following details:

+
    +
  • Order Element Name: The name of the order element.
  • +
  • Order Element Code: A unique code for the order element.
  • +
  • Start Date: The planned start date of the order element.
  • +
  • Estimated End Date: The planned completion date of the order element.
  • +
  • Total Hours: The total hours allocated to the order element. These hours can be calculated from the added hour groups or entered directly. If entered directly, the hours must be distributed among the hour groups, and a new hour group created if the percentages do not match the initial percentages.
  • +
  • Hour Groups: One or more hour groups can be added to the order element. The purpose of these hour groups is to define the requirements for the resources that will be assigned to perform the work.
  • +
  • Criteria: Criteria can be added that must be met to enable generic assignment for the order element.
  • +
+
+images/order-element-edition.png +

Editing Order Elements

+
+
+
+

Viewing Hours Attributed to Order Elements

+

The "Assigned hours" tab allows users to view the work reports associated with an order element and see how many of the estimated hours have already been completed.

+
+images/order-element-hours.png +

Hours Assigned to Order Elements

+
+

The screen is divided into two parts:

+
    +
  • Work Report List: Users can view the list of work reports associated with the order element, including the date and time, resource, and number of hours devoted to the task.
  • +
  • Use of Estimated Hours: The system calculates the total number of hours devoted to the task and compares them with the estimated hours.
  • +
+
+
+

Managing Progress of Order Elements

+

Entering progress types and managing order element progress is described in the "Progress" chapter.

+
+
+

Managing Order Labels

+

Labels, as described in the chapter on labels, allow users to categorize order elements. This enables users to group planning or order information based on these labels.

+

Users can assign labels directly to an order element or to a higher-level order element in the hierarchy. Once a label is assigned using either method, the order element and the related planning task are associated with the label and can be used for subsequent filtering.

+
+images/order-element-tags.png +

Assigning Labels for Order Elements

+
+

As shown in the image, users can perform the following actions from the Labels tab:

+
    +
  • View Inherited Labels: View labels associated with the order element that were inherited from a higher-level order element. The planning task associated with each order element has the same associated labels.
  • +
  • View Directly Assigned Labels: View labels directly associated with the order element using the assignment form for lower-level labels.
  • +
  • Assign Existing Labels: Assign labels by searching for them among the available labels in the form below the direct label list. To search for a label, click the magnifying glass icon or enter the first letters of the label in the text box to display the available options.
  • +
  • Create and Assign New Labels: Create new labels associated with an existing label type from this form. To do this, select a label type and enter the label value for the selected type. The system automatically creates the label and assigns it to the order element when "Create and assign" is clicked.
  • +
+
+
+

Managing Criteria Required by the Order Element and Hour Groups

+

Both an order and an order element can have criteria assigned that must be met for the work to be performed. Criteria can be direct or indirect:

+
    +
  • Direct Criteria: These are assigned directly to the order element. They are criteria required by the hour groups on the order element.
  • +
  • Indirect Criteria: These are assigned to higher-level order elements in the hierarchy and are inherited by the element being edited.
  • +
+

In addition to the required criteria, one or more hour groups that are part of the order element can be defined. This depends on whether the order element contains other order elements as child nodes or if it is a leaf node. In the first case, information about hours and hour groups can only be viewed. However, leaf nodes can be edited. Leaf nodes work as follows:

+
    +
  • The system creates a default hour group associated with the order element. The details that can be modified for an hour group are:
      +
    • Code: The code for the hour group (if not automatically generated).
    • +
    • Criterion Type: Users can choose to assign a machine or worker criterion.
    • +
    • Number of Hours: The number of hours in the hour group.
    • +
    • List of Criteria: The criteria to be applied to the hour group. To add new criteria, click "Add criterion" and select one from the search engine that appears after clicking the button.
    • +
    +
  • +
  • Users can add new hour groups with different features than previous hour groups. For example, an order element might require a welder (30 hours) and a painter (40 hours).
  • +
+
+images/order-element-criterion.png +

Assigning Criteria to Order Elements

+
+
+
+

Managing Materials

+

Materials are managed in projects as a list associated with each order element or an order in general. The list of materials includes the following fields:

+
    +
  • Code: The material code.
  • +
  • Date: The date associated with the material.
  • +
  • Units: The required number of units.
  • +
  • Unit Type: The type of unit used to measure the material.
  • +
  • Unit Price: The price per unit.
  • +
  • Total Price: The total price (calculated by multiplying the unit price by the number of units).
  • +
  • Category: The category to which the material belongs.
  • +
  • Status: The status of the material (e.g., Received, Requested, Pending, Processing, Cancelled).
  • +
+

Working with materials is done as follows:

+
    +
  • Select the "Materials" tab on an order element.
  • +
  • The system displays two sub-tabs: "Materials" and "Search materials."
  • +
  • If the order element has no assigned materials, the first tab will be empty.
  • +
  • Click "Search materials" in the lower-left part of the window.
  • +
  • The system displays the list of available categories and associated materials.
  • +
+
+images/order-element-material-search.png +

Searching for Materials

+
+
    +
  • Select categories to refine the material search.
  • +
  • The system displays the materials that belong to the selected categories.
  • +
  • From the materials list, select the materials to assign to the order element.
  • +
  • Click "Assign."
  • +
  • The system displays the selected list of materials on the "Materials" tab with new fields to complete.
  • +
+
+images/order-element-material-assign.png +

Assigning Materials to Order Elements

+
+
    +
  • Select the units, status, and date for the assigned materials.
  • +
+

For subsequent monitoring of materials, it's possible to change the status of a group of units of the received material. This is done as follows:

+
    +
  • Click the "Divide" button on the list of materials to the right of each row.
  • +
  • Select the number of units to divide the row into.
  • +
  • The program displays two rows with the material divided.
  • +
  • Change the status of the row containing the material.
  • +
+

The advantage of using this dividing tool is the ability to receive partial deliveries of material without having to wait for the entire delivery to mark it as received.

+
+
+

Managing Quality Forms

+

Some order elements require certification that certain tasks have been completed before they can be marked as complete. This is why the program has quality forms, which consist of a list of questions that are considered important if answered positively.

+

It's important to note that a quality form must be created beforehand to be assigned to an order element.

+

To manage quality forms:

+
    +
  • Go to the "Quality forms" tab.

    +
    +images/order-element-quality.png +

    Assigning Quality Forms to Order Elements

    +
    +
  • +
  • The program has a search engine for quality forms. There are two types of quality forms: by element or by percentage.

    +
      +
    • Element: Each element is independent.
    • +
    • Percentage: Each question increases the progress of the order element by a percentage. The percentages must be able to add up to 100%.
    • +
    +
  • +
  • Select one of the forms created in the administration interface and click "Assign."

    +
  • +
  • The program assigns the chosen form from the list of forms assigned to the order element.

    +
  • +
  • Click the "Edit" button on the order element.

    +
  • +
  • The program displays the questions from the quality form in the lower list.

    +
  • +
  • Mark the questions that have been completed as achieved.

    +
      +
    • If the quality form is based on percentages, the questions are answered in order.
    • +
    • If the quality form is based on elements, the questions can be answered in any order.
    • +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt/07-planificacion.html b/libreplan-webapp/src/main/webapp/help/pt/07-planificacion.html new file mode 100644 index 000000000..7b8954f83 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/07-planificacion.html @@ -0,0 +1,117 @@ + + + + + + +Task Planning + + + +
+

Task Planning

+ + +
+

Task Planning

+

Planning in TASKPM is a process that has been described throughout the user guide, with the chapters on orders and resource assignment being particularly important. This chapter describes the basic planning procedures after the order and Gantt charts have been properly configured.

+
+images/planning-view.png +

Work Planning View

+
+

As with the company overview, the project planning view is divided into several views based on the information being analyzed. The views available for a specific project are:

+
    +
  • Planning View
  • +
  • Resource Load View
  • +
  • Order List View
  • +
  • Advanced Assignment View
  • +
+
+

Planning View

+

The Planning View combines three different perspectives:

+
    +
  • Project Planning: Project planning is displayed in the upper right-hand part of the program as a Gantt chart. This view allows users to temporarily move tasks, assign dependencies between them, define milestones, and establish restrictions.
  • +
  • Resource Load: The Resource Load view, located in the lower right-hand part of the screen, shows resource availability based on assignments, as opposed to the assignments made to tasks. The information displayed in this view is as follows:
      +
    • Purple Area: Indicates a resource load below 100% of its capacity.
    • +
    • Green Area: Indicates a resource load below 100%, resulting from the resource being planned for another project.
    • +
    • Orange Area: Indicates a resource load over 100% as a result of the current project.
    • +
    • Yellow Area: Indicates a resource load over 100% as a result of other projects.
    • +
    +
  • +
  • Graph View and Earned Value Indicators: These can be viewed from the "Earned Value" tab. The generated graph is based on the earned value technique, and the indicators are calculated for each workday of the project. The calculated indicators are:
      +
    • BCWS (Budgeted Cost of Work Scheduled): The cumulative time function for the number of hours planned up to a certain date. It will be 0 at the planned start of the task and equal to the total number of planned hours at the end. As with all cumulative graphs, it will always increase. The function for a task will be the sum of the daily assignments until the calculation date. This function has values for all times, provided that resources have been assigned.
    • +
    • ACWP (Actual Cost of Work Performed): The cumulative time function for the hours reported in work reports up to a certain date. This function will only have a value of 0 before the date of the task's first work report, and its value will continue to increase as time passes and work report hours are added. It will have no value after the date of the last work report.
    • +
    • BCWP (Budgeted Cost of Work Performed): The cumulative time function that includes the resultant value of multiplying task progress by the amount of work that the task was estimated to require for completion. This function's values increase as time passes, as do progress values. Progress is multiplied by the total number of estimated hours for all tasks. The BCWP value is the sum of the values for the tasks being calculated. Progress is totaled when it is configured.
    • +
    • CV (Cost Variance): CV = BCWP - ACWP
    • +
    • SV (Schedule Variance): SV = BCWP - BCWS
    • +
    • BAC (Budget at Completion): BAC = max (BCWS)
    • +
    • EAC (Estimate at Completion): EAC = (ACWP / BCWP) * BAC
    • +
    • VAC (Variance at Completion): VAC = BAC - EAC
    • +
    • ETC (Estimate to Complete): ETC = EAC - ACWP
    • +
    • CPI (Cost Performance Index): CPI = BCWP / ACWP
    • +
    • SPI (Schedule Performance Index): SPI = BCWP / BCWS
    • +
    +
  • +
+

In the project planning view, users can perform the following actions:

+
    +
  • Assigning Dependencies: Right-click a task, choose "Add dependency," and drag the mouse pointer to the task to which the dependency should be assigned.
      +
    • To change the type of dependency, right-click the dependency and choose the desired type.
    • +
    +
  • +
  • Creating a New Milestone: Click the task before which the milestone is to be added and select the "Add milestone" option. Milestones can be moved by selecting the milestone with the mouse pointer and dragging it to the desired position.
  • +
  • Moving Tasks without Disturbing Dependencies: Right-click the body of the task and drag it to the desired position. If no restrictions or dependencies are violated, the system will update the daily assignment of resources to the task and place the task on the selected date.
  • +
  • Assigning Restrictions: Click the task in question and select the "Task properties" option. A pop-up window will appear with a "Restrictions" field that can be modified. Restrictions can conflict with dependencies, which is why each order specifies whether dependencies take priority over restrictions. The restrictions that can be established are:
      +
    • As Soon as Possible: Indicates that the task must start as soon as possible.
    • +
    • Not Before: Indicates that the task must not start before a certain date.
    • +
    • Start on a Specific Date: Indicates that the task must start on a specific date.
    • +
    +
  • +
+

The planning view also offers several procedures that function as viewing options:

+
    +
  • Zoom Level: Users can choose the desired zoom level. There are several zoom levels: annual, four-monthly, monthly, weekly, and daily.
  • +
  • Search Filters: Users can filter tasks based on labels or criteria.
  • +
  • Critical Path: As a result of using the Dijkstra algorithm to calculate paths on graphs, the critical path was implemented. It can be viewed by clicking the "Critical path" button in the viewing options.
  • +
  • Show Labels: Enables users to view the labels assigned to tasks in a project, which can be viewed on screen or printed.
  • +
  • Show Resources: Enables users to view the resources assigned to tasks in a project, which can be viewed on screen or printed.
  • +
  • Print: Enables users to print the Gantt chart being viewed.
  • +
+
+
+

Resource Load View

+

The Resource Load View provides a list of resources that contains a list of tasks or criteria that generate workloads. Each task or criterion is shown as a Gantt chart so that the start and end dates of the load can be seen. A different color is shown depending on whether the resource has a load that is higher or lower than 100%:

+
    +
  • Green: Load lower than 100%
  • +
  • Orange: 100% load
  • +
  • Red: Load over 100%
  • +
+
+images/resource-load.png +

Resource Load View for a Specific Order

+
+

If the mouse pointer is placed on the resource's Gantt chart, the load percentage for the worker will be shown.

+
+
+

Order List View

+

The Order List View allows users to access the order editing and deleting options. See the "Orders" chapter for more information.

+
+
+

Advanced Assignment View

+

The Advanced Assignment View is explained in depth in the "Resource Assignment" chapter.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt/08-asignacion.html b/libreplan-webapp/src/main/webapp/help/pt/08-asignacion.html new file mode 100644 index 000000000..46da7239c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/08-asignacion.html @@ -0,0 +1,179 @@ + + + + + + +Resource Assignment + + + +
+

Resource Assignment

+ + +

Resource assignment is one of the program's most important features and can be carried out in two different ways:

+
    +
  • Specific assignment
  • +
  • Generic assignment
  • +
+

Both types of assignment are explained in the following sections.

+

To perform either type of resource assignment, the following steps are necessary:

+
    +
  • Go to the planning view of an order.
  • +
  • Right-click on the task to be planned.
  • +
+
+images/resource-assignment-planning.png +

Resource Assignment Menu

+
+
    +
  • The program displays a screen with the following information:
      +
    • List of Criteria to be Fulfilled: For each hour group, a list of required criteria is shown.
    • +
    • Task Information: The start and end dates of the task.
    • +
    • Type of Calculation: The system allows users to choose the strategy for calculating assignments:
        +
      • Calculate Number of Hours: This calculates the number of hours required from the assigned resources, given an end date and a number of resources per day.
      • +
      • Calculate End Date: This calculates the end date of the task based on the number of resources assigned to the task and the total number of hours required to complete the task.
      • +
      • Calculate Number of Resources: This calculates the number of resources required to finish the task by a specific date, given a known number of hours per resource.
      • +
      +
    • +
    • Recommended Assignment: This option allows the program to gather the criteria to be fulfilled and the total number of hours from all hour groups, and then recommend a generic assignment. If a prior assignment exists, the system deletes it and replaces it with the new one.
    • +
    • Assignments: A list of assignments that have been made. This list shows the generic assignments (the number will be the list of fulfilled criteria, and the number of hours and resources per day). Each assignment can be explicitly removed by clicking the delete button.
    • +
    +
  • +
+
+images/resource-assignment.png +

Resource Assignment

+
+
    +
  • Users select "Search resources."
  • +
  • The program displays a new screen consisting of a criteria tree and a list of workers who fulfill the selected criteria on the right:
  • +
+
+images/resource-assignment-search.png +

Resource Assignment Search

+
+
    +
  • Users can select:
      +
    • Specific Assignment: See the "Specific Assignment" section for details on this option.
    • +
    • Generic Assignment: See the "Generic Assignment" section for details on this option.
    • +
    +
  • +
  • Users select a list of criteria (generic) or a list of workers (specific). Multiple selections can be made by pressing the "Ctrl" key while clicking each worker/criterion.
  • +
  • Users then click the "Select" button. It's important to remember that if a generic assignment is not selected, users must choose a worker or machine to perform the assignment. If a generic assignment is selected, it is sufficient for users to choose one or more criteria.
  • +
  • The program then displays the selected criteria or resource list in the list of assignments on the original resource assignment screen.
  • +
  • Users must choose the hours or resources per day, depending on the assignment method used in the program.
  • +
+
+

Specific Assignment

+

This is the specific assignment of a resource to a project task. In other words, the user decides which specific worker (by name and surname) or machine must be assigned to a task.

+

Specific assignment can be carried out on the screen shown in this image:

+
+images/asignacion-especifica.png +

Specific Resource Assignment

+
+

When a resource is specifically assigned, the program creates daily assignments based on the percentage of daily assigned resources selected, after comparing it with the available resource calendar. For example, an assignment of 0.5 resources for a 32-hour task means that 4 hours per day are assigned to the specific resource to complete the task (assuming a working calendar of 8 hours per day).

+
+

Specific Machine Assignment

+

Specific machine assignment functions in the same way as worker assignment. When a machine is assigned to a task, the system stores a specific assignment of hours for the chosen machine. The main difference is that the system searches the list of assigned workers or criteria at the moment the machine is assigned:

+
    +
  • If the machine has a list of assigned workers, the program chooses from those that are required by the machine, based on the assigned calendar. For example, if the machine calendar is 16 hours per day and the resource calendar is 8 hours, two resources are assigned from the list of available resources.
  • +
  • If the machine has one or more assigned criteria, generic assignments are made from among the resources that fulfill the criteria assigned to the machine.
  • +
+
+
+
+

Generic Assignment

+

Generic assignment occurs when users do not choose resources specifically but leave the decision to the program, which distributes the loads among the company's available resources.

+
+images/asignacion-xenerica.png +

Generic Resource Assignment

+
+

The assignment system uses the following assumptions as a basis:

+
    +
  • Tasks have criteria that are required from resources.
  • +
  • Resources are configured to fulfill criteria.
  • +
+

However, the system does not fail when criteria have not been assigned, but when all resources fulfill the non-requirement of criteria.

+

The generic assignment algorithm functions as follows:

+
    +
  • All resources and days are treated as containers where daily assignments of hours fit, based on the maximum assignment capacity in the task calendar.
  • +
  • The system searches for the resources that fulfill the criterion.
  • +
  • The system analyzes which assignments currently have different resources that fulfill criteria.
  • +
  • The resources that fulfill the criteria are chosen from those that have sufficient availability.
  • +
  • If freer resources are not available, assignments are made to the resources that have less availability.
  • +
  • Over-assignment of resources only begins when all the resources that fulfill the respective criteria are 100% assigned, until the total amount required to carry out the task is attained.
  • +
+
+

Generic Machine Assignment

+

Generic machine assignment functions in the same way as worker assignment. For example, when a machine is assigned to a task, the system stores a generic assignment of hours for all machines that fulfill the criteria, as described for resources in general. However, in addition, the system performs the following procedure for machines:

+
    +
  • For all machines chosen for generic assignment:
      +
    • It collects the machine's configuration information: alpha value, assigned workers, and criteria.
    • +
    • If the machine has an assigned list of workers, the program chooses the number required by the machine, depending on the assigned calendar. For example, if the machine calendar is 16 hours per day and the resource calendar is 8 hours, the program assigns two resources from the list of available resources.
    • +
    • If the machine has one or more assigned criteria, the program makes generic assignments from among the resources that fulfill the criteria assigned to the machine.
    • +
    +
  • +
+
+
+
+

Advanced Assignment

+

Advanced assignments allow users to design assignments that are automatically carried out by the application to personalize them. This procedure allows users to manually choose the daily hours that are dedicated by resources to assigned tasks or define a function that is applied to the assignment.

+

The steps to follow to manage advanced assignments are:

+
    +
  • Go to the advanced assignment window. There are two ways to access advanced assignments:
      +
    • Go to a specific order and change the view to advanced assignment. In this case, all the tasks on the order and assigned resources (specific and generic) will be shown.
    • +
    • Go to the resource assignment window by clicking the "Advanced assignment" button. In this case, the assignments that show the resources (generic and specific) assigned to a task will be shown.
    • +
    +
  • +
+
+images/advance-assignment.png +

Advanced Resource Assignment

+
+
    +
  • Users can choose the desired zoom level:
      +
    • Zoom Levels Greater Than One Day: If users change the assigned hour value to a week, month, four-month, or six-month period, the system distributes the hours linearly across all days throughout the chosen period.
    • +
    • Daily Zoom: If users change the assigned hour value to a day, these hours only apply to that day. Consequently, users can decide how many hours they want to assign per day to task resources.
    • +
    +
  • +
  • Users can choose to design an advanced assignment function. To do so, users must:
      +
    • Choose the function from the selection list that appears next to each resource and click "Configure."
    • +
    • The system displays a new window if the chosen function needs to be specifically configured. Supported functions:
        +
      • Segments: A function that allows users to define segments to which a polynomial function is applied. The function per segment is configured as follows:
          +
        • Date: The date on which the segment ends. If the following value (length) is established, the date is calculated; alternatively, length is calculated.
        • +
        • Defining the Length of Each Segment: This indicates what percentage of the task's duration is required for the segment.
        • +
        • Defining the Amount of Work: This indicates what workload percentage is expected to be completed in this segment. The quantity of work must be incremental. For example, if there is a 10% segment, the next one must be larger (for example, 20%).
        • +
        • Segment Graphs and Accumulated Loads.
        • +
        +
      • +
      +
    • +
    • Users then click "Accept."
    • +
    • The program stores the function and applies it to the daily resource assignments.
    • +
    +
  • +
+
+images/stretches.png +

Configuration of the Segment Function

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt/09-partes.html b/libreplan-webapp/src/main/webapp/help/pt/09-partes.html new file mode 100644 index 000000000..90242b6c7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/09-partes.html @@ -0,0 +1,84 @@ + + + + + + +Work Reports + + + +
+

Work Reports

+ + +

Work reports enable the monitoring of the hours that resources dedicate to the tasks to which they are assigned.

+

The program allows users to configure new forms for entering dedicated hours, specifying the fields that they want to appear in these forms. This allows for the incorporation of reports from tasks carried out by workers and the monitoring of worker activity.

+

Before users can add entries for resources, they must define at least one work report type. This type defines the structure of the report, including all the rows that are added to it. Users can create as many work report types as necessary within the system.

+
+

Work Report Types

+

A work report consists of a series of fields that are common to the entire report and a set of work report lines with specific values for the fields defined in each row. For example, resources and tasks are common to all reports. However, there can be other new fields, such as "incidents," which are not required in all report types.

+

Users can configure different work report types so that a company can design its reports to meet its specific needs:

+
+images/work-report-types.png +

Work Report Types

+
+

The administration of work report types allows users to configure these types and add new text fields or optional tags. In the first tab for editing work report types, it is possible to configure the type for the mandatory attributes (whether they apply to the whole report or are specified at the line level) and add new optional fields.

+

The mandatory fields that must appear in all work reports are as follows:

+
    +
  • Name and Code: Identification fields for the name of the work report type and its code.
  • +
  • Date: Field for the date of the report.
  • +
  • Resource: Worker or machine appearing on the report or work report line.
  • +
  • Order Element: Code for the order element to which the performed work is attributed.
  • +
  • Hour Management: Determines the hour attribution policy to be used, which can be:
      +
    • According to Assigned Hours: Hours are attributed based on the assigned hours.
    • +
    • According to Start and Finish Times: Hours are calculated based on the start and finish times.
    • +
    • According to the Number of Hours and Start and Finish Range: Discrepancies are allowed, and the number of hours takes priority.
    • +
    +
  • +
+

Users can add new fields to the reports:

+
    +
  • Tag Type: Users can request the system to display a tag when completing the work report. For example, the client tag type, if the user wishes to enter the client for whom the work was carried out in each report.
  • +
  • Free Fields: Fields where text can be entered freely in the work report.
  • +
+
+images/work-report-type.png +

Creating a Work Report Type with Personalized Fields

+
+

Users can configure date, resource, and order element fields to appear in the header of the report, which means they apply to the entire report, or they can be added to each of the rows.

+

Finally, new additional text fields or tags can be added to the existing ones, in the work report header or in each line, by using the "Additional text" and "Tag type" fields, respectively. Users can configure the order in which these elements are to be entered in the "Management of additional fields and tags" tab.

+
+
+

Work Report List

+

Once the format of the reports to be incorporated into the system has been configured, users can enter the details in the created form according to the structure defined in the corresponding work report type. To do this, users need to follow these steps:

+
    +
  • Click the "New work report" button associated with the desired report from the list of work report types.
  • +
  • The program then displays the report based on the configurations given for the type. See the following image.
  • +
+
+images/work-report-type.png +

Structure of the Work Report Based on Type

+
+
    +
  • Select all the fields shown for the report:
      +
    • Resource: If the header has been chosen, the resource is only shown once. Alternatively, for each line of the report, it is necessary to choose a resource.
    • +
    • Task Code: Code of the task to which the work report is being assigned. Similar to the rest of the fields, if the field is in the header, the value is entered once or as many times as necessary on the lines of the report.
    • +
    • Date: Date of the report or each line, depending on whether the header or line is configured.
    • +
    • Number of Hours: The number of work hours in the project.
    • +
    • Start and Finish Times: Start and finish times for the work in order to calculate definitive work hours. This field only appears in the case of the hour assignment policies, "According to Start and Finish Times" and "According to the Number of Hours and Start and Finish Range."
    • +
    • Type of Hours: Enables users to choose the type of hour, e.g., "Normal," "Extraordinary," etc.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt/10-etiquetas.html b/libreplan-webapp/src/main/webapp/help/pt/10-etiquetas.html new file mode 100644 index 000000000..eb6451798 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/10-etiquetas.html @@ -0,0 +1,68 @@ + + + + + + +Labels + + + +
+

Labels

+ +
+

Contents

+ +
+

Labels are entities used in the program to conceptually organize tasks or order elements.

+

Labels are categorized according to label type. A label can only belong to one label type; however, users can create many similar labels belonging to different label types.

+
+

Label Types

+

Label types are used to group the types of labels that users want to manage in the program. Here are some examples of possible label types:

+
    +
  • Client: Users may be interested in labeling tasks, orders, or order elements in relation to the client who requests them.
  • +
  • Area: Users may be interested in labeling tasks, orders, or order elements in relation to the areas in which they are carried out.
  • +
+

The administration of label types is managed from the "Administration" menu option. This is where users can edit label types, create new label types, and add labels to label types. Users can access the list of labels from this option.

+
+images/tag-types-list.png +

List of Label Types

+
+

From the list of label types, users can:

+
    +
  • Create a new label type.
  • +
  • Edit an existing label type.
  • +
  • Delete a label type with all of its labels.
  • +
+

Editing and creating labels share the same form. From this form, the user can assign a name to the label type, create or delete labels, and store the changes. The procedure is as follows:

+
    +
  • Select a label to edit or click the create button for a new one.
  • +
  • The system displays a form with a text entry for the name and a list of text entries with existing and assigned labels.
  • +
  • If users wish to add a new label, they must click the "New label" button.
  • +
  • The system displays a new row on the list with an empty text box that users must edit.
  • +
  • Users enter a name for the label.
  • +
  • The system adds the name to the list.
  • +
  • Users click "Save" or "Save and continue" to continue editing the form.
  • +
+
+images/tag-types-edition.png +

Editing Label Types

+
+
+
+

Labels

+

Labels are entities that belong to a label type. These entities can be assigned to order elements. Assigning a label to an order element means that all the elements descending from this element will inherit the label to which they belong. Having an assigned label means that these entities can be filtered where searches can be carried out:

+
    +
  • Search for tasks in the Gantt chart.
  • +
  • Search for order elements in the list of order elements.
  • +
  • Filters for reports.
  • +
+

The assignment of labels to order elements is covered in the chapter on orders.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt/11-materiales.html b/libreplan-webapp/src/main/webapp/help/pt/11-materiales.html new file mode 100644 index 000000000..a06770897 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/11-materiales.html @@ -0,0 +1,54 @@ + + + + + + +Materials Management + + + +
+

Materials Management

+ +
+

Contents

+ +
+
+

Administration of Materials

+

Users can manage a basic database of materials, organized by categories.

+

Categories are containers to which specific materials and other categories can be assigned. They are stored in a hierarchical tree structure, as materials can belong to leaf categories or intermediary categories.

+

To manage categories, users must follow these steps:

+
    +
  • Go to the "Administration -> Materials" option.
  • +
  • The program displays a tree of categories.
  • +
  • Enter a category name in the text box and then click "Add."
  • +
  • The program adds the category to the tree.
  • +
+

To insert a category into the category tree, users must first select the parent category in the tree and then click "Add."

+
+images/material.png +

Material Administration Screen

+
+

To manage materials, users must follow these steps:

+
    +
  • Select the category to which materials are to be added and click "Add" to the right of "Materials."
  • +
  • The program adds a new empty row with fields to enter details about the material:
      +
    • Code: Material type code (this can be the external code from an ERP).
    • +
    • Description: Description of the material.
    • +
    • Unit Price: Unit price of each piece of material.
    • +
    • Unit: Unit used to measure each unit of material.
    • +
    • Category: Category to which the material belongs.
    • +
    • Availability: Indicates whether or not the material is active.
    • +
    +
  • +
  • Users complete the fields and click "Save."
  • +
+

The assignment of materials to order elements is explained in the chapter on "Orders."

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt/12-formularios-calidad.html b/libreplan-webapp/src/main/webapp/help/pt/12-formularios-calidad.html new file mode 100644 index 000000000..97a584178 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/12-formularios-calidad.html @@ -0,0 +1,52 @@ + + + + + + +Quality Forms + + + +
+

Quality Forms

+ + +
+

Administration of Quality Forms

+

Quality forms consist of a list of questions or statements that indicate the tasks or processes that should have been completed before a task can be marked as complete by the company. These forms include the following fields:

+
    +
  • Name: The name of the quality form.
  • +
  • Description: A description of the quality form.
  • +
  • Type of Quality Form: The type can have two values:
      +
    • Percentage: Indicates that the questions must be answered in a logical order, and affirmative answers indicate that the task is progressing. For example, a basic process for a task might suggest that the task is 15% complete. Users must answer a question before proceeding to the next one.
    • +
    • Item: Indicates that the questions do not need to be answered in a logical order and can be answered in any sequence.
    • +
    +
  • +
+

Users must follow these steps to manage quality forms:

+
    +
  • From the "Administration" menu, access the "Quality forms" option.
  • +
  • Click "Edit" on an existing form or click "Create" to create a new one.
  • +
  • The program displays a form with fields for the name, description, and type.
  • +
  • Select the type.
  • +
  • The program displays the fields that are allowed for each type:
      +
    • Percentage: Question and percentage.
    • +
    • Item: Question.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+images/quality.png +

Quality Form Administration Screen

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt/13-usuarios.html b/libreplan-webapp/src/main/webapp/help/pt/13-usuarios.html new file mode 100644 index 000000000..f46a23ded --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/13-usuarios.html @@ -0,0 +1,79 @@ + + + + + + +User Management + + + +
+

User Management

+ +
+

Contents

+ +
+
+

Managing Users

+

TASKPM's system allows administrators to manage user profiles, authorizations, and users. Users are assigned to user profiles, which can have a series of predefined roles that grant access to the program's features. Roles are defined authorizations within TASKPM. Examples of roles include:

+
    +
  • Administration: A role that must be assigned to administrators to enable them to perform administrative operations.
  • +
  • Web Service Reader: A role required for users to consult the program's web services.
  • +
  • Web Service Writer: A role required for users to write data via the program's web services.
  • +
+

Roles are predefined within the system. A user profile consists of one or more roles. Users must have specific roles to perform certain operations.

+

Users can be assigned one or more profiles, or one or more roles directly, allowing for specific or generic authorization to be granted.

+

To manage users, follow these steps:

+
    +
  • Go to "Manage users" in the "Administration" menu.
  • +
  • The program displays a form with a list of users.
  • +
  • Click the edit button for the desired user or click the "Create" button.
  • +
  • A form will appear with the following fields:
      +
    • User Name: The user's login name.
    • +
    • Password: The user's password.
    • +
    • Authorized/Unauthorized: A setting to enable or disable the user's account.
    • +
    • Email: The user's email address.
    • +
    • List of Associated Roles: To add a new role, users must search for a role in the selection list and click "Assign."
    • +
    • List of Associated Profiles: To add a new profile, users must search for a profile in the selection list and click "Assign."
    • +
    +
  • +
+
+images/manage-user.png +

Managing Users

+
+
    +
  • Click "Save" or "Save and continue."
  • +
+
+

Managing Profiles

+

To manage the program's profiles, users must follow these steps:

+
    +
  • Go to "Manage user profiles" in the "Administration" menu.
  • +
  • The program displays a list of profiles.
  • +
  • Click the edit button for the desired profile or click "Create."
  • +
  • A form appears in the program with the following fields:
      +
    • Name: The name of the user profile.
    • +
    • List of Roles (Authorizations): To add a role to the profile, users must select a role from the role list and click "Add."
    • +
    +
  • +
+
+images/manage-user-profile.png +

Managing User Profiles

+
+
    +
  • Click "Save" or "Save and continue," and the system will store the created or modified profile.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt/14-custos.html b/libreplan-webapp/src/main/webapp/help/pt/14-custos.html new file mode 100644 index 000000000..5c35ce71d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/14-custos.html @@ -0,0 +1,110 @@ + + + + + + +Cost management + + + +
+

Cost management

+ +
+

Contents

+ +
+
+

Costs

+

Cost management allows users to estimate the costs of resources used in a project. To manage costs, the following entities must be defined:

+
    +
  • Hour Types: These indicate the types of hours worked by a resource. Users can define hour types for both machines and workers. Examples of hour types include: "Additional hours paid at €20 per hour." The following fields can be defined for hour types:
      +
    • Code: External code for the hour type.
    • +
    • Name: Name of the hour type. For example, "Additional."
    • +
    • Default Rate: Basic default rate for the hour type.
    • +
    • Activation: Indicates whether the hour type is active or not.
    • +
    +
  • +
  • Cost Categories: Cost categories define the costs associated with different hour types during specific periods (which may be indefinite). For example, the cost of additional hours for first-grade skilled workers in the following year is €24 per hour. Cost categories include:
      +
    • Name: Cost category name.
    • +
    • Activation: Indicates whether the category is active or not.
    • +
    • List of Hour Types: This list defines the hour types included in the cost category. It specifies the periods and rates for each hour type. For example, as rates change, each year can be included on this list as an hour type period, with a specific hourly rate for each hour type (which may differ from the default hourly rate for that hour type).
    • +
    +
  • +
+
+

Managing Hour Types

+

Users must follow these steps to register hour types:

+
    +
  • Select "Manage hour types worked" on the "Administration" menu.
  • +
  • The program displays a list of existing hour types.
  • +
+
+images/hour-type-list.png +

Hour Type List

+
+
    +
  • Click "Edit" or "Create."
  • +
  • The program displays an hour type editing form.
  • +
+
+images/hour-type-edit.png +

Editing Hour Types

+
+
    +
  • Users can enter or change:
      +
    • The hour type name.
    • +
    • The hour type code.
    • +
    • The default rate.
    • +
    • Hour type activation/deactivation.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+

Cost Categories

+

Users must follow these steps to register cost categories:

+
    +
  • Select "Manage cost categories" on the "Administration" menu.
  • +
  • The program displays a list of existing categories.
  • +
+
+images/category-cost-list.png +

Cost Category List

+
+
    +
  • Click the "Edit" or "Create" button.
  • +
  • The program displays a cost category editing form.
  • +
+
+images/category-cost-edit.png +

Editing Cost Categories

+
+
    +
  • Users enter or change:
      +
    • The name of the cost category.
    • +
    • The activation/deactivation of the cost category.
    • +
    • The list of hour types included in the category. All hour types have the following fields:
        +
      • Hour Type: Choose one of the existing hour types in the system. If none exist, an hour type must be created (this process is explained in the previous subsection).
      • +
      • Start and Finish Date: The start and finish dates (the latter is optional) for the period that applies to the cost category.
      • +
      • Hourly Rate: The hourly rate for this specific category.
      • +
      +
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+

The assignment of cost categories to resources is described in the chapter on resources. Go to the "Resources" section.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt/15-1-report-hours-worked-by-resource.html b/libreplan-webapp/src/main/webapp/help/pt/15-1-report-hours-worked-by-resource.html new file mode 100644 index 000000000..f97f118aa --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/15-1-report-hours-worked-by-resource.html @@ -0,0 +1,101 @@ + + + + + + +Hours Worked by Resource Report + + + +
+

Hours Worked by Resource Report

+ + +
+

Purpose

+

This report extracts a list of tasks and the time resources have dedicated to them within a specified period. Several filters allow users to refine the query to obtain only the desired information and exclude extraneous data.

+
+
+

Input Parameters and Filters

+
    +
  • +
    Dates.
    +
      +
    • Type: Optional.
    • +
    • +
      Two date fields:
      +
        +
      • Start Date: This is the earliest date for work reports to be included. Work reports with dates earlier than the Start Date are excluded. If this parameter is left blank, work reports are not filtered by Start Date.
      • +
      • End Date: This is the latest date for work reports to be included. Work reports with dates later than the End Date are excluded. If this parameter is left blank, work reports are not filtered by End Date.
      • +
      +
      +
      +
    • +
    +
    +
    +
  • +
  • Filter by Workers: +* Type: Optional. +* How it works: You can select one or more workers to restrict the work reports to the time tracked by those specific workers. To add a worker as a filter, search for them in the selector and click the Add button. If this filter is left empty, work reports are retrieved regardless of the worker.
  • +
  • Filter by Labels: +* Type: Optional. +* How it works: You can add one or more labels to use as filters by searching for them in the selector and clicking the Add button. These labels are used to select the tasks to be included in the results when calculating the hours dedicated to them. This filter can be applied to timesheets, tasks, both, or neither.
  • +
  • Filter by Criteria: +* Type: Optional. +* How it works: You can select one or more criteria by searching for them in the selector and then clicking the Add button. These criteria are used to select the resources that satisfy at least one of them. The report will show all the time dedicated by the resources that meet one of the selected criteria.
  • +
+
+
+

Output

+
+

Heading

+

The report heading displays the filters that were configured and applied to the current report.

+
+ +
+

Body

+

The report body consists of several groups of information.

+
    +
  • The first level of aggregation is by resource. All the time dedicated by a resource is shown together below the header. Each resource is identified by:

    +
      +
    • Worker: Surname, First Name.
    • +
    • Machine: Name.
    • +
    +

    A summary line shows the total number of hours worked by the resource.

    +
  • +
  • The second level of grouping is by date. All the reports from a specific resource on the same date are shown together.

    +

    A summary line shows the total number of hours worked by the resource on that date.

    +
  • +
  • The final level lists the work reports for the worker on that day. The information displayed for each work report line is:

    +
      +
    • Task Code: The code of the task to which the tracked hours are attributed.
    • +
    • Task Name: The name of the task to which the tracked hours are attributed.
    • +
    • Starting Time: This is optional. It is the time at which the resource began working on the task.
    • +
    • Ending Time: This is optional. It is the time at which the resource finished working on the task on the specified date.
    • +
    • Text Fields: This is optional. If the work report line has text fields, the filled values are shown here. The format is: <Name of the text field>:<Value>
    • +
    • Labels: This depends on whether the work report model has a label field in its definition. If there are multiple labels, they are shown in the same column. The format is: <Name of the label type>:<Value of the label>
    • +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt/15-2-total-hours-by-resource-month.html b/libreplan-webapp/src/main/webapp/help/pt/15-2-total-hours-by-resource-month.html new file mode 100644 index 000000000..246cfc9c1 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/15-2-total-hours-by-resource-month.html @@ -0,0 +1,67 @@ + + + + + + +Total Hours Worked by Resource in a Month Report + + + +
+

Total Hours Worked by Resource in a Month Report

+ + +
+

Purpose

+

This report provides the total number of hours worked by each resource in a given month. This information can be useful for determining worker overtime or, depending on the organization, the number of hours for which each resource should be compensated.

+

The application tracks work reports for both workers and machines. For machines, the report sums up the number of hours they were in operation during the month.

+
+
+

Input Parameters and Filters

+

To generate this report, users must specify the year and month for which they want to retrieve the total number of hours worked by each resource.

+
+
+

Output

+

The output format is as follows:

+ + +
+

Body

+

The data section of the report consists of a single table with two columns:

+
+
    +
  • One column labeled Name for the name of the resource.
  • +
  • One column labeled Hours with the total number of hours worked by the resource in that row.
  • +
+
+

There is a final row that aggregates the total number of hours worked by all resources during the specified month and year.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt/15-3-work-progress-per-project.html b/libreplan-webapp/src/main/webapp/help/pt/15-3-work-progress-per-project.html new file mode 100644 index 000000000..e2f5053a9 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/15-3-work-progress-per-project.html @@ -0,0 +1,125 @@ + + + + + + +Work and Progress per Project Report + + + +
+

Work and Progress per Project Report

+ + +
+

Purpose

+

This report provides an overview of the status of projects, considering both progress and cost.

+

It analyzes the current progress of each project, comparing it with the planned progress and the work completed.

+

The report also displays several ratios related to project cost, comparing current performance with the planned performance.

+
+
+

Input Parameters and Filters

+

There are several mandatory parameters:

+
+
    +
  • Reference Date: This is the date used as a reference point for comparing the planned status of the project with its actual performance. The default value for this field is the current date.
  • +
  • Progress Type: This is the progress type used to measure project progress. The application allows a project to be measured simultaneously with different progress types. The type selected by the user in the dropdown menu is used for calculating the report data. The default value for the progress type is spread, which is a special progress type that uses the preferred method of measuring progress configured for each WBS element.
  • +
+
+

The optional parameters are:

+
+
    +
  • Starting Date: This is the earliest start date for projects to be included in the report. If this field is left blank, there is no minimum start date for the projects.
  • +
  • Ending Date: This is the latest end date for projects to be included in the report. All projects that finish after the Ending Date will be excluded.
  • +
  • Filter by Projects: This filter allows users to select the specific projects to be included in the report. If no projects are added to the filter, the report will include all projects in the database. A searchable dropdown menu is provided to find the desired project. Projects are added to the filter by clicking the Add button.
  • +
+
+
+
+

Output

+

The output format is as follows:

+
+

Heading

+

The report header displays the following fields:

+
+
    +
  • Starting Date: The filtering start date. This is not displayed if the report is not filtered by this field.
  • +
  • Ending Date: The filtering end date. This is not displayed if the report is not filtered by this field.
  • +
  • Progress Type: The progress type used for the report.
  • +
  • Projects: This indicates the filtered projects for which the report is generated. It will show the string All when the report includes all projects that satisfy the other filters.
  • +
  • Reference Date: The mandatory input reference date selected for the report.
  • +
+
+
+ +
+

Body

+

The body of the report consists of a list of projects selected based on the input filters.

+

Filters work by adding conditions, except for the set formed by the date filters (Starting Date, Ending Date) and the Filter by Projects. In this case, if one or both date filters are filled and the Filter by Projects has a list of selected projects, the latter filter takes precedence. This means that the projects included in the report are those provided by the Filter by Projects, regardless of the date filters.

+

It's important to note that progress in the report is calculated as a fraction of unity, ranging between 0 and 1.

+

For each project selected for inclusion in the report output, the following information is displayed:

+
+
    +
  • Project Name.
  • +
  • +
    Total Hours. The total hours for the project are shown by adding the hours for each task. Two types of total hours are shown:
    +
      +
    • Estimated (TE). This is the sum of all the estimated hours in the project's WBS. It represents the total number of hours estimated to complete the project.
    • +
    • Planned (TP). In TASKPM, it's possible to have two different quantities: the estimated number of hours for a task (the number of hours initially estimated to complete the task) and the planned hours (the hours allocated in the plan to complete the task). The planned hours can be equal to, less than, or greater than the estimated hours and are determined in a later phase, the assignment operation. Therefore, the total planned hours for a project are the sum of all the allocated hours for its tasks.
    • +
    +
    +
    +
  • +
  • +
    Progress. Three measurements related to the overall progress of the type specified in the progress input filter for each project at the reference date are shown:
    +
      +
    • Measured (PM). This is the overall progress considering the progress measurements with a date earlier than the Reference Date in the input parameters of the report. All tasks are taken into account, and the sum is weighted by the number of hours for each task.
    • +
    • Imputed (PI). This is the progress assuming that work continues at the same pace as the hours completed for a task. If X hours out of Y hours for a task are completed, the overall imputed progress is considered to be X/Y.
    • +
    • Planned (PP). This is the overall progress of the project according to the planned schedule at the reference date. If everything happened exactly as planned, the measured progress should be the same as the planned progress.
    • +
    +
    +
    +
  • +
  • +
    Hours up to Date. There are two fields that show the number of hours up to the reference date from two perspectives:
    +
      +
    • Planned (HP). This number is the sum of the hours allocated to any task in the project with a date less than or equal to the Reference Date.
    • +
    • Actual (HR). This number is the sum of the hours reported in the work reports for any of the tasks in the project with a date less than or equal to the Reference Date.
    • +
    +
    +
    +
  • +
  • +
    Difference. Under this heading, there are several metrics related to cost:
    +
      +
    • Cost. This is the difference in hours between the number of hours spent, considering the measured progress, and the hours completed up to the reference date. The formula is: PM*TP - HR.
    • +
    • Planned. This is the difference between the hours spent according to the overall measured project progress and the number planned up to the Reference Date. It measures the advantage or delay in time. The formula is: PM*TP - HP.
    • +
    • Cost Ratio. This is calculated by dividing PM / PI. If it is greater than 1, it means that the project is profitable at this point. If it is less than 1, it means that the project is losing money.
    • +
    • Planned Ratio. This is calculated by dividing PM / PP. If it is greater than 1, it means that the project is ahead of schedule. If it is less than 1, it means that the project is behind schedule.
    • +
    +
    +
    +
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt/15-informes.html b/libreplan-webapp/src/main/webapp/help/pt/15-informes.html new file mode 100644 index 000000000..c2c7cafab --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/15-informes.html @@ -0,0 +1,26 @@ + + + + + + +Reports + + + +
+

Reports

+ +

TASKPM integrates with JasperReports to provide report management, enabling users to generate various reports for analyzing the data available in the program.

+

The available reports are:

+ +
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt/16-ldap-authentication.html b/libreplan-webapp/src/main/webapp/help/pt/16-ldap-authentication.html new file mode 100644 index 000000000..ad5d4976d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/16-ldap-authentication.html @@ -0,0 +1,251 @@ + + + + + + +LDAP Configuration + + + +
+

LDAP Configuration

+ + +

This screen allows you to establish a connection with LDAP to delegate +authentication and/or authorization.

+

It is divided into four different areas, which are explained below:

+
+

Activation

+

This area is used to set the properties that determine how TASKPM uses +LDAP.

+

If the field Enable LDAP authentication is checked, TASKPM will query +LDAP each time a user attempts to log in to the application.

+

The field Use LDAP roles checked means that a mapping between LDAP roles and +TASKPM roles is established. Consequently, the permissions for a user in +TASKPM will depend on the roles the user has in LDAP.

+
+
+

Configuration

+

This section contains the parameter values for accessing LDAP. Base, UserDN, and +Password are parameters used to connect to LDAP and search for users. Therefore, +the specified user must have permission to perform this operation in LDAP. At the +bottom of this section, there is a button to check if an LDAP connection is +possible with the given parameters. It is advisable to test the connection before +continuing the configuration.

+
+

Note

+

If your LDAP is configured to work with anonymous authentication, you can +leave the UserDN and Password attributes empty.

+
+
+

Tip

+

Regarding Active Directory (AD) configuration, the Base field must be the +exact location where the bound user resides in AD.

+

Example: ou=organizational_unit,dc=example,dc=org

+
+
+
+

Authentication

+

Here, you can configure the property in LDAP nodes where the given username +should be found. The property UserId must be filled with the name of the +property where the username is stored in LDAP.

+

The checkbox Save passwords in database, when checked, means that the +password is also stored in the TASKPM database. In this way, if LDAP is +offline or unreachable, LDAP users can authenticate against the TASKPM +database. If it is not checked, LDAP users can only be authenticated against +LDAP.

+
+
+

Authorization

+

This section allows you to define a strategy for matching LDAP roles with +TASKPM roles. The first choice is the strategy to use, depending on the +LDAP implementation.

+
+

Group Strategy

+

When this strategy is used, it indicates that LDAP has a role-group strategy. +This means that users in LDAP are nodes that are directly under a branch that +represents the group.

+

The next example represents a valid LDAP structure for using the group strategy.

+
    +
  • LDAP structure:

    +
    +dc=example,dc=org
    +|- ou=groups
    +   |- cn=admins
    +   |- cn=itpeople
    +   |- cn=workers
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

In this case, each group will have an attribute, for example, called member, +with the list of users belonging to the group:

+
    +
  • cn=admins:
      +
    • member: uid=admin1,ou=people,dc=example,dc=org
    • +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=itpeople:
      +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    • member: uid=it2,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=workers:
      +
    • member: uid=worker1,ou=people,dc=example,dc=org
    • +
    • member: uid=worker2,ou=people,dc=example,dc=org
    • +
    • member: uid=worker3,ou=people,dc=example,dc=org
    • +
    +
  • +
+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Group strategy
  • +
  • Group path: ou=groups
  • +
  • Role property: member
  • +
  • Role search query: uid=[USER_ID],ou=people,dc=example,dc=org
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: cn=admins;cn=itpeople
  • +
  • Web service reader: cn=itpeople
  • +
  • Web service writer: cn=itpeople
  • +
  • All projects read allowed: cn=admins
  • +
  • All projects edition allowed: cn=admins
  • +
  • Project creation allowed: cn=workers
  • +
+
+
+

Property Strategy

+

When an administrator decides to use this strategy, it indicates that each user +is an LDAP node, and within the node, there exists a property that represents +the group(s) for the user. In this case, the configuration does not require the +Group path parameter.

+

The next example represents a valid LDAP structure for using the property strategy.

+
    +
  • LDAP structure:

    +
    +dc=example,dc=org
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

With Attribute

+

In this case, each user will have an attribute, for example, called group, +with the name of the group to which they belong:

+
    +
  • uid=admin1:
      +
    • group: admins
    • +
    +
  • +
  • uid=it1:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=it2:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=worker1:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker2:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker3:
      +
    • group: workers
    • +
    +
  • +
+
+

Warning

+

This strategy has a restriction: each user can belong to only one group.

+
+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Property strategy
  • +
  • Group path:
  • +
  • Role property: group
  • +
  • Role search query: [USER_ID]
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: admins;itpeople
  • +
  • Web service reader: itpeople
  • +
  • Web service writer: itpeople
  • +
  • All projects read allowed: admins
  • +
  • All projects edition allowed: admins
  • +
  • Project creation allowed: workers
  • +
+

By User Identifier

+

You can even use a workaround to specify TASKPM roles directly to users +without having an attribute in each LDAP user.

+

In this case, you will specify which users have the different TASKPM roles +by uid.

+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Property strategy
  • +
  • Group path:
  • +
  • Role property: uid
  • +
  • Role search query: [USER_ID]
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: admin1;it1
  • +
  • Web service reader: it1;it2
  • +
  • Web service writer: it1;it2
  • +
  • All projects read allowed: admin1
  • +
  • All projects edition allowed: admin1
  • +
  • Project creation allowed: worker1;worker2;worker3
  • +
+
+
+

Role Matching

+

At the bottom of this section, there is a table with all the TASKPM roles +and a text field next to each one. This is for matching roles. For instance, +if an administrator decides that the Administration TASKPM role matches +the admin and administrators roles of LDAP, the text field should contain: +"admin;administrators". The character for splitting roles is ";".

+
+

Note

+

If you want to specify that all users or all groups have one permission, you +can use an asterisk (*) as a wildcard to refer to them. For example, if +you want everyone to have the Project creation allowed role, you will +configure the role matching as follows:

+
    +
  • Project creation allowed: *
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt/17-1-project-dashboard.html b/libreplan-webapp/src/main/webapp/help/pt/17-1-project-dashboard.html new file mode 100644 index 000000000..5dc0899b7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/17-1-project-dashboard.html @@ -0,0 +1,173 @@ + + + + + + +Project Dashboard + + + +
+

Project Dashboard

+ + +

The project dashboard is a TASKPM perspective that contains a set of KPIs (Key Performance Indicators) to help assess a project's performance in terms of:

+
+
    +
  • Work progress
  • +
  • Cost
  • +
  • Status of allocated resources
  • +
  • Time constraints
  • +
+
+
+

Progress Performance Indicators

+

Two indicators are calculated: project progress percentage and task status.

+
+

Project Progress Percentage

+

This chart displays the overall progress of a project, comparing it to the expected progress based on the Gantt chart.

+

Progress is represented by two bars:

+
+
    +
  • Current Progress: The current progress based on the measurements taken.
  • +
  • Expected Progress: The progress the project should have achieved at this point, according to the project plan.
  • +
+
+

To view the actual measured value for each bar, hover the mouse cursor over the bar.

+

The overall project progress is estimated using several different methods, as there is no single, universally correct approach:

+
+
    +
  • Spreading Progress: This is the progress type set as the spreading progress at the project level. In this case, there is no way to calculate an expected value, and only the current bar is displayed.
  • +
  • By All Task Hours: The progress of all project tasks is averaged to calculate the overall value. This is a weighted average that considers the number of hours allocated to each task.
  • +
  • By Critical Path Hours: The progress of tasks belonging to any of the project's critical paths is averaged to obtain the overall value. This is a weighted average that considers the total allocated hours for each involved task.
  • +
  • By Critical Path Duration: The progress of tasks belonging to any of the critical paths is averaged using a weighted average, but this time considering the duration of each involved task instead of the assigned hours.
  • +
+
+
+
+

Task Status

+

A pie chart shows the percentage of project tasks in different states. The defined states are:

+
+
    +
  • Finished: Completed tasks, identified by a 100% progress value.
  • +
  • In Progress: Tasks that are currently underway. These tasks have a progress value other than 0% or 100%, or some work time has been tracked.
  • +
  • Ready to Start: Tasks with 0% progress, no tracked time, all their FINISH_TO_START dependent tasks are finished, and all their START_TO_START dependent tasks are finished or in progress.
  • +
  • Blocked: Tasks with 0% progress, no tracked time, and with previous dependent tasks that are neither in progress nor in the ready to start state.
  • +
+
+
+
+
+

Cost Indicators

+

Several Earned Value Management cost indicators are calculated:

+
+
    +
  • CV (Cost Variance): The difference between the Earned Value curve and the Actual Cost curve at the current moment. Positive values indicate a benefit, and negative values indicate a loss.

    +
  • +
  • ACWP (Actual Cost of Work Performed): The total number of hours tracked in the project at the current moment.

    +
  • +
  • CPI (Cost Performance Index): The Earned Value / Actual Cost ratio.

    +
    +
      +
    • > 100 is favorable, indicating that the project is under budget.
    • +
    • = 100 is also favorable, indicating that the cost is right on plan.
    • +
    • < 100 is unfavorable, indicating that the cost of completing the work is higher than planned.
    • +
    +
    +
  • +
  • ETC (Estimate To Complete): The time remaining to complete the project.

    +
  • +
  • BAC (Budget At Completion): The total amount of work allocated in the project plan.

    +
  • +
  • EAC (Estimate At Completion): The manager's projection of the total cost at project completion, based on the CPI.

    +
  • +
  • VAC (Variance At Completion): The difference between the BAC and the EAC.

    +
    +
      +
    • < 0 indicates that the project is over budget.
    • +
    • > 0 indicates that the project is under budget.
    • +
    +
    +
  • +
+
+
+
+

Resources

+

To analyze the project from the resources' point of view, two ratios and a histogram are provided.

+
+

Estimation Deviation on Completed Task Histogram

+

This histogram calculates the deviation between the number of hours allocated to the project tasks and the actual number of hours dedicated to them.

+

The deviation is calculated as a percentage for all finished tasks, and the calculated deviations are represented in a histogram. The vertical axis shows the number of tasks within each deviation interval. Six deviation intervals are dynamically calculated.

+
+
+

Overtime Ratio

+

This ratio summarizes the overload of resources allocated to the project tasks. It is calculated using the formula: overtime ratio = overload / (load + overload).

+
+
    +
  • = 0 is favorable, indicating that the resources are not overloaded.
  • +
  • > 0 is unfavorable, indicating that the resources are overloaded.
  • +
+
+
+
+

Availability Ratio

+

This ratio summarizes the free capacity of the resources currently allocated to the project. Therefore, it measures the resources' availability to receive more allocations without being overloaded. It is calculated as: availability ratio = (1 - load/capacity) * 100

+
+
    +
  • Possible values are between 0% (fully assigned) and 100% (not assigned).
  • +
+
+
+
+
+

Time

+

Two charts are included: a histogram for the time deviation in the finish time of project tasks and a pie chart for deadline violations.

+
+

Task Completion Lead or Lag

+

This calculation determines the difference in days between the planned end time for project tasks and their actual end time. The planned completion date is taken from the Gantt chart, and the actual finish date is taken from the last time tracked for the task.

+

The lag or lead in task completion is represented in a histogram. The vertical axis shows the number of tasks with a lead/lag day difference value corresponding to the abscissa days interval. Six dynamic task completion deviation intervals are calculated.

+
+
    +
  • Negative values mean finishing ahead of schedule.
  • +
  • Positive values mean finishing behind schedule.
  • +
+
+
+
+

Deadline Violations

+

This section calculates the margin with the project deadline, if set. Additionally, a pie chart shows the percentage of tasks meeting their deadline. Three types of values are included in the chart:

+
+
    +
  • Percentage of tasks without a deadline configured.
  • +
  • Percentage of ended tasks with an actual end date later than their deadline. The actual end date is taken from the last time tracked for the task.
  • +
  • Percentage of ended tasks with an actual end date earlier than their deadline.
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt/17-2-pipeline-dashboard.html b/libreplan-webapp/src/main/webapp/help/pt/17-2-pipeline-dashboard.html new file mode 100644 index 000000000..bb54ed657 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/17-2-pipeline-dashboard.html @@ -0,0 +1,33 @@ + + + + + + +Pipeline Dashboard + + + +
+

Pipeline Dashboard

+ +

The pipeline dashboard is a TASKPM perspective that lists all company projects in a table. This "pipeline" table has nine columns, each corresponding to a project status:

+
+
    +
  • PRE-SALES
  • +
  • OFFERED
  • +
  • OUTSOURCED
  • +
  • ACCEPTED
  • +
  • STARTED
  • +
  • ON HOLD
  • +
  • FINISHED
  • +
  • CANCELLED
  • +
  • ARCHIVED
  • +
+
+

Projects are listed by name in each column based on their current status.

+

A project's start date, end date, and current progress can be viewed in a tooltip popup by hovering the mouse cursor over a project's name.

+

Projects with an ARCHIVED status can be hidden by unchecking the "Show archived column data" checkbox.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt/17-dashboards.html b/libreplan-webapp/src/main/webapp/help/pt/17-dashboards.html new file mode 100644 index 000000000..3dc8f1af4 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/17-dashboards.html @@ -0,0 +1,24 @@ + + + + + + +Dashboards + + + +
+

Dashboards

+ +

TASKPM offers dashboard views for projects, providing an overview of their current status.

+

The two available dashboard views are:

+ +
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt/18-connectors.html b/libreplan-webapp/src/main/webapp/help/pt/18-connectors.html new file mode 100644 index 000000000..0f879b53d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/18-connectors.html @@ -0,0 +1,238 @@ + + + + + + +Connectors + + + +
+

Connectors

+ + +

Connectors are TASKPM client applications that can be used to communicate with (web) servers to retrieve data, process it, and store it. Currently, there are three connectors: the JIRA connector, the Tim Enterprise connector, and the E-mail connector.

+
+

Configuration

+

Connectors must be configured properly before they can be used. They can be configured from the "Main Settings" screen under the "Connectors" tab.

+

The connector screen includes:

+
    +
  • Pull-down list: A list of available connectors.
  • +
  • Properties edit screen: A property edit form for the selected connector.
  • +
  • Test connection button: A button to test the connection with the connector.
  • +
+

Select the connector you want to configure from the pull-down list of connectors. A property editor form for the selected connector will be displayed. In the property editor form, you can change the property values as needed and test your configurations using the "Test connection" button.

+
+

Note

+

The properties are configured with default values. The most important property is "Activated." By default, it is set to "N." This indicates that the connector will not be used unless you change the value to "Y" and save the changes.

+
+
+
+

JIRA Connector

+

JIRA is an issue and project tracking system.

+

The JIRA connector is an application that can be used to request JIRA web server data for JIRA issues and process the response. The request is based on JIRA labels. In JIRA, labels can be used to categorize issues. The request is structured as follows: retrieve all issues that are categorized by this label name.

+

The connector receives the response, which in this case is the issues, and converts them to TASKPM "Order elements" and "Time sheets."

+

The JIRA connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the JIRA connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the JIRA connector. The default is "N."
  • +
  • Server URL: The absolute path to the JIRA web server.
  • +
  • User name and password: The user credentials for authorization.
  • +
  • JIRA labels: comma-separated list of labels or URL: You can either enter the label URL or a comma-separated list of labels.
  • +
  • Hours type: The type of work hours. The default is "Default."
  • +
+
+

Note

+

JIRA labels: Currently, the JIRA web server does not support providing a list of all available labels. As a workaround, we have developed a simple PHP script that performs a simple SQL query in the JIRA database to fetch all distinct labels. You can either use this PHP script as the "JIRA labels URL" or enter the labels you want as comma-separated text in the "JIRA labels" field.

+
+

Finally, click the "Test connection" button to test if you can connect to the JIRA web server and that your configurations are correct.

+
+
+

Synchronization

+

From the project window, under "General data," you can start synchronizing order elements with JIRA issues.

+

Click the "Sync with JIRA" button to start the synchronization.

+
    +
  • If this is the first time, a pop-up window (with an auto-completed list of labels) will be displayed. In this window, you can select a label to synchronize with and click the "Start sync" button to begin the synchronization process, or click the "Cancel" button to cancel it.
  • +
  • If a label is already synchronized, the last synchronized date and the label will be displayed in the JIRA screen. In this case, no pop-up window to select a label will be displayed. Instead, the synchronization process will start directly for that displayed (already synchronized) label.
  • +
+
+

Note

+

The relationship between "Order" and "label" is one-to-one. Only one label can be synchronized with one "Order."

+
+
+

Note

+

Upon successful (re)synchronization, the information will be written to the database, and the JIRA screen will be updated with the last synchronized date and label.

+
+

(Re)synchronization is performed in two phases:

+
    +
  • Phase 1: Synchronizing order elements, including progress assignment and measurements.
  • +
  • Phase 2: Synchronizing time sheets.
  • +
+
+

Note

+

If Phase 1 fails, Phase 2 will not be performed, and no information will be written to the database.

+
+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+

Upon successful completion of synchronization, the result will be displayed in the "Work Breakdown Structure (WBS tasks)" tab of the "Project details" screen. In this UI, there are two changes from the standard WBS:

+
    +
  • The "Total task hours" column is unmodifiable (read-only) because the synchronization is one-way. Task hours can only be updated in the JIRA web server.
  • +
  • The "Code" column displays the JIRA issue keys, and they are also hyperlinks to the JIRA issues. Click the desired key if you want to go to the document for that key (JIRA issue).
  • +
+
+
+

Scheduling

+

Re-synchronization of JIRA issues can also be performed through the scheduler. Go to the "Job scheduling" screen. In that screen, you can configure a JIRA job to perform synchronization. The job searches for the last synchronized labels in the database and re-synchronizes them accordingly. See also the Scheduler Manual.

+
+
+
+

Tim Enterprise Connector

+

Tim Enterprise is a Dutch product from Aenova. It is a web-based application for the administration of time spent on projects and tasks.

+

The Tim connector is an application that can be used to communicate with the Tim Enterprise server to:

+
    +
  • Export all hours spent by a worker (user) on a project that could be registered in Tim Enterprise.
  • +
  • Import all rosters of the worker (user) to plan the resource effectively.
  • +
+

The Tim connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the Tim connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the Tim connector. The default is "N."
  • +
  • Server URL: The absolute path to the Tim Enterprise server.
  • +
  • User name and password: The user credentials for authorization.
  • +
  • Number of days timesheet to Tim: The number of days back you want to export the time sheets.
  • +
  • Number of days roster from Tim: The number of days forward you want to import the rosters.
  • +
  • Productivity factor: Effective working hours in percentage. The default is "100%."
  • +
  • Department IDs to import roster: Comma-separated department IDs.
  • +
+

Finally, click the "Test connection" button to test if you can connect to the Tim Enterprise server and that your configurations are correct.

+
+
+

Export

+

From the project window, under "General data," you can start exporting time sheets to the Tim Enterprise server.

+

Enter the "Tim product code" and click the "Export to Tim" button to start the export.

+

The Tim connector adds the following fields along with the product code:

+
    +
  • The worker/user's full name.
  • +
  • The date the worker worked on a task.
  • +
  • The effort, or hours worked on the task.
  • +
  • An option indicating whether Tim Enterprise should update the registration or insert a new one.
  • +
+

The Tim Enterprise response contains only a list of record IDs (integers). This makes it difficult to determine what went wrong, as the response list contains only numbers not related to the request fields. The export request (registration in Tim) is assumed to have succeeded if all the list entries do not contain "0" values. Otherwise, the export request has failed for those entries that contain "0" values. Therefore, you cannot see which request failed, as the list entries only contain the value "0." The only way to determine this is to examine the log file on the Tim Enterprise server.

+
+

Note

+

Upon successful exporting, the information will be written to the database, and the Tim screen will be updated with the last exported date and product code.

+
+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+
+
+

Scheduling Export

+

The export process can also be performed through the scheduler. Go to the "Job Scheduling" screen. In that screen, you can configure a Tim Export job. The job searches for the last exported time sheets in the database and re-exports them accordingly. See also the Scheduler manual.

+
+
+

Import

+

Importing rosters only works with the help of the scheduler. There is no user interface designed for this, as no input is needed from the user. Go to the "Job scheduling" screen and configure a Tim Import job. The job loops through all departments configured in the connector properties and imports all rosters for each department. See also the Scheduler Manual.

+

For import, the Tim connector adds the following fields in the request:

+
    +
  • Period: The period (date from - date to) for which you want to import the roster. This can be provided as a filter criterion.
  • +
  • Department: The department for which you want to import the roster. Departments are configurable.
  • +
  • The fields you are interested in (like Person info, RosterCategory, etc.) that the Tim server should include in its response.
  • +
+

The import response contains the following fields, which are sufficient to manage the exception days in TASKPM:

+
    +
  • Person info: Name and network name.
  • +
  • Department: The department the worker is working in.
  • +
  • Roster category: Information on the presence/absence (Aanwzig/afwezig) of the worker and the reason (TASKPM exception type) in case the worker is absent.
  • +
  • Date: The date the worker is present/absent.
  • +
  • Time: The start time of presence/absence, for example, 08:00.
  • +
  • Duration: The number of hours that the worker is present/absent.
  • +
+

By converting the import response to TASKPM's "Exception day," the following translations are taken into account:

+
    +
  • If the roster category contains the name "Vakantie," it will be translated to "RESOURCE HOLIDAY."
  • +
  • The roster category "Feestdag" will be translated to "BANK HOLIDAY."
  • +
  • All the rest, like "Jus uren," "PLB uren," etc., should be added to the "Calendar Exception Days" manually.
  • +
+

Moreover, in the import response, the roster is divided into two or three parts per day: for example, roster-morning, roster-afternoon, and roster-evening. However, TASKPM allows only one "Exception type" per day. The Tim connector is then responsible for merging these parts as one exception type. That is, the roster category with the highest duration is assumed to be a valid exception type, but the total duration is the sum of all durations of these category parts.

+

Contrary to TASKPM, in Tim Enterprise, the total duration in case the worker is on holiday means the worker is not available for that total duration. However, in TASKPM, if the worker is on holiday, the total duration should be zero. The Tim connector also handles this translation.

+
+
+
+

E-mail Connector

+

E-mail is a method of exchanging digital messages from an author to one or more recipients.

+

The E-mail connector can be used to set Simple Mail Transfer Protocol (SMTP) server connection properties.

+

The E-mail connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the E-mail connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the E-mail connector. The default is "N."
  • +
  • Protocol: The type of SMTP protocol.
  • +
  • Host: The absolute path to the SMTP server.
  • +
  • Port: The port of the SMTP server.
  • +
  • From address: The e-mail address of the message sender.
  • +
  • Username: The username for the SMTP server.
  • +
  • Password: The password for the SMTP server.
  • +
+

Finally, click the "Test connection" button to test if you can connect to the SMTP server and that your configurations are correct.

+
+
+

Edit E-mail Template

+

From the project window, under "Configuration" and then "Edit E-mail Templates," you can modify the e-mail templates for messages.

+

You can choose:

+
    +
  • Template language:
  • +
  • Template type:
  • +
  • E-mail subject:
  • +
  • Template contents:
  • +
+

You need to specify the language because the web application will send e-mails to users in the language they have chosen in their preferences. You need to choose the template type. The type is the user role, meaning that this e-mail will be sent only to users who are in the selected role (type). You need to set the e-mail subject. The subject is a brief summary of the topic of the message. You need to set the e-mail contents. This is any information that you want to send to the user. There are also some keywords that you may use in the message; the web application will parse them and set a new value instead of the keyword.

+
+
+

Scheduling E-mails

+

Sending e-mails can only be performed through the scheduler. Go to "Configuration," then the "Job Scheduling" screen. In that screen, you can configure an e-mail sending job. The job takes a list of e-mail notifications, gathers data, and sends it to the user's e-mail. See also the Scheduler manual.

+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt/19-scheduler.html b/libreplan-webapp/src/main/webapp/help/pt/19-scheduler.html new file mode 100644 index 000000000..8379b5b4c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/19-scheduler.html @@ -0,0 +1,107 @@ + + + + + + +Scheduler + + + +
+

Scheduler

+ + +

The scheduler is designed to schedule jobs dynamically. It is developed using the Spring Framework Quartz scheduler.

+

To use this scheduler effectively, the jobs (Quartz jobs) that should be scheduled must be created first. Then, these jobs can be added to the database, as all jobs to be scheduled are stored in the database.

+

When the scheduler starts, it reads the jobs to be scheduled or unscheduled from the database and schedules or removes them accordingly. Afterward, jobs can be added, updated, or removed dynamically using the Job scheduling user interface.

+
+

Note

+

The scheduler starts when the TASKPM web application starts and stops when the application stops.

+
+
+

Note

+

This scheduler supports only cron expressions to schedule jobs.

+
+

The criteria that the scheduler uses to schedule or remove jobs when it starts are as follows:

+

For all jobs:

+
    +
  • Schedule
      +
    • Job has a Connector, and the Connector is activated, and the job is allowed to be scheduled.
    • +
    • Job has no Connector and is allowed to be scheduled.
    • +
    +
  • +
  • Remove
      +
    • Job has a Connector, and the Connector is not activated.
    • +
    • Job has a Connector, and the Connector is activated, but the job is not allowed to be scheduled.
    • +
    • Job has no Connector and is not allowed to be scheduled.
    • +
    +
  • +
+
+

Note

+

Jobs cannot be rescheduled or unscheduled if they are currently running.

+
+
+

Job Scheduling List View

+

The Job scheduling list view allows users to:

+
    +
  • Add a new job.
  • +
  • Edit an existing job.
  • +
  • Remove a job.
  • +
  • Start a process manually.
  • +
+
+
+

Add or Edit Job

+

From the Job scheduling list view, click:

+
    +
  • Create to add a new job, or
  • +
  • Edit to modify the selected job.
  • +
+

Both actions will open a create/edit job form. The form displays the following properties:

+
    +
  • Fields:
      +
    • Job group: The name of the job group.
    • +
    • Job name: The name of the job.
    • +
    • Cron expression: A read-only field with an Edit button to open the cron expression input window.
    • +
    • Job class name: A pull-down list to select the job (an existing job).
    • +
    • Connector: A pull-down list to select a connector. This is not mandatory.
    • +
    • Schedule: A checkbox to indicate whether to schedule this job.
    • +
    +
  • +
  • Buttons:
      +
    • Save: To save or update a job in both the database and the scheduler. The user is then returned to the Job scheduling list view.
    • +
    • Save and continue: The same as "Save," but the user is not returned to the Job scheduling list view.
    • +
    • Cancel: Nothing is saved, and the user is returned to the Job scheduling list view.
    • +
    +
  • +
  • And a hint section about cron expression syntax.
  • +
+
+

Cron Expression Pop-up

+

To enter the cron expression correctly, a cron expression pop-up form is used. In this form, you can enter the desired cron expression. See also the hint about the cron expression. If you enter an invalid cron expression, you will be notified immediately.

+
+
+
+

Remove Job

+

Click the Remove button to delete the job from both the database and the scheduler. The success or failure of this action will be displayed.

+
+
+

Start Job Manually

+

As an alternative to waiting for the job to run as scheduled, you can click this button to start the process directly. Afterward, the success or failure information will be displayed in a pop-up window.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt/20-acerca-de.html b/libreplan-webapp/src/main/webapp/help/pt/20-acerca-de.html new file mode 100644 index 000000000..569e69e4d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/20-acerca-de.html @@ -0,0 +1,155 @@ + + + + + + +About + + + +
+

About

+ + + +
+

License

+

This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version.

+

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/>.

+
+
+

Written by

+
+

TASKPM Team

+ +
+
+

Previous Team Members

+ +
+
+

Translators

+ +
+
+

Contributors

+ +
+
+
+

Public Funding

+

This project currently accepts donations through the Open Collective organization <https://opencollective.com/TASKPM>.

+

Within the global scope that TASKPM is designed for regarding planning management, a project was developed to solve some common planning problems.

+

This project was partially financed by Xunta de Galicia, Ministerio de Industria, Turismo e Comercio, and by the European Union, Fondo Europeo de Desenvolvemento Rexional.

+
+images/logos.png +
+ +++ + + + +
scale:100
+

This project was part of Plan Avanza:

+
+images/avanza.png +
+ +++ + + + +
scale:100
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt/21-communications.html b/libreplan-webapp/src/main/webapp/help/pt/21-communications.html new file mode 100644 index 000000000..e4f5ea081 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/21-communications.html @@ -0,0 +1,18 @@ + + + + + + +Subcontractor Work Description + + + +
+

Subcontractor Work Description

+ +

While it is possible to leave this field empty, doing so can lead to errors in communication functionality when multiple empty fields exist.

+

Therefore, we strongly recommend always using a unique work description.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt/22-pert.html b/libreplan-webapp/src/main/webapp/help/pt/22-pert.html new file mode 100644 index 000000000..c27af3c56 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/22-pert.html @@ -0,0 +1,17 @@ + + + + + + +PERT Chart + + + +
+

PERT Chart

+ +

Unlike Libreplan, which was focused on the GANNT chart and did not have a PERT chart, TASKPM does have a PERT chart and is more focused on it.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt/23-subnets.html b/libreplan-webapp/src/main/webapp/help/pt/23-subnets.html new file mode 100644 index 000000000..42cd9e634 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/23-subnets.html @@ -0,0 +1,17 @@ + + + + + + +Task Subnets + + + +
+

Task Subnets

+ +

Unlike Libreplan, which only had a single level of planning, the whole project, TASKPM has subnetworks of activities which can be embedded in a master project.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/advance-assignment.png b/libreplan-webapp/src/main/webapp/help/pt/images/advance-assignment.png new file mode 100644 index 000000000..aeb55b2b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/advance-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/asignacion-especifica.png b/libreplan-webapp/src/main/webapp/help/pt/images/asignacion-especifica.png new file mode 100644 index 000000000..9ee94d9c6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/asignacion-especifica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/asignacion-xenerica.png b/libreplan-webapp/src/main/webapp/help/pt/images/asignacion-xenerica.png new file mode 100644 index 000000000..d2a16597f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/asignacion-xenerica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/avance.png b/libreplan-webapp/src/main/webapp/help/pt/images/avance.png new file mode 100644 index 000000000..ee289e19c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/avanza.png b/libreplan-webapp/src/main/webapp/help/pt/images/avanza.png new file mode 100644 index 000000000..a51893f80 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/avanza.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/calendar-administration.png b/libreplan-webapp/src/main/webapp/help/pt/images/calendar-administration.png new file mode 100644 index 000000000..bb4e17032 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/calendar-administration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/calendar-create-derived.png b/libreplan-webapp/src/main/webapp/help/pt/images/calendar-create-derived.png new file mode 100644 index 000000000..9f01f2c33 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/calendar-create-derived.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/calendar-edition.png b/libreplan-webapp/src/main/webapp/help/pt/images/calendar-edition.png new file mode 100644 index 000000000..a98cc4454 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/calendar-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/calendar-exceptions.png b/libreplan-webapp/src/main/webapp/help/pt/images/calendar-exceptions.png new file mode 100644 index 000000000..c2a53a684 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/calendar-exceptions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/category-cost-edit.png b/libreplan-webapp/src/main/webapp/help/pt/images/category-cost-edit.png new file mode 100644 index 000000000..1755ee79e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/category-cost-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/category-cost-list.png b/libreplan-webapp/src/main/webapp/help/pt/images/category-cost-list.png new file mode 100644 index 000000000..1d7ff838c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/category-cost-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/company_view.png b/libreplan-webapp/src/main/webapp/help/pt/images/company_view.png new file mode 100644 index 000000000..c3a7631e6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/company_view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/contraste-avance.png b/libreplan-webapp/src/main/webapp/help/pt/images/contraste-avance.png new file mode 100644 index 000000000..831cceac3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/contraste-avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/default-calendar.png b/libreplan-webapp/src/main/webapp/help/pt/images/default-calendar.png new file mode 100644 index 000000000..6fd379d08 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/default-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/edicion-criterio.png b/libreplan-webapp/src/main/webapp/help/pt/images/edicion-criterio.png new file mode 100644 index 000000000..2b879ced5 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/edicion-criterio.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/hour-type-edit.png b/libreplan-webapp/src/main/webapp/help/pt/images/hour-type-edit.png new file mode 100644 index 000000000..4917b08a8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/hour-type-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/hour-type-list.png b/libreplan-webapp/src/main/webapp/help/pt/images/hour-type-list.png new file mode 100644 index 000000000..1872eb4f7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/hour-type-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/lista-criterios.png b/libreplan-webapp/src/main/webapp/help/pt/images/lista-criterios.png new file mode 100644 index 000000000..a2e7d03cb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/lista-criterios.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/logo.png b/libreplan-webapp/src/main/webapp/help/pt/images/logo.png new file mode 100644 index 000000000..4e7d02651 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/logo.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/logos.png b/libreplan-webapp/src/main/webapp/help/pt/images/logos.png new file mode 100644 index 000000000..7314a0759 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/logos.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/machine-calendar.png b/libreplan-webapp/src/main/webapp/help/pt/images/machine-calendar.png new file mode 100644 index 000000000..a725f67a2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/machine-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/machine-configuration.png b/libreplan-webapp/src/main/webapp/help/pt/images/machine-configuration.png new file mode 100644 index 000000000..0777473fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/machine-configuration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/machine-costcategory.png b/libreplan-webapp/src/main/webapp/help/pt/images/machine-costcategory.png new file mode 100644 index 000000000..b8414eac6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/machine-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/machine-criterions.png b/libreplan-webapp/src/main/webapp/help/pt/images/machine-criterions.png new file mode 100644 index 000000000..7c270bf35 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/machine-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/machine-data.png b/libreplan-webapp/src/main/webapp/help/pt/images/machine-data.png new file mode 100644 index 000000000..5edb47d12 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/machine-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/manage-user-profile.png b/libreplan-webapp/src/main/webapp/help/pt/images/manage-user-profile.png new file mode 100644 index 000000000..6a86064e2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/manage-user-profile.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/manage-user.png b/libreplan-webapp/src/main/webapp/help/pt/images/manage-user.png new file mode 100644 index 000000000..df59f1b7c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/manage-user.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/material.png b/libreplan-webapp/src/main/webapp/help/pt/images/material.png new file mode 100644 index 000000000..a77b5aa41 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/menu.png b/libreplan-webapp/src/main/webapp/help/pt/images/menu.png new file mode 100644 index 000000000..f4eec5250 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/menu.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/new-resource-calendar.png b/libreplan-webapp/src/main/webapp/help/pt/images/new-resource-calendar.png new file mode 100644 index 000000000..9040e0bc0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/new-resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/order-assigned-hours.png b/libreplan-webapp/src/main/webapp/help/pt/images/order-assigned-hours.png new file mode 100644 index 000000000..4fd629386 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/order-assigned-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/order-criterions.png b/libreplan-webapp/src/main/webapp/help/pt/images/order-criterions.png new file mode 100644 index 000000000..e59bd833f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/order-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/order-edition.png b/libreplan-webapp/src/main/webapp/help/pt/images/order-edition.png new file mode 100644 index 000000000..ff67134db Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/order-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/order-element-criterion.png b/libreplan-webapp/src/main/webapp/help/pt/images/order-element-criterion.png new file mode 100644 index 000000000..f167979b0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/order-element-criterion.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/order-element-edition.png b/libreplan-webapp/src/main/webapp/help/pt/images/order-element-edition.png new file mode 100644 index 000000000..66e5e8602 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/order-element-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/order-element-hours.png b/libreplan-webapp/src/main/webapp/help/pt/images/order-element-hours.png new file mode 100644 index 000000000..06cc1dc37 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/order-element-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/order-element-material-assign.png b/libreplan-webapp/src/main/webapp/help/pt/images/order-element-material-assign.png new file mode 100644 index 000000000..90f973766 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/order-element-material-assign.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/order-element-material-search.png b/libreplan-webapp/src/main/webapp/help/pt/images/order-element-material-search.png new file mode 100644 index 000000000..550f1d7fa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/order-element-material-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/order-element-quality.png b/libreplan-webapp/src/main/webapp/help/pt/images/order-element-quality.png new file mode 100644 index 000000000..3272ce70e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/order-element-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/order-element-tags.png b/libreplan-webapp/src/main/webapp/help/pt/images/order-element-tags.png new file mode 100644 index 000000000..e43a7d795 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/order-element-tags.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/order-elements-list.png b/libreplan-webapp/src/main/webapp/help/pt/images/order-elements-list.png new file mode 100644 index 000000000..271ac9bf6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/order-elements-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/order-labels.png b/libreplan-webapp/src/main/webapp/help/pt/images/order-labels.png new file mode 100644 index 000000000..076e0a745 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/order-labels.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/order-material.png b/libreplan-webapp/src/main/webapp/help/pt/images/order-material.png new file mode 100644 index 000000000..9197679e7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/order-material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/order-quality.png b/libreplan-webapp/src/main/webapp/help/pt/images/order-quality.png new file mode 100644 index 000000000..ee9e9027e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/order-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/order_list.png b/libreplan-webapp/src/main/webapp/help/pt/images/order_list.png new file mode 100644 index 000000000..72e70f3b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/order_list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/planning-view.png b/libreplan-webapp/src/main/webapp/help/pt/images/planning-view.png new file mode 100644 index 000000000..de74811eb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/planning-view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/quality.png b/libreplan-webapp/src/main/webapp/help/pt/images/quality.png new file mode 100644 index 000000000..1850f51b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/resource-assignment-generic.png b/libreplan-webapp/src/main/webapp/help/pt/images/resource-assignment-generic.png new file mode 100644 index 000000000..3519a5087 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/resource-assignment-generic.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/resource-assignment-planning.png b/libreplan-webapp/src/main/webapp/help/pt/images/resource-assignment-planning.png new file mode 100644 index 000000000..c4233780d Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/resource-assignment-planning.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/resource-assignment-search.png b/libreplan-webapp/src/main/webapp/help/pt/images/resource-assignment-search.png new file mode 100644 index 000000000..cae142d81 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/resource-assignment-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/resource-assignment-specific.png b/libreplan-webapp/src/main/webapp/help/pt/images/resource-assignment-specific.png new file mode 100644 index 000000000..8f7b1cba2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/resource-assignment-specific.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/resource-assignment.png b/libreplan-webapp/src/main/webapp/help/pt/images/resource-assignment.png new file mode 100644 index 000000000..427d25b79 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/resource-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/resource-calendar.png b/libreplan-webapp/src/main/webapp/help/pt/images/resource-calendar.png new file mode 100644 index 000000000..749c7b829 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/resource-load.png b/libreplan-webapp/src/main/webapp/help/pt/images/resource-load.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/resource-load.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/resources_global.png b/libreplan-webapp/src/main/webapp/help/pt/images/resources_global.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/resources_global.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/stretches.png b/libreplan-webapp/src/main/webapp/help/pt/images/stretches.png new file mode 100644 index 000000000..d661a63f6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/stretches.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/tag-types-edition.png b/libreplan-webapp/src/main/webapp/help/pt/images/tag-types-edition.png new file mode 100644 index 000000000..d366c09c2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/tag-types-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/tag-types-list.png b/libreplan-webapp/src/main/webapp/help/pt/images/tag-types-list.png new file mode 100644 index 000000000..e7de5048c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/tag-types-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/tipos-avances.png b/libreplan-webapp/src/main/webapp/help/pt/images/tipos-avances.png new file mode 100644 index 000000000..bb417f52c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/tipos-avances.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/virtual-resources.png b/libreplan-webapp/src/main/webapp/help/pt/images/virtual-resources.png new file mode 100644 index 000000000..3a54f95d3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/virtual-resources.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/work-report-hours.png b/libreplan-webapp/src/main/webapp/help/pt/images/work-report-hours.png new file mode 100644 index 000000000..568e9fed6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/work-report-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/work-report-type.png b/libreplan-webapp/src/main/webapp/help/pt/images/work-report-type.png new file mode 100644 index 000000000..2549d8b5e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/work-report-type.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/work-report-types.png b/libreplan-webapp/src/main/webapp/help/pt/images/work-report-types.png new file mode 100644 index 000000000..986f705aa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/work-report-types.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/worker-calendar.png b/libreplan-webapp/src/main/webapp/help/pt/images/worker-calendar.png new file mode 100644 index 000000000..1227969b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/worker-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/worker-costcategory.png b/libreplan-webapp/src/main/webapp/help/pt/images/worker-costcategory.png new file mode 100644 index 000000000..f330db68c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/worker-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/worker-criterions.png b/libreplan-webapp/src/main/webapp/help/pt/images/worker-criterions.png new file mode 100644 index 000000000..a131a29fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/worker-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/images/worker-personal-data.png b/libreplan-webapp/src/main/webapp/help/pt/images/worker-personal-data.png new file mode 100644 index 000000000..6a5033ba8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt/images/worker-personal-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt/index.html b/libreplan-webapp/src/main/webapp/help/pt/index.html new file mode 100644 index 000000000..7a9b74000 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/index.html @@ -0,0 +1,47 @@ + + + + + + +LibrePlan: User documentation + + + +
+

LibrePlan: User documentation

+ +images/logo.png +

Following document contains necessary help for using LibrePlan, the opensource web application for project planning.

+

This document is divided in three main sections:

+

First, global goals and behaviour.

+

Second, basic entities to understand the minimum concepts to use LibrePlan.

+

Finally, complete processes description to create orders, projects, project planning, resources assignment, advance assignment and result extraction.

+
    +
  1. Introduction
  2. +
  3. Criteria
  4. +
  5. Calendars
  6. +
  7. Progress
  8. +
  9. Resource Management
  10. +
  11. Orders and Order Elements
  12. +
  13. Task Planning
  14. +
  15. Resource Assignment
  16. +
  17. Work Reports
  18. +
  19. Labels
  20. +
  21. Materials Management
  22. +
  23. Quality Forms
  24. +
  25. User Management
  26. +
  27. Cost management
  28. +
  29. Reports
  30. +
  31. LDAP Configuration
  32. +
  33. Dashboards
  34. +
  35. Connectors
  36. +
  37. Scheduler
  38. +
  39. About
  40. +
  41. Subcontractor Work Description
  42. +
  43. PERT Chart
  44. +
  45. Task Subnets
  46. +
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt/lsr.css b/libreplan-webapp/src/main/webapp/help/pt/lsr.css new file mode 100644 index 000000000..ced6c967a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt/lsr.css @@ -0,0 +1,250 @@ +/* +Author: Peter Parente +Date: 2008/01/22 +Version: 1.0 +Copyright: This stylesheet has been placed in the public domain - free to edit and use for all uses. +*/ + +body { + font: 0.8em Verdana, Tahoma, sans-serif; + background: #ffffff; + color: black; + margin: 2em; +} + +p.topic-title { + font-weight: bold; +} + +table.docinfo { + text-align: left; + margin: 2em 0; +} + +a[href] { + color: #436976; + background-color: transparent; +} + +a.toc-backref { + text-decoration: none; +} + +h1 a[href] { + color: #003a6b; + text-decoration: none; + background-color: transparent; +} + +a.strong { + font-weight: bold; +} + +img { + margin: 0; + border: 0; +} + +p { + margin: 0.5em 0 1em 0; + line-height: 1.5em; +} + +p a:visited { + color: purple; + background-color: transparent; +} + +p a:active { + color: red; + background-color: transparent; +} + +a:hover { + text-decoration: none; +} + +p img { + border: 0; + margin: 0; +} + +p.rubric { + font-weight: bold; + font-style: italic; +} + +h1.title { + color: #003a6b; + font-size: 250%; + margin-bottom: 0; +} + +h2.subtitle { + color: #003a6b; + border-bottom: 0; +} + +h1, h2, h3, h4, h5, h6 { + color: #555; + background-color: transparent; + margin: 0; + padding-top: 0.5em; +} + +h1 { + font-size: 160%; + margin-bottom: 0.5em; + border-bottom: 2px solid #aaa; +} + +h2 { + font-size: 140%; + margin-bottom: 0.5em; + border-bottom: 1px solid #aaa; +} + +h3 { + font-size: 130%; + margin-bottom: 0.5em; +} + +h4 { + font-size: 110%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h5 { + font-size: 105%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h6 { + font-size: 100%; + font-weight: bold; + margin-bottom: 0.5em; +} + +dt { + font-style: italic; +} + +dd { + margin-bottom: 1.5em; +} + +div.admonition, div.note, div.tip, div.caution, div.important, div.warning { + margin: 2em 2em; + padding: 0 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +div.important { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +div.caution { + background: transparent url('../images/caution.png') 10px 2px no-repeat; +} + +div.note { + background: transparent url('../images/note.png') 10px 2px no-repeat; +} + +div.tip { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-example { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-critical-example { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +p.admonition-title { + font-weight: bold; + border-bottom: 1px solid #aaa; + padding-left: 30px; +} + +table.docutils { + text-align: left; + border: 1px solid gray; + border-collapse: collapse; + width: 100%; + margin: 1.5em 0; +} + +table.docutils caption { + font-style: italic; +} + +table.docutils td, table.docutils th { + padding: 0.25em 0.5em; +} + +table.docutils th { + background-color: #dddddd; +} + +div.sidebar { + width: 33%; + float: right; + margin: 0 2em; + padding: 0 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +p.sidebar-title { + margin-bottom: 0; + color: #003a6b; + border-bottom: 1px solid #aaa; + font-weight: bold; +} + +p.sidebar-subtitle { + margin-top: 0; + font-style: italic; + color: #003a6b; +} + +div.figure { + text-align: center; +} + +div.figure img { + background: #f8f8f8; + padding: 0.25em; + border: 1px solid #888; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +div.figure img:hover { + background: #e0e0e0; +} + +div.figure p.caption { + text-align: center; + margin-top: 0.1em; + font-style: italic; + color: #444; +} + +pre.literal-block { + padding: 0.15em; + background: #f8f8f8; + border: 1px solid #dfdfdf; + border-left: 0.25em solid #dfdfdf +} diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/01-introducion.html b/libreplan-webapp/src/main/webapp/help/pt_BR/01-introducion.html new file mode 100644 index 000000000..51e520ad7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/01-introducion.html @@ -0,0 +1,132 @@ + + + + + + +Introduction + + + +
+

Introduction

+ + +

This document describes the features of TASKPM and provides user information on how to configure and use the application.

+

TASKPM is an open-source web application for project planning. Its primary goal is to provide a comprehensive solution for company project management. For any specific information you may need about this software, please contact the development team at http://www.libreplan.com/contact/

+
+images/company_view.png +

Company Overview

+
+
+

Company Overview and View Management

+

As shown in the program's main screen (see the previous screenshot) and the company overview, users can view a list of planned projects. This allows them to understand the company's overall status regarding orders and resource utilization. The company overview offers three distinct views:

+
    +
  • Planning View: This view combines two perspectives:

    +
    +
      +
    • Order and Time Tracking: Each project is represented by a Gantt chart, indicating the project's start and end dates. This information is displayed alongside the agreed-upon deadline. A comparison is then made between the percentage of progress achieved and the actual time dedicated to each project. This provides a clear picture of the company's performance at any given time. This view is the program's default landing page.
    • +
    • Company Resource Utilization Graph: This graph displays information on resource allocation across projects, providing a summary of the entire company's resource usage. Green indicates that resource allocation is below 100% of capacity. The black line represents the total available resource capacity. Yellow indicates that resource allocation exceeds 100%. It's possible to have under-allocation overall while simultaneously experiencing over-allocation for specific resources.
    • +
    +
    +
  • +
  • Resource Load View: This screen displays a list of the company's workers and their specific task allocations, or generic allocations based on defined criteria. To access this view, click on Overall load of resources. See the following image for an example.

    +
  • +
  • Orders Administration View: This screen displays a list of company orders, allowing users to perform the following actions: filter, edit, delete, visualize planning, or create a new order. To access this view, click on Order list.

    +
  • +
+
+images/resources_global.png +

Resource Overview

+
+
+images/order_list.png +

Work Breakdown Structure

+
+

The view management described above for the company overview is very similar to the management available for a single project. A project can be accessed in several ways:

+
    +
  • Right-click on the Gantt chart for the order and select Plan.
  • +
  • Access the order list and click on the Gantt diagram icon.
  • +
  • Create a new order and change the current order view.
  • +
+

The program offers the following views for an order:

+
    +
  • Planning View: This view allows users to visualize task planning, dependencies, milestones, and more. See the Planning section for further details.
  • +
  • Resource Load View: This view allows users to check the designated resource load for a project. The color code is consistent with the company overview: green for a load less than 100%, yellow for a load equal to 100%, and red for a load over 100%. The load may originate from a specific task or a set of criteria (generic allocation).
  • +
  • Editing Order View: This view allows users to modify the details of the order. See the Orders section for more information.
  • +
  • Advanced Resource Allocation View: This view allows users to allocate resources with advanced options, such as specifying hours per day or the allocated functions to be performed. See the Resource allocation section for more information.
  • +
+
+
+

What Makes TASKPM Useful?

+

TASKPM is a general-purpose planning tool developed to address challenges in industrial project planning that were not adequately covered by existing tools. The development of TASKPM was also motivated by the desire to provide a free, open-source, and entirely web-based alternative to proprietary planning tools.

+

The core concepts underpinning the program are as follows:

+
    +
  • Company and Multi-Project Overview: TASKPM is specifically designed to provide users with information about multiple projects being carried out within a company. Therefore, it is inherently a multi-project program. The program's focus is not limited to individual projects, although specific views for individual projects are also available.
  • +
  • View Management: The company overview, or multi-project view, is accompanied by various views of the stored information. For example, the company overview allows users to view orders and compare their status, view the company's overall resource load, and manage orders. Users can also access the planning view, resource load view, advanced resource allocation view, and editing order view for individual projects.
  • +
  • Criteria: Criteria are a system entity that enables the classification of both resources (human and machine) and tasks. Resources must meet certain criteria, and tasks require specific criteria to be fulfilled. This is one of the program's most important features, as criteria form the basis of generic allocation and address a significant challenge in the industry: the time-consuming nature of human resource management and the difficulty of long-term company load estimations.
  • +
  • Resources: There are two types of resources: human and machine. Human resources are the company's workers, used for planning, monitoring, and controlling the company's workload. Machine resources, dependent on the people who operate them, function similarly to human resources.
  • +
  • Resource Allocation: A key feature of the program is the ability to designate resources in two ways: specifically and generically. Generic allocation is based on the criteria required to complete a task and must be fulfilled by resources capable of meeting those criteria. To understand generic allocation, consider this example: John Smith is a welder. Typically, John Smith would be specifically assigned to a planned task. However, TASKPM offers the option of selecting any welder within the company, without needing to specify that John Smith is the assigned person.
  • +
  • Company Load Control: The program allows for easy control of the company's resource load. This control extends to both the mid-term and long-term, as current and future projects can be managed within the program. TASKPM provides graphs that visually represent resource utilization.
  • +
  • Labels: Labels are used to categorize project tasks. With these labels, users can group tasks by concept, allowing for later review as a group or after filtering.
  • +
  • Filters: Because the system naturally includes elements that label or characterize tasks and resources, criteria filters or labels can be used. This is very useful for reviewing categorized information or generating specific reports based on criteria or labels.
  • +
  • Calendars: Calendars define the available productive hours for different resources. Users can create general company calendars or define more specific calendars, allowing for the creation of calendars for individual resources and tasks.
  • +
  • Orders and Order Elements: Work requested by clients is treated as an order within the application, structured into order elements. The order and its elements follow a hierarchical structure with x levels. This element tree forms the basis for work planning.
  • +
  • Progress: The program can manage various types of progress. A project's progress can be measured as a percentage, in units, against the agreed budget, and more. The responsibility for determining which type of progress to use for comparison at higher project levels lies with the planning manager.
  • +
  • Tasks: Tasks are the fundamental planning elements within the program. They are used to schedule work to be carried out. Key characteristics of tasks include: dependencies between tasks, and the potential requirement for specific criteria to be met before resources can be allocated.
  • +
  • Work Reports: These reports, submitted by the company's workers, detail the hours worked and the tasks associated with those hours. This information allows the system to calculate the actual time taken to complete a task compared to the budgeted time. Progress can then be compared against the actual hours used.
  • +
+

In addition to the core functions, TASKPM offers other features that distinguish it from similar programs:

+
    +
  • Integration with ERP: The program can directly import information from company ERP systems, including orders, human resources, work reports, and specific criteria.
  • +
  • Version Management: The program can manage multiple planning versions, while still allowing users to review the information from each version.
  • +
  • History Management: The program does not delete information; it only marks it as invalid. This allows users to review historical information using date filters.
  • +
+
+
+

Usability Conventions

+
+

Information About Forms

+

Before describing the various functions associated with the most important modules, we need to explain the general navigation and form behavior.

+

There are essentially three types of editing forms:

+
    +
  • Forms with a *Return* button: These forms are part of a larger context, and the changes made are stored in memory. The changes are only applied when the user explicitly saves all the details on the screen from which the form originated.
  • +
  • Forms with *Save* and *Close* buttons: These forms allow for two actions. The first saves the changes and closes the current window. The second closes the window without saving any changes.
  • +
  • Forms with *Save and continue*, *Save*, and *Close* buttons: These forms allow for three actions. The first saves the changes and keeps the current form open. The second saves the changes and closes the form. The third closes the window without saving any changes.
  • +
+
+
+

Standard Icons and Buttons

+
    +
  • Editing: In general, records in the program can be edited by clicking on an icon that looks like a pencil on a white notebook.
  • +
  • Left Indent: These operations are generally used for elements within a tree structure that need to be moved to a deeper level. This is done by clicking on the icon that looks like a green arrow pointing to the right.
  • +
  • Right Indent: These operations are generally used for elements within a tree structure that need to be moved to a higher level. This is done by clicking on the icon that looks like a green arrow pointing to the left.
  • +
  • Deleting: Users can delete information by clicking on the trash can icon.
  • +
  • Search: The magnifying glass icon indicates that the text field to its left is used for searching for elements.
  • +
+
+
+

Tabs

+

The program uses tabs to organize content editing and administration forms. This method is used to divide a comprehensive form into different sections, accessible by clicking on the tab names. The other tabs retain their current status. In all cases, the save and cancel options apply to all sub-forms within the different tabs.

+
+
+

Explicit Actions and Context Help

+

The program includes components that provide additional descriptions of elements when the mouse hovers over them for one second. The actions that the user can perform are indicated on the button labels, in the help texts associated with them, in the browsing menu options, and in the context menus that appear when right-clicking in the planner area. Furthermore, shortcuts are provided for the main operations, such as double-clicking on listed elements or using key events with the cursor and the Enter key to add elements when navigating through forms.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/02-criterios.html b/libreplan-webapp/src/main/webapp/help/pt_BR/02-criterios.html new file mode 100644 index 000000000..42fad10d3 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/02-criterios.html @@ -0,0 +1,69 @@ + + + + + + +Criteria + + + +
+

Criteria

+ +
+

Contents

+ +
+

Criteria are elements used within the program to categorize both resources and tasks. Tasks require specific criteria, and resources must meet those criteria.

+

Here's an example of how criteria are used: A resource is assigned the criterion "welder" (meaning the resource fulfills the "welder" category), and a task requires the "welder" criterion to be completed. Consequently, when resources are allocated to tasks using generic allocation (as opposed to specific allocation), workers with the "welder" criterion will be considered. For more information on the different types of allocation, refer to the chapter on resource allocation.

+

The program allows for several operations involving criteria:

+
    +
  • Criteria administration
  • +
  • Assigning criteria to resources
  • +
  • Assigning criteria to tasks
  • +
  • Filtering entities based on criteria. Tasks and order items can be filtered by criteria to perform various operations within the program.
  • +
+

This section will only explain the first function, criteria administration. The two types of allocation will be covered later: resource allocation in the "Resource Management" chapter, and filtering in the "Task Planning" chapter.

+
+

Criteria Administration

+

Criteria administration can be accessed through the administration menu:

+
+images/menu.png +

First-Level Menu Tabs

+
+

The specific operation for managing criteria is Manage criteria. This operation allows you to list the criteria available in the system.

+
+images/lista-criterios.png +

List of Criteria

+
+

You can access the create/edit criterion form by clicking the Create button. To edit an existing criterion, click the edit icon.

+
+images/edicion-criterio.png +

Editing Criteria

+
+

The criteria editing form, as shown in the previous image, allows you to perform the following operations:

+
    +
  • Edit the criterion's name.
  • +
  • Specify whether multiple values can be assigned simultaneously or only one value for the selected criterion type. For example, a resource could fulfill two criteria, "welder" and "lathe operator."
  • +
  • Specify the criterion type:
      +
    • Generic: A criterion that can be used for both machines and workers.
    • +
    • Worker: A criterion that can only be used for workers.
    • +
    • Machine: A criterion that can only be used for machines.
    • +
    +
  • +
  • Indicate whether the criterion is hierarchical. Sometimes, criteria need to be treated hierarchically. For example, assigning a criterion to an element does not automatically assign it to elements derived from it. A clear example of a hierarchical criterion is "location." For instance, a person designated with the location "Galicia" will also belong to "Spain."
  • +
  • Indicate whether the criterion is authorized. This is how users deactivate criteria. Once a criterion has been created and used in historical data, it cannot be changed. Instead, it can be deactivated to prevent it from appearing in selection lists.
  • +
  • Describe the criterion.
  • +
  • Add new values. A text entry field with the New criterion button is located in the second part of the form.
  • +
  • Edit the names of existing criteria values.
  • +
  • Move criteria values up or down in the list of current criteria values.
  • +
  • Remove a criterion value from the list.
  • +
+

The criteria administration form follows the form behavior described in the introduction, offering three actions: Save, Save and Close, and Close.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/03-calendarios.html b/libreplan-webapp/src/main/webapp/help/pt_BR/03-calendarios.html new file mode 100644 index 000000000..0d0bbf0d5 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/03-calendarios.html @@ -0,0 +1,187 @@ + + + + + + +Calendars + + + +
+

Calendars

+ + +

Calendars are entities within the program that define the working capacity of resources. A calendar consists of a series of days throughout the year, with each day divided into available working hours.

+

For example, a public holiday might have 0 available working hours. Conversely, a typical workday might have 8 hours designated as available working time.

+

There are two primary ways to define the number of working hours in a day:

+
    +
  • By Weekday: This method sets a standard number of working hours for each day of the week. For example, Mondays might typically have 8 working hours.
  • +
  • By Exception: This method allows for specific deviations from the standard weekday schedule. For example, Monday, January 30th, might have 10 working hours, overriding the standard Monday schedule.
  • +
+
+

Calendar Administration

+

The calendar system is hierarchical, allowing you to create base calendars and then derive new calendars from them, forming a tree structure. A calendar derived from a higher-level calendar will inherit its daily schedules and exceptions unless explicitly modified. To effectively manage calendars, it's important to understand the following concepts:

+
    +
  • Day Independence: Each day is treated independently, and each year has its own set of days. For example, if December 8th, 2009, is a public holiday, this does not automatically mean that December 8th, 2010, is also a public holiday.
  • +
  • Weekday-Based Working Days: Standard working days are based on weekdays. For example, if Mondays typically have 8 working hours, then all Mondays in all weeks of all years will have 8 available hours unless an exception is defined.
  • +
  • Exceptions and Exception Periods: You can define exceptions or exception periods to deviate from the standard weekday schedule. For example, you can specify a single day or a range of days with a different number of available working hours than the general rule for those weekdays.
  • +
+
+images/calendar-administration.png +

Calendar Administration

+
+

Calendar administration is accessible through the "Administration" menu. From there, users can perform the following actions:

+
    +
  1. Create a new calendar from scratch.
  2. +
  3. Create a calendar derived from an existing one.
  4. +
  5. Create a calendar as a copy of an existing one.
  6. +
  7. Edit an existing calendar.
  8. +
+
+

Creating a New Calendar

+

To create a new calendar, click the "Create" button. The system will display a form where you can configure the following:

+
    +
  • Select the Tab: Choose the tab you want to work on:
      +
    • Marking Exceptions: Define exceptions to the standard schedule.
    • +
    • Working Hours per Day: Define the standard working hours for each weekday.
    • +
    +
  • +
  • Marking Exceptions: If you select the "Marking Exceptions" option, you can:
      +
    • Select a specific day on the calendar.
    • +
    • Select the type of exception. The available types are: holiday, illness, strike, public holiday, and working holiday.
    • +
    • Select the end date of the exception period. (This field does not need to be changed for single-day exceptions.)
    • +
    • Define the number of working hours during the days of the exception period.
    • +
    • Delete previously defined exceptions.
    • +
    +
  • +
  • Working Hours per Day: If you select the "Working Hours per Day" option, you can:
      +
    • Define the available working hours for each weekday (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, and Sunday).
    • +
    • Define different weekly hour distributions for future periods.
    • +
    • Delete previously defined hour distributions.
    • +
    +
  • +
+

These options allow users to fully customize calendars according to their specific needs. Click the "Save" button to store any changes made to the form.

+
+images/calendar-edition.png +

Editing Calendars

+
+
+images/calendar-exceptions.png +

Adding an Exception to a Calendar

+
+
+
+

Creating Derived Calendars

+

A derived calendar is created based on an existing calendar. It inherits all the features of the original calendar, but you can modify it to include different options.

+

A common use case for derived calendars is when you have a general calendar for a country, such as Spain, and you need to create a derived calendar to include additional public holidays specific to a region, such as Galicia.

+

It's important to note that any changes made to the original calendar will automatically propagate to the derived calendar, unless a specific exception has been defined in the derived calendar. For example, the calendar for Spain might have an 8-hour working day on May 17th. However, the calendar for Galicia (a derived calendar) might have no working hours on that same day because it's a regional public holiday. If the Spanish calendar is later changed to have 4 available working hours per day for the week of May 17th, the Galician calendar will also change to have 4 available working hours for every day in that week, except for May 17th, which will remain a non-working day due to the defined exception.

+
+images/calendar-create-derived.png +

Creating a Derived Calendar

+
+

To create a derived calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Calendar administration option.
  • +
  • Select the calendar you want to use as the basis for the derived calendar and click the "Create" button.
  • +
  • The system will display an editing form with the same characteristics as the form used to create a calendar from scratch, except that the proposed exceptions and the working hours per weekday will be based on the original calendar.
  • +
+
+
+

Creating a Calendar by Copying

+

A copied calendar is an exact duplicate of an existing calendar. It inherits all the features of the original calendar, but you can modify it independently.

+

The key difference between a copied calendar and a derived calendar is how they are affected by changes to the original. If the original calendar is modified, the copied calendar remains unchanged. However, derived calendars are affected by changes made to the original, unless an exception is defined.

+

A common use case for copied calendars is when you have a calendar for one location, such as "Pontevedra," and you need a similar calendar for another location, such as "A Coruña," where most of the features are the same. However, changes to one calendar should not affect the other.

+

To create a copied calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Calendar administration option.
  • +
  • Select the calendar you want to copy and click the "Create" button.
  • +
  • The system will display an editing form with the same characteristics as the form used to create a calendar from scratch, except that the proposed exceptions and the working hours per weekday will be based on the original calendar.
  • +
+
+
+

Default Calendar

+

One of the existing calendars can be designated as the default calendar. This calendar will be automatically assigned to any entity in the system that is managed with calendars unless a different calendar is specified.

+

To set up a default calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Configuration option.
  • +
  • In the Default calendar field, select the calendar you want to use as the program's default calendar.
  • +
  • Click Save.
  • +
+
+images/default-calendar.png +

Setting a Default Calendar

+
+
+
+

Assigning a Calendar to Resources

+

Resources can only be activated (i.e., have available working hours) if they have an assigned calendar with a valid activation period. If no calendar is assigned to a resource, the default calendar is assigned automatically, with an activation period that begins on the start date and has no expiry date.

+
+images/resource-calendar.png +

Resource Calendar

+
+

However, you can delete the calendar that has been previously assigned to a resource and create a new calendar based on an existing one. This allows for complete customization of calendars for individual resources.

+

To assign a calendar to a resource:

+
    +
  • Go to the Edit resources option.
  • +
  • Select a resource and click Edit.
  • +
  • Select the "Calendar" tab.
  • +
  • The calendar, along with its exceptions, working hours per day, and activation periods, will be displayed.
  • +
  • Each tab will have the following options:
      +
    • Exceptions: Define exceptions and the period to which they apply, such as holidays, public holidays, or different workdays.
    • +
    • Working Week: Modify the working hours for each weekday (Monday, Tuesday, etc.).
    • +
    • Activation Periods: Create new activation periods to reflect the start and end dates of contracts associated with the resource. See the following image.
    • +
    +
  • +
  • Click Save to store the information.
  • +
  • Click Delete if you want to change the calendar assigned to a resource.
  • +
+
+images/new-resource-calendar.png +

Assigning a New Calendar to a Resource

+
+
+
+

Assigning Calendars to Orders

+

Projects can have a different calendar than the default calendar. To change the calendar for an order:

+
    +
  • Access the order list in the company overview.
  • +
  • Edit the order in question.
  • +
  • Access the "General information" tab.
  • +
  • Select the calendar to be assigned from the drop-down menu.
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+

Assigning Calendars to Tasks

+

Similar to resources and orders, you can assign specific calendars to individual tasks. This allows you to define different calendars for specific stages of a project. To assign a calendar to a task:

+
    +
  • Access the planning view of a project.
  • +
  • Right-click the task to which you want to assign a calendar.
  • +
  • Select the "Assign calendar" option.
  • +
  • Select the calendar to be assigned to the task.
  • +
  • Click Accept.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/04-avances.html b/libreplan-webapp/src/main/webapp/help/pt_BR/04-avances.html new file mode 100644 index 000000000..615d6109f --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/04-avances.html @@ -0,0 +1,97 @@ + + + + + + +Progress + + + +
+

Progress

+ + +

Project progress indicates the degree to which the estimated completion time of the project is being met. Task progress indicates the degree to which the task is being completed according to its estimated completion.

+

Generally, progress cannot be measured automatically. A staff member with experience or a checklist must determine the degree of completion for a task or project.

+

It's important to note the distinction between the hours assigned to a task or project and the progress of that task or project. While the number of hours used may be more or less than expected, the project may be ahead of or behind its estimated completion on the monitored day. Several situations can arise from these two measurements:

+
    +
  • Fewer hours consumed than expected, but the project is behind schedule: Progress is lower than estimated for the monitored day.
  • +
  • Fewer hours consumed than expected, and the project is ahead of schedule: Progress is higher than estimated for the monitored day.
  • +
  • More hours consumed than expected, and the project is behind schedule: Progress is lower than estimated for the monitored day.
  • +
  • More hours consumed than expected, but the project is ahead of schedule: Progress is higher than estimated for the monitored day.
  • +
+

The planning view allows you to compare these situations by using information about the progress made and the hours used. This chapter will explain how to enter information to monitor progress.

+

The philosophy behind progress monitoring is based on users defining the level at which they want to monitor their projects. For example, if users want to monitor orders, they only need to enter information for level-1 elements. If they want more precise monitoring at the task level, they must enter progress information at lower levels. The system will then aggregate the data upward through the hierarchy.

+
+

Managing Progress Types

+

Companies have varying needs when monitoring project progress, particularly the tasks involved. Therefore, the system includes "progress types." Users can define different progress types to measure a task's progress. For example, a task can be measured as a percentage, but this percentage can also be translated into progress in Tonnes based on the agreement with the client.

+

A progress type has a name, a maximum value, and a precision value:

+
    +
  • Name: A descriptive name that users will recognize when selecting the progress type. This name should clearly indicate what kind of progress is being measured.
  • +
  • Maximum Value: The maximum value that can be established for a task or project as the total progress measurement. For example, if you're working with Tonnes and the normal maximum is 4000 tonnes, and no task will ever require more than 4000 tonnes of any material, then 4000 would be the maximum value.
  • +
  • Precision Value: The increment value allowed for the progress type. For example, if progress in Tonnes is to be measured in whole numbers, the precision value would be 1. From that point on, only whole numbers can be entered as progress measurements (e.g., 1, 2, 300).
  • +
+

The system has two default progress types:

+
    +
  • Percentage: A general progress type that measures the progress of a project or task based on an estimated completion percentage. For example, a task is 30% complete out of the 100% estimated for a specific day.
  • +
  • Units: A general progress type that measures progress in units without specifying the type of unit. For example, a task involves creating 3000 units, and the progress is 500 units out of the total of 3000.
  • +
+
+images/tipos-avances.png +

Administration of Progress Types

+
+

Users can create new progress types as follows:

+
    +
  • Go to the "Administration" section.
  • +
  • Click the "Manage types of progress" option in the second-level menu.
  • +
  • The system will display a list of existing progress types.
  • +
  • For each progress type, users can:
      +
    • Edit
    • +
    • Delete
    • +
    +
  • +
  • Users can then create a new progress type.
  • +
  • When editing or creating a progress type, the system displays a form with the following information:
      +
    • Name of the progress type.
    • +
    • Maximum value allowed for the progress type.
    • +
    • Precision value for the progress type.
    • +
    +
  • +
+
+
+

Entering Progress Based on Type

+

Progress is entered for order elements, but it can also be entered using a shortcut from the planning tasks. Users are responsible for deciding which progress type to associate with each order element.

+

Users can enter a single, default progress type for the entire order.

+

Before measuring progress, users must associate the chosen progress type with the order. For example, they might choose percentage progress to measure progress on the entire task or an agreed progress rate if progress measurements agreed upon with the client will be entered in the future.

+
+images/avance.png +

Progress Entry Screen with Graphic Visualization

+
+

To enter progress measurements:

+
    +
  • Select the progress type to which the progress will be added. +* If no progress type exists, a new one must be created.
  • +
  • In the form that appears under the "Value" and "Date" fields, enter the absolute value of the measurement and the date of the measurement.
  • +
  • The system automatically stores the entered data.
  • +
+
+
+

Comparing Progress for an Order Element

+

Users can graphically compare the progress made on orders with the measurements taken. All progress types have a column with a check button ("Show"). When this button is selected, the progress chart of measurements taken is displayed for the order element.

+
+images/contraste-avance.png +

Comparison of Several Progress Types

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/05-recursos.html b/libreplan-webapp/src/main/webapp/help/pt_BR/05-recursos.html new file mode 100644 index 000000000..07190538a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/05-recursos.html @@ -0,0 +1,186 @@ + + + + + + +Resource Management + + + +
+

Resource Management

+ + +

The program manages two distinct types of resources: staff and machines.

+
+

Staff Resources

+

Staff resources represent the company's workers. Their key characteristics are:

+
    +
  • They fulfill one or more generic or worker-specific criteria.
  • +
  • They can be specifically assigned to a task.
  • +
  • They can be assigned generically to a task that requires a resource criterion.
  • +
  • They can have a default or a specific calendar, as needed.
  • +
+
+
+

Machine Resources

+

Machine resources represent the company's machinery. Their key characteristics are:

+
    +
  • They fulfill one or more generic or machine-specific criteria.
  • +
  • They can be specifically assigned to a task.
  • +
  • They can be assigned generically to a task that requires a machine criterion.
  • +
  • They can have a default or a specific calendar, as needed.
  • +
  • The program includes a configuration screen where an alpha value can be defined to represent the machine/worker ratio.
      +
    • The alpha value indicates the amount of worker time required to operate the machine. For example, an alpha value of 0.5 means that every 8 hours of machine operation requires 4 hours of a worker's time.
    • +
    • Users can assign an alpha value specifically to a worker, designating that worker to operate the machine for that percentage of time.
    • +
    • Users can also make a generic assignment based on a criterion, so that a percentage of use is assigned to all resources that meet that criterion and have available time. Generic assignment works similarly to generic assignment for tasks, as described previously.
    • +
    +
  • +
+
+
+

Managing Resources

+

Users can create, edit, and deactivate (but not permanently delete) workers and machines within the company by navigating to the "Resources" section. This section provides the following features:

+
    +
  • List of Workers: Displays a numbered list of workers, allowing users to manage their details.
  • +
  • List of Machines: Displays a numbered list of machines, allowing users to manage their details.
  • +
+
+

Managing Workers

+

Worker management is accessed by going to the "Resources" section and then selecting "List of workers." Users can edit any worker in the list by clicking the standard edit icon.

+

When editing a worker, users can access the following tabs:

+
    +
  1. Worker Details: This tab allows users to edit the worker's basic identification details:

    +
      +
    • Name
    • +
    • Surname(s)
    • +
    • National ID document (DNI)
    • +
    • Queue-based resource (see section on Queue-based Resources)
    • +
    +
    +images/worker-personal-data.png +

    Editing Workers' Personal Details

    +
    +
  2. +
  3. Criteria: This tab is used to configure the criteria that a worker fulfills. Users can assign any worker or generic criteria they deem appropriate. It's crucial for workers to fulfill criteria to maximize the program's functionality. To assign criteria:

    +
      +
    1. Click the "Add criteria" button.
    2. +
    3. Search for the criterion to be added and select the most appropriate one.
    4. +
    5. Click the "Add" button.
    6. +
    7. Select the start date when the criterion becomes applicable.
    8. +
    9. Select the end date for applying the criterion to the resource. This date is optional if the criterion is considered indefinite.
    10. +
    +
    +images/worker-criterions.png +

    Associating Criteria with Workers

    +
    +
  4. +
  5. Calendar: This tab allows users to configure a specific calendar for the worker. All workers have a default calendar assigned; however, it's possible to assign a specific calendar to each worker based on an existing calendar.

    +
    +images/worker-calendar.png +

    Calendar Tab for a Resource

    +
    +
  6. +
  7. Cost Category: This tab allows users to configure the cost category that a worker fulfills during a given period. This information is used to calculate the costs associated with a worker on a project.

    +
    +images/worker-costcategory.png +

    Cost Category Tab for a Resource

    +
    +
  8. +
+

Resource assignment is explained in the "Resource Assignment" section.

+
+
+

Managing Machines

+

Machines are treated as resources for all purposes. Therefore, similar to workers, machines can be managed and assigned to tasks. Resource assignment is covered in the "Resource Assignment" section, which will explain the specific features of machines.

+

Machines are managed from the "Resources" menu entry. This section has an operation called "Machine list," which displays the company's machines. Users can edit or delete a machine from this list.

+

When editing machines, the system displays a series of tabs for managing different details:

+
    +
  1. Machine Details: This tab allows users to edit the machine's identification details:

    +
      +
    1. Name
    2. +
    3. Machine code
    4. +
    5. Description of the machine
    6. +
    +
    +images/machine-data.png +

    Editing Machine Details

    +
    +
  2. +
  3. Criteria: As with worker resources, this tab is used to add criteria that the machine fulfills. Two types of criteria can be assigned to machines: machine-specific or generic. Worker criteria cannot be assigned to machines. To assign criteria:

    +
      +
    1. Click the "Add criteria" button.
    2. +
    3. Search for the criterion to be added and select the most appropriate one.
    4. +
    5. Select the start date when the criterion becomes applicable.
    6. +
    7. Select the end date for applying the criterion to the resource. This date is optional if the criterion is considered indefinite.
    8. +
    9. Click the "Save and continue" button.
    10. +
    +
    +images/machine-criterions.png +

    Assigning Criteria to Machines

    +
    +
  4. +
  5. Calendar: This tab allows users to configure a specific calendar for the machine. All machines have a default calendar assigned; however, it's possible to assign a specific calendar to each machine based on an existing calendar.

    +
    +images/machine-calendar.png +

    Assigning Calendars to Machines

    +
    +
  6. +
  7. Machine Configuration: This tab allows users to configure the ratio of machines to worker resources. A machine has an alpha value that indicates the machine/worker ratio. As mentioned previously, an alpha value of 0.5 indicates that 0.5 people are required for each full day of machine operation. Based on the alpha value, the system automatically assigns workers who are associated with the machine once the machine is assigned to a task. Associating a worker with a machine can be done in two ways:

    +
      +
    1. Specific Assignment: Assign a range of dates during which the worker is assigned to the machine. This is a specific assignment, as the system automatically assigns hours to the worker when the machine is scheduled.
    2. +
    3. Generic Assignment: Assign criteria that must be fulfilled by workers assigned to the machine. This creates a generic assignment of workers who meet the criteria.
    4. +
    +
    +images/machine-configuration.png +

    Configuration of Machines

    +
    +
  8. +
  9. Cost Category: This tab allows users to configure the cost category that a machine fulfills during a given period. This information is used to calculate the costs associated with a machine on a project.

    +
    +images/machine-costcategory.png +

    Assigning Cost Categories to Machines

    +
    +
  10. +
+
+
+

Virtual Worker Groups

+

The program allows users to create virtual worker groups, which are not real workers but simulated staff. These groups enable users to model increased production capacity at specific times, based on the calendar settings.

+

Virtual worker groups allow users to assess how project planning would be affected by hiring and assigning staff who meet specific criteria, thus aiding in the decision-making process.

+

The tabs for creating virtual worker groups are the same as those for configuring workers:

+
    +
  • General Details
  • +
  • Assigned Criteria
  • +
  • Calendars
  • +
  • Associated Hours
  • +
+

The difference between virtual worker groups and actual workers is that virtual worker groups have a name for the group and a quantity, which represents the number of real people in the group. There is also a field for comments, where additional information can be provided, such as which project would require hiring equivalent to the virtual worker group.

+
+images/virtual-resources.png +

Virtual Resources

+
+
+
+

Queue-based Resources

+

Queue-based resources are a specific type of productive element that can either be unassigned or have 100% dedication. In other words, they cannot have more than one task scheduled at the same time, nor can they be over-allocated.

+

For each queue-based resource, a queue is automatically created. The tasks scheduled for these resources can be managed specifically using the provided assignment methods, creating automatic assignments between tasks and queues that match the required criteria, or by moving tasks between queues.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/06-pedidos.html b/libreplan-webapp/src/main/webapp/help/pt_BR/06-pedidos.html new file mode 100644 index 000000000..87fd79071 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/06-pedidos.html @@ -0,0 +1,315 @@ + + + + + + +Orders and Order Elements + + + +
+

Orders and Order Elements

+ + +

Orders represent the work to be performed by users of the program. Each order corresponds to a project that the company will offer to its clients.

+

An order consists of one or more order elements. Each order element represents a specific part of the work to be done and defines how the work on the order should be planned and executed. Order elements are organized hierarchically, with no limitations on the depth of the hierarchy. This hierarchical structure allows for the inheritance of certain features, such as labels.

+

The following sections describe the operations that users can perform with orders and order elements.

+
+

Orders

+

An order represents a project or work requested by a client from the company. The order identifies the project within the company's planning. Unlike comprehensive management programs, TASKPM only requires certain key details for an order. These details are:

+
    +
  • Order Name: The name of the order.
  • +
  • Order Code: A unique code for the order.
  • +
  • Total Order Amount: The total financial value of the order.
  • +
  • Estimated Start Date: The planned start date for the order.
  • +
  • End Date: The planned completion date for the order.
  • +
  • Person in Charge: The individual responsible for the order.
  • +
  • Description: A description of the order.
  • +
  • Assigned Calendar: The calendar associated with the order.
  • +
  • Automatic Generation of Codes: A setting to instruct the system to automatically generate codes for order elements and hour groups.
  • +
  • Preference between Dependencies and Restrictions: Users can choose whether dependencies or restrictions take priority in case of conflicts.
  • +
+

However, a complete order also includes other associated entities:

+
    +
  • Hours Assigned to the Order: The total hours allocated to the order.
  • +
  • Progress Attributed to the Order: The progress made on the order.
  • +
  • Labels: Labels assigned to the order.
  • +
  • Criteria Assigned to the Order: Criteria associated with the order.
  • +
  • Materials: Materials required for the order.
  • +
  • Quality Forms: Quality forms associated with the order.
  • +
+

Creating or editing an order can be done from several locations within the program:

+
    +
  • From the "Order List" in the Company Overview:
      +
    • Editing: Click the edit button on the desired order.
    • +
    • Creating: Click "New order."
    • +
    +
  • +
  • From an Order in the Gantt Chart: Change to the order details view.
  • +
+

Users can access the following tabs when editing an order:

+
    +
  • Editing Order Details: This screen allows users to edit basic order details:

    +
      +
    • Name
    • +
    • Code
    • +
    • Estimated Start Date
    • +
    • End Date
    • +
    • Person in Charge
    • +
    • Client
    • +
    • Description
    • +
    +
    +images/order-edition.png +

    Editing Orders

    +
    +
  • +
  • Order Element List: This screen allows users to perform several operations on order elements:

    +
      +
    • Creating new order elements.
    • +
    • Promoting an order element one level up in the hierarchy.
    • +
    • Demoting an order element one level down in the hierarchy.
    • +
    • Indenting an order element (moving it down the hierarchy).
    • +
    • Unindenting an order element (moving it up the hierarchy).
    • +
    • Filtering order elements.
    • +
    • Deleting order elements.
    • +
    • Moving an element within the hierarchy by dragging and dropping.
    • +
    +
    +images/order-elements-list.png +

    Order Element List

    +
    +
  • +
  • Assigned Hours: This screen displays the total hours attributed to the project, grouping the hours entered in the order elements.

    +
    +images/order-assigned-hours.png +

    Assigning Hours Attributed to the Order by Workers

    +
    +
  • +
  • Progress: This screen allows users to assign progress types and enter progress measurements for the order. See the "Progress" section for more details.

    +
  • +
  • Labels: This screen allows users to assign labels to an order and view previously assigned direct and indirect labels. See the following section on editing order elements for a detailed description of label management.

    +
    +images/order-labels.png +

    Order Labels

    +
    +
  • +
  • Criteria: This screen allows users to assign criteria that will apply to all tasks within the order. These criteria will be automatically applied to all order elements, except those that have been explicitly invalidated. The hour groups of order elements, which are grouped by criteria, can also be viewed, allowing users to identify the criteria required for an order.

    +
    +images/order-criterions.png +

    Order Criteria

    +
    +
  • +
  • Materials: This screen allows users to assign materials to orders. Materials can be selected from the available material categories in the program. Materials are managed as follows:

    +
      +
    • Select the "Search materials" tab at the bottom of the screen.
    • +
    • Enter text to search for materials or select the categories for which you want to find materials.
    • +
    • The system filters the results.
    • +
    • Select the desired materials (multiple materials can be selected by pressing the "Ctrl" key).
    • +
    • Click "Assign."
    • +
    • The system displays the list of materials already assigned to the order.
    • +
    • Select the units and the status to assign to the order.
    • +
    • Click "Save" or "Save and continue."
    • +
    • To manage the receipt of materials, click "Divide" to change the status of a partial quantity of material.
    • +
    +
    +images/order-material.png +

    Materials Associated with an Order

    +
    +
  • +
  • Quality: Users can assign a quality form to the order. This form is then completed to ensure that certain activities associated with the order are carried out. See the following section on editing order elements for details on managing quality forms.

    +
    +images/order-quality.png +

    Quality Form Associated with the Order

    +
    +
  • +
+
+
+

Editing Order Elements

+

Order elements are edited from the "Order element list" tab by clicking the edit icon. This opens a new screen where users can:

+
    +
  • Edit information about the order element.
  • +
  • View hours attributed to order elements.
  • +
  • Manage progress of order elements.
  • +
  • Manage order labels.
  • +
  • Manage criteria required by the order element.
  • +
  • Manage materials.
  • +
  • Manage quality forms.
  • +
+

The following subsections describe each of these operations in detail.

+
+

Editing Information about the Order Element

+

Editing information about the order element includes modifying the following details:

+
    +
  • Order Element Name: The name of the order element.
  • +
  • Order Element Code: A unique code for the order element.
  • +
  • Start Date: The planned start date of the order element.
  • +
  • Estimated End Date: The planned completion date of the order element.
  • +
  • Total Hours: The total hours allocated to the order element. These hours can be calculated from the added hour groups or entered directly. If entered directly, the hours must be distributed among the hour groups, and a new hour group created if the percentages do not match the initial percentages.
  • +
  • Hour Groups: One or more hour groups can be added to the order element. The purpose of these hour groups is to define the requirements for the resources that will be assigned to perform the work.
  • +
  • Criteria: Criteria can be added that must be met to enable generic assignment for the order element.
  • +
+
+images/order-element-edition.png +

Editing Order Elements

+
+
+
+

Viewing Hours Attributed to Order Elements

+

The "Assigned hours" tab allows users to view the work reports associated with an order element and see how many of the estimated hours have already been completed.

+
+images/order-element-hours.png +

Hours Assigned to Order Elements

+
+

The screen is divided into two parts:

+
    +
  • Work Report List: Users can view the list of work reports associated with the order element, including the date and time, resource, and number of hours devoted to the task.
  • +
  • Use of Estimated Hours: The system calculates the total number of hours devoted to the task and compares them with the estimated hours.
  • +
+
+
+

Managing Progress of Order Elements

+

Entering progress types and managing order element progress is described in the "Progress" chapter.

+
+
+

Managing Order Labels

+

Labels, as described in the chapter on labels, allow users to categorize order elements. This enables users to group planning or order information based on these labels.

+

Users can assign labels directly to an order element or to a higher-level order element in the hierarchy. Once a label is assigned using either method, the order element and the related planning task are associated with the label and can be used for subsequent filtering.

+
+images/order-element-tags.png +

Assigning Labels for Order Elements

+
+

As shown in the image, users can perform the following actions from the Labels tab:

+
    +
  • View Inherited Labels: View labels associated with the order element that were inherited from a higher-level order element. The planning task associated with each order element has the same associated labels.
  • +
  • View Directly Assigned Labels: View labels directly associated with the order element using the assignment form for lower-level labels.
  • +
  • Assign Existing Labels: Assign labels by searching for them among the available labels in the form below the direct label list. To search for a label, click the magnifying glass icon or enter the first letters of the label in the text box to display the available options.
  • +
  • Create and Assign New Labels: Create new labels associated with an existing label type from this form. To do this, select a label type and enter the label value for the selected type. The system automatically creates the label and assigns it to the order element when "Create and assign" is clicked.
  • +
+
+
+

Managing Criteria Required by the Order Element and Hour Groups

+

Both an order and an order element can have criteria assigned that must be met for the work to be performed. Criteria can be direct or indirect:

+
    +
  • Direct Criteria: These are assigned directly to the order element. They are criteria required by the hour groups on the order element.
  • +
  • Indirect Criteria: These are assigned to higher-level order elements in the hierarchy and are inherited by the element being edited.
  • +
+

In addition to the required criteria, one or more hour groups that are part of the order element can be defined. This depends on whether the order element contains other order elements as child nodes or if it is a leaf node. In the first case, information about hours and hour groups can only be viewed. However, leaf nodes can be edited. Leaf nodes work as follows:

+
    +
  • The system creates a default hour group associated with the order element. The details that can be modified for an hour group are:
      +
    • Code: The code for the hour group (if not automatically generated).
    • +
    • Criterion Type: Users can choose to assign a machine or worker criterion.
    • +
    • Number of Hours: The number of hours in the hour group.
    • +
    • List of Criteria: The criteria to be applied to the hour group. To add new criteria, click "Add criterion" and select one from the search engine that appears after clicking the button.
    • +
    +
  • +
  • Users can add new hour groups with different features than previous hour groups. For example, an order element might require a welder (30 hours) and a painter (40 hours).
  • +
+
+images/order-element-criterion.png +

Assigning Criteria to Order Elements

+
+
+
+

Managing Materials

+

Materials are managed in projects as a list associated with each order element or an order in general. The list of materials includes the following fields:

+
    +
  • Code: The material code.
  • +
  • Date: The date associated with the material.
  • +
  • Units: The required number of units.
  • +
  • Unit Type: The type of unit used to measure the material.
  • +
  • Unit Price: The price per unit.
  • +
  • Total Price: The total price (calculated by multiplying the unit price by the number of units).
  • +
  • Category: The category to which the material belongs.
  • +
  • Status: The status of the material (e.g., Received, Requested, Pending, Processing, Cancelled).
  • +
+

Working with materials is done as follows:

+
    +
  • Select the "Materials" tab on an order element.
  • +
  • The system displays two sub-tabs: "Materials" and "Search materials."
  • +
  • If the order element has no assigned materials, the first tab will be empty.
  • +
  • Click "Search materials" in the lower-left part of the window.
  • +
  • The system displays the list of available categories and associated materials.
  • +
+
+images/order-element-material-search.png +

Searching for Materials

+
+
    +
  • Select categories to refine the material search.
  • +
  • The system displays the materials that belong to the selected categories.
  • +
  • From the materials list, select the materials to assign to the order element.
  • +
  • Click "Assign."
  • +
  • The system displays the selected list of materials on the "Materials" tab with new fields to complete.
  • +
+
+images/order-element-material-assign.png +

Assigning Materials to Order Elements

+
+
    +
  • Select the units, status, and date for the assigned materials.
  • +
+

For subsequent monitoring of materials, it's possible to change the status of a group of units of the received material. This is done as follows:

+
    +
  • Click the "Divide" button on the list of materials to the right of each row.
  • +
  • Select the number of units to divide the row into.
  • +
  • The program displays two rows with the material divided.
  • +
  • Change the status of the row containing the material.
  • +
+

The advantage of using this dividing tool is the ability to receive partial deliveries of material without having to wait for the entire delivery to mark it as received.

+
+
+

Managing Quality Forms

+

Some order elements require certification that certain tasks have been completed before they can be marked as complete. This is why the program has quality forms, which consist of a list of questions that are considered important if answered positively.

+

It's important to note that a quality form must be created beforehand to be assigned to an order element.

+

To manage quality forms:

+
    +
  • Go to the "Quality forms" tab.

    +
    +images/order-element-quality.png +

    Assigning Quality Forms to Order Elements

    +
    +
  • +
  • The program has a search engine for quality forms. There are two types of quality forms: by element or by percentage.

    +
      +
    • Element: Each element is independent.
    • +
    • Percentage: Each question increases the progress of the order element by a percentage. The percentages must be able to add up to 100%.
    • +
    +
  • +
  • Select one of the forms created in the administration interface and click "Assign."

    +
  • +
  • The program assigns the chosen form from the list of forms assigned to the order element.

    +
  • +
  • Click the "Edit" button on the order element.

    +
  • +
  • The program displays the questions from the quality form in the lower list.

    +
  • +
  • Mark the questions that have been completed as achieved.

    +
      +
    • If the quality form is based on percentages, the questions are answered in order.
    • +
    • If the quality form is based on elements, the questions can be answered in any order.
    • +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/07-planificacion.html b/libreplan-webapp/src/main/webapp/help/pt_BR/07-planificacion.html new file mode 100644 index 000000000..7b8954f83 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/07-planificacion.html @@ -0,0 +1,117 @@ + + + + + + +Task Planning + + + +
+

Task Planning

+ + +
+

Task Planning

+

Planning in TASKPM is a process that has been described throughout the user guide, with the chapters on orders and resource assignment being particularly important. This chapter describes the basic planning procedures after the order and Gantt charts have been properly configured.

+
+images/planning-view.png +

Work Planning View

+
+

As with the company overview, the project planning view is divided into several views based on the information being analyzed. The views available for a specific project are:

+
    +
  • Planning View
  • +
  • Resource Load View
  • +
  • Order List View
  • +
  • Advanced Assignment View
  • +
+
+

Planning View

+

The Planning View combines three different perspectives:

+
    +
  • Project Planning: Project planning is displayed in the upper right-hand part of the program as a Gantt chart. This view allows users to temporarily move tasks, assign dependencies between them, define milestones, and establish restrictions.
  • +
  • Resource Load: The Resource Load view, located in the lower right-hand part of the screen, shows resource availability based on assignments, as opposed to the assignments made to tasks. The information displayed in this view is as follows:
      +
    • Purple Area: Indicates a resource load below 100% of its capacity.
    • +
    • Green Area: Indicates a resource load below 100%, resulting from the resource being planned for another project.
    • +
    • Orange Area: Indicates a resource load over 100% as a result of the current project.
    • +
    • Yellow Area: Indicates a resource load over 100% as a result of other projects.
    • +
    +
  • +
  • Graph View and Earned Value Indicators: These can be viewed from the "Earned Value" tab. The generated graph is based on the earned value technique, and the indicators are calculated for each workday of the project. The calculated indicators are:
      +
    • BCWS (Budgeted Cost of Work Scheduled): The cumulative time function for the number of hours planned up to a certain date. It will be 0 at the planned start of the task and equal to the total number of planned hours at the end. As with all cumulative graphs, it will always increase. The function for a task will be the sum of the daily assignments until the calculation date. This function has values for all times, provided that resources have been assigned.
    • +
    • ACWP (Actual Cost of Work Performed): The cumulative time function for the hours reported in work reports up to a certain date. This function will only have a value of 0 before the date of the task's first work report, and its value will continue to increase as time passes and work report hours are added. It will have no value after the date of the last work report.
    • +
    • BCWP (Budgeted Cost of Work Performed): The cumulative time function that includes the resultant value of multiplying task progress by the amount of work that the task was estimated to require for completion. This function's values increase as time passes, as do progress values. Progress is multiplied by the total number of estimated hours for all tasks. The BCWP value is the sum of the values for the tasks being calculated. Progress is totaled when it is configured.
    • +
    • CV (Cost Variance): CV = BCWP - ACWP
    • +
    • SV (Schedule Variance): SV = BCWP - BCWS
    • +
    • BAC (Budget at Completion): BAC = max (BCWS)
    • +
    • EAC (Estimate at Completion): EAC = (ACWP / BCWP) * BAC
    • +
    • VAC (Variance at Completion): VAC = BAC - EAC
    • +
    • ETC (Estimate to Complete): ETC = EAC - ACWP
    • +
    • CPI (Cost Performance Index): CPI = BCWP / ACWP
    • +
    • SPI (Schedule Performance Index): SPI = BCWP / BCWS
    • +
    +
  • +
+

In the project planning view, users can perform the following actions:

+
    +
  • Assigning Dependencies: Right-click a task, choose "Add dependency," and drag the mouse pointer to the task to which the dependency should be assigned.
      +
    • To change the type of dependency, right-click the dependency and choose the desired type.
    • +
    +
  • +
  • Creating a New Milestone: Click the task before which the milestone is to be added and select the "Add milestone" option. Milestones can be moved by selecting the milestone with the mouse pointer and dragging it to the desired position.
  • +
  • Moving Tasks without Disturbing Dependencies: Right-click the body of the task and drag it to the desired position. If no restrictions or dependencies are violated, the system will update the daily assignment of resources to the task and place the task on the selected date.
  • +
  • Assigning Restrictions: Click the task in question and select the "Task properties" option. A pop-up window will appear with a "Restrictions" field that can be modified. Restrictions can conflict with dependencies, which is why each order specifies whether dependencies take priority over restrictions. The restrictions that can be established are:
      +
    • As Soon as Possible: Indicates that the task must start as soon as possible.
    • +
    • Not Before: Indicates that the task must not start before a certain date.
    • +
    • Start on a Specific Date: Indicates that the task must start on a specific date.
    • +
    +
  • +
+

The planning view also offers several procedures that function as viewing options:

+
    +
  • Zoom Level: Users can choose the desired zoom level. There are several zoom levels: annual, four-monthly, monthly, weekly, and daily.
  • +
  • Search Filters: Users can filter tasks based on labels or criteria.
  • +
  • Critical Path: As a result of using the Dijkstra algorithm to calculate paths on graphs, the critical path was implemented. It can be viewed by clicking the "Critical path" button in the viewing options.
  • +
  • Show Labels: Enables users to view the labels assigned to tasks in a project, which can be viewed on screen or printed.
  • +
  • Show Resources: Enables users to view the resources assigned to tasks in a project, which can be viewed on screen or printed.
  • +
  • Print: Enables users to print the Gantt chart being viewed.
  • +
+
+
+

Resource Load View

+

The Resource Load View provides a list of resources that contains a list of tasks or criteria that generate workloads. Each task or criterion is shown as a Gantt chart so that the start and end dates of the load can be seen. A different color is shown depending on whether the resource has a load that is higher or lower than 100%:

+
    +
  • Green: Load lower than 100%
  • +
  • Orange: 100% load
  • +
  • Red: Load over 100%
  • +
+
+images/resource-load.png +

Resource Load View for a Specific Order

+
+

If the mouse pointer is placed on the resource's Gantt chart, the load percentage for the worker will be shown.

+
+
+

Order List View

+

The Order List View allows users to access the order editing and deleting options. See the "Orders" chapter for more information.

+
+
+

Advanced Assignment View

+

The Advanced Assignment View is explained in depth in the "Resource Assignment" chapter.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/08-asignacion.html b/libreplan-webapp/src/main/webapp/help/pt_BR/08-asignacion.html new file mode 100644 index 000000000..46da7239c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/08-asignacion.html @@ -0,0 +1,179 @@ + + + + + + +Resource Assignment + + + +
+

Resource Assignment

+ + +

Resource assignment is one of the program's most important features and can be carried out in two different ways:

+
    +
  • Specific assignment
  • +
  • Generic assignment
  • +
+

Both types of assignment are explained in the following sections.

+

To perform either type of resource assignment, the following steps are necessary:

+
    +
  • Go to the planning view of an order.
  • +
  • Right-click on the task to be planned.
  • +
+
+images/resource-assignment-planning.png +

Resource Assignment Menu

+
+
    +
  • The program displays a screen with the following information:
      +
    • List of Criteria to be Fulfilled: For each hour group, a list of required criteria is shown.
    • +
    • Task Information: The start and end dates of the task.
    • +
    • Type of Calculation: The system allows users to choose the strategy for calculating assignments:
        +
      • Calculate Number of Hours: This calculates the number of hours required from the assigned resources, given an end date and a number of resources per day.
      • +
      • Calculate End Date: This calculates the end date of the task based on the number of resources assigned to the task and the total number of hours required to complete the task.
      • +
      • Calculate Number of Resources: This calculates the number of resources required to finish the task by a specific date, given a known number of hours per resource.
      • +
      +
    • +
    • Recommended Assignment: This option allows the program to gather the criteria to be fulfilled and the total number of hours from all hour groups, and then recommend a generic assignment. If a prior assignment exists, the system deletes it and replaces it with the new one.
    • +
    • Assignments: A list of assignments that have been made. This list shows the generic assignments (the number will be the list of fulfilled criteria, and the number of hours and resources per day). Each assignment can be explicitly removed by clicking the delete button.
    • +
    +
  • +
+
+images/resource-assignment.png +

Resource Assignment

+
+
    +
  • Users select "Search resources."
  • +
  • The program displays a new screen consisting of a criteria tree and a list of workers who fulfill the selected criteria on the right:
  • +
+
+images/resource-assignment-search.png +

Resource Assignment Search

+
+
    +
  • Users can select:
      +
    • Specific Assignment: See the "Specific Assignment" section for details on this option.
    • +
    • Generic Assignment: See the "Generic Assignment" section for details on this option.
    • +
    +
  • +
  • Users select a list of criteria (generic) or a list of workers (specific). Multiple selections can be made by pressing the "Ctrl" key while clicking each worker/criterion.
  • +
  • Users then click the "Select" button. It's important to remember that if a generic assignment is not selected, users must choose a worker or machine to perform the assignment. If a generic assignment is selected, it is sufficient for users to choose one or more criteria.
  • +
  • The program then displays the selected criteria or resource list in the list of assignments on the original resource assignment screen.
  • +
  • Users must choose the hours or resources per day, depending on the assignment method used in the program.
  • +
+
+

Specific Assignment

+

This is the specific assignment of a resource to a project task. In other words, the user decides which specific worker (by name and surname) or machine must be assigned to a task.

+

Specific assignment can be carried out on the screen shown in this image:

+
+images/asignacion-especifica.png +

Specific Resource Assignment

+
+

When a resource is specifically assigned, the program creates daily assignments based on the percentage of daily assigned resources selected, after comparing it with the available resource calendar. For example, an assignment of 0.5 resources for a 32-hour task means that 4 hours per day are assigned to the specific resource to complete the task (assuming a working calendar of 8 hours per day).

+
+

Specific Machine Assignment

+

Specific machine assignment functions in the same way as worker assignment. When a machine is assigned to a task, the system stores a specific assignment of hours for the chosen machine. The main difference is that the system searches the list of assigned workers or criteria at the moment the machine is assigned:

+
    +
  • If the machine has a list of assigned workers, the program chooses from those that are required by the machine, based on the assigned calendar. For example, if the machine calendar is 16 hours per day and the resource calendar is 8 hours, two resources are assigned from the list of available resources.
  • +
  • If the machine has one or more assigned criteria, generic assignments are made from among the resources that fulfill the criteria assigned to the machine.
  • +
+
+
+
+

Generic Assignment

+

Generic assignment occurs when users do not choose resources specifically but leave the decision to the program, which distributes the loads among the company's available resources.

+
+images/asignacion-xenerica.png +

Generic Resource Assignment

+
+

The assignment system uses the following assumptions as a basis:

+
    +
  • Tasks have criteria that are required from resources.
  • +
  • Resources are configured to fulfill criteria.
  • +
+

However, the system does not fail when criteria have not been assigned, but when all resources fulfill the non-requirement of criteria.

+

The generic assignment algorithm functions as follows:

+
    +
  • All resources and days are treated as containers where daily assignments of hours fit, based on the maximum assignment capacity in the task calendar.
  • +
  • The system searches for the resources that fulfill the criterion.
  • +
  • The system analyzes which assignments currently have different resources that fulfill criteria.
  • +
  • The resources that fulfill the criteria are chosen from those that have sufficient availability.
  • +
  • If freer resources are not available, assignments are made to the resources that have less availability.
  • +
  • Over-assignment of resources only begins when all the resources that fulfill the respective criteria are 100% assigned, until the total amount required to carry out the task is attained.
  • +
+
+

Generic Machine Assignment

+

Generic machine assignment functions in the same way as worker assignment. For example, when a machine is assigned to a task, the system stores a generic assignment of hours for all machines that fulfill the criteria, as described for resources in general. However, in addition, the system performs the following procedure for machines:

+
    +
  • For all machines chosen for generic assignment:
      +
    • It collects the machine's configuration information: alpha value, assigned workers, and criteria.
    • +
    • If the machine has an assigned list of workers, the program chooses the number required by the machine, depending on the assigned calendar. For example, if the machine calendar is 16 hours per day and the resource calendar is 8 hours, the program assigns two resources from the list of available resources.
    • +
    • If the machine has one or more assigned criteria, the program makes generic assignments from among the resources that fulfill the criteria assigned to the machine.
    • +
    +
  • +
+
+
+
+

Advanced Assignment

+

Advanced assignments allow users to design assignments that are automatically carried out by the application to personalize them. This procedure allows users to manually choose the daily hours that are dedicated by resources to assigned tasks or define a function that is applied to the assignment.

+

The steps to follow to manage advanced assignments are:

+
    +
  • Go to the advanced assignment window. There are two ways to access advanced assignments:
      +
    • Go to a specific order and change the view to advanced assignment. In this case, all the tasks on the order and assigned resources (specific and generic) will be shown.
    • +
    • Go to the resource assignment window by clicking the "Advanced assignment" button. In this case, the assignments that show the resources (generic and specific) assigned to a task will be shown.
    • +
    +
  • +
+
+images/advance-assignment.png +

Advanced Resource Assignment

+
+
    +
  • Users can choose the desired zoom level:
      +
    • Zoom Levels Greater Than One Day: If users change the assigned hour value to a week, month, four-month, or six-month period, the system distributes the hours linearly across all days throughout the chosen period.
    • +
    • Daily Zoom: If users change the assigned hour value to a day, these hours only apply to that day. Consequently, users can decide how many hours they want to assign per day to task resources.
    • +
    +
  • +
  • Users can choose to design an advanced assignment function. To do so, users must:
      +
    • Choose the function from the selection list that appears next to each resource and click "Configure."
    • +
    • The system displays a new window if the chosen function needs to be specifically configured. Supported functions:
        +
      • Segments: A function that allows users to define segments to which a polynomial function is applied. The function per segment is configured as follows:
          +
        • Date: The date on which the segment ends. If the following value (length) is established, the date is calculated; alternatively, length is calculated.
        • +
        • Defining the Length of Each Segment: This indicates what percentage of the task's duration is required for the segment.
        • +
        • Defining the Amount of Work: This indicates what workload percentage is expected to be completed in this segment. The quantity of work must be incremental. For example, if there is a 10% segment, the next one must be larger (for example, 20%).
        • +
        • Segment Graphs and Accumulated Loads.
        • +
        +
      • +
      +
    • +
    • Users then click "Accept."
    • +
    • The program stores the function and applies it to the daily resource assignments.
    • +
    +
  • +
+
+images/stretches.png +

Configuration of the Segment Function

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/09-partes.html b/libreplan-webapp/src/main/webapp/help/pt_BR/09-partes.html new file mode 100644 index 000000000..90242b6c7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/09-partes.html @@ -0,0 +1,84 @@ + + + + + + +Work Reports + + + +
+

Work Reports

+ + +

Work reports enable the monitoring of the hours that resources dedicate to the tasks to which they are assigned.

+

The program allows users to configure new forms for entering dedicated hours, specifying the fields that they want to appear in these forms. This allows for the incorporation of reports from tasks carried out by workers and the monitoring of worker activity.

+

Before users can add entries for resources, they must define at least one work report type. This type defines the structure of the report, including all the rows that are added to it. Users can create as many work report types as necessary within the system.

+
+

Work Report Types

+

A work report consists of a series of fields that are common to the entire report and a set of work report lines with specific values for the fields defined in each row. For example, resources and tasks are common to all reports. However, there can be other new fields, such as "incidents," which are not required in all report types.

+

Users can configure different work report types so that a company can design its reports to meet its specific needs:

+
+images/work-report-types.png +

Work Report Types

+
+

The administration of work report types allows users to configure these types and add new text fields or optional tags. In the first tab for editing work report types, it is possible to configure the type for the mandatory attributes (whether they apply to the whole report or are specified at the line level) and add new optional fields.

+

The mandatory fields that must appear in all work reports are as follows:

+
    +
  • Name and Code: Identification fields for the name of the work report type and its code.
  • +
  • Date: Field for the date of the report.
  • +
  • Resource: Worker or machine appearing on the report or work report line.
  • +
  • Order Element: Code for the order element to which the performed work is attributed.
  • +
  • Hour Management: Determines the hour attribution policy to be used, which can be:
      +
    • According to Assigned Hours: Hours are attributed based on the assigned hours.
    • +
    • According to Start and Finish Times: Hours are calculated based on the start and finish times.
    • +
    • According to the Number of Hours and Start and Finish Range: Discrepancies are allowed, and the number of hours takes priority.
    • +
    +
  • +
+

Users can add new fields to the reports:

+
    +
  • Tag Type: Users can request the system to display a tag when completing the work report. For example, the client tag type, if the user wishes to enter the client for whom the work was carried out in each report.
  • +
  • Free Fields: Fields where text can be entered freely in the work report.
  • +
+
+images/work-report-type.png +

Creating a Work Report Type with Personalized Fields

+
+

Users can configure date, resource, and order element fields to appear in the header of the report, which means they apply to the entire report, or they can be added to each of the rows.

+

Finally, new additional text fields or tags can be added to the existing ones, in the work report header or in each line, by using the "Additional text" and "Tag type" fields, respectively. Users can configure the order in which these elements are to be entered in the "Management of additional fields and tags" tab.

+
+
+

Work Report List

+

Once the format of the reports to be incorporated into the system has been configured, users can enter the details in the created form according to the structure defined in the corresponding work report type. To do this, users need to follow these steps:

+
    +
  • Click the "New work report" button associated with the desired report from the list of work report types.
  • +
  • The program then displays the report based on the configurations given for the type. See the following image.
  • +
+
+images/work-report-type.png +

Structure of the Work Report Based on Type

+
+
    +
  • Select all the fields shown for the report:
      +
    • Resource: If the header has been chosen, the resource is only shown once. Alternatively, for each line of the report, it is necessary to choose a resource.
    • +
    • Task Code: Code of the task to which the work report is being assigned. Similar to the rest of the fields, if the field is in the header, the value is entered once or as many times as necessary on the lines of the report.
    • +
    • Date: Date of the report or each line, depending on whether the header or line is configured.
    • +
    • Number of Hours: The number of work hours in the project.
    • +
    • Start and Finish Times: Start and finish times for the work in order to calculate definitive work hours. This field only appears in the case of the hour assignment policies, "According to Start and Finish Times" and "According to the Number of Hours and Start and Finish Range."
    • +
    • Type of Hours: Enables users to choose the type of hour, e.g., "Normal," "Extraordinary," etc.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/10-etiquetas.html b/libreplan-webapp/src/main/webapp/help/pt_BR/10-etiquetas.html new file mode 100644 index 000000000..eb6451798 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/10-etiquetas.html @@ -0,0 +1,68 @@ + + + + + + +Labels + + + +
+

Labels

+ +
+

Contents

+ +
+

Labels are entities used in the program to conceptually organize tasks or order elements.

+

Labels are categorized according to label type. A label can only belong to one label type; however, users can create many similar labels belonging to different label types.

+
+

Label Types

+

Label types are used to group the types of labels that users want to manage in the program. Here are some examples of possible label types:

+
    +
  • Client: Users may be interested in labeling tasks, orders, or order elements in relation to the client who requests them.
  • +
  • Area: Users may be interested in labeling tasks, orders, or order elements in relation to the areas in which they are carried out.
  • +
+

The administration of label types is managed from the "Administration" menu option. This is where users can edit label types, create new label types, and add labels to label types. Users can access the list of labels from this option.

+
+images/tag-types-list.png +

List of Label Types

+
+

From the list of label types, users can:

+
    +
  • Create a new label type.
  • +
  • Edit an existing label type.
  • +
  • Delete a label type with all of its labels.
  • +
+

Editing and creating labels share the same form. From this form, the user can assign a name to the label type, create or delete labels, and store the changes. The procedure is as follows:

+
    +
  • Select a label to edit or click the create button for a new one.
  • +
  • The system displays a form with a text entry for the name and a list of text entries with existing and assigned labels.
  • +
  • If users wish to add a new label, they must click the "New label" button.
  • +
  • The system displays a new row on the list with an empty text box that users must edit.
  • +
  • Users enter a name for the label.
  • +
  • The system adds the name to the list.
  • +
  • Users click "Save" or "Save and continue" to continue editing the form.
  • +
+
+images/tag-types-edition.png +

Editing Label Types

+
+
+
+

Labels

+

Labels are entities that belong to a label type. These entities can be assigned to order elements. Assigning a label to an order element means that all the elements descending from this element will inherit the label to which they belong. Having an assigned label means that these entities can be filtered where searches can be carried out:

+
    +
  • Search for tasks in the Gantt chart.
  • +
  • Search for order elements in the list of order elements.
  • +
  • Filters for reports.
  • +
+

The assignment of labels to order elements is covered in the chapter on orders.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/11-materiales.html b/libreplan-webapp/src/main/webapp/help/pt_BR/11-materiales.html new file mode 100644 index 000000000..a06770897 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/11-materiales.html @@ -0,0 +1,54 @@ + + + + + + +Materials Management + + + +
+

Materials Management

+ +
+

Contents

+ +
+
+

Administration of Materials

+

Users can manage a basic database of materials, organized by categories.

+

Categories are containers to which specific materials and other categories can be assigned. They are stored in a hierarchical tree structure, as materials can belong to leaf categories or intermediary categories.

+

To manage categories, users must follow these steps:

+
    +
  • Go to the "Administration -> Materials" option.
  • +
  • The program displays a tree of categories.
  • +
  • Enter a category name in the text box and then click "Add."
  • +
  • The program adds the category to the tree.
  • +
+

To insert a category into the category tree, users must first select the parent category in the tree and then click "Add."

+
+images/material.png +

Material Administration Screen

+
+

To manage materials, users must follow these steps:

+
    +
  • Select the category to which materials are to be added and click "Add" to the right of "Materials."
  • +
  • The program adds a new empty row with fields to enter details about the material:
      +
    • Code: Material type code (this can be the external code from an ERP).
    • +
    • Description: Description of the material.
    • +
    • Unit Price: Unit price of each piece of material.
    • +
    • Unit: Unit used to measure each unit of material.
    • +
    • Category: Category to which the material belongs.
    • +
    • Availability: Indicates whether or not the material is active.
    • +
    +
  • +
  • Users complete the fields and click "Save."
  • +
+

The assignment of materials to order elements is explained in the chapter on "Orders."

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/12-formularios-calidad.html b/libreplan-webapp/src/main/webapp/help/pt_BR/12-formularios-calidad.html new file mode 100644 index 000000000..97a584178 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/12-formularios-calidad.html @@ -0,0 +1,52 @@ + + + + + + +Quality Forms + + + +
+

Quality Forms

+ + +
+

Administration of Quality Forms

+

Quality forms consist of a list of questions or statements that indicate the tasks or processes that should have been completed before a task can be marked as complete by the company. These forms include the following fields:

+
    +
  • Name: The name of the quality form.
  • +
  • Description: A description of the quality form.
  • +
  • Type of Quality Form: The type can have two values:
      +
    • Percentage: Indicates that the questions must be answered in a logical order, and affirmative answers indicate that the task is progressing. For example, a basic process for a task might suggest that the task is 15% complete. Users must answer a question before proceeding to the next one.
    • +
    • Item: Indicates that the questions do not need to be answered in a logical order and can be answered in any sequence.
    • +
    +
  • +
+

Users must follow these steps to manage quality forms:

+
    +
  • From the "Administration" menu, access the "Quality forms" option.
  • +
  • Click "Edit" on an existing form or click "Create" to create a new one.
  • +
  • The program displays a form with fields for the name, description, and type.
  • +
  • Select the type.
  • +
  • The program displays the fields that are allowed for each type:
      +
    • Percentage: Question and percentage.
    • +
    • Item: Question.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+images/quality.png +

Quality Form Administration Screen

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/13-usuarios.html b/libreplan-webapp/src/main/webapp/help/pt_BR/13-usuarios.html new file mode 100644 index 000000000..f46a23ded --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/13-usuarios.html @@ -0,0 +1,79 @@ + + + + + + +User Management + + + +
+

User Management

+ +
+

Contents

+ +
+
+

Managing Users

+

TASKPM's system allows administrators to manage user profiles, authorizations, and users. Users are assigned to user profiles, which can have a series of predefined roles that grant access to the program's features. Roles are defined authorizations within TASKPM. Examples of roles include:

+
    +
  • Administration: A role that must be assigned to administrators to enable them to perform administrative operations.
  • +
  • Web Service Reader: A role required for users to consult the program's web services.
  • +
  • Web Service Writer: A role required for users to write data via the program's web services.
  • +
+

Roles are predefined within the system. A user profile consists of one or more roles. Users must have specific roles to perform certain operations.

+

Users can be assigned one or more profiles, or one or more roles directly, allowing for specific or generic authorization to be granted.

+

To manage users, follow these steps:

+
    +
  • Go to "Manage users" in the "Administration" menu.
  • +
  • The program displays a form with a list of users.
  • +
  • Click the edit button for the desired user or click the "Create" button.
  • +
  • A form will appear with the following fields:
      +
    • User Name: The user's login name.
    • +
    • Password: The user's password.
    • +
    • Authorized/Unauthorized: A setting to enable or disable the user's account.
    • +
    • Email: The user's email address.
    • +
    • List of Associated Roles: To add a new role, users must search for a role in the selection list and click "Assign."
    • +
    • List of Associated Profiles: To add a new profile, users must search for a profile in the selection list and click "Assign."
    • +
    +
  • +
+
+images/manage-user.png +

Managing Users

+
+
    +
  • Click "Save" or "Save and continue."
  • +
+
+

Managing Profiles

+

To manage the program's profiles, users must follow these steps:

+
    +
  • Go to "Manage user profiles" in the "Administration" menu.
  • +
  • The program displays a list of profiles.
  • +
  • Click the edit button for the desired profile or click "Create."
  • +
  • A form appears in the program with the following fields:
      +
    • Name: The name of the user profile.
    • +
    • List of Roles (Authorizations): To add a role to the profile, users must select a role from the role list and click "Add."
    • +
    +
  • +
+
+images/manage-user-profile.png +

Managing User Profiles

+
+
    +
  • Click "Save" or "Save and continue," and the system will store the created or modified profile.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/14-custos.html b/libreplan-webapp/src/main/webapp/help/pt_BR/14-custos.html new file mode 100644 index 000000000..5c35ce71d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/14-custos.html @@ -0,0 +1,110 @@ + + + + + + +Cost management + + + +
+

Cost management

+ +
+

Contents

+ +
+
+

Costs

+

Cost management allows users to estimate the costs of resources used in a project. To manage costs, the following entities must be defined:

+
    +
  • Hour Types: These indicate the types of hours worked by a resource. Users can define hour types for both machines and workers. Examples of hour types include: "Additional hours paid at €20 per hour." The following fields can be defined for hour types:
      +
    • Code: External code for the hour type.
    • +
    • Name: Name of the hour type. For example, "Additional."
    • +
    • Default Rate: Basic default rate for the hour type.
    • +
    • Activation: Indicates whether the hour type is active or not.
    • +
    +
  • +
  • Cost Categories: Cost categories define the costs associated with different hour types during specific periods (which may be indefinite). For example, the cost of additional hours for first-grade skilled workers in the following year is €24 per hour. Cost categories include:
      +
    • Name: Cost category name.
    • +
    • Activation: Indicates whether the category is active or not.
    • +
    • List of Hour Types: This list defines the hour types included in the cost category. It specifies the periods and rates for each hour type. For example, as rates change, each year can be included on this list as an hour type period, with a specific hourly rate for each hour type (which may differ from the default hourly rate for that hour type).
    • +
    +
  • +
+
+

Managing Hour Types

+

Users must follow these steps to register hour types:

+
    +
  • Select "Manage hour types worked" on the "Administration" menu.
  • +
  • The program displays a list of existing hour types.
  • +
+
+images/hour-type-list.png +

Hour Type List

+
+
    +
  • Click "Edit" or "Create."
  • +
  • The program displays an hour type editing form.
  • +
+
+images/hour-type-edit.png +

Editing Hour Types

+
+
    +
  • Users can enter or change:
      +
    • The hour type name.
    • +
    • The hour type code.
    • +
    • The default rate.
    • +
    • Hour type activation/deactivation.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+

Cost Categories

+

Users must follow these steps to register cost categories:

+
    +
  • Select "Manage cost categories" on the "Administration" menu.
  • +
  • The program displays a list of existing categories.
  • +
+
+images/category-cost-list.png +

Cost Category List

+
+
    +
  • Click the "Edit" or "Create" button.
  • +
  • The program displays a cost category editing form.
  • +
+
+images/category-cost-edit.png +

Editing Cost Categories

+
+
    +
  • Users enter or change:
      +
    • The name of the cost category.
    • +
    • The activation/deactivation of the cost category.
    • +
    • The list of hour types included in the category. All hour types have the following fields:
        +
      • Hour Type: Choose one of the existing hour types in the system. If none exist, an hour type must be created (this process is explained in the previous subsection).
      • +
      • Start and Finish Date: The start and finish dates (the latter is optional) for the period that applies to the cost category.
      • +
      • Hourly Rate: The hourly rate for this specific category.
      • +
      +
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+

The assignment of cost categories to resources is described in the chapter on resources. Go to the "Resources" section.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/15-1-report-hours-worked-by-resource.html b/libreplan-webapp/src/main/webapp/help/pt_BR/15-1-report-hours-worked-by-resource.html new file mode 100644 index 000000000..f97f118aa --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/15-1-report-hours-worked-by-resource.html @@ -0,0 +1,101 @@ + + + + + + +Hours Worked by Resource Report + + + +
+

Hours Worked by Resource Report

+ + +
+

Purpose

+

This report extracts a list of tasks and the time resources have dedicated to them within a specified period. Several filters allow users to refine the query to obtain only the desired information and exclude extraneous data.

+
+
+

Input Parameters and Filters

+
    +
  • +
    Dates.
    +
      +
    • Type: Optional.
    • +
    • +
      Two date fields:
      +
        +
      • Start Date: This is the earliest date for work reports to be included. Work reports with dates earlier than the Start Date are excluded. If this parameter is left blank, work reports are not filtered by Start Date.
      • +
      • End Date: This is the latest date for work reports to be included. Work reports with dates later than the End Date are excluded. If this parameter is left blank, work reports are not filtered by End Date.
      • +
      +
      +
      +
    • +
    +
    +
    +
  • +
  • Filter by Workers: +* Type: Optional. +* How it works: You can select one or more workers to restrict the work reports to the time tracked by those specific workers. To add a worker as a filter, search for them in the selector and click the Add button. If this filter is left empty, work reports are retrieved regardless of the worker.
  • +
  • Filter by Labels: +* Type: Optional. +* How it works: You can add one or more labels to use as filters by searching for them in the selector and clicking the Add button. These labels are used to select the tasks to be included in the results when calculating the hours dedicated to them. This filter can be applied to timesheets, tasks, both, or neither.
  • +
  • Filter by Criteria: +* Type: Optional. +* How it works: You can select one or more criteria by searching for them in the selector and then clicking the Add button. These criteria are used to select the resources that satisfy at least one of them. The report will show all the time dedicated by the resources that meet one of the selected criteria.
  • +
+
+
+

Output

+
+

Heading

+

The report heading displays the filters that were configured and applied to the current report.

+
+ +
+

Body

+

The report body consists of several groups of information.

+
    +
  • The first level of aggregation is by resource. All the time dedicated by a resource is shown together below the header. Each resource is identified by:

    +
      +
    • Worker: Surname, First Name.
    • +
    • Machine: Name.
    • +
    +

    A summary line shows the total number of hours worked by the resource.

    +
  • +
  • The second level of grouping is by date. All the reports from a specific resource on the same date are shown together.

    +

    A summary line shows the total number of hours worked by the resource on that date.

    +
  • +
  • The final level lists the work reports for the worker on that day. The information displayed for each work report line is:

    +
      +
    • Task Code: The code of the task to which the tracked hours are attributed.
    • +
    • Task Name: The name of the task to which the tracked hours are attributed.
    • +
    • Starting Time: This is optional. It is the time at which the resource began working on the task.
    • +
    • Ending Time: This is optional. It is the time at which the resource finished working on the task on the specified date.
    • +
    • Text Fields: This is optional. If the work report line has text fields, the filled values are shown here. The format is: <Name of the text field>:<Value>
    • +
    • Labels: This depends on whether the work report model has a label field in its definition. If there are multiple labels, they are shown in the same column. The format is: <Name of the label type>:<Value of the label>
    • +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/15-2-total-hours-by-resource-month.html b/libreplan-webapp/src/main/webapp/help/pt_BR/15-2-total-hours-by-resource-month.html new file mode 100644 index 000000000..246cfc9c1 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/15-2-total-hours-by-resource-month.html @@ -0,0 +1,67 @@ + + + + + + +Total Hours Worked by Resource in a Month Report + + + +
+

Total Hours Worked by Resource in a Month Report

+ + +
+

Purpose

+

This report provides the total number of hours worked by each resource in a given month. This information can be useful for determining worker overtime or, depending on the organization, the number of hours for which each resource should be compensated.

+

The application tracks work reports for both workers and machines. For machines, the report sums up the number of hours they were in operation during the month.

+
+
+

Input Parameters and Filters

+

To generate this report, users must specify the year and month for which they want to retrieve the total number of hours worked by each resource.

+
+
+

Output

+

The output format is as follows:

+ + +
+

Body

+

The data section of the report consists of a single table with two columns:

+
+
    +
  • One column labeled Name for the name of the resource.
  • +
  • One column labeled Hours with the total number of hours worked by the resource in that row.
  • +
+
+

There is a final row that aggregates the total number of hours worked by all resources during the specified month and year.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/15-3-work-progress-per-project.html b/libreplan-webapp/src/main/webapp/help/pt_BR/15-3-work-progress-per-project.html new file mode 100644 index 000000000..e2f5053a9 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/15-3-work-progress-per-project.html @@ -0,0 +1,125 @@ + + + + + + +Work and Progress per Project Report + + + +
+

Work and Progress per Project Report

+ + +
+

Purpose

+

This report provides an overview of the status of projects, considering both progress and cost.

+

It analyzes the current progress of each project, comparing it with the planned progress and the work completed.

+

The report also displays several ratios related to project cost, comparing current performance with the planned performance.

+
+
+

Input Parameters and Filters

+

There are several mandatory parameters:

+
+
    +
  • Reference Date: This is the date used as a reference point for comparing the planned status of the project with its actual performance. The default value for this field is the current date.
  • +
  • Progress Type: This is the progress type used to measure project progress. The application allows a project to be measured simultaneously with different progress types. The type selected by the user in the dropdown menu is used for calculating the report data. The default value for the progress type is spread, which is a special progress type that uses the preferred method of measuring progress configured for each WBS element.
  • +
+
+

The optional parameters are:

+
+
    +
  • Starting Date: This is the earliest start date for projects to be included in the report. If this field is left blank, there is no minimum start date for the projects.
  • +
  • Ending Date: This is the latest end date for projects to be included in the report. All projects that finish after the Ending Date will be excluded.
  • +
  • Filter by Projects: This filter allows users to select the specific projects to be included in the report. If no projects are added to the filter, the report will include all projects in the database. A searchable dropdown menu is provided to find the desired project. Projects are added to the filter by clicking the Add button.
  • +
+
+
+
+

Output

+

The output format is as follows:

+
+

Heading

+

The report header displays the following fields:

+
+
    +
  • Starting Date: The filtering start date. This is not displayed if the report is not filtered by this field.
  • +
  • Ending Date: The filtering end date. This is not displayed if the report is not filtered by this field.
  • +
  • Progress Type: The progress type used for the report.
  • +
  • Projects: This indicates the filtered projects for which the report is generated. It will show the string All when the report includes all projects that satisfy the other filters.
  • +
  • Reference Date: The mandatory input reference date selected for the report.
  • +
+
+
+ +
+

Body

+

The body of the report consists of a list of projects selected based on the input filters.

+

Filters work by adding conditions, except for the set formed by the date filters (Starting Date, Ending Date) and the Filter by Projects. In this case, if one or both date filters are filled and the Filter by Projects has a list of selected projects, the latter filter takes precedence. This means that the projects included in the report are those provided by the Filter by Projects, regardless of the date filters.

+

It's important to note that progress in the report is calculated as a fraction of unity, ranging between 0 and 1.

+

For each project selected for inclusion in the report output, the following information is displayed:

+
+
    +
  • Project Name.
  • +
  • +
    Total Hours. The total hours for the project are shown by adding the hours for each task. Two types of total hours are shown:
    +
      +
    • Estimated (TE). This is the sum of all the estimated hours in the project's WBS. It represents the total number of hours estimated to complete the project.
    • +
    • Planned (TP). In TASKPM, it's possible to have two different quantities: the estimated number of hours for a task (the number of hours initially estimated to complete the task) and the planned hours (the hours allocated in the plan to complete the task). The planned hours can be equal to, less than, or greater than the estimated hours and are determined in a later phase, the assignment operation. Therefore, the total planned hours for a project are the sum of all the allocated hours for its tasks.
    • +
    +
    +
    +
  • +
  • +
    Progress. Three measurements related to the overall progress of the type specified in the progress input filter for each project at the reference date are shown:
    +
      +
    • Measured (PM). This is the overall progress considering the progress measurements with a date earlier than the Reference Date in the input parameters of the report. All tasks are taken into account, and the sum is weighted by the number of hours for each task.
    • +
    • Imputed (PI). This is the progress assuming that work continues at the same pace as the hours completed for a task. If X hours out of Y hours for a task are completed, the overall imputed progress is considered to be X/Y.
    • +
    • Planned (PP). This is the overall progress of the project according to the planned schedule at the reference date. If everything happened exactly as planned, the measured progress should be the same as the planned progress.
    • +
    +
    +
    +
  • +
  • +
    Hours up to Date. There are two fields that show the number of hours up to the reference date from two perspectives:
    +
      +
    • Planned (HP). This number is the sum of the hours allocated to any task in the project with a date less than or equal to the Reference Date.
    • +
    • Actual (HR). This number is the sum of the hours reported in the work reports for any of the tasks in the project with a date less than or equal to the Reference Date.
    • +
    +
    +
    +
  • +
  • +
    Difference. Under this heading, there are several metrics related to cost:
    +
      +
    • Cost. This is the difference in hours between the number of hours spent, considering the measured progress, and the hours completed up to the reference date. The formula is: PM*TP - HR.
    • +
    • Planned. This is the difference between the hours spent according to the overall measured project progress and the number planned up to the Reference Date. It measures the advantage or delay in time. The formula is: PM*TP - HP.
    • +
    • Cost Ratio. This is calculated by dividing PM / PI. If it is greater than 1, it means that the project is profitable at this point. If it is less than 1, it means that the project is losing money.
    • +
    • Planned Ratio. This is calculated by dividing PM / PP. If it is greater than 1, it means that the project is ahead of schedule. If it is less than 1, it means that the project is behind schedule.
    • +
    +
    +
    +
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/15-informes.html b/libreplan-webapp/src/main/webapp/help/pt_BR/15-informes.html new file mode 100644 index 000000000..c2c7cafab --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/15-informes.html @@ -0,0 +1,26 @@ + + + + + + +Reports + + + +
+

Reports

+ +

TASKPM integrates with JasperReports to provide report management, enabling users to generate various reports for analyzing the data available in the program.

+

The available reports are:

+ +
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/16-ldap-authentication.html b/libreplan-webapp/src/main/webapp/help/pt_BR/16-ldap-authentication.html new file mode 100644 index 000000000..ad5d4976d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/16-ldap-authentication.html @@ -0,0 +1,251 @@ + + + + + + +LDAP Configuration + + + +
+

LDAP Configuration

+ + +

This screen allows you to establish a connection with LDAP to delegate +authentication and/or authorization.

+

It is divided into four different areas, which are explained below:

+
+

Activation

+

This area is used to set the properties that determine how TASKPM uses +LDAP.

+

If the field Enable LDAP authentication is checked, TASKPM will query +LDAP each time a user attempts to log in to the application.

+

The field Use LDAP roles checked means that a mapping between LDAP roles and +TASKPM roles is established. Consequently, the permissions for a user in +TASKPM will depend on the roles the user has in LDAP.

+
+
+

Configuration

+

This section contains the parameter values for accessing LDAP. Base, UserDN, and +Password are parameters used to connect to LDAP and search for users. Therefore, +the specified user must have permission to perform this operation in LDAP. At the +bottom of this section, there is a button to check if an LDAP connection is +possible with the given parameters. It is advisable to test the connection before +continuing the configuration.

+
+

Note

+

If your LDAP is configured to work with anonymous authentication, you can +leave the UserDN and Password attributes empty.

+
+
+

Tip

+

Regarding Active Directory (AD) configuration, the Base field must be the +exact location where the bound user resides in AD.

+

Example: ou=organizational_unit,dc=example,dc=org

+
+
+
+

Authentication

+

Here, you can configure the property in LDAP nodes where the given username +should be found. The property UserId must be filled with the name of the +property where the username is stored in LDAP.

+

The checkbox Save passwords in database, when checked, means that the +password is also stored in the TASKPM database. In this way, if LDAP is +offline or unreachable, LDAP users can authenticate against the TASKPM +database. If it is not checked, LDAP users can only be authenticated against +LDAP.

+
+
+

Authorization

+

This section allows you to define a strategy for matching LDAP roles with +TASKPM roles. The first choice is the strategy to use, depending on the +LDAP implementation.

+
+

Group Strategy

+

When this strategy is used, it indicates that LDAP has a role-group strategy. +This means that users in LDAP are nodes that are directly under a branch that +represents the group.

+

The next example represents a valid LDAP structure for using the group strategy.

+
    +
  • LDAP structure:

    +
    +dc=example,dc=org
    +|- ou=groups
    +   |- cn=admins
    +   |- cn=itpeople
    +   |- cn=workers
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

In this case, each group will have an attribute, for example, called member, +with the list of users belonging to the group:

+
    +
  • cn=admins:
      +
    • member: uid=admin1,ou=people,dc=example,dc=org
    • +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=itpeople:
      +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    • member: uid=it2,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=workers:
      +
    • member: uid=worker1,ou=people,dc=example,dc=org
    • +
    • member: uid=worker2,ou=people,dc=example,dc=org
    • +
    • member: uid=worker3,ou=people,dc=example,dc=org
    • +
    +
  • +
+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Group strategy
  • +
  • Group path: ou=groups
  • +
  • Role property: member
  • +
  • Role search query: uid=[USER_ID],ou=people,dc=example,dc=org
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: cn=admins;cn=itpeople
  • +
  • Web service reader: cn=itpeople
  • +
  • Web service writer: cn=itpeople
  • +
  • All projects read allowed: cn=admins
  • +
  • All projects edition allowed: cn=admins
  • +
  • Project creation allowed: cn=workers
  • +
+
+
+

Property Strategy

+

When an administrator decides to use this strategy, it indicates that each user +is an LDAP node, and within the node, there exists a property that represents +the group(s) for the user. In this case, the configuration does not require the +Group path parameter.

+

The next example represents a valid LDAP structure for using the property strategy.

+
    +
  • LDAP structure:

    +
    +dc=example,dc=org
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

With Attribute

+

In this case, each user will have an attribute, for example, called group, +with the name of the group to which they belong:

+
    +
  • uid=admin1:
      +
    • group: admins
    • +
    +
  • +
  • uid=it1:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=it2:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=worker1:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker2:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker3:
      +
    • group: workers
    • +
    +
  • +
+
+

Warning

+

This strategy has a restriction: each user can belong to only one group.

+
+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Property strategy
  • +
  • Group path:
  • +
  • Role property: group
  • +
  • Role search query: [USER_ID]
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: admins;itpeople
  • +
  • Web service reader: itpeople
  • +
  • Web service writer: itpeople
  • +
  • All projects read allowed: admins
  • +
  • All projects edition allowed: admins
  • +
  • Project creation allowed: workers
  • +
+

By User Identifier

+

You can even use a workaround to specify TASKPM roles directly to users +without having an attribute in each LDAP user.

+

In this case, you will specify which users have the different TASKPM roles +by uid.

+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Property strategy
  • +
  • Group path:
  • +
  • Role property: uid
  • +
  • Role search query: [USER_ID]
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: admin1;it1
  • +
  • Web service reader: it1;it2
  • +
  • Web service writer: it1;it2
  • +
  • All projects read allowed: admin1
  • +
  • All projects edition allowed: admin1
  • +
  • Project creation allowed: worker1;worker2;worker3
  • +
+
+
+

Role Matching

+

At the bottom of this section, there is a table with all the TASKPM roles +and a text field next to each one. This is for matching roles. For instance, +if an administrator decides that the Administration TASKPM role matches +the admin and administrators roles of LDAP, the text field should contain: +"admin;administrators". The character for splitting roles is ";".

+
+

Note

+

If you want to specify that all users or all groups have one permission, you +can use an asterisk (*) as a wildcard to refer to them. For example, if +you want everyone to have the Project creation allowed role, you will +configure the role matching as follows:

+
    +
  • Project creation allowed: *
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/17-1-project-dashboard.html b/libreplan-webapp/src/main/webapp/help/pt_BR/17-1-project-dashboard.html new file mode 100644 index 000000000..5dc0899b7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/17-1-project-dashboard.html @@ -0,0 +1,173 @@ + + + + + + +Project Dashboard + + + +
+

Project Dashboard

+ + +

The project dashboard is a TASKPM perspective that contains a set of KPIs (Key Performance Indicators) to help assess a project's performance in terms of:

+
+
    +
  • Work progress
  • +
  • Cost
  • +
  • Status of allocated resources
  • +
  • Time constraints
  • +
+
+
+

Progress Performance Indicators

+

Two indicators are calculated: project progress percentage and task status.

+
+

Project Progress Percentage

+

This chart displays the overall progress of a project, comparing it to the expected progress based on the Gantt chart.

+

Progress is represented by two bars:

+
+
    +
  • Current Progress: The current progress based on the measurements taken.
  • +
  • Expected Progress: The progress the project should have achieved at this point, according to the project plan.
  • +
+
+

To view the actual measured value for each bar, hover the mouse cursor over the bar.

+

The overall project progress is estimated using several different methods, as there is no single, universally correct approach:

+
+
    +
  • Spreading Progress: This is the progress type set as the spreading progress at the project level. In this case, there is no way to calculate an expected value, and only the current bar is displayed.
  • +
  • By All Task Hours: The progress of all project tasks is averaged to calculate the overall value. This is a weighted average that considers the number of hours allocated to each task.
  • +
  • By Critical Path Hours: The progress of tasks belonging to any of the project's critical paths is averaged to obtain the overall value. This is a weighted average that considers the total allocated hours for each involved task.
  • +
  • By Critical Path Duration: The progress of tasks belonging to any of the critical paths is averaged using a weighted average, but this time considering the duration of each involved task instead of the assigned hours.
  • +
+
+
+
+

Task Status

+

A pie chart shows the percentage of project tasks in different states. The defined states are:

+
+
    +
  • Finished: Completed tasks, identified by a 100% progress value.
  • +
  • In Progress: Tasks that are currently underway. These tasks have a progress value other than 0% or 100%, or some work time has been tracked.
  • +
  • Ready to Start: Tasks with 0% progress, no tracked time, all their FINISH_TO_START dependent tasks are finished, and all their START_TO_START dependent tasks are finished or in progress.
  • +
  • Blocked: Tasks with 0% progress, no tracked time, and with previous dependent tasks that are neither in progress nor in the ready to start state.
  • +
+
+
+
+
+

Cost Indicators

+

Several Earned Value Management cost indicators are calculated:

+
+
    +
  • CV (Cost Variance): The difference between the Earned Value curve and the Actual Cost curve at the current moment. Positive values indicate a benefit, and negative values indicate a loss.

    +
  • +
  • ACWP (Actual Cost of Work Performed): The total number of hours tracked in the project at the current moment.

    +
  • +
  • CPI (Cost Performance Index): The Earned Value / Actual Cost ratio.

    +
    +
      +
    • > 100 is favorable, indicating that the project is under budget.
    • +
    • = 100 is also favorable, indicating that the cost is right on plan.
    • +
    • < 100 is unfavorable, indicating that the cost of completing the work is higher than planned.
    • +
    +
    +
  • +
  • ETC (Estimate To Complete): The time remaining to complete the project.

    +
  • +
  • BAC (Budget At Completion): The total amount of work allocated in the project plan.

    +
  • +
  • EAC (Estimate At Completion): The manager's projection of the total cost at project completion, based on the CPI.

    +
  • +
  • VAC (Variance At Completion): The difference between the BAC and the EAC.

    +
    +
      +
    • < 0 indicates that the project is over budget.
    • +
    • > 0 indicates that the project is under budget.
    • +
    +
    +
  • +
+
+
+
+

Resources

+

To analyze the project from the resources' point of view, two ratios and a histogram are provided.

+
+

Estimation Deviation on Completed Task Histogram

+

This histogram calculates the deviation between the number of hours allocated to the project tasks and the actual number of hours dedicated to them.

+

The deviation is calculated as a percentage for all finished tasks, and the calculated deviations are represented in a histogram. The vertical axis shows the number of tasks within each deviation interval. Six deviation intervals are dynamically calculated.

+
+
+

Overtime Ratio

+

This ratio summarizes the overload of resources allocated to the project tasks. It is calculated using the formula: overtime ratio = overload / (load + overload).

+
+
    +
  • = 0 is favorable, indicating that the resources are not overloaded.
  • +
  • > 0 is unfavorable, indicating that the resources are overloaded.
  • +
+
+
+
+

Availability Ratio

+

This ratio summarizes the free capacity of the resources currently allocated to the project. Therefore, it measures the resources' availability to receive more allocations without being overloaded. It is calculated as: availability ratio = (1 - load/capacity) * 100

+
+
    +
  • Possible values are between 0% (fully assigned) and 100% (not assigned).
  • +
+
+
+
+
+

Time

+

Two charts are included: a histogram for the time deviation in the finish time of project tasks and a pie chart for deadline violations.

+
+

Task Completion Lead or Lag

+

This calculation determines the difference in days between the planned end time for project tasks and their actual end time. The planned completion date is taken from the Gantt chart, and the actual finish date is taken from the last time tracked for the task.

+

The lag or lead in task completion is represented in a histogram. The vertical axis shows the number of tasks with a lead/lag day difference value corresponding to the abscissa days interval. Six dynamic task completion deviation intervals are calculated.

+
+
    +
  • Negative values mean finishing ahead of schedule.
  • +
  • Positive values mean finishing behind schedule.
  • +
+
+
+
+

Deadline Violations

+

This section calculates the margin with the project deadline, if set. Additionally, a pie chart shows the percentage of tasks meeting their deadline. Three types of values are included in the chart:

+
+
    +
  • Percentage of tasks without a deadline configured.
  • +
  • Percentage of ended tasks with an actual end date later than their deadline. The actual end date is taken from the last time tracked for the task.
  • +
  • Percentage of ended tasks with an actual end date earlier than their deadline.
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/17-2-pipeline-dashboard.html b/libreplan-webapp/src/main/webapp/help/pt_BR/17-2-pipeline-dashboard.html new file mode 100644 index 000000000..bb54ed657 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/17-2-pipeline-dashboard.html @@ -0,0 +1,33 @@ + + + + + + +Pipeline Dashboard + + + +
+

Pipeline Dashboard

+ +

The pipeline dashboard is a TASKPM perspective that lists all company projects in a table. This "pipeline" table has nine columns, each corresponding to a project status:

+
+
    +
  • PRE-SALES
  • +
  • OFFERED
  • +
  • OUTSOURCED
  • +
  • ACCEPTED
  • +
  • STARTED
  • +
  • ON HOLD
  • +
  • FINISHED
  • +
  • CANCELLED
  • +
  • ARCHIVED
  • +
+
+

Projects are listed by name in each column based on their current status.

+

A project's start date, end date, and current progress can be viewed in a tooltip popup by hovering the mouse cursor over a project's name.

+

Projects with an ARCHIVED status can be hidden by unchecking the "Show archived column data" checkbox.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/17-dashboards.html b/libreplan-webapp/src/main/webapp/help/pt_BR/17-dashboards.html new file mode 100644 index 000000000..3dc8f1af4 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/17-dashboards.html @@ -0,0 +1,24 @@ + + + + + + +Dashboards + + + +
+

Dashboards

+ +

TASKPM offers dashboard views for projects, providing an overview of their current status.

+

The two available dashboard views are:

+ +
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/18-connectors.html b/libreplan-webapp/src/main/webapp/help/pt_BR/18-connectors.html new file mode 100644 index 000000000..0f879b53d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/18-connectors.html @@ -0,0 +1,238 @@ + + + + + + +Connectors + + + +
+

Connectors

+ + +

Connectors are TASKPM client applications that can be used to communicate with (web) servers to retrieve data, process it, and store it. Currently, there are three connectors: the JIRA connector, the Tim Enterprise connector, and the E-mail connector.

+
+

Configuration

+

Connectors must be configured properly before they can be used. They can be configured from the "Main Settings" screen under the "Connectors" tab.

+

The connector screen includes:

+
    +
  • Pull-down list: A list of available connectors.
  • +
  • Properties edit screen: A property edit form for the selected connector.
  • +
  • Test connection button: A button to test the connection with the connector.
  • +
+

Select the connector you want to configure from the pull-down list of connectors. A property editor form for the selected connector will be displayed. In the property editor form, you can change the property values as needed and test your configurations using the "Test connection" button.

+
+

Note

+

The properties are configured with default values. The most important property is "Activated." By default, it is set to "N." This indicates that the connector will not be used unless you change the value to "Y" and save the changes.

+
+
+
+

JIRA Connector

+

JIRA is an issue and project tracking system.

+

The JIRA connector is an application that can be used to request JIRA web server data for JIRA issues and process the response. The request is based on JIRA labels. In JIRA, labels can be used to categorize issues. The request is structured as follows: retrieve all issues that are categorized by this label name.

+

The connector receives the response, which in this case is the issues, and converts them to TASKPM "Order elements" and "Time sheets."

+

The JIRA connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the JIRA connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the JIRA connector. The default is "N."
  • +
  • Server URL: The absolute path to the JIRA web server.
  • +
  • User name and password: The user credentials for authorization.
  • +
  • JIRA labels: comma-separated list of labels or URL: You can either enter the label URL or a comma-separated list of labels.
  • +
  • Hours type: The type of work hours. The default is "Default."
  • +
+
+

Note

+

JIRA labels: Currently, the JIRA web server does not support providing a list of all available labels. As a workaround, we have developed a simple PHP script that performs a simple SQL query in the JIRA database to fetch all distinct labels. You can either use this PHP script as the "JIRA labels URL" or enter the labels you want as comma-separated text in the "JIRA labels" field.

+
+

Finally, click the "Test connection" button to test if you can connect to the JIRA web server and that your configurations are correct.

+
+
+

Synchronization

+

From the project window, under "General data," you can start synchronizing order elements with JIRA issues.

+

Click the "Sync with JIRA" button to start the synchronization.

+
    +
  • If this is the first time, a pop-up window (with an auto-completed list of labels) will be displayed. In this window, you can select a label to synchronize with and click the "Start sync" button to begin the synchronization process, or click the "Cancel" button to cancel it.
  • +
  • If a label is already synchronized, the last synchronized date and the label will be displayed in the JIRA screen. In this case, no pop-up window to select a label will be displayed. Instead, the synchronization process will start directly for that displayed (already synchronized) label.
  • +
+
+

Note

+

The relationship between "Order" and "label" is one-to-one. Only one label can be synchronized with one "Order."

+
+
+

Note

+

Upon successful (re)synchronization, the information will be written to the database, and the JIRA screen will be updated with the last synchronized date and label.

+
+

(Re)synchronization is performed in two phases:

+
    +
  • Phase 1: Synchronizing order elements, including progress assignment and measurements.
  • +
  • Phase 2: Synchronizing time sheets.
  • +
+
+

Note

+

If Phase 1 fails, Phase 2 will not be performed, and no information will be written to the database.

+
+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+

Upon successful completion of synchronization, the result will be displayed in the "Work Breakdown Structure (WBS tasks)" tab of the "Project details" screen. In this UI, there are two changes from the standard WBS:

+
    +
  • The "Total task hours" column is unmodifiable (read-only) because the synchronization is one-way. Task hours can only be updated in the JIRA web server.
  • +
  • The "Code" column displays the JIRA issue keys, and they are also hyperlinks to the JIRA issues. Click the desired key if you want to go to the document for that key (JIRA issue).
  • +
+
+
+

Scheduling

+

Re-synchronization of JIRA issues can also be performed through the scheduler. Go to the "Job scheduling" screen. In that screen, you can configure a JIRA job to perform synchronization. The job searches for the last synchronized labels in the database and re-synchronizes them accordingly. See also the Scheduler Manual.

+
+
+
+

Tim Enterprise Connector

+

Tim Enterprise is a Dutch product from Aenova. It is a web-based application for the administration of time spent on projects and tasks.

+

The Tim connector is an application that can be used to communicate with the Tim Enterprise server to:

+
    +
  • Export all hours spent by a worker (user) on a project that could be registered in Tim Enterprise.
  • +
  • Import all rosters of the worker (user) to plan the resource effectively.
  • +
+

The Tim connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the Tim connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the Tim connector. The default is "N."
  • +
  • Server URL: The absolute path to the Tim Enterprise server.
  • +
  • User name and password: The user credentials for authorization.
  • +
  • Number of days timesheet to Tim: The number of days back you want to export the time sheets.
  • +
  • Number of days roster from Tim: The number of days forward you want to import the rosters.
  • +
  • Productivity factor: Effective working hours in percentage. The default is "100%."
  • +
  • Department IDs to import roster: Comma-separated department IDs.
  • +
+

Finally, click the "Test connection" button to test if you can connect to the Tim Enterprise server and that your configurations are correct.

+
+
+

Export

+

From the project window, under "General data," you can start exporting time sheets to the Tim Enterprise server.

+

Enter the "Tim product code" and click the "Export to Tim" button to start the export.

+

The Tim connector adds the following fields along with the product code:

+
    +
  • The worker/user's full name.
  • +
  • The date the worker worked on a task.
  • +
  • The effort, or hours worked on the task.
  • +
  • An option indicating whether Tim Enterprise should update the registration or insert a new one.
  • +
+

The Tim Enterprise response contains only a list of record IDs (integers). This makes it difficult to determine what went wrong, as the response list contains only numbers not related to the request fields. The export request (registration in Tim) is assumed to have succeeded if all the list entries do not contain "0" values. Otherwise, the export request has failed for those entries that contain "0" values. Therefore, you cannot see which request failed, as the list entries only contain the value "0." The only way to determine this is to examine the log file on the Tim Enterprise server.

+
+

Note

+

Upon successful exporting, the information will be written to the database, and the Tim screen will be updated with the last exported date and product code.

+
+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+
+
+

Scheduling Export

+

The export process can also be performed through the scheduler. Go to the "Job Scheduling" screen. In that screen, you can configure a Tim Export job. The job searches for the last exported time sheets in the database and re-exports them accordingly. See also the Scheduler manual.

+
+
+

Import

+

Importing rosters only works with the help of the scheduler. There is no user interface designed for this, as no input is needed from the user. Go to the "Job scheduling" screen and configure a Tim Import job. The job loops through all departments configured in the connector properties and imports all rosters for each department. See also the Scheduler Manual.

+

For import, the Tim connector adds the following fields in the request:

+
    +
  • Period: The period (date from - date to) for which you want to import the roster. This can be provided as a filter criterion.
  • +
  • Department: The department for which you want to import the roster. Departments are configurable.
  • +
  • The fields you are interested in (like Person info, RosterCategory, etc.) that the Tim server should include in its response.
  • +
+

The import response contains the following fields, which are sufficient to manage the exception days in TASKPM:

+
    +
  • Person info: Name and network name.
  • +
  • Department: The department the worker is working in.
  • +
  • Roster category: Information on the presence/absence (Aanwzig/afwezig) of the worker and the reason (TASKPM exception type) in case the worker is absent.
  • +
  • Date: The date the worker is present/absent.
  • +
  • Time: The start time of presence/absence, for example, 08:00.
  • +
  • Duration: The number of hours that the worker is present/absent.
  • +
+

By converting the import response to TASKPM's "Exception day," the following translations are taken into account:

+
    +
  • If the roster category contains the name "Vakantie," it will be translated to "RESOURCE HOLIDAY."
  • +
  • The roster category "Feestdag" will be translated to "BANK HOLIDAY."
  • +
  • All the rest, like "Jus uren," "PLB uren," etc., should be added to the "Calendar Exception Days" manually.
  • +
+

Moreover, in the import response, the roster is divided into two or three parts per day: for example, roster-morning, roster-afternoon, and roster-evening. However, TASKPM allows only one "Exception type" per day. The Tim connector is then responsible for merging these parts as one exception type. That is, the roster category with the highest duration is assumed to be a valid exception type, but the total duration is the sum of all durations of these category parts.

+

Contrary to TASKPM, in Tim Enterprise, the total duration in case the worker is on holiday means the worker is not available for that total duration. However, in TASKPM, if the worker is on holiday, the total duration should be zero. The Tim connector also handles this translation.

+
+
+
+

E-mail Connector

+

E-mail is a method of exchanging digital messages from an author to one or more recipients.

+

The E-mail connector can be used to set Simple Mail Transfer Protocol (SMTP) server connection properties.

+

The E-mail connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the E-mail connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the E-mail connector. The default is "N."
  • +
  • Protocol: The type of SMTP protocol.
  • +
  • Host: The absolute path to the SMTP server.
  • +
  • Port: The port of the SMTP server.
  • +
  • From address: The e-mail address of the message sender.
  • +
  • Username: The username for the SMTP server.
  • +
  • Password: The password for the SMTP server.
  • +
+

Finally, click the "Test connection" button to test if you can connect to the SMTP server and that your configurations are correct.

+
+
+

Edit E-mail Template

+

From the project window, under "Configuration" and then "Edit E-mail Templates," you can modify the e-mail templates for messages.

+

You can choose:

+
    +
  • Template language:
  • +
  • Template type:
  • +
  • E-mail subject:
  • +
  • Template contents:
  • +
+

You need to specify the language because the web application will send e-mails to users in the language they have chosen in their preferences. You need to choose the template type. The type is the user role, meaning that this e-mail will be sent only to users who are in the selected role (type). You need to set the e-mail subject. The subject is a brief summary of the topic of the message. You need to set the e-mail contents. This is any information that you want to send to the user. There are also some keywords that you may use in the message; the web application will parse them and set a new value instead of the keyword.

+
+
+

Scheduling E-mails

+

Sending e-mails can only be performed through the scheduler. Go to "Configuration," then the "Job Scheduling" screen. In that screen, you can configure an e-mail sending job. The job takes a list of e-mail notifications, gathers data, and sends it to the user's e-mail. See also the Scheduler manual.

+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/19-scheduler.html b/libreplan-webapp/src/main/webapp/help/pt_BR/19-scheduler.html new file mode 100644 index 000000000..8379b5b4c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/19-scheduler.html @@ -0,0 +1,107 @@ + + + + + + +Scheduler + + + +
+

Scheduler

+ + +

The scheduler is designed to schedule jobs dynamically. It is developed using the Spring Framework Quartz scheduler.

+

To use this scheduler effectively, the jobs (Quartz jobs) that should be scheduled must be created first. Then, these jobs can be added to the database, as all jobs to be scheduled are stored in the database.

+

When the scheduler starts, it reads the jobs to be scheduled or unscheduled from the database and schedules or removes them accordingly. Afterward, jobs can be added, updated, or removed dynamically using the Job scheduling user interface.

+
+

Note

+

The scheduler starts when the TASKPM web application starts and stops when the application stops.

+
+
+

Note

+

This scheduler supports only cron expressions to schedule jobs.

+
+

The criteria that the scheduler uses to schedule or remove jobs when it starts are as follows:

+

For all jobs:

+
    +
  • Schedule
      +
    • Job has a Connector, and the Connector is activated, and the job is allowed to be scheduled.
    • +
    • Job has no Connector and is allowed to be scheduled.
    • +
    +
  • +
  • Remove
      +
    • Job has a Connector, and the Connector is not activated.
    • +
    • Job has a Connector, and the Connector is activated, but the job is not allowed to be scheduled.
    • +
    • Job has no Connector and is not allowed to be scheduled.
    • +
    +
  • +
+
+

Note

+

Jobs cannot be rescheduled or unscheduled if they are currently running.

+
+
+

Job Scheduling List View

+

The Job scheduling list view allows users to:

+
    +
  • Add a new job.
  • +
  • Edit an existing job.
  • +
  • Remove a job.
  • +
  • Start a process manually.
  • +
+
+
+

Add or Edit Job

+

From the Job scheduling list view, click:

+
    +
  • Create to add a new job, or
  • +
  • Edit to modify the selected job.
  • +
+

Both actions will open a create/edit job form. The form displays the following properties:

+
    +
  • Fields:
      +
    • Job group: The name of the job group.
    • +
    • Job name: The name of the job.
    • +
    • Cron expression: A read-only field with an Edit button to open the cron expression input window.
    • +
    • Job class name: A pull-down list to select the job (an existing job).
    • +
    • Connector: A pull-down list to select a connector. This is not mandatory.
    • +
    • Schedule: A checkbox to indicate whether to schedule this job.
    • +
    +
  • +
  • Buttons:
      +
    • Save: To save or update a job in both the database and the scheduler. The user is then returned to the Job scheduling list view.
    • +
    • Save and continue: The same as "Save," but the user is not returned to the Job scheduling list view.
    • +
    • Cancel: Nothing is saved, and the user is returned to the Job scheduling list view.
    • +
    +
  • +
  • And a hint section about cron expression syntax.
  • +
+
+

Cron Expression Pop-up

+

To enter the cron expression correctly, a cron expression pop-up form is used. In this form, you can enter the desired cron expression. See also the hint about the cron expression. If you enter an invalid cron expression, you will be notified immediately.

+
+
+
+

Remove Job

+

Click the Remove button to delete the job from both the database and the scheduler. The success or failure of this action will be displayed.

+
+
+

Start Job Manually

+

As an alternative to waiting for the job to run as scheduled, you can click this button to start the process directly. Afterward, the success or failure information will be displayed in a pop-up window.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/20-acerca-de.html b/libreplan-webapp/src/main/webapp/help/pt_BR/20-acerca-de.html new file mode 100644 index 000000000..569e69e4d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/20-acerca-de.html @@ -0,0 +1,155 @@ + + + + + + +About + + + +
+

About

+ + + +
+

License

+

This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version.

+

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/>.

+
+
+

Written by

+
+

TASKPM Team

+ +
+
+

Previous Team Members

+ +
+
+

Translators

+ +
+
+

Contributors

+ +
+
+
+

Public Funding

+

This project currently accepts donations through the Open Collective organization <https://opencollective.com/TASKPM>.

+

Within the global scope that TASKPM is designed for regarding planning management, a project was developed to solve some common planning problems.

+

This project was partially financed by Xunta de Galicia, Ministerio de Industria, Turismo e Comercio, and by the European Union, Fondo Europeo de Desenvolvemento Rexional.

+
+images/logos.png +
+ +++ + + + +
scale:100
+

This project was part of Plan Avanza:

+
+images/avanza.png +
+ +++ + + + +
scale:100
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/21-communications.html b/libreplan-webapp/src/main/webapp/help/pt_BR/21-communications.html new file mode 100644 index 000000000..e4f5ea081 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/21-communications.html @@ -0,0 +1,18 @@ + + + + + + +Subcontractor Work Description + + + +
+

Subcontractor Work Description

+ +

While it is possible to leave this field empty, doing so can lead to errors in communication functionality when multiple empty fields exist.

+

Therefore, we strongly recommend always using a unique work description.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/22-pert.html b/libreplan-webapp/src/main/webapp/help/pt_BR/22-pert.html new file mode 100644 index 000000000..c27af3c56 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/22-pert.html @@ -0,0 +1,17 @@ + + + + + + +PERT Chart + + + +
+

PERT Chart

+ +

Unlike Libreplan, which was focused on the GANNT chart and did not have a PERT chart, TASKPM does have a PERT chart and is more focused on it.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/23-subnets.html b/libreplan-webapp/src/main/webapp/help/pt_BR/23-subnets.html new file mode 100644 index 000000000..42cd9e634 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/23-subnets.html @@ -0,0 +1,17 @@ + + + + + + +Task Subnets + + + +
+

Task Subnets

+ +

Unlike Libreplan, which only had a single level of planning, the whole project, TASKPM has subnetworks of activities which can be embedded in a master project.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/advance-assignment.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/advance-assignment.png new file mode 100644 index 000000000..aeb55b2b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/advance-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/asignacion-especifica.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/asignacion-especifica.png new file mode 100644 index 000000000..9ee94d9c6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/asignacion-especifica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/asignacion-xenerica.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/asignacion-xenerica.png new file mode 100644 index 000000000..d2a16597f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/asignacion-xenerica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/avance.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/avance.png new file mode 100644 index 000000000..ee289e19c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/avanza.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/avanza.png new file mode 100644 index 000000000..a51893f80 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/avanza.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/calendar-administration.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/calendar-administration.png new file mode 100644 index 000000000..bb4e17032 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/calendar-administration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/calendar-create-derived.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/calendar-create-derived.png new file mode 100644 index 000000000..9f01f2c33 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/calendar-create-derived.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/calendar-edition.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/calendar-edition.png new file mode 100644 index 000000000..a98cc4454 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/calendar-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/calendar-exceptions.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/calendar-exceptions.png new file mode 100644 index 000000000..c2a53a684 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/calendar-exceptions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/category-cost-edit.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/category-cost-edit.png new file mode 100644 index 000000000..1755ee79e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/category-cost-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/category-cost-list.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/category-cost-list.png new file mode 100644 index 000000000..1d7ff838c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/category-cost-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/company_view.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/company_view.png new file mode 100644 index 000000000..c3a7631e6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/company_view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/contraste-avance.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/contraste-avance.png new file mode 100644 index 000000000..831cceac3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/contraste-avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/default-calendar.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/default-calendar.png new file mode 100644 index 000000000..6fd379d08 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/default-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/edicion-criterio.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/edicion-criterio.png new file mode 100644 index 000000000..2b879ced5 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/edicion-criterio.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/hour-type-edit.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/hour-type-edit.png new file mode 100644 index 000000000..4917b08a8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/hour-type-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/hour-type-list.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/hour-type-list.png new file mode 100644 index 000000000..1872eb4f7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/hour-type-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/lista-criterios.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/lista-criterios.png new file mode 100644 index 000000000..a2e7d03cb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/lista-criterios.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/logo.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/logo.png new file mode 100644 index 000000000..4e7d02651 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/logo.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/logos.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/logos.png new file mode 100644 index 000000000..7314a0759 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/logos.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/machine-calendar.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/machine-calendar.png new file mode 100644 index 000000000..a725f67a2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/machine-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/machine-configuration.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/machine-configuration.png new file mode 100644 index 000000000..0777473fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/machine-configuration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/machine-costcategory.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/machine-costcategory.png new file mode 100644 index 000000000..b8414eac6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/machine-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/machine-criterions.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/machine-criterions.png new file mode 100644 index 000000000..7c270bf35 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/machine-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/machine-data.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/machine-data.png new file mode 100644 index 000000000..5edb47d12 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/machine-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/manage-user-profile.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/manage-user-profile.png new file mode 100644 index 000000000..6a86064e2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/manage-user-profile.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/manage-user.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/manage-user.png new file mode 100644 index 000000000..df59f1b7c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/manage-user.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/material.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/material.png new file mode 100644 index 000000000..a77b5aa41 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/menu.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/menu.png new file mode 100644 index 000000000..f4eec5250 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/menu.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/new-resource-calendar.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/new-resource-calendar.png new file mode 100644 index 000000000..9040e0bc0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/new-resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-assigned-hours.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-assigned-hours.png new file mode 100644 index 000000000..4fd629386 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-assigned-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-criterions.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-criterions.png new file mode 100644 index 000000000..e59bd833f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-edition.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-edition.png new file mode 100644 index 000000000..ff67134db Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-element-criterion.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-element-criterion.png new file mode 100644 index 000000000..f167979b0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-element-criterion.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-element-edition.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-element-edition.png new file mode 100644 index 000000000..66e5e8602 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-element-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-element-hours.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-element-hours.png new file mode 100644 index 000000000..06cc1dc37 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-element-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-element-material-assign.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-element-material-assign.png new file mode 100644 index 000000000..90f973766 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-element-material-assign.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-element-material-search.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-element-material-search.png new file mode 100644 index 000000000..550f1d7fa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-element-material-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-element-quality.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-element-quality.png new file mode 100644 index 000000000..3272ce70e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-element-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-element-tags.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-element-tags.png new file mode 100644 index 000000000..e43a7d795 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-element-tags.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-elements-list.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-elements-list.png new file mode 100644 index 000000000..271ac9bf6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-elements-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-labels.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-labels.png new file mode 100644 index 000000000..076e0a745 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-labels.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-material.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-material.png new file mode 100644 index 000000000..9197679e7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-quality.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-quality.png new file mode 100644 index 000000000..ee9e9027e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/order_list.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order_list.png new file mode 100644 index 000000000..72e70f3b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/order_list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/planning-view.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/planning-view.png new file mode 100644 index 000000000..de74811eb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/planning-view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/quality.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/quality.png new file mode 100644 index 000000000..1850f51b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/resource-assignment-generic.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/resource-assignment-generic.png new file mode 100644 index 000000000..3519a5087 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/resource-assignment-generic.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/resource-assignment-planning.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/resource-assignment-planning.png new file mode 100644 index 000000000..c4233780d Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/resource-assignment-planning.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/resource-assignment-search.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/resource-assignment-search.png new file mode 100644 index 000000000..cae142d81 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/resource-assignment-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/resource-assignment-specific.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/resource-assignment-specific.png new file mode 100644 index 000000000..8f7b1cba2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/resource-assignment-specific.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/resource-assignment.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/resource-assignment.png new file mode 100644 index 000000000..427d25b79 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/resource-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/resource-calendar.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/resource-calendar.png new file mode 100644 index 000000000..749c7b829 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/resource-load.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/resource-load.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/resource-load.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/resources_global.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/resources_global.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/resources_global.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/stretches.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/stretches.png new file mode 100644 index 000000000..d661a63f6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/stretches.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/tag-types-edition.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/tag-types-edition.png new file mode 100644 index 000000000..d366c09c2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/tag-types-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/tag-types-list.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/tag-types-list.png new file mode 100644 index 000000000..e7de5048c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/tag-types-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/tipos-avances.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/tipos-avances.png new file mode 100644 index 000000000..bb417f52c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/tipos-avances.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/virtual-resources.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/virtual-resources.png new file mode 100644 index 000000000..3a54f95d3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/virtual-resources.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/work-report-hours.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/work-report-hours.png new file mode 100644 index 000000000..568e9fed6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/work-report-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/work-report-type.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/work-report-type.png new file mode 100644 index 000000000..2549d8b5e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/work-report-type.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/work-report-types.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/work-report-types.png new file mode 100644 index 000000000..986f705aa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/work-report-types.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/worker-calendar.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/worker-calendar.png new file mode 100644 index 000000000..1227969b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/worker-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/worker-costcategory.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/worker-costcategory.png new file mode 100644 index 000000000..f330db68c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/worker-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/worker-criterions.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/worker-criterions.png new file mode 100644 index 000000000..a131a29fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/worker-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/images/worker-personal-data.png b/libreplan-webapp/src/main/webapp/help/pt_BR/images/worker-personal-data.png new file mode 100644 index 000000000..6a5033ba8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/pt_BR/images/worker-personal-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/index.html b/libreplan-webapp/src/main/webapp/help/pt_BR/index.html new file mode 100644 index 000000000..7a9b74000 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/index.html @@ -0,0 +1,47 @@ + + + + + + +LibrePlan: User documentation + + + +
+

LibrePlan: User documentation

+ +images/logo.png +

Following document contains necessary help for using LibrePlan, the opensource web application for project planning.

+

This document is divided in three main sections:

+

First, global goals and behaviour.

+

Second, basic entities to understand the minimum concepts to use LibrePlan.

+

Finally, complete processes description to create orders, projects, project planning, resources assignment, advance assignment and result extraction.

+
    +
  1. Introduction
  2. +
  3. Criteria
  4. +
  5. Calendars
  6. +
  7. Progress
  8. +
  9. Resource Management
  10. +
  11. Orders and Order Elements
  12. +
  13. Task Planning
  14. +
  15. Resource Assignment
  16. +
  17. Work Reports
  18. +
  19. Labels
  20. +
  21. Materials Management
  22. +
  23. Quality Forms
  24. +
  25. User Management
  26. +
  27. Cost management
  28. +
  29. Reports
  30. +
  31. LDAP Configuration
  32. +
  33. Dashboards
  34. +
  35. Connectors
  36. +
  37. Scheduler
  38. +
  39. About
  40. +
  41. Subcontractor Work Description
  42. +
  43. PERT Chart
  44. +
  45. Task Subnets
  46. +
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/pt_BR/lsr.css b/libreplan-webapp/src/main/webapp/help/pt_BR/lsr.css new file mode 100644 index 000000000..ced6c967a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/pt_BR/lsr.css @@ -0,0 +1,250 @@ +/* +Author: Peter Parente +Date: 2008/01/22 +Version: 1.0 +Copyright: This stylesheet has been placed in the public domain - free to edit and use for all uses. +*/ + +body { + font: 0.8em Verdana, Tahoma, sans-serif; + background: #ffffff; + color: black; + margin: 2em; +} + +p.topic-title { + font-weight: bold; +} + +table.docinfo { + text-align: left; + margin: 2em 0; +} + +a[href] { + color: #436976; + background-color: transparent; +} + +a.toc-backref { + text-decoration: none; +} + +h1 a[href] { + color: #003a6b; + text-decoration: none; + background-color: transparent; +} + +a.strong { + font-weight: bold; +} + +img { + margin: 0; + border: 0; +} + +p { + margin: 0.5em 0 1em 0; + line-height: 1.5em; +} + +p a:visited { + color: purple; + background-color: transparent; +} + +p a:active { + color: red; + background-color: transparent; +} + +a:hover { + text-decoration: none; +} + +p img { + border: 0; + margin: 0; +} + +p.rubric { + font-weight: bold; + font-style: italic; +} + +h1.title { + color: #003a6b; + font-size: 250%; + margin-bottom: 0; +} + +h2.subtitle { + color: #003a6b; + border-bottom: 0; +} + +h1, h2, h3, h4, h5, h6 { + color: #555; + background-color: transparent; + margin: 0; + padding-top: 0.5em; +} + +h1 { + font-size: 160%; + margin-bottom: 0.5em; + border-bottom: 2px solid #aaa; +} + +h2 { + font-size: 140%; + margin-bottom: 0.5em; + border-bottom: 1px solid #aaa; +} + +h3 { + font-size: 130%; + margin-bottom: 0.5em; +} + +h4 { + font-size: 110%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h5 { + font-size: 105%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h6 { + font-size: 100%; + font-weight: bold; + margin-bottom: 0.5em; +} + +dt { + font-style: italic; +} + +dd { + margin-bottom: 1.5em; +} + +div.admonition, div.note, div.tip, div.caution, div.important, div.warning { + margin: 2em 2em; + padding: 0 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +div.important { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +div.caution { + background: transparent url('../images/caution.png') 10px 2px no-repeat; +} + +div.note { + background: transparent url('../images/note.png') 10px 2px no-repeat; +} + +div.tip { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-example { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-critical-example { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +p.admonition-title { + font-weight: bold; + border-bottom: 1px solid #aaa; + padding-left: 30px; +} + +table.docutils { + text-align: left; + border: 1px solid gray; + border-collapse: collapse; + width: 100%; + margin: 1.5em 0; +} + +table.docutils caption { + font-style: italic; +} + +table.docutils td, table.docutils th { + padding: 0.25em 0.5em; +} + +table.docutils th { + background-color: #dddddd; +} + +div.sidebar { + width: 33%; + float: right; + margin: 0 2em; + padding: 0 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +p.sidebar-title { + margin-bottom: 0; + color: #003a6b; + border-bottom: 1px solid #aaa; + font-weight: bold; +} + +p.sidebar-subtitle { + margin-top: 0; + font-style: italic; + color: #003a6b; +} + +div.figure { + text-align: center; +} + +div.figure img { + background: #f8f8f8; + padding: 0.25em; + border: 1px solid #888; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +div.figure img:hover { + background: #e0e0e0; +} + +div.figure p.caption { + text-align: center; + margin-top: 0.1em; + font-style: italic; + color: #444; +} + +pre.literal-block { + padding: 0.15em; + background: #f8f8f8; + border: 1px solid #dfdfdf; + border-left: 0.25em solid #dfdfdf +} diff --git a/libreplan-webapp/src/main/webapp/help/ru/01-introducion.html b/libreplan-webapp/src/main/webapp/help/ru/01-introducion.html new file mode 100644 index 000000000..51e520ad7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/01-introducion.html @@ -0,0 +1,132 @@ + + + + + + +Introduction + + + +
+

Introduction

+ + +

This document describes the features of TASKPM and provides user information on how to configure and use the application.

+

TASKPM is an open-source web application for project planning. Its primary goal is to provide a comprehensive solution for company project management. For any specific information you may need about this software, please contact the development team at http://www.libreplan.com/contact/

+
+images/company_view.png +

Company Overview

+
+
+

Company Overview and View Management

+

As shown in the program's main screen (see the previous screenshot) and the company overview, users can view a list of planned projects. This allows them to understand the company's overall status regarding orders and resource utilization. The company overview offers three distinct views:

+
    +
  • Planning View: This view combines two perspectives:

    +
    +
      +
    • Order and Time Tracking: Each project is represented by a Gantt chart, indicating the project's start and end dates. This information is displayed alongside the agreed-upon deadline. A comparison is then made between the percentage of progress achieved and the actual time dedicated to each project. This provides a clear picture of the company's performance at any given time. This view is the program's default landing page.
    • +
    • Company Resource Utilization Graph: This graph displays information on resource allocation across projects, providing a summary of the entire company's resource usage. Green indicates that resource allocation is below 100% of capacity. The black line represents the total available resource capacity. Yellow indicates that resource allocation exceeds 100%. It's possible to have under-allocation overall while simultaneously experiencing over-allocation for specific resources.
    • +
    +
    +
  • +
  • Resource Load View: This screen displays a list of the company's workers and their specific task allocations, or generic allocations based on defined criteria. To access this view, click on Overall load of resources. See the following image for an example.

    +
  • +
  • Orders Administration View: This screen displays a list of company orders, allowing users to perform the following actions: filter, edit, delete, visualize planning, or create a new order. To access this view, click on Order list.

    +
  • +
+
+images/resources_global.png +

Resource Overview

+
+
+images/order_list.png +

Work Breakdown Structure

+
+

The view management described above for the company overview is very similar to the management available for a single project. A project can be accessed in several ways:

+
    +
  • Right-click on the Gantt chart for the order and select Plan.
  • +
  • Access the order list and click on the Gantt diagram icon.
  • +
  • Create a new order and change the current order view.
  • +
+

The program offers the following views for an order:

+
    +
  • Planning View: This view allows users to visualize task planning, dependencies, milestones, and more. See the Planning section for further details.
  • +
  • Resource Load View: This view allows users to check the designated resource load for a project. The color code is consistent with the company overview: green for a load less than 100%, yellow for a load equal to 100%, and red for a load over 100%. The load may originate from a specific task or a set of criteria (generic allocation).
  • +
  • Editing Order View: This view allows users to modify the details of the order. See the Orders section for more information.
  • +
  • Advanced Resource Allocation View: This view allows users to allocate resources with advanced options, such as specifying hours per day or the allocated functions to be performed. See the Resource allocation section for more information.
  • +
+
+
+

What Makes TASKPM Useful?

+

TASKPM is a general-purpose planning tool developed to address challenges in industrial project planning that were not adequately covered by existing tools. The development of TASKPM was also motivated by the desire to provide a free, open-source, and entirely web-based alternative to proprietary planning tools.

+

The core concepts underpinning the program are as follows:

+
    +
  • Company and Multi-Project Overview: TASKPM is specifically designed to provide users with information about multiple projects being carried out within a company. Therefore, it is inherently a multi-project program. The program's focus is not limited to individual projects, although specific views for individual projects are also available.
  • +
  • View Management: The company overview, or multi-project view, is accompanied by various views of the stored information. For example, the company overview allows users to view orders and compare their status, view the company's overall resource load, and manage orders. Users can also access the planning view, resource load view, advanced resource allocation view, and editing order view for individual projects.
  • +
  • Criteria: Criteria are a system entity that enables the classification of both resources (human and machine) and tasks. Resources must meet certain criteria, and tasks require specific criteria to be fulfilled. This is one of the program's most important features, as criteria form the basis of generic allocation and address a significant challenge in the industry: the time-consuming nature of human resource management and the difficulty of long-term company load estimations.
  • +
  • Resources: There are two types of resources: human and machine. Human resources are the company's workers, used for planning, monitoring, and controlling the company's workload. Machine resources, dependent on the people who operate them, function similarly to human resources.
  • +
  • Resource Allocation: A key feature of the program is the ability to designate resources in two ways: specifically and generically. Generic allocation is based on the criteria required to complete a task and must be fulfilled by resources capable of meeting those criteria. To understand generic allocation, consider this example: John Smith is a welder. Typically, John Smith would be specifically assigned to a planned task. However, TASKPM offers the option of selecting any welder within the company, without needing to specify that John Smith is the assigned person.
  • +
  • Company Load Control: The program allows for easy control of the company's resource load. This control extends to both the mid-term and long-term, as current and future projects can be managed within the program. TASKPM provides graphs that visually represent resource utilization.
  • +
  • Labels: Labels are used to categorize project tasks. With these labels, users can group tasks by concept, allowing for later review as a group or after filtering.
  • +
  • Filters: Because the system naturally includes elements that label or characterize tasks and resources, criteria filters or labels can be used. This is very useful for reviewing categorized information or generating specific reports based on criteria or labels.
  • +
  • Calendars: Calendars define the available productive hours for different resources. Users can create general company calendars or define more specific calendars, allowing for the creation of calendars for individual resources and tasks.
  • +
  • Orders and Order Elements: Work requested by clients is treated as an order within the application, structured into order elements. The order and its elements follow a hierarchical structure with x levels. This element tree forms the basis for work planning.
  • +
  • Progress: The program can manage various types of progress. A project's progress can be measured as a percentage, in units, against the agreed budget, and more. The responsibility for determining which type of progress to use for comparison at higher project levels lies with the planning manager.
  • +
  • Tasks: Tasks are the fundamental planning elements within the program. They are used to schedule work to be carried out. Key characteristics of tasks include: dependencies between tasks, and the potential requirement for specific criteria to be met before resources can be allocated.
  • +
  • Work Reports: These reports, submitted by the company's workers, detail the hours worked and the tasks associated with those hours. This information allows the system to calculate the actual time taken to complete a task compared to the budgeted time. Progress can then be compared against the actual hours used.
  • +
+

In addition to the core functions, TASKPM offers other features that distinguish it from similar programs:

+
    +
  • Integration with ERP: The program can directly import information from company ERP systems, including orders, human resources, work reports, and specific criteria.
  • +
  • Version Management: The program can manage multiple planning versions, while still allowing users to review the information from each version.
  • +
  • History Management: The program does not delete information; it only marks it as invalid. This allows users to review historical information using date filters.
  • +
+
+
+

Usability Conventions

+
+

Information About Forms

+

Before describing the various functions associated with the most important modules, we need to explain the general navigation and form behavior.

+

There are essentially three types of editing forms:

+
    +
  • Forms with a *Return* button: These forms are part of a larger context, and the changes made are stored in memory. The changes are only applied when the user explicitly saves all the details on the screen from which the form originated.
  • +
  • Forms with *Save* and *Close* buttons: These forms allow for two actions. The first saves the changes and closes the current window. The second closes the window without saving any changes.
  • +
  • Forms with *Save and continue*, *Save*, and *Close* buttons: These forms allow for three actions. The first saves the changes and keeps the current form open. The second saves the changes and closes the form. The third closes the window without saving any changes.
  • +
+
+
+

Standard Icons and Buttons

+
    +
  • Editing: In general, records in the program can be edited by clicking on an icon that looks like a pencil on a white notebook.
  • +
  • Left Indent: These operations are generally used for elements within a tree structure that need to be moved to a deeper level. This is done by clicking on the icon that looks like a green arrow pointing to the right.
  • +
  • Right Indent: These operations are generally used for elements within a tree structure that need to be moved to a higher level. This is done by clicking on the icon that looks like a green arrow pointing to the left.
  • +
  • Deleting: Users can delete information by clicking on the trash can icon.
  • +
  • Search: The magnifying glass icon indicates that the text field to its left is used for searching for elements.
  • +
+
+
+

Tabs

+

The program uses tabs to organize content editing and administration forms. This method is used to divide a comprehensive form into different sections, accessible by clicking on the tab names. The other tabs retain their current status. In all cases, the save and cancel options apply to all sub-forms within the different tabs.

+
+
+

Explicit Actions and Context Help

+

The program includes components that provide additional descriptions of elements when the mouse hovers over them for one second. The actions that the user can perform are indicated on the button labels, in the help texts associated with them, in the browsing menu options, and in the context menus that appear when right-clicking in the planner area. Furthermore, shortcuts are provided for the main operations, such as double-clicking on listed elements or using key events with the cursor and the Enter key to add elements when navigating through forms.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ru/02-criterios.html b/libreplan-webapp/src/main/webapp/help/ru/02-criterios.html new file mode 100644 index 000000000..42fad10d3 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/02-criterios.html @@ -0,0 +1,69 @@ + + + + + + +Criteria + + + +
+

Criteria

+ +
+

Contents

+ +
+

Criteria are elements used within the program to categorize both resources and tasks. Tasks require specific criteria, and resources must meet those criteria.

+

Here's an example of how criteria are used: A resource is assigned the criterion "welder" (meaning the resource fulfills the "welder" category), and a task requires the "welder" criterion to be completed. Consequently, when resources are allocated to tasks using generic allocation (as opposed to specific allocation), workers with the "welder" criterion will be considered. For more information on the different types of allocation, refer to the chapter on resource allocation.

+

The program allows for several operations involving criteria:

+
    +
  • Criteria administration
  • +
  • Assigning criteria to resources
  • +
  • Assigning criteria to tasks
  • +
  • Filtering entities based on criteria. Tasks and order items can be filtered by criteria to perform various operations within the program.
  • +
+

This section will only explain the first function, criteria administration. The two types of allocation will be covered later: resource allocation in the "Resource Management" chapter, and filtering in the "Task Planning" chapter.

+
+

Criteria Administration

+

Criteria administration can be accessed through the administration menu:

+
+images/menu.png +

First-Level Menu Tabs

+
+

The specific operation for managing criteria is Manage criteria. This operation allows you to list the criteria available in the system.

+
+images/lista-criterios.png +

List of Criteria

+
+

You can access the create/edit criterion form by clicking the Create button. To edit an existing criterion, click the edit icon.

+
+images/edicion-criterio.png +

Editing Criteria

+
+

The criteria editing form, as shown in the previous image, allows you to perform the following operations:

+
    +
  • Edit the criterion's name.
  • +
  • Specify whether multiple values can be assigned simultaneously or only one value for the selected criterion type. For example, a resource could fulfill two criteria, "welder" and "lathe operator."
  • +
  • Specify the criterion type:
      +
    • Generic: A criterion that can be used for both machines and workers.
    • +
    • Worker: A criterion that can only be used for workers.
    • +
    • Machine: A criterion that can only be used for machines.
    • +
    +
  • +
  • Indicate whether the criterion is hierarchical. Sometimes, criteria need to be treated hierarchically. For example, assigning a criterion to an element does not automatically assign it to elements derived from it. A clear example of a hierarchical criterion is "location." For instance, a person designated with the location "Galicia" will also belong to "Spain."
  • +
  • Indicate whether the criterion is authorized. This is how users deactivate criteria. Once a criterion has been created and used in historical data, it cannot be changed. Instead, it can be deactivated to prevent it from appearing in selection lists.
  • +
  • Describe the criterion.
  • +
  • Add new values. A text entry field with the New criterion button is located in the second part of the form.
  • +
  • Edit the names of existing criteria values.
  • +
  • Move criteria values up or down in the list of current criteria values.
  • +
  • Remove a criterion value from the list.
  • +
+

The criteria administration form follows the form behavior described in the introduction, offering three actions: Save, Save and Close, and Close.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ru/03-calendarios.html b/libreplan-webapp/src/main/webapp/help/ru/03-calendarios.html new file mode 100644 index 000000000..0d0bbf0d5 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/03-calendarios.html @@ -0,0 +1,187 @@ + + + + + + +Calendars + + + +
+

Calendars

+ + +

Calendars are entities within the program that define the working capacity of resources. A calendar consists of a series of days throughout the year, with each day divided into available working hours.

+

For example, a public holiday might have 0 available working hours. Conversely, a typical workday might have 8 hours designated as available working time.

+

There are two primary ways to define the number of working hours in a day:

+
    +
  • By Weekday: This method sets a standard number of working hours for each day of the week. For example, Mondays might typically have 8 working hours.
  • +
  • By Exception: This method allows for specific deviations from the standard weekday schedule. For example, Monday, January 30th, might have 10 working hours, overriding the standard Monday schedule.
  • +
+
+

Calendar Administration

+

The calendar system is hierarchical, allowing you to create base calendars and then derive new calendars from them, forming a tree structure. A calendar derived from a higher-level calendar will inherit its daily schedules and exceptions unless explicitly modified. To effectively manage calendars, it's important to understand the following concepts:

+
    +
  • Day Independence: Each day is treated independently, and each year has its own set of days. For example, if December 8th, 2009, is a public holiday, this does not automatically mean that December 8th, 2010, is also a public holiday.
  • +
  • Weekday-Based Working Days: Standard working days are based on weekdays. For example, if Mondays typically have 8 working hours, then all Mondays in all weeks of all years will have 8 available hours unless an exception is defined.
  • +
  • Exceptions and Exception Periods: You can define exceptions or exception periods to deviate from the standard weekday schedule. For example, you can specify a single day or a range of days with a different number of available working hours than the general rule for those weekdays.
  • +
+
+images/calendar-administration.png +

Calendar Administration

+
+

Calendar administration is accessible through the "Administration" menu. From there, users can perform the following actions:

+
    +
  1. Create a new calendar from scratch.
  2. +
  3. Create a calendar derived from an existing one.
  4. +
  5. Create a calendar as a copy of an existing one.
  6. +
  7. Edit an existing calendar.
  8. +
+
+

Creating a New Calendar

+

To create a new calendar, click the "Create" button. The system will display a form where you can configure the following:

+
    +
  • Select the Tab: Choose the tab you want to work on:
      +
    • Marking Exceptions: Define exceptions to the standard schedule.
    • +
    • Working Hours per Day: Define the standard working hours for each weekday.
    • +
    +
  • +
  • Marking Exceptions: If you select the "Marking Exceptions" option, you can:
      +
    • Select a specific day on the calendar.
    • +
    • Select the type of exception. The available types are: holiday, illness, strike, public holiday, and working holiday.
    • +
    • Select the end date of the exception period. (This field does not need to be changed for single-day exceptions.)
    • +
    • Define the number of working hours during the days of the exception period.
    • +
    • Delete previously defined exceptions.
    • +
    +
  • +
  • Working Hours per Day: If you select the "Working Hours per Day" option, you can:
      +
    • Define the available working hours for each weekday (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, and Sunday).
    • +
    • Define different weekly hour distributions for future periods.
    • +
    • Delete previously defined hour distributions.
    • +
    +
  • +
+

These options allow users to fully customize calendars according to their specific needs. Click the "Save" button to store any changes made to the form.

+
+images/calendar-edition.png +

Editing Calendars

+
+
+images/calendar-exceptions.png +

Adding an Exception to a Calendar

+
+
+
+

Creating Derived Calendars

+

A derived calendar is created based on an existing calendar. It inherits all the features of the original calendar, but you can modify it to include different options.

+

A common use case for derived calendars is when you have a general calendar for a country, such as Spain, and you need to create a derived calendar to include additional public holidays specific to a region, such as Galicia.

+

It's important to note that any changes made to the original calendar will automatically propagate to the derived calendar, unless a specific exception has been defined in the derived calendar. For example, the calendar for Spain might have an 8-hour working day on May 17th. However, the calendar for Galicia (a derived calendar) might have no working hours on that same day because it's a regional public holiday. If the Spanish calendar is later changed to have 4 available working hours per day for the week of May 17th, the Galician calendar will also change to have 4 available working hours for every day in that week, except for May 17th, which will remain a non-working day due to the defined exception.

+
+images/calendar-create-derived.png +

Creating a Derived Calendar

+
+

To create a derived calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Calendar administration option.
  • +
  • Select the calendar you want to use as the basis for the derived calendar and click the "Create" button.
  • +
  • The system will display an editing form with the same characteristics as the form used to create a calendar from scratch, except that the proposed exceptions and the working hours per weekday will be based on the original calendar.
  • +
+
+
+

Creating a Calendar by Copying

+

A copied calendar is an exact duplicate of an existing calendar. It inherits all the features of the original calendar, but you can modify it independently.

+

The key difference between a copied calendar and a derived calendar is how they are affected by changes to the original. If the original calendar is modified, the copied calendar remains unchanged. However, derived calendars are affected by changes made to the original, unless an exception is defined.

+

A common use case for copied calendars is when you have a calendar for one location, such as "Pontevedra," and you need a similar calendar for another location, such as "A Coruña," where most of the features are the same. However, changes to one calendar should not affect the other.

+

To create a copied calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Calendar administration option.
  • +
  • Select the calendar you want to copy and click the "Create" button.
  • +
  • The system will display an editing form with the same characteristics as the form used to create a calendar from scratch, except that the proposed exceptions and the working hours per weekday will be based on the original calendar.
  • +
+
+
+

Default Calendar

+

One of the existing calendars can be designated as the default calendar. This calendar will be automatically assigned to any entity in the system that is managed with calendars unless a different calendar is specified.

+

To set up a default calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Configuration option.
  • +
  • In the Default calendar field, select the calendar you want to use as the program's default calendar.
  • +
  • Click Save.
  • +
+
+images/default-calendar.png +

Setting a Default Calendar

+
+
+
+

Assigning a Calendar to Resources

+

Resources can only be activated (i.e., have available working hours) if they have an assigned calendar with a valid activation period. If no calendar is assigned to a resource, the default calendar is assigned automatically, with an activation period that begins on the start date and has no expiry date.

+
+images/resource-calendar.png +

Resource Calendar

+
+

However, you can delete the calendar that has been previously assigned to a resource and create a new calendar based on an existing one. This allows for complete customization of calendars for individual resources.

+

To assign a calendar to a resource:

+
    +
  • Go to the Edit resources option.
  • +
  • Select a resource and click Edit.
  • +
  • Select the "Calendar" tab.
  • +
  • The calendar, along with its exceptions, working hours per day, and activation periods, will be displayed.
  • +
  • Each tab will have the following options:
      +
    • Exceptions: Define exceptions and the period to which they apply, such as holidays, public holidays, or different workdays.
    • +
    • Working Week: Modify the working hours for each weekday (Monday, Tuesday, etc.).
    • +
    • Activation Periods: Create new activation periods to reflect the start and end dates of contracts associated with the resource. See the following image.
    • +
    +
  • +
  • Click Save to store the information.
  • +
  • Click Delete if you want to change the calendar assigned to a resource.
  • +
+
+images/new-resource-calendar.png +

Assigning a New Calendar to a Resource

+
+
+
+

Assigning Calendars to Orders

+

Projects can have a different calendar than the default calendar. To change the calendar for an order:

+
    +
  • Access the order list in the company overview.
  • +
  • Edit the order in question.
  • +
  • Access the "General information" tab.
  • +
  • Select the calendar to be assigned from the drop-down menu.
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+

Assigning Calendars to Tasks

+

Similar to resources and orders, you can assign specific calendars to individual tasks. This allows you to define different calendars for specific stages of a project. To assign a calendar to a task:

+
    +
  • Access the planning view of a project.
  • +
  • Right-click the task to which you want to assign a calendar.
  • +
  • Select the "Assign calendar" option.
  • +
  • Select the calendar to be assigned to the task.
  • +
  • Click Accept.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ru/04-avances.html b/libreplan-webapp/src/main/webapp/help/ru/04-avances.html new file mode 100644 index 000000000..615d6109f --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/04-avances.html @@ -0,0 +1,97 @@ + + + + + + +Progress + + + +
+

Progress

+ + +

Project progress indicates the degree to which the estimated completion time of the project is being met. Task progress indicates the degree to which the task is being completed according to its estimated completion.

+

Generally, progress cannot be measured automatically. A staff member with experience or a checklist must determine the degree of completion for a task or project.

+

It's important to note the distinction between the hours assigned to a task or project and the progress of that task or project. While the number of hours used may be more or less than expected, the project may be ahead of or behind its estimated completion on the monitored day. Several situations can arise from these two measurements:

+
    +
  • Fewer hours consumed than expected, but the project is behind schedule: Progress is lower than estimated for the monitored day.
  • +
  • Fewer hours consumed than expected, and the project is ahead of schedule: Progress is higher than estimated for the monitored day.
  • +
  • More hours consumed than expected, and the project is behind schedule: Progress is lower than estimated for the monitored day.
  • +
  • More hours consumed than expected, but the project is ahead of schedule: Progress is higher than estimated for the monitored day.
  • +
+

The planning view allows you to compare these situations by using information about the progress made and the hours used. This chapter will explain how to enter information to monitor progress.

+

The philosophy behind progress monitoring is based on users defining the level at which they want to monitor their projects. For example, if users want to monitor orders, they only need to enter information for level-1 elements. If they want more precise monitoring at the task level, they must enter progress information at lower levels. The system will then aggregate the data upward through the hierarchy.

+
+

Managing Progress Types

+

Companies have varying needs when monitoring project progress, particularly the tasks involved. Therefore, the system includes "progress types." Users can define different progress types to measure a task's progress. For example, a task can be measured as a percentage, but this percentage can also be translated into progress in Tonnes based on the agreement with the client.

+

A progress type has a name, a maximum value, and a precision value:

+
    +
  • Name: A descriptive name that users will recognize when selecting the progress type. This name should clearly indicate what kind of progress is being measured.
  • +
  • Maximum Value: The maximum value that can be established for a task or project as the total progress measurement. For example, if you're working with Tonnes and the normal maximum is 4000 tonnes, and no task will ever require more than 4000 tonnes of any material, then 4000 would be the maximum value.
  • +
  • Precision Value: The increment value allowed for the progress type. For example, if progress in Tonnes is to be measured in whole numbers, the precision value would be 1. From that point on, only whole numbers can be entered as progress measurements (e.g., 1, 2, 300).
  • +
+

The system has two default progress types:

+
    +
  • Percentage: A general progress type that measures the progress of a project or task based on an estimated completion percentage. For example, a task is 30% complete out of the 100% estimated for a specific day.
  • +
  • Units: A general progress type that measures progress in units without specifying the type of unit. For example, a task involves creating 3000 units, and the progress is 500 units out of the total of 3000.
  • +
+
+images/tipos-avances.png +

Administration of Progress Types

+
+

Users can create new progress types as follows:

+
    +
  • Go to the "Administration" section.
  • +
  • Click the "Manage types of progress" option in the second-level menu.
  • +
  • The system will display a list of existing progress types.
  • +
  • For each progress type, users can:
      +
    • Edit
    • +
    • Delete
    • +
    +
  • +
  • Users can then create a new progress type.
  • +
  • When editing or creating a progress type, the system displays a form with the following information:
      +
    • Name of the progress type.
    • +
    • Maximum value allowed for the progress type.
    • +
    • Precision value for the progress type.
    • +
    +
  • +
+
+
+

Entering Progress Based on Type

+

Progress is entered for order elements, but it can also be entered using a shortcut from the planning tasks. Users are responsible for deciding which progress type to associate with each order element.

+

Users can enter a single, default progress type for the entire order.

+

Before measuring progress, users must associate the chosen progress type with the order. For example, they might choose percentage progress to measure progress on the entire task or an agreed progress rate if progress measurements agreed upon with the client will be entered in the future.

+
+images/avance.png +

Progress Entry Screen with Graphic Visualization

+
+

To enter progress measurements:

+
    +
  • Select the progress type to which the progress will be added. +* If no progress type exists, a new one must be created.
  • +
  • In the form that appears under the "Value" and "Date" fields, enter the absolute value of the measurement and the date of the measurement.
  • +
  • The system automatically stores the entered data.
  • +
+
+
+

Comparing Progress for an Order Element

+

Users can graphically compare the progress made on orders with the measurements taken. All progress types have a column with a check button ("Show"). When this button is selected, the progress chart of measurements taken is displayed for the order element.

+
+images/contraste-avance.png +

Comparison of Several Progress Types

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ru/05-recursos.html b/libreplan-webapp/src/main/webapp/help/ru/05-recursos.html new file mode 100644 index 000000000..07190538a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/05-recursos.html @@ -0,0 +1,186 @@ + + + + + + +Resource Management + + + +
+

Resource Management

+ + +

The program manages two distinct types of resources: staff and machines.

+
+

Staff Resources

+

Staff resources represent the company's workers. Their key characteristics are:

+
    +
  • They fulfill one or more generic or worker-specific criteria.
  • +
  • They can be specifically assigned to a task.
  • +
  • They can be assigned generically to a task that requires a resource criterion.
  • +
  • They can have a default or a specific calendar, as needed.
  • +
+
+
+

Machine Resources

+

Machine resources represent the company's machinery. Their key characteristics are:

+
    +
  • They fulfill one or more generic or machine-specific criteria.
  • +
  • They can be specifically assigned to a task.
  • +
  • They can be assigned generically to a task that requires a machine criterion.
  • +
  • They can have a default or a specific calendar, as needed.
  • +
  • The program includes a configuration screen where an alpha value can be defined to represent the machine/worker ratio.
      +
    • The alpha value indicates the amount of worker time required to operate the machine. For example, an alpha value of 0.5 means that every 8 hours of machine operation requires 4 hours of a worker's time.
    • +
    • Users can assign an alpha value specifically to a worker, designating that worker to operate the machine for that percentage of time.
    • +
    • Users can also make a generic assignment based on a criterion, so that a percentage of use is assigned to all resources that meet that criterion and have available time. Generic assignment works similarly to generic assignment for tasks, as described previously.
    • +
    +
  • +
+
+
+

Managing Resources

+

Users can create, edit, and deactivate (but not permanently delete) workers and machines within the company by navigating to the "Resources" section. This section provides the following features:

+
    +
  • List of Workers: Displays a numbered list of workers, allowing users to manage their details.
  • +
  • List of Machines: Displays a numbered list of machines, allowing users to manage their details.
  • +
+
+

Managing Workers

+

Worker management is accessed by going to the "Resources" section and then selecting "List of workers." Users can edit any worker in the list by clicking the standard edit icon.

+

When editing a worker, users can access the following tabs:

+
    +
  1. Worker Details: This tab allows users to edit the worker's basic identification details:

    +
      +
    • Name
    • +
    • Surname(s)
    • +
    • National ID document (DNI)
    • +
    • Queue-based resource (see section on Queue-based Resources)
    • +
    +
    +images/worker-personal-data.png +

    Editing Workers' Personal Details

    +
    +
  2. +
  3. Criteria: This tab is used to configure the criteria that a worker fulfills. Users can assign any worker or generic criteria they deem appropriate. It's crucial for workers to fulfill criteria to maximize the program's functionality. To assign criteria:

    +
      +
    1. Click the "Add criteria" button.
    2. +
    3. Search for the criterion to be added and select the most appropriate one.
    4. +
    5. Click the "Add" button.
    6. +
    7. Select the start date when the criterion becomes applicable.
    8. +
    9. Select the end date for applying the criterion to the resource. This date is optional if the criterion is considered indefinite.
    10. +
    +
    +images/worker-criterions.png +

    Associating Criteria with Workers

    +
    +
  4. +
  5. Calendar: This tab allows users to configure a specific calendar for the worker. All workers have a default calendar assigned; however, it's possible to assign a specific calendar to each worker based on an existing calendar.

    +
    +images/worker-calendar.png +

    Calendar Tab for a Resource

    +
    +
  6. +
  7. Cost Category: This tab allows users to configure the cost category that a worker fulfills during a given period. This information is used to calculate the costs associated with a worker on a project.

    +
    +images/worker-costcategory.png +

    Cost Category Tab for a Resource

    +
    +
  8. +
+

Resource assignment is explained in the "Resource Assignment" section.

+
+
+

Managing Machines

+

Machines are treated as resources for all purposes. Therefore, similar to workers, machines can be managed and assigned to tasks. Resource assignment is covered in the "Resource Assignment" section, which will explain the specific features of machines.

+

Machines are managed from the "Resources" menu entry. This section has an operation called "Machine list," which displays the company's machines. Users can edit or delete a machine from this list.

+

When editing machines, the system displays a series of tabs for managing different details:

+
    +
  1. Machine Details: This tab allows users to edit the machine's identification details:

    +
      +
    1. Name
    2. +
    3. Machine code
    4. +
    5. Description of the machine
    6. +
    +
    +images/machine-data.png +

    Editing Machine Details

    +
    +
  2. +
  3. Criteria: As with worker resources, this tab is used to add criteria that the machine fulfills. Two types of criteria can be assigned to machines: machine-specific or generic. Worker criteria cannot be assigned to machines. To assign criteria:

    +
      +
    1. Click the "Add criteria" button.
    2. +
    3. Search for the criterion to be added and select the most appropriate one.
    4. +
    5. Select the start date when the criterion becomes applicable.
    6. +
    7. Select the end date for applying the criterion to the resource. This date is optional if the criterion is considered indefinite.
    8. +
    9. Click the "Save and continue" button.
    10. +
    +
    +images/machine-criterions.png +

    Assigning Criteria to Machines

    +
    +
  4. +
  5. Calendar: This tab allows users to configure a specific calendar for the machine. All machines have a default calendar assigned; however, it's possible to assign a specific calendar to each machine based on an existing calendar.

    +
    +images/machine-calendar.png +

    Assigning Calendars to Machines

    +
    +
  6. +
  7. Machine Configuration: This tab allows users to configure the ratio of machines to worker resources. A machine has an alpha value that indicates the machine/worker ratio. As mentioned previously, an alpha value of 0.5 indicates that 0.5 people are required for each full day of machine operation. Based on the alpha value, the system automatically assigns workers who are associated with the machine once the machine is assigned to a task. Associating a worker with a machine can be done in two ways:

    +
      +
    1. Specific Assignment: Assign a range of dates during which the worker is assigned to the machine. This is a specific assignment, as the system automatically assigns hours to the worker when the machine is scheduled.
    2. +
    3. Generic Assignment: Assign criteria that must be fulfilled by workers assigned to the machine. This creates a generic assignment of workers who meet the criteria.
    4. +
    +
    +images/machine-configuration.png +

    Configuration of Machines

    +
    +
  8. +
  9. Cost Category: This tab allows users to configure the cost category that a machine fulfills during a given period. This information is used to calculate the costs associated with a machine on a project.

    +
    +images/machine-costcategory.png +

    Assigning Cost Categories to Machines

    +
    +
  10. +
+
+
+

Virtual Worker Groups

+

The program allows users to create virtual worker groups, which are not real workers but simulated staff. These groups enable users to model increased production capacity at specific times, based on the calendar settings.

+

Virtual worker groups allow users to assess how project planning would be affected by hiring and assigning staff who meet specific criteria, thus aiding in the decision-making process.

+

The tabs for creating virtual worker groups are the same as those for configuring workers:

+
    +
  • General Details
  • +
  • Assigned Criteria
  • +
  • Calendars
  • +
  • Associated Hours
  • +
+

The difference between virtual worker groups and actual workers is that virtual worker groups have a name for the group and a quantity, which represents the number of real people in the group. There is also a field for comments, where additional information can be provided, such as which project would require hiring equivalent to the virtual worker group.

+
+images/virtual-resources.png +

Virtual Resources

+
+
+
+

Queue-based Resources

+

Queue-based resources are a specific type of productive element that can either be unassigned or have 100% dedication. In other words, they cannot have more than one task scheduled at the same time, nor can they be over-allocated.

+

For each queue-based resource, a queue is automatically created. The tasks scheduled for these resources can be managed specifically using the provided assignment methods, creating automatic assignments between tasks and queues that match the required criteria, or by moving tasks between queues.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ru/06-pedidos.html b/libreplan-webapp/src/main/webapp/help/ru/06-pedidos.html new file mode 100644 index 000000000..87fd79071 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/06-pedidos.html @@ -0,0 +1,315 @@ + + + + + + +Orders and Order Elements + + + +
+

Orders and Order Elements

+ + +

Orders represent the work to be performed by users of the program. Each order corresponds to a project that the company will offer to its clients.

+

An order consists of one or more order elements. Each order element represents a specific part of the work to be done and defines how the work on the order should be planned and executed. Order elements are organized hierarchically, with no limitations on the depth of the hierarchy. This hierarchical structure allows for the inheritance of certain features, such as labels.

+

The following sections describe the operations that users can perform with orders and order elements.

+
+

Orders

+

An order represents a project or work requested by a client from the company. The order identifies the project within the company's planning. Unlike comprehensive management programs, TASKPM only requires certain key details for an order. These details are:

+
    +
  • Order Name: The name of the order.
  • +
  • Order Code: A unique code for the order.
  • +
  • Total Order Amount: The total financial value of the order.
  • +
  • Estimated Start Date: The planned start date for the order.
  • +
  • End Date: The planned completion date for the order.
  • +
  • Person in Charge: The individual responsible for the order.
  • +
  • Description: A description of the order.
  • +
  • Assigned Calendar: The calendar associated with the order.
  • +
  • Automatic Generation of Codes: A setting to instruct the system to automatically generate codes for order elements and hour groups.
  • +
  • Preference between Dependencies and Restrictions: Users can choose whether dependencies or restrictions take priority in case of conflicts.
  • +
+

However, a complete order also includes other associated entities:

+
    +
  • Hours Assigned to the Order: The total hours allocated to the order.
  • +
  • Progress Attributed to the Order: The progress made on the order.
  • +
  • Labels: Labels assigned to the order.
  • +
  • Criteria Assigned to the Order: Criteria associated with the order.
  • +
  • Materials: Materials required for the order.
  • +
  • Quality Forms: Quality forms associated with the order.
  • +
+

Creating or editing an order can be done from several locations within the program:

+
    +
  • From the "Order List" in the Company Overview:
      +
    • Editing: Click the edit button on the desired order.
    • +
    • Creating: Click "New order."
    • +
    +
  • +
  • From an Order in the Gantt Chart: Change to the order details view.
  • +
+

Users can access the following tabs when editing an order:

+
    +
  • Editing Order Details: This screen allows users to edit basic order details:

    +
      +
    • Name
    • +
    • Code
    • +
    • Estimated Start Date
    • +
    • End Date
    • +
    • Person in Charge
    • +
    • Client
    • +
    • Description
    • +
    +
    +images/order-edition.png +

    Editing Orders

    +
    +
  • +
  • Order Element List: This screen allows users to perform several operations on order elements:

    +
      +
    • Creating new order elements.
    • +
    • Promoting an order element one level up in the hierarchy.
    • +
    • Demoting an order element one level down in the hierarchy.
    • +
    • Indenting an order element (moving it down the hierarchy).
    • +
    • Unindenting an order element (moving it up the hierarchy).
    • +
    • Filtering order elements.
    • +
    • Deleting order elements.
    • +
    • Moving an element within the hierarchy by dragging and dropping.
    • +
    +
    +images/order-elements-list.png +

    Order Element List

    +
    +
  • +
  • Assigned Hours: This screen displays the total hours attributed to the project, grouping the hours entered in the order elements.

    +
    +images/order-assigned-hours.png +

    Assigning Hours Attributed to the Order by Workers

    +
    +
  • +
  • Progress: This screen allows users to assign progress types and enter progress measurements for the order. See the "Progress" section for more details.

    +
  • +
  • Labels: This screen allows users to assign labels to an order and view previously assigned direct and indirect labels. See the following section on editing order elements for a detailed description of label management.

    +
    +images/order-labels.png +

    Order Labels

    +
    +
  • +
  • Criteria: This screen allows users to assign criteria that will apply to all tasks within the order. These criteria will be automatically applied to all order elements, except those that have been explicitly invalidated. The hour groups of order elements, which are grouped by criteria, can also be viewed, allowing users to identify the criteria required for an order.

    +
    +images/order-criterions.png +

    Order Criteria

    +
    +
  • +
  • Materials: This screen allows users to assign materials to orders. Materials can be selected from the available material categories in the program. Materials are managed as follows:

    +
      +
    • Select the "Search materials" tab at the bottom of the screen.
    • +
    • Enter text to search for materials or select the categories for which you want to find materials.
    • +
    • The system filters the results.
    • +
    • Select the desired materials (multiple materials can be selected by pressing the "Ctrl" key).
    • +
    • Click "Assign."
    • +
    • The system displays the list of materials already assigned to the order.
    • +
    • Select the units and the status to assign to the order.
    • +
    • Click "Save" or "Save and continue."
    • +
    • To manage the receipt of materials, click "Divide" to change the status of a partial quantity of material.
    • +
    +
    +images/order-material.png +

    Materials Associated with an Order

    +
    +
  • +
  • Quality: Users can assign a quality form to the order. This form is then completed to ensure that certain activities associated with the order are carried out. See the following section on editing order elements for details on managing quality forms.

    +
    +images/order-quality.png +

    Quality Form Associated with the Order

    +
    +
  • +
+
+
+

Editing Order Elements

+

Order elements are edited from the "Order element list" tab by clicking the edit icon. This opens a new screen where users can:

+
    +
  • Edit information about the order element.
  • +
  • View hours attributed to order elements.
  • +
  • Manage progress of order elements.
  • +
  • Manage order labels.
  • +
  • Manage criteria required by the order element.
  • +
  • Manage materials.
  • +
  • Manage quality forms.
  • +
+

The following subsections describe each of these operations in detail.

+
+

Editing Information about the Order Element

+

Editing information about the order element includes modifying the following details:

+
    +
  • Order Element Name: The name of the order element.
  • +
  • Order Element Code: A unique code for the order element.
  • +
  • Start Date: The planned start date of the order element.
  • +
  • Estimated End Date: The planned completion date of the order element.
  • +
  • Total Hours: The total hours allocated to the order element. These hours can be calculated from the added hour groups or entered directly. If entered directly, the hours must be distributed among the hour groups, and a new hour group created if the percentages do not match the initial percentages.
  • +
  • Hour Groups: One or more hour groups can be added to the order element. The purpose of these hour groups is to define the requirements for the resources that will be assigned to perform the work.
  • +
  • Criteria: Criteria can be added that must be met to enable generic assignment for the order element.
  • +
+
+images/order-element-edition.png +

Editing Order Elements

+
+
+
+

Viewing Hours Attributed to Order Elements

+

The "Assigned hours" tab allows users to view the work reports associated with an order element and see how many of the estimated hours have already been completed.

+
+images/order-element-hours.png +

Hours Assigned to Order Elements

+
+

The screen is divided into two parts:

+
    +
  • Work Report List: Users can view the list of work reports associated with the order element, including the date and time, resource, and number of hours devoted to the task.
  • +
  • Use of Estimated Hours: The system calculates the total number of hours devoted to the task and compares them with the estimated hours.
  • +
+
+
+

Managing Progress of Order Elements

+

Entering progress types and managing order element progress is described in the "Progress" chapter.

+
+
+

Managing Order Labels

+

Labels, as described in the chapter on labels, allow users to categorize order elements. This enables users to group planning or order information based on these labels.

+

Users can assign labels directly to an order element or to a higher-level order element in the hierarchy. Once a label is assigned using either method, the order element and the related planning task are associated with the label and can be used for subsequent filtering.

+
+images/order-element-tags.png +

Assigning Labels for Order Elements

+
+

As shown in the image, users can perform the following actions from the Labels tab:

+
    +
  • View Inherited Labels: View labels associated with the order element that were inherited from a higher-level order element. The planning task associated with each order element has the same associated labels.
  • +
  • View Directly Assigned Labels: View labels directly associated with the order element using the assignment form for lower-level labels.
  • +
  • Assign Existing Labels: Assign labels by searching for them among the available labels in the form below the direct label list. To search for a label, click the magnifying glass icon or enter the first letters of the label in the text box to display the available options.
  • +
  • Create and Assign New Labels: Create new labels associated with an existing label type from this form. To do this, select a label type and enter the label value for the selected type. The system automatically creates the label and assigns it to the order element when "Create and assign" is clicked.
  • +
+
+
+

Managing Criteria Required by the Order Element and Hour Groups

+

Both an order and an order element can have criteria assigned that must be met for the work to be performed. Criteria can be direct or indirect:

+
    +
  • Direct Criteria: These are assigned directly to the order element. They are criteria required by the hour groups on the order element.
  • +
  • Indirect Criteria: These are assigned to higher-level order elements in the hierarchy and are inherited by the element being edited.
  • +
+

In addition to the required criteria, one or more hour groups that are part of the order element can be defined. This depends on whether the order element contains other order elements as child nodes or if it is a leaf node. In the first case, information about hours and hour groups can only be viewed. However, leaf nodes can be edited. Leaf nodes work as follows:

+
    +
  • The system creates a default hour group associated with the order element. The details that can be modified for an hour group are:
      +
    • Code: The code for the hour group (if not automatically generated).
    • +
    • Criterion Type: Users can choose to assign a machine or worker criterion.
    • +
    • Number of Hours: The number of hours in the hour group.
    • +
    • List of Criteria: The criteria to be applied to the hour group. To add new criteria, click "Add criterion" and select one from the search engine that appears after clicking the button.
    • +
    +
  • +
  • Users can add new hour groups with different features than previous hour groups. For example, an order element might require a welder (30 hours) and a painter (40 hours).
  • +
+
+images/order-element-criterion.png +

Assigning Criteria to Order Elements

+
+
+
+

Managing Materials

+

Materials are managed in projects as a list associated with each order element or an order in general. The list of materials includes the following fields:

+
    +
  • Code: The material code.
  • +
  • Date: The date associated with the material.
  • +
  • Units: The required number of units.
  • +
  • Unit Type: The type of unit used to measure the material.
  • +
  • Unit Price: The price per unit.
  • +
  • Total Price: The total price (calculated by multiplying the unit price by the number of units).
  • +
  • Category: The category to which the material belongs.
  • +
  • Status: The status of the material (e.g., Received, Requested, Pending, Processing, Cancelled).
  • +
+

Working with materials is done as follows:

+
    +
  • Select the "Materials" tab on an order element.
  • +
  • The system displays two sub-tabs: "Materials" and "Search materials."
  • +
  • If the order element has no assigned materials, the first tab will be empty.
  • +
  • Click "Search materials" in the lower-left part of the window.
  • +
  • The system displays the list of available categories and associated materials.
  • +
+
+images/order-element-material-search.png +

Searching for Materials

+
+
    +
  • Select categories to refine the material search.
  • +
  • The system displays the materials that belong to the selected categories.
  • +
  • From the materials list, select the materials to assign to the order element.
  • +
  • Click "Assign."
  • +
  • The system displays the selected list of materials on the "Materials" tab with new fields to complete.
  • +
+
+images/order-element-material-assign.png +

Assigning Materials to Order Elements

+
+
    +
  • Select the units, status, and date for the assigned materials.
  • +
+

For subsequent monitoring of materials, it's possible to change the status of a group of units of the received material. This is done as follows:

+
    +
  • Click the "Divide" button on the list of materials to the right of each row.
  • +
  • Select the number of units to divide the row into.
  • +
  • The program displays two rows with the material divided.
  • +
  • Change the status of the row containing the material.
  • +
+

The advantage of using this dividing tool is the ability to receive partial deliveries of material without having to wait for the entire delivery to mark it as received.

+
+
+

Managing Quality Forms

+

Some order elements require certification that certain tasks have been completed before they can be marked as complete. This is why the program has quality forms, which consist of a list of questions that are considered important if answered positively.

+

It's important to note that a quality form must be created beforehand to be assigned to an order element.

+

To manage quality forms:

+
    +
  • Go to the "Quality forms" tab.

    +
    +images/order-element-quality.png +

    Assigning Quality Forms to Order Elements

    +
    +
  • +
  • The program has a search engine for quality forms. There are two types of quality forms: by element or by percentage.

    +
      +
    • Element: Each element is independent.
    • +
    • Percentage: Each question increases the progress of the order element by a percentage. The percentages must be able to add up to 100%.
    • +
    +
  • +
  • Select one of the forms created in the administration interface and click "Assign."

    +
  • +
  • The program assigns the chosen form from the list of forms assigned to the order element.

    +
  • +
  • Click the "Edit" button on the order element.

    +
  • +
  • The program displays the questions from the quality form in the lower list.

    +
  • +
  • Mark the questions that have been completed as achieved.

    +
      +
    • If the quality form is based on percentages, the questions are answered in order.
    • +
    • If the quality form is based on elements, the questions can be answered in any order.
    • +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ru/07-planificacion.html b/libreplan-webapp/src/main/webapp/help/ru/07-planificacion.html new file mode 100644 index 000000000..7b8954f83 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/07-planificacion.html @@ -0,0 +1,117 @@ + + + + + + +Task Planning + + + +
+

Task Planning

+ + +
+

Task Planning

+

Planning in TASKPM is a process that has been described throughout the user guide, with the chapters on orders and resource assignment being particularly important. This chapter describes the basic planning procedures after the order and Gantt charts have been properly configured.

+
+images/planning-view.png +

Work Planning View

+
+

As with the company overview, the project planning view is divided into several views based on the information being analyzed. The views available for a specific project are:

+
    +
  • Planning View
  • +
  • Resource Load View
  • +
  • Order List View
  • +
  • Advanced Assignment View
  • +
+
+

Planning View

+

The Planning View combines three different perspectives:

+
    +
  • Project Planning: Project planning is displayed in the upper right-hand part of the program as a Gantt chart. This view allows users to temporarily move tasks, assign dependencies between them, define milestones, and establish restrictions.
  • +
  • Resource Load: The Resource Load view, located in the lower right-hand part of the screen, shows resource availability based on assignments, as opposed to the assignments made to tasks. The information displayed in this view is as follows:
      +
    • Purple Area: Indicates a resource load below 100% of its capacity.
    • +
    • Green Area: Indicates a resource load below 100%, resulting from the resource being planned for another project.
    • +
    • Orange Area: Indicates a resource load over 100% as a result of the current project.
    • +
    • Yellow Area: Indicates a resource load over 100% as a result of other projects.
    • +
    +
  • +
  • Graph View and Earned Value Indicators: These can be viewed from the "Earned Value" tab. The generated graph is based on the earned value technique, and the indicators are calculated for each workday of the project. The calculated indicators are:
      +
    • BCWS (Budgeted Cost of Work Scheduled): The cumulative time function for the number of hours planned up to a certain date. It will be 0 at the planned start of the task and equal to the total number of planned hours at the end. As with all cumulative graphs, it will always increase. The function for a task will be the sum of the daily assignments until the calculation date. This function has values for all times, provided that resources have been assigned.
    • +
    • ACWP (Actual Cost of Work Performed): The cumulative time function for the hours reported in work reports up to a certain date. This function will only have a value of 0 before the date of the task's first work report, and its value will continue to increase as time passes and work report hours are added. It will have no value after the date of the last work report.
    • +
    • BCWP (Budgeted Cost of Work Performed): The cumulative time function that includes the resultant value of multiplying task progress by the amount of work that the task was estimated to require for completion. This function's values increase as time passes, as do progress values. Progress is multiplied by the total number of estimated hours for all tasks. The BCWP value is the sum of the values for the tasks being calculated. Progress is totaled when it is configured.
    • +
    • CV (Cost Variance): CV = BCWP - ACWP
    • +
    • SV (Schedule Variance): SV = BCWP - BCWS
    • +
    • BAC (Budget at Completion): BAC = max (BCWS)
    • +
    • EAC (Estimate at Completion): EAC = (ACWP / BCWP) * BAC
    • +
    • VAC (Variance at Completion): VAC = BAC - EAC
    • +
    • ETC (Estimate to Complete): ETC = EAC - ACWP
    • +
    • CPI (Cost Performance Index): CPI = BCWP / ACWP
    • +
    • SPI (Schedule Performance Index): SPI = BCWP / BCWS
    • +
    +
  • +
+

In the project planning view, users can perform the following actions:

+
    +
  • Assigning Dependencies: Right-click a task, choose "Add dependency," and drag the mouse pointer to the task to which the dependency should be assigned.
      +
    • To change the type of dependency, right-click the dependency and choose the desired type.
    • +
    +
  • +
  • Creating a New Milestone: Click the task before which the milestone is to be added and select the "Add milestone" option. Milestones can be moved by selecting the milestone with the mouse pointer and dragging it to the desired position.
  • +
  • Moving Tasks without Disturbing Dependencies: Right-click the body of the task and drag it to the desired position. If no restrictions or dependencies are violated, the system will update the daily assignment of resources to the task and place the task on the selected date.
  • +
  • Assigning Restrictions: Click the task in question and select the "Task properties" option. A pop-up window will appear with a "Restrictions" field that can be modified. Restrictions can conflict with dependencies, which is why each order specifies whether dependencies take priority over restrictions. The restrictions that can be established are:
      +
    • As Soon as Possible: Indicates that the task must start as soon as possible.
    • +
    • Not Before: Indicates that the task must not start before a certain date.
    • +
    • Start on a Specific Date: Indicates that the task must start on a specific date.
    • +
    +
  • +
+

The planning view also offers several procedures that function as viewing options:

+
    +
  • Zoom Level: Users can choose the desired zoom level. There are several zoom levels: annual, four-monthly, monthly, weekly, and daily.
  • +
  • Search Filters: Users can filter tasks based on labels or criteria.
  • +
  • Critical Path: As a result of using the Dijkstra algorithm to calculate paths on graphs, the critical path was implemented. It can be viewed by clicking the "Critical path" button in the viewing options.
  • +
  • Show Labels: Enables users to view the labels assigned to tasks in a project, which can be viewed on screen or printed.
  • +
  • Show Resources: Enables users to view the resources assigned to tasks in a project, which can be viewed on screen or printed.
  • +
  • Print: Enables users to print the Gantt chart being viewed.
  • +
+
+
+

Resource Load View

+

The Resource Load View provides a list of resources that contains a list of tasks or criteria that generate workloads. Each task or criterion is shown as a Gantt chart so that the start and end dates of the load can be seen. A different color is shown depending on whether the resource has a load that is higher or lower than 100%:

+
    +
  • Green: Load lower than 100%
  • +
  • Orange: 100% load
  • +
  • Red: Load over 100%
  • +
+
+images/resource-load.png +

Resource Load View for a Specific Order

+
+

If the mouse pointer is placed on the resource's Gantt chart, the load percentage for the worker will be shown.

+
+
+

Order List View

+

The Order List View allows users to access the order editing and deleting options. See the "Orders" chapter for more information.

+
+
+

Advanced Assignment View

+

The Advanced Assignment View is explained in depth in the "Resource Assignment" chapter.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ru/08-asignacion.html b/libreplan-webapp/src/main/webapp/help/ru/08-asignacion.html new file mode 100644 index 000000000..46da7239c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/08-asignacion.html @@ -0,0 +1,179 @@ + + + + + + +Resource Assignment + + + +
+

Resource Assignment

+ + +

Resource assignment is one of the program's most important features and can be carried out in two different ways:

+
    +
  • Specific assignment
  • +
  • Generic assignment
  • +
+

Both types of assignment are explained in the following sections.

+

To perform either type of resource assignment, the following steps are necessary:

+
    +
  • Go to the planning view of an order.
  • +
  • Right-click on the task to be planned.
  • +
+
+images/resource-assignment-planning.png +

Resource Assignment Menu

+
+
    +
  • The program displays a screen with the following information:
      +
    • List of Criteria to be Fulfilled: For each hour group, a list of required criteria is shown.
    • +
    • Task Information: The start and end dates of the task.
    • +
    • Type of Calculation: The system allows users to choose the strategy for calculating assignments:
        +
      • Calculate Number of Hours: This calculates the number of hours required from the assigned resources, given an end date and a number of resources per day.
      • +
      • Calculate End Date: This calculates the end date of the task based on the number of resources assigned to the task and the total number of hours required to complete the task.
      • +
      • Calculate Number of Resources: This calculates the number of resources required to finish the task by a specific date, given a known number of hours per resource.
      • +
      +
    • +
    • Recommended Assignment: This option allows the program to gather the criteria to be fulfilled and the total number of hours from all hour groups, and then recommend a generic assignment. If a prior assignment exists, the system deletes it and replaces it with the new one.
    • +
    • Assignments: A list of assignments that have been made. This list shows the generic assignments (the number will be the list of fulfilled criteria, and the number of hours and resources per day). Each assignment can be explicitly removed by clicking the delete button.
    • +
    +
  • +
+
+images/resource-assignment.png +

Resource Assignment

+
+
    +
  • Users select "Search resources."
  • +
  • The program displays a new screen consisting of a criteria tree and a list of workers who fulfill the selected criteria on the right:
  • +
+
+images/resource-assignment-search.png +

Resource Assignment Search

+
+
    +
  • Users can select:
      +
    • Specific Assignment: See the "Specific Assignment" section for details on this option.
    • +
    • Generic Assignment: See the "Generic Assignment" section for details on this option.
    • +
    +
  • +
  • Users select a list of criteria (generic) or a list of workers (specific). Multiple selections can be made by pressing the "Ctrl" key while clicking each worker/criterion.
  • +
  • Users then click the "Select" button. It's important to remember that if a generic assignment is not selected, users must choose a worker or machine to perform the assignment. If a generic assignment is selected, it is sufficient for users to choose one or more criteria.
  • +
  • The program then displays the selected criteria or resource list in the list of assignments on the original resource assignment screen.
  • +
  • Users must choose the hours or resources per day, depending on the assignment method used in the program.
  • +
+
+

Specific Assignment

+

This is the specific assignment of a resource to a project task. In other words, the user decides which specific worker (by name and surname) or machine must be assigned to a task.

+

Specific assignment can be carried out on the screen shown in this image:

+
+images/asignacion-especifica.png +

Specific Resource Assignment

+
+

When a resource is specifically assigned, the program creates daily assignments based on the percentage of daily assigned resources selected, after comparing it with the available resource calendar. For example, an assignment of 0.5 resources for a 32-hour task means that 4 hours per day are assigned to the specific resource to complete the task (assuming a working calendar of 8 hours per day).

+
+

Specific Machine Assignment

+

Specific machine assignment functions in the same way as worker assignment. When a machine is assigned to a task, the system stores a specific assignment of hours for the chosen machine. The main difference is that the system searches the list of assigned workers or criteria at the moment the machine is assigned:

+
    +
  • If the machine has a list of assigned workers, the program chooses from those that are required by the machine, based on the assigned calendar. For example, if the machine calendar is 16 hours per day and the resource calendar is 8 hours, two resources are assigned from the list of available resources.
  • +
  • If the machine has one or more assigned criteria, generic assignments are made from among the resources that fulfill the criteria assigned to the machine.
  • +
+
+
+
+

Generic Assignment

+

Generic assignment occurs when users do not choose resources specifically but leave the decision to the program, which distributes the loads among the company's available resources.

+
+images/asignacion-xenerica.png +

Generic Resource Assignment

+
+

The assignment system uses the following assumptions as a basis:

+
    +
  • Tasks have criteria that are required from resources.
  • +
  • Resources are configured to fulfill criteria.
  • +
+

However, the system does not fail when criteria have not been assigned, but when all resources fulfill the non-requirement of criteria.

+

The generic assignment algorithm functions as follows:

+
    +
  • All resources and days are treated as containers where daily assignments of hours fit, based on the maximum assignment capacity in the task calendar.
  • +
  • The system searches for the resources that fulfill the criterion.
  • +
  • The system analyzes which assignments currently have different resources that fulfill criteria.
  • +
  • The resources that fulfill the criteria are chosen from those that have sufficient availability.
  • +
  • If freer resources are not available, assignments are made to the resources that have less availability.
  • +
  • Over-assignment of resources only begins when all the resources that fulfill the respective criteria are 100% assigned, until the total amount required to carry out the task is attained.
  • +
+
+

Generic Machine Assignment

+

Generic machine assignment functions in the same way as worker assignment. For example, when a machine is assigned to a task, the system stores a generic assignment of hours for all machines that fulfill the criteria, as described for resources in general. However, in addition, the system performs the following procedure for machines:

+
    +
  • For all machines chosen for generic assignment:
      +
    • It collects the machine's configuration information: alpha value, assigned workers, and criteria.
    • +
    • If the machine has an assigned list of workers, the program chooses the number required by the machine, depending on the assigned calendar. For example, if the machine calendar is 16 hours per day and the resource calendar is 8 hours, the program assigns two resources from the list of available resources.
    • +
    • If the machine has one or more assigned criteria, the program makes generic assignments from among the resources that fulfill the criteria assigned to the machine.
    • +
    +
  • +
+
+
+
+

Advanced Assignment

+

Advanced assignments allow users to design assignments that are automatically carried out by the application to personalize them. This procedure allows users to manually choose the daily hours that are dedicated by resources to assigned tasks or define a function that is applied to the assignment.

+

The steps to follow to manage advanced assignments are:

+
    +
  • Go to the advanced assignment window. There are two ways to access advanced assignments:
      +
    • Go to a specific order and change the view to advanced assignment. In this case, all the tasks on the order and assigned resources (specific and generic) will be shown.
    • +
    • Go to the resource assignment window by clicking the "Advanced assignment" button. In this case, the assignments that show the resources (generic and specific) assigned to a task will be shown.
    • +
    +
  • +
+
+images/advance-assignment.png +

Advanced Resource Assignment

+
+
    +
  • Users can choose the desired zoom level:
      +
    • Zoom Levels Greater Than One Day: If users change the assigned hour value to a week, month, four-month, or six-month period, the system distributes the hours linearly across all days throughout the chosen period.
    • +
    • Daily Zoom: If users change the assigned hour value to a day, these hours only apply to that day. Consequently, users can decide how many hours they want to assign per day to task resources.
    • +
    +
  • +
  • Users can choose to design an advanced assignment function. To do so, users must:
      +
    • Choose the function from the selection list that appears next to each resource and click "Configure."
    • +
    • The system displays a new window if the chosen function needs to be specifically configured. Supported functions:
        +
      • Segments: A function that allows users to define segments to which a polynomial function is applied. The function per segment is configured as follows:
          +
        • Date: The date on which the segment ends. If the following value (length) is established, the date is calculated; alternatively, length is calculated.
        • +
        • Defining the Length of Each Segment: This indicates what percentage of the task's duration is required for the segment.
        • +
        • Defining the Amount of Work: This indicates what workload percentage is expected to be completed in this segment. The quantity of work must be incremental. For example, if there is a 10% segment, the next one must be larger (for example, 20%).
        • +
        • Segment Graphs and Accumulated Loads.
        • +
        +
      • +
      +
    • +
    • Users then click "Accept."
    • +
    • The program stores the function and applies it to the daily resource assignments.
    • +
    +
  • +
+
+images/stretches.png +

Configuration of the Segment Function

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ru/09-partes.html b/libreplan-webapp/src/main/webapp/help/ru/09-partes.html new file mode 100644 index 000000000..90242b6c7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/09-partes.html @@ -0,0 +1,84 @@ + + + + + + +Work Reports + + + +
+

Work Reports

+ + +

Work reports enable the monitoring of the hours that resources dedicate to the tasks to which they are assigned.

+

The program allows users to configure new forms for entering dedicated hours, specifying the fields that they want to appear in these forms. This allows for the incorporation of reports from tasks carried out by workers and the monitoring of worker activity.

+

Before users can add entries for resources, they must define at least one work report type. This type defines the structure of the report, including all the rows that are added to it. Users can create as many work report types as necessary within the system.

+
+

Work Report Types

+

A work report consists of a series of fields that are common to the entire report and a set of work report lines with specific values for the fields defined in each row. For example, resources and tasks are common to all reports. However, there can be other new fields, such as "incidents," which are not required in all report types.

+

Users can configure different work report types so that a company can design its reports to meet its specific needs:

+
+images/work-report-types.png +

Work Report Types

+
+

The administration of work report types allows users to configure these types and add new text fields or optional tags. In the first tab for editing work report types, it is possible to configure the type for the mandatory attributes (whether they apply to the whole report or are specified at the line level) and add new optional fields.

+

The mandatory fields that must appear in all work reports are as follows:

+
    +
  • Name and Code: Identification fields for the name of the work report type and its code.
  • +
  • Date: Field for the date of the report.
  • +
  • Resource: Worker or machine appearing on the report or work report line.
  • +
  • Order Element: Code for the order element to which the performed work is attributed.
  • +
  • Hour Management: Determines the hour attribution policy to be used, which can be:
      +
    • According to Assigned Hours: Hours are attributed based on the assigned hours.
    • +
    • According to Start and Finish Times: Hours are calculated based on the start and finish times.
    • +
    • According to the Number of Hours and Start and Finish Range: Discrepancies are allowed, and the number of hours takes priority.
    • +
    +
  • +
+

Users can add new fields to the reports:

+
    +
  • Tag Type: Users can request the system to display a tag when completing the work report. For example, the client tag type, if the user wishes to enter the client for whom the work was carried out in each report.
  • +
  • Free Fields: Fields where text can be entered freely in the work report.
  • +
+
+images/work-report-type.png +

Creating a Work Report Type with Personalized Fields

+
+

Users can configure date, resource, and order element fields to appear in the header of the report, which means they apply to the entire report, or they can be added to each of the rows.

+

Finally, new additional text fields or tags can be added to the existing ones, in the work report header or in each line, by using the "Additional text" and "Tag type" fields, respectively. Users can configure the order in which these elements are to be entered in the "Management of additional fields and tags" tab.

+
+
+

Work Report List

+

Once the format of the reports to be incorporated into the system has been configured, users can enter the details in the created form according to the structure defined in the corresponding work report type. To do this, users need to follow these steps:

+
    +
  • Click the "New work report" button associated with the desired report from the list of work report types.
  • +
  • The program then displays the report based on the configurations given for the type. See the following image.
  • +
+
+images/work-report-type.png +

Structure of the Work Report Based on Type

+
+
    +
  • Select all the fields shown for the report:
      +
    • Resource: If the header has been chosen, the resource is only shown once. Alternatively, for each line of the report, it is necessary to choose a resource.
    • +
    • Task Code: Code of the task to which the work report is being assigned. Similar to the rest of the fields, if the field is in the header, the value is entered once or as many times as necessary on the lines of the report.
    • +
    • Date: Date of the report or each line, depending on whether the header or line is configured.
    • +
    • Number of Hours: The number of work hours in the project.
    • +
    • Start and Finish Times: Start and finish times for the work in order to calculate definitive work hours. This field only appears in the case of the hour assignment policies, "According to Start and Finish Times" and "According to the Number of Hours and Start and Finish Range."
    • +
    • Type of Hours: Enables users to choose the type of hour, e.g., "Normal," "Extraordinary," etc.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ru/10-etiquetas.html b/libreplan-webapp/src/main/webapp/help/ru/10-etiquetas.html new file mode 100644 index 000000000..eb6451798 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/10-etiquetas.html @@ -0,0 +1,68 @@ + + + + + + +Labels + + + +
+

Labels

+ +
+

Contents

+ +
+

Labels are entities used in the program to conceptually organize tasks or order elements.

+

Labels are categorized according to label type. A label can only belong to one label type; however, users can create many similar labels belonging to different label types.

+
+

Label Types

+

Label types are used to group the types of labels that users want to manage in the program. Here are some examples of possible label types:

+
    +
  • Client: Users may be interested in labeling tasks, orders, or order elements in relation to the client who requests them.
  • +
  • Area: Users may be interested in labeling tasks, orders, or order elements in relation to the areas in which they are carried out.
  • +
+

The administration of label types is managed from the "Administration" menu option. This is where users can edit label types, create new label types, and add labels to label types. Users can access the list of labels from this option.

+
+images/tag-types-list.png +

List of Label Types

+
+

From the list of label types, users can:

+
    +
  • Create a new label type.
  • +
  • Edit an existing label type.
  • +
  • Delete a label type with all of its labels.
  • +
+

Editing and creating labels share the same form. From this form, the user can assign a name to the label type, create or delete labels, and store the changes. The procedure is as follows:

+
    +
  • Select a label to edit or click the create button for a new one.
  • +
  • The system displays a form with a text entry for the name and a list of text entries with existing and assigned labels.
  • +
  • If users wish to add a new label, they must click the "New label" button.
  • +
  • The system displays a new row on the list with an empty text box that users must edit.
  • +
  • Users enter a name for the label.
  • +
  • The system adds the name to the list.
  • +
  • Users click "Save" or "Save and continue" to continue editing the form.
  • +
+
+images/tag-types-edition.png +

Editing Label Types

+
+
+
+

Labels

+

Labels are entities that belong to a label type. These entities can be assigned to order elements. Assigning a label to an order element means that all the elements descending from this element will inherit the label to which they belong. Having an assigned label means that these entities can be filtered where searches can be carried out:

+
    +
  • Search for tasks in the Gantt chart.
  • +
  • Search for order elements in the list of order elements.
  • +
  • Filters for reports.
  • +
+

The assignment of labels to order elements is covered in the chapter on orders.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ru/11-materiales.html b/libreplan-webapp/src/main/webapp/help/ru/11-materiales.html new file mode 100644 index 000000000..a06770897 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/11-materiales.html @@ -0,0 +1,54 @@ + + + + + + +Materials Management + + + +
+

Materials Management

+ +
+

Contents

+ +
+
+

Administration of Materials

+

Users can manage a basic database of materials, organized by categories.

+

Categories are containers to which specific materials and other categories can be assigned. They are stored in a hierarchical tree structure, as materials can belong to leaf categories or intermediary categories.

+

To manage categories, users must follow these steps:

+
    +
  • Go to the "Administration -> Materials" option.
  • +
  • The program displays a tree of categories.
  • +
  • Enter a category name in the text box and then click "Add."
  • +
  • The program adds the category to the tree.
  • +
+

To insert a category into the category tree, users must first select the parent category in the tree and then click "Add."

+
+images/material.png +

Material Administration Screen

+
+

To manage materials, users must follow these steps:

+
    +
  • Select the category to which materials are to be added and click "Add" to the right of "Materials."
  • +
  • The program adds a new empty row with fields to enter details about the material:
      +
    • Code: Material type code (this can be the external code from an ERP).
    • +
    • Description: Description of the material.
    • +
    • Unit Price: Unit price of each piece of material.
    • +
    • Unit: Unit used to measure each unit of material.
    • +
    • Category: Category to which the material belongs.
    • +
    • Availability: Indicates whether or not the material is active.
    • +
    +
  • +
  • Users complete the fields and click "Save."
  • +
+

The assignment of materials to order elements is explained in the chapter on "Orders."

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ru/12-formularios-calidad.html b/libreplan-webapp/src/main/webapp/help/ru/12-formularios-calidad.html new file mode 100644 index 000000000..97a584178 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/12-formularios-calidad.html @@ -0,0 +1,52 @@ + + + + + + +Quality Forms + + + +
+

Quality Forms

+ + +
+

Administration of Quality Forms

+

Quality forms consist of a list of questions or statements that indicate the tasks or processes that should have been completed before a task can be marked as complete by the company. These forms include the following fields:

+
    +
  • Name: The name of the quality form.
  • +
  • Description: A description of the quality form.
  • +
  • Type of Quality Form: The type can have two values:
      +
    • Percentage: Indicates that the questions must be answered in a logical order, and affirmative answers indicate that the task is progressing. For example, a basic process for a task might suggest that the task is 15% complete. Users must answer a question before proceeding to the next one.
    • +
    • Item: Indicates that the questions do not need to be answered in a logical order and can be answered in any sequence.
    • +
    +
  • +
+

Users must follow these steps to manage quality forms:

+
    +
  • From the "Administration" menu, access the "Quality forms" option.
  • +
  • Click "Edit" on an existing form or click "Create" to create a new one.
  • +
  • The program displays a form with fields for the name, description, and type.
  • +
  • Select the type.
  • +
  • The program displays the fields that are allowed for each type:
      +
    • Percentage: Question and percentage.
    • +
    • Item: Question.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+images/quality.png +

Quality Form Administration Screen

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ru/13-usuarios.html b/libreplan-webapp/src/main/webapp/help/ru/13-usuarios.html new file mode 100644 index 000000000..f46a23ded --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/13-usuarios.html @@ -0,0 +1,79 @@ + + + + + + +User Management + + + +
+

User Management

+ +
+

Contents

+ +
+
+

Managing Users

+

TASKPM's system allows administrators to manage user profiles, authorizations, and users. Users are assigned to user profiles, which can have a series of predefined roles that grant access to the program's features. Roles are defined authorizations within TASKPM. Examples of roles include:

+
    +
  • Administration: A role that must be assigned to administrators to enable them to perform administrative operations.
  • +
  • Web Service Reader: A role required for users to consult the program's web services.
  • +
  • Web Service Writer: A role required for users to write data via the program's web services.
  • +
+

Roles are predefined within the system. A user profile consists of one or more roles. Users must have specific roles to perform certain operations.

+

Users can be assigned one or more profiles, or one or more roles directly, allowing for specific or generic authorization to be granted.

+

To manage users, follow these steps:

+
    +
  • Go to "Manage users" in the "Administration" menu.
  • +
  • The program displays a form with a list of users.
  • +
  • Click the edit button for the desired user or click the "Create" button.
  • +
  • A form will appear with the following fields:
      +
    • User Name: The user's login name.
    • +
    • Password: The user's password.
    • +
    • Authorized/Unauthorized: A setting to enable or disable the user's account.
    • +
    • Email: The user's email address.
    • +
    • List of Associated Roles: To add a new role, users must search for a role in the selection list and click "Assign."
    • +
    • List of Associated Profiles: To add a new profile, users must search for a profile in the selection list and click "Assign."
    • +
    +
  • +
+
+images/manage-user.png +

Managing Users

+
+
    +
  • Click "Save" or "Save and continue."
  • +
+
+

Managing Profiles

+

To manage the program's profiles, users must follow these steps:

+
    +
  • Go to "Manage user profiles" in the "Administration" menu.
  • +
  • The program displays a list of profiles.
  • +
  • Click the edit button for the desired profile or click "Create."
  • +
  • A form appears in the program with the following fields:
      +
    • Name: The name of the user profile.
    • +
    • List of Roles (Authorizations): To add a role to the profile, users must select a role from the role list and click "Add."
    • +
    +
  • +
+
+images/manage-user-profile.png +

Managing User Profiles

+
+
    +
  • Click "Save" or "Save and continue," and the system will store the created or modified profile.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ru/14-custos.html b/libreplan-webapp/src/main/webapp/help/ru/14-custos.html new file mode 100644 index 000000000..5c35ce71d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/14-custos.html @@ -0,0 +1,110 @@ + + + + + + +Cost management + + + +
+

Cost management

+ +
+

Contents

+ +
+
+

Costs

+

Cost management allows users to estimate the costs of resources used in a project. To manage costs, the following entities must be defined:

+
    +
  • Hour Types: These indicate the types of hours worked by a resource. Users can define hour types for both machines and workers. Examples of hour types include: "Additional hours paid at €20 per hour." The following fields can be defined for hour types:
      +
    • Code: External code for the hour type.
    • +
    • Name: Name of the hour type. For example, "Additional."
    • +
    • Default Rate: Basic default rate for the hour type.
    • +
    • Activation: Indicates whether the hour type is active or not.
    • +
    +
  • +
  • Cost Categories: Cost categories define the costs associated with different hour types during specific periods (which may be indefinite). For example, the cost of additional hours for first-grade skilled workers in the following year is €24 per hour. Cost categories include:
      +
    • Name: Cost category name.
    • +
    • Activation: Indicates whether the category is active or not.
    • +
    • List of Hour Types: This list defines the hour types included in the cost category. It specifies the periods and rates for each hour type. For example, as rates change, each year can be included on this list as an hour type period, with a specific hourly rate for each hour type (which may differ from the default hourly rate for that hour type).
    • +
    +
  • +
+
+

Managing Hour Types

+

Users must follow these steps to register hour types:

+
    +
  • Select "Manage hour types worked" on the "Administration" menu.
  • +
  • The program displays a list of existing hour types.
  • +
+
+images/hour-type-list.png +

Hour Type List

+
+
    +
  • Click "Edit" or "Create."
  • +
  • The program displays an hour type editing form.
  • +
+
+images/hour-type-edit.png +

Editing Hour Types

+
+
    +
  • Users can enter or change:
      +
    • The hour type name.
    • +
    • The hour type code.
    • +
    • The default rate.
    • +
    • Hour type activation/deactivation.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+

Cost Categories

+

Users must follow these steps to register cost categories:

+
    +
  • Select "Manage cost categories" on the "Administration" menu.
  • +
  • The program displays a list of existing categories.
  • +
+
+images/category-cost-list.png +

Cost Category List

+
+
    +
  • Click the "Edit" or "Create" button.
  • +
  • The program displays a cost category editing form.
  • +
+
+images/category-cost-edit.png +

Editing Cost Categories

+
+
    +
  • Users enter or change:
      +
    • The name of the cost category.
    • +
    • The activation/deactivation of the cost category.
    • +
    • The list of hour types included in the category. All hour types have the following fields:
        +
      • Hour Type: Choose one of the existing hour types in the system. If none exist, an hour type must be created (this process is explained in the previous subsection).
      • +
      • Start and Finish Date: The start and finish dates (the latter is optional) for the period that applies to the cost category.
      • +
      • Hourly Rate: The hourly rate for this specific category.
      • +
      +
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+

The assignment of cost categories to resources is described in the chapter on resources. Go to the "Resources" section.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ru/15-1-report-hours-worked-by-resource.html b/libreplan-webapp/src/main/webapp/help/ru/15-1-report-hours-worked-by-resource.html new file mode 100644 index 000000000..f97f118aa --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/15-1-report-hours-worked-by-resource.html @@ -0,0 +1,101 @@ + + + + + + +Hours Worked by Resource Report + + + +
+

Hours Worked by Resource Report

+ + +
+

Purpose

+

This report extracts a list of tasks and the time resources have dedicated to them within a specified period. Several filters allow users to refine the query to obtain only the desired information and exclude extraneous data.

+
+
+

Input Parameters and Filters

+
    +
  • +
    Dates.
    +
      +
    • Type: Optional.
    • +
    • +
      Two date fields:
      +
        +
      • Start Date: This is the earliest date for work reports to be included. Work reports with dates earlier than the Start Date are excluded. If this parameter is left blank, work reports are not filtered by Start Date.
      • +
      • End Date: This is the latest date for work reports to be included. Work reports with dates later than the End Date are excluded. If this parameter is left blank, work reports are not filtered by End Date.
      • +
      +
      +
      +
    • +
    +
    +
    +
  • +
  • Filter by Workers: +* Type: Optional. +* How it works: You can select one or more workers to restrict the work reports to the time tracked by those specific workers. To add a worker as a filter, search for them in the selector and click the Add button. If this filter is left empty, work reports are retrieved regardless of the worker.
  • +
  • Filter by Labels: +* Type: Optional. +* How it works: You can add one or more labels to use as filters by searching for them in the selector and clicking the Add button. These labels are used to select the tasks to be included in the results when calculating the hours dedicated to them. This filter can be applied to timesheets, tasks, both, or neither.
  • +
  • Filter by Criteria: +* Type: Optional. +* How it works: You can select one or more criteria by searching for them in the selector and then clicking the Add button. These criteria are used to select the resources that satisfy at least one of them. The report will show all the time dedicated by the resources that meet one of the selected criteria.
  • +
+
+
+

Output

+
+

Heading

+

The report heading displays the filters that were configured and applied to the current report.

+
+ +
+

Body

+

The report body consists of several groups of information.

+
    +
  • The first level of aggregation is by resource. All the time dedicated by a resource is shown together below the header. Each resource is identified by:

    +
      +
    • Worker: Surname, First Name.
    • +
    • Machine: Name.
    • +
    +

    A summary line shows the total number of hours worked by the resource.

    +
  • +
  • The second level of grouping is by date. All the reports from a specific resource on the same date are shown together.

    +

    A summary line shows the total number of hours worked by the resource on that date.

    +
  • +
  • The final level lists the work reports for the worker on that day. The information displayed for each work report line is:

    +
      +
    • Task Code: The code of the task to which the tracked hours are attributed.
    • +
    • Task Name: The name of the task to which the tracked hours are attributed.
    • +
    • Starting Time: This is optional. It is the time at which the resource began working on the task.
    • +
    • Ending Time: This is optional. It is the time at which the resource finished working on the task on the specified date.
    • +
    • Text Fields: This is optional. If the work report line has text fields, the filled values are shown here. The format is: <Name of the text field>:<Value>
    • +
    • Labels: This depends on whether the work report model has a label field in its definition. If there are multiple labels, they are shown in the same column. The format is: <Name of the label type>:<Value of the label>
    • +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ru/15-2-total-hours-by-resource-month.html b/libreplan-webapp/src/main/webapp/help/ru/15-2-total-hours-by-resource-month.html new file mode 100644 index 000000000..246cfc9c1 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/15-2-total-hours-by-resource-month.html @@ -0,0 +1,67 @@ + + + + + + +Total Hours Worked by Resource in a Month Report + + + +
+

Total Hours Worked by Resource in a Month Report

+ + +
+

Purpose

+

This report provides the total number of hours worked by each resource in a given month. This information can be useful for determining worker overtime or, depending on the organization, the number of hours for which each resource should be compensated.

+

The application tracks work reports for both workers and machines. For machines, the report sums up the number of hours they were in operation during the month.

+
+
+

Input Parameters and Filters

+

To generate this report, users must specify the year and month for which they want to retrieve the total number of hours worked by each resource.

+
+
+

Output

+

The output format is as follows:

+ + +
+

Body

+

The data section of the report consists of a single table with two columns:

+
+
    +
  • One column labeled Name for the name of the resource.
  • +
  • One column labeled Hours with the total number of hours worked by the resource in that row.
  • +
+
+

There is a final row that aggregates the total number of hours worked by all resources during the specified month and year.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ru/15-3-work-progress-per-project.html b/libreplan-webapp/src/main/webapp/help/ru/15-3-work-progress-per-project.html new file mode 100644 index 000000000..e2f5053a9 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/15-3-work-progress-per-project.html @@ -0,0 +1,125 @@ + + + + + + +Work and Progress per Project Report + + + +
+

Work and Progress per Project Report

+ + +
+

Purpose

+

This report provides an overview of the status of projects, considering both progress and cost.

+

It analyzes the current progress of each project, comparing it with the planned progress and the work completed.

+

The report also displays several ratios related to project cost, comparing current performance with the planned performance.

+
+
+

Input Parameters and Filters

+

There are several mandatory parameters:

+
+
    +
  • Reference Date: This is the date used as a reference point for comparing the planned status of the project with its actual performance. The default value for this field is the current date.
  • +
  • Progress Type: This is the progress type used to measure project progress. The application allows a project to be measured simultaneously with different progress types. The type selected by the user in the dropdown menu is used for calculating the report data. The default value for the progress type is spread, which is a special progress type that uses the preferred method of measuring progress configured for each WBS element.
  • +
+
+

The optional parameters are:

+
+
    +
  • Starting Date: This is the earliest start date for projects to be included in the report. If this field is left blank, there is no minimum start date for the projects.
  • +
  • Ending Date: This is the latest end date for projects to be included in the report. All projects that finish after the Ending Date will be excluded.
  • +
  • Filter by Projects: This filter allows users to select the specific projects to be included in the report. If no projects are added to the filter, the report will include all projects in the database. A searchable dropdown menu is provided to find the desired project. Projects are added to the filter by clicking the Add button.
  • +
+
+
+
+

Output

+

The output format is as follows:

+
+

Heading

+

The report header displays the following fields:

+
+
    +
  • Starting Date: The filtering start date. This is not displayed if the report is not filtered by this field.
  • +
  • Ending Date: The filtering end date. This is not displayed if the report is not filtered by this field.
  • +
  • Progress Type: The progress type used for the report.
  • +
  • Projects: This indicates the filtered projects for which the report is generated. It will show the string All when the report includes all projects that satisfy the other filters.
  • +
  • Reference Date: The mandatory input reference date selected for the report.
  • +
+
+
+ +
+

Body

+

The body of the report consists of a list of projects selected based on the input filters.

+

Filters work by adding conditions, except for the set formed by the date filters (Starting Date, Ending Date) and the Filter by Projects. In this case, if one or both date filters are filled and the Filter by Projects has a list of selected projects, the latter filter takes precedence. This means that the projects included in the report are those provided by the Filter by Projects, regardless of the date filters.

+

It's important to note that progress in the report is calculated as a fraction of unity, ranging between 0 and 1.

+

For each project selected for inclusion in the report output, the following information is displayed:

+
+
    +
  • Project Name.
  • +
  • +
    Total Hours. The total hours for the project are shown by adding the hours for each task. Two types of total hours are shown:
    +
      +
    • Estimated (TE). This is the sum of all the estimated hours in the project's WBS. It represents the total number of hours estimated to complete the project.
    • +
    • Planned (TP). In TASKPM, it's possible to have two different quantities: the estimated number of hours for a task (the number of hours initially estimated to complete the task) and the planned hours (the hours allocated in the plan to complete the task). The planned hours can be equal to, less than, or greater than the estimated hours and are determined in a later phase, the assignment operation. Therefore, the total planned hours for a project are the sum of all the allocated hours for its tasks.
    • +
    +
    +
    +
  • +
  • +
    Progress. Three measurements related to the overall progress of the type specified in the progress input filter for each project at the reference date are shown:
    +
      +
    • Measured (PM). This is the overall progress considering the progress measurements with a date earlier than the Reference Date in the input parameters of the report. All tasks are taken into account, and the sum is weighted by the number of hours for each task.
    • +
    • Imputed (PI). This is the progress assuming that work continues at the same pace as the hours completed for a task. If X hours out of Y hours for a task are completed, the overall imputed progress is considered to be X/Y.
    • +
    • Planned (PP). This is the overall progress of the project according to the planned schedule at the reference date. If everything happened exactly as planned, the measured progress should be the same as the planned progress.
    • +
    +
    +
    +
  • +
  • +
    Hours up to Date. There are two fields that show the number of hours up to the reference date from two perspectives:
    +
      +
    • Planned (HP). This number is the sum of the hours allocated to any task in the project with a date less than or equal to the Reference Date.
    • +
    • Actual (HR). This number is the sum of the hours reported in the work reports for any of the tasks in the project with a date less than or equal to the Reference Date.
    • +
    +
    +
    +
  • +
  • +
    Difference. Under this heading, there are several metrics related to cost:
    +
      +
    • Cost. This is the difference in hours between the number of hours spent, considering the measured progress, and the hours completed up to the reference date. The formula is: PM*TP - HR.
    • +
    • Planned. This is the difference between the hours spent according to the overall measured project progress and the number planned up to the Reference Date. It measures the advantage or delay in time. The formula is: PM*TP - HP.
    • +
    • Cost Ratio. This is calculated by dividing PM / PI. If it is greater than 1, it means that the project is profitable at this point. If it is less than 1, it means that the project is losing money.
    • +
    • Planned Ratio. This is calculated by dividing PM / PP. If it is greater than 1, it means that the project is ahead of schedule. If it is less than 1, it means that the project is behind schedule.
    • +
    +
    +
    +
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ru/15-informes.html b/libreplan-webapp/src/main/webapp/help/ru/15-informes.html new file mode 100644 index 000000000..c2c7cafab --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/15-informes.html @@ -0,0 +1,26 @@ + + + + + + +Reports + + + +
+

Reports

+ +

TASKPM integrates with JasperReports to provide report management, enabling users to generate various reports for analyzing the data available in the program.

+

The available reports are:

+ +
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ru/16-ldap-authentication.html b/libreplan-webapp/src/main/webapp/help/ru/16-ldap-authentication.html new file mode 100644 index 000000000..ad5d4976d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/16-ldap-authentication.html @@ -0,0 +1,251 @@ + + + + + + +LDAP Configuration + + + +
+

LDAP Configuration

+ + +

This screen allows you to establish a connection with LDAP to delegate +authentication and/or authorization.

+

It is divided into four different areas, which are explained below:

+
+

Activation

+

This area is used to set the properties that determine how TASKPM uses +LDAP.

+

If the field Enable LDAP authentication is checked, TASKPM will query +LDAP each time a user attempts to log in to the application.

+

The field Use LDAP roles checked means that a mapping between LDAP roles and +TASKPM roles is established. Consequently, the permissions for a user in +TASKPM will depend on the roles the user has in LDAP.

+
+
+

Configuration

+

This section contains the parameter values for accessing LDAP. Base, UserDN, and +Password are parameters used to connect to LDAP and search for users. Therefore, +the specified user must have permission to perform this operation in LDAP. At the +bottom of this section, there is a button to check if an LDAP connection is +possible with the given parameters. It is advisable to test the connection before +continuing the configuration.

+
+

Note

+

If your LDAP is configured to work with anonymous authentication, you can +leave the UserDN and Password attributes empty.

+
+
+

Tip

+

Regarding Active Directory (AD) configuration, the Base field must be the +exact location where the bound user resides in AD.

+

Example: ou=organizational_unit,dc=example,dc=org

+
+
+
+

Authentication

+

Here, you can configure the property in LDAP nodes where the given username +should be found. The property UserId must be filled with the name of the +property where the username is stored in LDAP.

+

The checkbox Save passwords in database, when checked, means that the +password is also stored in the TASKPM database. In this way, if LDAP is +offline or unreachable, LDAP users can authenticate against the TASKPM +database. If it is not checked, LDAP users can only be authenticated against +LDAP.

+
+
+

Authorization

+

This section allows you to define a strategy for matching LDAP roles with +TASKPM roles. The first choice is the strategy to use, depending on the +LDAP implementation.

+
+

Group Strategy

+

When this strategy is used, it indicates that LDAP has a role-group strategy. +This means that users in LDAP are nodes that are directly under a branch that +represents the group.

+

The next example represents a valid LDAP structure for using the group strategy.

+
    +
  • LDAP structure:

    +
    +dc=example,dc=org
    +|- ou=groups
    +   |- cn=admins
    +   |- cn=itpeople
    +   |- cn=workers
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

In this case, each group will have an attribute, for example, called member, +with the list of users belonging to the group:

+
    +
  • cn=admins:
      +
    • member: uid=admin1,ou=people,dc=example,dc=org
    • +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=itpeople:
      +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    • member: uid=it2,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=workers:
      +
    • member: uid=worker1,ou=people,dc=example,dc=org
    • +
    • member: uid=worker2,ou=people,dc=example,dc=org
    • +
    • member: uid=worker3,ou=people,dc=example,dc=org
    • +
    +
  • +
+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Group strategy
  • +
  • Group path: ou=groups
  • +
  • Role property: member
  • +
  • Role search query: uid=[USER_ID],ou=people,dc=example,dc=org
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: cn=admins;cn=itpeople
  • +
  • Web service reader: cn=itpeople
  • +
  • Web service writer: cn=itpeople
  • +
  • All projects read allowed: cn=admins
  • +
  • All projects edition allowed: cn=admins
  • +
  • Project creation allowed: cn=workers
  • +
+
+
+

Property Strategy

+

When an administrator decides to use this strategy, it indicates that each user +is an LDAP node, and within the node, there exists a property that represents +the group(s) for the user. In this case, the configuration does not require the +Group path parameter.

+

The next example represents a valid LDAP structure for using the property strategy.

+
    +
  • LDAP structure:

    +
    +dc=example,dc=org
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

With Attribute

+

In this case, each user will have an attribute, for example, called group, +with the name of the group to which they belong:

+
    +
  • uid=admin1:
      +
    • group: admins
    • +
    +
  • +
  • uid=it1:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=it2:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=worker1:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker2:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker3:
      +
    • group: workers
    • +
    +
  • +
+
+

Warning

+

This strategy has a restriction: each user can belong to only one group.

+
+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Property strategy
  • +
  • Group path:
  • +
  • Role property: group
  • +
  • Role search query: [USER_ID]
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: admins;itpeople
  • +
  • Web service reader: itpeople
  • +
  • Web service writer: itpeople
  • +
  • All projects read allowed: admins
  • +
  • All projects edition allowed: admins
  • +
  • Project creation allowed: workers
  • +
+

By User Identifier

+

You can even use a workaround to specify TASKPM roles directly to users +without having an attribute in each LDAP user.

+

In this case, you will specify which users have the different TASKPM roles +by uid.

+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Property strategy
  • +
  • Group path:
  • +
  • Role property: uid
  • +
  • Role search query: [USER_ID]
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: admin1;it1
  • +
  • Web service reader: it1;it2
  • +
  • Web service writer: it1;it2
  • +
  • All projects read allowed: admin1
  • +
  • All projects edition allowed: admin1
  • +
  • Project creation allowed: worker1;worker2;worker3
  • +
+
+
+

Role Matching

+

At the bottom of this section, there is a table with all the TASKPM roles +and a text field next to each one. This is for matching roles. For instance, +if an administrator decides that the Administration TASKPM role matches +the admin and administrators roles of LDAP, the text field should contain: +"admin;administrators". The character for splitting roles is ";".

+
+

Note

+

If you want to specify that all users or all groups have one permission, you +can use an asterisk (*) as a wildcard to refer to them. For example, if +you want everyone to have the Project creation allowed role, you will +configure the role matching as follows:

+
    +
  • Project creation allowed: *
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ru/17-1-project-dashboard.html b/libreplan-webapp/src/main/webapp/help/ru/17-1-project-dashboard.html new file mode 100644 index 000000000..5dc0899b7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/17-1-project-dashboard.html @@ -0,0 +1,173 @@ + + + + + + +Project Dashboard + + + +
+

Project Dashboard

+ + +

The project dashboard is a TASKPM perspective that contains a set of KPIs (Key Performance Indicators) to help assess a project's performance in terms of:

+
+
    +
  • Work progress
  • +
  • Cost
  • +
  • Status of allocated resources
  • +
  • Time constraints
  • +
+
+
+

Progress Performance Indicators

+

Two indicators are calculated: project progress percentage and task status.

+
+

Project Progress Percentage

+

This chart displays the overall progress of a project, comparing it to the expected progress based on the Gantt chart.

+

Progress is represented by two bars:

+
+
    +
  • Current Progress: The current progress based on the measurements taken.
  • +
  • Expected Progress: The progress the project should have achieved at this point, according to the project plan.
  • +
+
+

To view the actual measured value for each bar, hover the mouse cursor over the bar.

+

The overall project progress is estimated using several different methods, as there is no single, universally correct approach:

+
+
    +
  • Spreading Progress: This is the progress type set as the spreading progress at the project level. In this case, there is no way to calculate an expected value, and only the current bar is displayed.
  • +
  • By All Task Hours: The progress of all project tasks is averaged to calculate the overall value. This is a weighted average that considers the number of hours allocated to each task.
  • +
  • By Critical Path Hours: The progress of tasks belonging to any of the project's critical paths is averaged to obtain the overall value. This is a weighted average that considers the total allocated hours for each involved task.
  • +
  • By Critical Path Duration: The progress of tasks belonging to any of the critical paths is averaged using a weighted average, but this time considering the duration of each involved task instead of the assigned hours.
  • +
+
+
+
+

Task Status

+

A pie chart shows the percentage of project tasks in different states. The defined states are:

+
+
    +
  • Finished: Completed tasks, identified by a 100% progress value.
  • +
  • In Progress: Tasks that are currently underway. These tasks have a progress value other than 0% or 100%, or some work time has been tracked.
  • +
  • Ready to Start: Tasks with 0% progress, no tracked time, all their FINISH_TO_START dependent tasks are finished, and all their START_TO_START dependent tasks are finished or in progress.
  • +
  • Blocked: Tasks with 0% progress, no tracked time, and with previous dependent tasks that are neither in progress nor in the ready to start state.
  • +
+
+
+
+
+

Cost Indicators

+

Several Earned Value Management cost indicators are calculated:

+
+
    +
  • CV (Cost Variance): The difference between the Earned Value curve and the Actual Cost curve at the current moment. Positive values indicate a benefit, and negative values indicate a loss.

    +
  • +
  • ACWP (Actual Cost of Work Performed): The total number of hours tracked in the project at the current moment.

    +
  • +
  • CPI (Cost Performance Index): The Earned Value / Actual Cost ratio.

    +
    +
      +
    • > 100 is favorable, indicating that the project is under budget.
    • +
    • = 100 is also favorable, indicating that the cost is right on plan.
    • +
    • < 100 is unfavorable, indicating that the cost of completing the work is higher than planned.
    • +
    +
    +
  • +
  • ETC (Estimate To Complete): The time remaining to complete the project.

    +
  • +
  • BAC (Budget At Completion): The total amount of work allocated in the project plan.

    +
  • +
  • EAC (Estimate At Completion): The manager's projection of the total cost at project completion, based on the CPI.

    +
  • +
  • VAC (Variance At Completion): The difference between the BAC and the EAC.

    +
    +
      +
    • < 0 indicates that the project is over budget.
    • +
    • > 0 indicates that the project is under budget.
    • +
    +
    +
  • +
+
+
+
+

Resources

+

To analyze the project from the resources' point of view, two ratios and a histogram are provided.

+
+

Estimation Deviation on Completed Task Histogram

+

This histogram calculates the deviation between the number of hours allocated to the project tasks and the actual number of hours dedicated to them.

+

The deviation is calculated as a percentage for all finished tasks, and the calculated deviations are represented in a histogram. The vertical axis shows the number of tasks within each deviation interval. Six deviation intervals are dynamically calculated.

+
+
+

Overtime Ratio

+

This ratio summarizes the overload of resources allocated to the project tasks. It is calculated using the formula: overtime ratio = overload / (load + overload).

+
+
    +
  • = 0 is favorable, indicating that the resources are not overloaded.
  • +
  • > 0 is unfavorable, indicating that the resources are overloaded.
  • +
+
+
+
+

Availability Ratio

+

This ratio summarizes the free capacity of the resources currently allocated to the project. Therefore, it measures the resources' availability to receive more allocations without being overloaded. It is calculated as: availability ratio = (1 - load/capacity) * 100

+
+
    +
  • Possible values are between 0% (fully assigned) and 100% (not assigned).
  • +
+
+
+
+
+

Time

+

Two charts are included: a histogram for the time deviation in the finish time of project tasks and a pie chart for deadline violations.

+
+

Task Completion Lead or Lag

+

This calculation determines the difference in days between the planned end time for project tasks and their actual end time. The planned completion date is taken from the Gantt chart, and the actual finish date is taken from the last time tracked for the task.

+

The lag or lead in task completion is represented in a histogram. The vertical axis shows the number of tasks with a lead/lag day difference value corresponding to the abscissa days interval. Six dynamic task completion deviation intervals are calculated.

+
+
    +
  • Negative values mean finishing ahead of schedule.
  • +
  • Positive values mean finishing behind schedule.
  • +
+
+
+
+

Deadline Violations

+

This section calculates the margin with the project deadline, if set. Additionally, a pie chart shows the percentage of tasks meeting their deadline. Three types of values are included in the chart:

+
+
    +
  • Percentage of tasks without a deadline configured.
  • +
  • Percentage of ended tasks with an actual end date later than their deadline. The actual end date is taken from the last time tracked for the task.
  • +
  • Percentage of ended tasks with an actual end date earlier than their deadline.
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ru/17-2-pipeline-dashboard.html b/libreplan-webapp/src/main/webapp/help/ru/17-2-pipeline-dashboard.html new file mode 100644 index 000000000..bb54ed657 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/17-2-pipeline-dashboard.html @@ -0,0 +1,33 @@ + + + + + + +Pipeline Dashboard + + + +
+

Pipeline Dashboard

+ +

The pipeline dashboard is a TASKPM perspective that lists all company projects in a table. This "pipeline" table has nine columns, each corresponding to a project status:

+
+
    +
  • PRE-SALES
  • +
  • OFFERED
  • +
  • OUTSOURCED
  • +
  • ACCEPTED
  • +
  • STARTED
  • +
  • ON HOLD
  • +
  • FINISHED
  • +
  • CANCELLED
  • +
  • ARCHIVED
  • +
+
+

Projects are listed by name in each column based on their current status.

+

A project's start date, end date, and current progress can be viewed in a tooltip popup by hovering the mouse cursor over a project's name.

+

Projects with an ARCHIVED status can be hidden by unchecking the "Show archived column data" checkbox.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ru/17-dashboards.html b/libreplan-webapp/src/main/webapp/help/ru/17-dashboards.html new file mode 100644 index 000000000..3dc8f1af4 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/17-dashboards.html @@ -0,0 +1,24 @@ + + + + + + +Dashboards + + + +
+

Dashboards

+ +

TASKPM offers dashboard views for projects, providing an overview of their current status.

+

The two available dashboard views are:

+ +
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ru/18-connectors.html b/libreplan-webapp/src/main/webapp/help/ru/18-connectors.html new file mode 100644 index 000000000..0f879b53d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/18-connectors.html @@ -0,0 +1,238 @@ + + + + + + +Connectors + + + +
+

Connectors

+ + +

Connectors are TASKPM client applications that can be used to communicate with (web) servers to retrieve data, process it, and store it. Currently, there are three connectors: the JIRA connector, the Tim Enterprise connector, and the E-mail connector.

+
+

Configuration

+

Connectors must be configured properly before they can be used. They can be configured from the "Main Settings" screen under the "Connectors" tab.

+

The connector screen includes:

+
    +
  • Pull-down list: A list of available connectors.
  • +
  • Properties edit screen: A property edit form for the selected connector.
  • +
  • Test connection button: A button to test the connection with the connector.
  • +
+

Select the connector you want to configure from the pull-down list of connectors. A property editor form for the selected connector will be displayed. In the property editor form, you can change the property values as needed and test your configurations using the "Test connection" button.

+
+

Note

+

The properties are configured with default values. The most important property is "Activated." By default, it is set to "N." This indicates that the connector will not be used unless you change the value to "Y" and save the changes.

+
+
+
+

JIRA Connector

+

JIRA is an issue and project tracking system.

+

The JIRA connector is an application that can be used to request JIRA web server data for JIRA issues and process the response. The request is based on JIRA labels. In JIRA, labels can be used to categorize issues. The request is structured as follows: retrieve all issues that are categorized by this label name.

+

The connector receives the response, which in this case is the issues, and converts them to TASKPM "Order elements" and "Time sheets."

+

The JIRA connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the JIRA connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the JIRA connector. The default is "N."
  • +
  • Server URL: The absolute path to the JIRA web server.
  • +
  • User name and password: The user credentials for authorization.
  • +
  • JIRA labels: comma-separated list of labels or URL: You can either enter the label URL or a comma-separated list of labels.
  • +
  • Hours type: The type of work hours. The default is "Default."
  • +
+
+

Note

+

JIRA labels: Currently, the JIRA web server does not support providing a list of all available labels. As a workaround, we have developed a simple PHP script that performs a simple SQL query in the JIRA database to fetch all distinct labels. You can either use this PHP script as the "JIRA labels URL" or enter the labels you want as comma-separated text in the "JIRA labels" field.

+
+

Finally, click the "Test connection" button to test if you can connect to the JIRA web server and that your configurations are correct.

+
+
+

Synchronization

+

From the project window, under "General data," you can start synchronizing order elements with JIRA issues.

+

Click the "Sync with JIRA" button to start the synchronization.

+
    +
  • If this is the first time, a pop-up window (with an auto-completed list of labels) will be displayed. In this window, you can select a label to synchronize with and click the "Start sync" button to begin the synchronization process, or click the "Cancel" button to cancel it.
  • +
  • If a label is already synchronized, the last synchronized date and the label will be displayed in the JIRA screen. In this case, no pop-up window to select a label will be displayed. Instead, the synchronization process will start directly for that displayed (already synchronized) label.
  • +
+
+

Note

+

The relationship between "Order" and "label" is one-to-one. Only one label can be synchronized with one "Order."

+
+
+

Note

+

Upon successful (re)synchronization, the information will be written to the database, and the JIRA screen will be updated with the last synchronized date and label.

+
+

(Re)synchronization is performed in two phases:

+
    +
  • Phase 1: Synchronizing order elements, including progress assignment and measurements.
  • +
  • Phase 2: Synchronizing time sheets.
  • +
+
+

Note

+

If Phase 1 fails, Phase 2 will not be performed, and no information will be written to the database.

+
+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+

Upon successful completion of synchronization, the result will be displayed in the "Work Breakdown Structure (WBS tasks)" tab of the "Project details" screen. In this UI, there are two changes from the standard WBS:

+
    +
  • The "Total task hours" column is unmodifiable (read-only) because the synchronization is one-way. Task hours can only be updated in the JIRA web server.
  • +
  • The "Code" column displays the JIRA issue keys, and they are also hyperlinks to the JIRA issues. Click the desired key if you want to go to the document for that key (JIRA issue).
  • +
+
+
+

Scheduling

+

Re-synchronization of JIRA issues can also be performed through the scheduler. Go to the "Job scheduling" screen. In that screen, you can configure a JIRA job to perform synchronization. The job searches for the last synchronized labels in the database and re-synchronizes them accordingly. See also the Scheduler Manual.

+
+
+
+

Tim Enterprise Connector

+

Tim Enterprise is a Dutch product from Aenova. It is a web-based application for the administration of time spent on projects and tasks.

+

The Tim connector is an application that can be used to communicate with the Tim Enterprise server to:

+
    +
  • Export all hours spent by a worker (user) on a project that could be registered in Tim Enterprise.
  • +
  • Import all rosters of the worker (user) to plan the resource effectively.
  • +
+

The Tim connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the Tim connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the Tim connector. The default is "N."
  • +
  • Server URL: The absolute path to the Tim Enterprise server.
  • +
  • User name and password: The user credentials for authorization.
  • +
  • Number of days timesheet to Tim: The number of days back you want to export the time sheets.
  • +
  • Number of days roster from Tim: The number of days forward you want to import the rosters.
  • +
  • Productivity factor: Effective working hours in percentage. The default is "100%."
  • +
  • Department IDs to import roster: Comma-separated department IDs.
  • +
+

Finally, click the "Test connection" button to test if you can connect to the Tim Enterprise server and that your configurations are correct.

+
+
+

Export

+

From the project window, under "General data," you can start exporting time sheets to the Tim Enterprise server.

+

Enter the "Tim product code" and click the "Export to Tim" button to start the export.

+

The Tim connector adds the following fields along with the product code:

+
    +
  • The worker/user's full name.
  • +
  • The date the worker worked on a task.
  • +
  • The effort, or hours worked on the task.
  • +
  • An option indicating whether Tim Enterprise should update the registration or insert a new one.
  • +
+

The Tim Enterprise response contains only a list of record IDs (integers). This makes it difficult to determine what went wrong, as the response list contains only numbers not related to the request fields. The export request (registration in Tim) is assumed to have succeeded if all the list entries do not contain "0" values. Otherwise, the export request has failed for those entries that contain "0" values. Therefore, you cannot see which request failed, as the list entries only contain the value "0." The only way to determine this is to examine the log file on the Tim Enterprise server.

+
+

Note

+

Upon successful exporting, the information will be written to the database, and the Tim screen will be updated with the last exported date and product code.

+
+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+
+
+

Scheduling Export

+

The export process can also be performed through the scheduler. Go to the "Job Scheduling" screen. In that screen, you can configure a Tim Export job. The job searches for the last exported time sheets in the database and re-exports them accordingly. See also the Scheduler manual.

+
+
+

Import

+

Importing rosters only works with the help of the scheduler. There is no user interface designed for this, as no input is needed from the user. Go to the "Job scheduling" screen and configure a Tim Import job. The job loops through all departments configured in the connector properties and imports all rosters for each department. See also the Scheduler Manual.

+

For import, the Tim connector adds the following fields in the request:

+
    +
  • Period: The period (date from - date to) for which you want to import the roster. This can be provided as a filter criterion.
  • +
  • Department: The department for which you want to import the roster. Departments are configurable.
  • +
  • The fields you are interested in (like Person info, RosterCategory, etc.) that the Tim server should include in its response.
  • +
+

The import response contains the following fields, which are sufficient to manage the exception days in TASKPM:

+
    +
  • Person info: Name and network name.
  • +
  • Department: The department the worker is working in.
  • +
  • Roster category: Information on the presence/absence (Aanwzig/afwezig) of the worker and the reason (TASKPM exception type) in case the worker is absent.
  • +
  • Date: The date the worker is present/absent.
  • +
  • Time: The start time of presence/absence, for example, 08:00.
  • +
  • Duration: The number of hours that the worker is present/absent.
  • +
+

By converting the import response to TASKPM's "Exception day," the following translations are taken into account:

+
    +
  • If the roster category contains the name "Vakantie," it will be translated to "RESOURCE HOLIDAY."
  • +
  • The roster category "Feestdag" will be translated to "BANK HOLIDAY."
  • +
  • All the rest, like "Jus uren," "PLB uren," etc., should be added to the "Calendar Exception Days" manually.
  • +
+

Moreover, in the import response, the roster is divided into two or three parts per day: for example, roster-morning, roster-afternoon, and roster-evening. However, TASKPM allows only one "Exception type" per day. The Tim connector is then responsible for merging these parts as one exception type. That is, the roster category with the highest duration is assumed to be a valid exception type, but the total duration is the sum of all durations of these category parts.

+

Contrary to TASKPM, in Tim Enterprise, the total duration in case the worker is on holiday means the worker is not available for that total duration. However, in TASKPM, if the worker is on holiday, the total duration should be zero. The Tim connector also handles this translation.

+
+
+
+

E-mail Connector

+

E-mail is a method of exchanging digital messages from an author to one or more recipients.

+

The E-mail connector can be used to set Simple Mail Transfer Protocol (SMTP) server connection properties.

+

The E-mail connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the E-mail connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the E-mail connector. The default is "N."
  • +
  • Protocol: The type of SMTP protocol.
  • +
  • Host: The absolute path to the SMTP server.
  • +
  • Port: The port of the SMTP server.
  • +
  • From address: The e-mail address of the message sender.
  • +
  • Username: The username for the SMTP server.
  • +
  • Password: The password for the SMTP server.
  • +
+

Finally, click the "Test connection" button to test if you can connect to the SMTP server and that your configurations are correct.

+
+
+

Edit E-mail Template

+

From the project window, under "Configuration" and then "Edit E-mail Templates," you can modify the e-mail templates for messages.

+

You can choose:

+
    +
  • Template language:
  • +
  • Template type:
  • +
  • E-mail subject:
  • +
  • Template contents:
  • +
+

You need to specify the language because the web application will send e-mails to users in the language they have chosen in their preferences. You need to choose the template type. The type is the user role, meaning that this e-mail will be sent only to users who are in the selected role (type). You need to set the e-mail subject. The subject is a brief summary of the topic of the message. You need to set the e-mail contents. This is any information that you want to send to the user. There are also some keywords that you may use in the message; the web application will parse them and set a new value instead of the keyword.

+
+
+

Scheduling E-mails

+

Sending e-mails can only be performed through the scheduler. Go to "Configuration," then the "Job Scheduling" screen. In that screen, you can configure an e-mail sending job. The job takes a list of e-mail notifications, gathers data, and sends it to the user's e-mail. See also the Scheduler manual.

+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ru/19-scheduler.html b/libreplan-webapp/src/main/webapp/help/ru/19-scheduler.html new file mode 100644 index 000000000..8379b5b4c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/19-scheduler.html @@ -0,0 +1,107 @@ + + + + + + +Scheduler + + + +
+

Scheduler

+ + +

The scheduler is designed to schedule jobs dynamically. It is developed using the Spring Framework Quartz scheduler.

+

To use this scheduler effectively, the jobs (Quartz jobs) that should be scheduled must be created first. Then, these jobs can be added to the database, as all jobs to be scheduled are stored in the database.

+

When the scheduler starts, it reads the jobs to be scheduled or unscheduled from the database and schedules or removes them accordingly. Afterward, jobs can be added, updated, or removed dynamically using the Job scheduling user interface.

+
+

Note

+

The scheduler starts when the TASKPM web application starts and stops when the application stops.

+
+
+

Note

+

This scheduler supports only cron expressions to schedule jobs.

+
+

The criteria that the scheduler uses to schedule or remove jobs when it starts are as follows:

+

For all jobs:

+
    +
  • Schedule
      +
    • Job has a Connector, and the Connector is activated, and the job is allowed to be scheduled.
    • +
    • Job has no Connector and is allowed to be scheduled.
    • +
    +
  • +
  • Remove
      +
    • Job has a Connector, and the Connector is not activated.
    • +
    • Job has a Connector, and the Connector is activated, but the job is not allowed to be scheduled.
    • +
    • Job has no Connector and is not allowed to be scheduled.
    • +
    +
  • +
+
+

Note

+

Jobs cannot be rescheduled or unscheduled if they are currently running.

+
+
+

Job Scheduling List View

+

The Job scheduling list view allows users to:

+
    +
  • Add a new job.
  • +
  • Edit an existing job.
  • +
  • Remove a job.
  • +
  • Start a process manually.
  • +
+
+
+

Add or Edit Job

+

From the Job scheduling list view, click:

+
    +
  • Create to add a new job, or
  • +
  • Edit to modify the selected job.
  • +
+

Both actions will open a create/edit job form. The form displays the following properties:

+
    +
  • Fields:
      +
    • Job group: The name of the job group.
    • +
    • Job name: The name of the job.
    • +
    • Cron expression: A read-only field with an Edit button to open the cron expression input window.
    • +
    • Job class name: A pull-down list to select the job (an existing job).
    • +
    • Connector: A pull-down list to select a connector. This is not mandatory.
    • +
    • Schedule: A checkbox to indicate whether to schedule this job.
    • +
    +
  • +
  • Buttons:
      +
    • Save: To save or update a job in both the database and the scheduler. The user is then returned to the Job scheduling list view.
    • +
    • Save and continue: The same as "Save," but the user is not returned to the Job scheduling list view.
    • +
    • Cancel: Nothing is saved, and the user is returned to the Job scheduling list view.
    • +
    +
  • +
  • And a hint section about cron expression syntax.
  • +
+
+

Cron Expression Pop-up

+

To enter the cron expression correctly, a cron expression pop-up form is used. In this form, you can enter the desired cron expression. See also the hint about the cron expression. If you enter an invalid cron expression, you will be notified immediately.

+
+
+
+

Remove Job

+

Click the Remove button to delete the job from both the database and the scheduler. The success or failure of this action will be displayed.

+
+
+

Start Job Manually

+

As an alternative to waiting for the job to run as scheduled, you can click this button to start the process directly. Afterward, the success or failure information will be displayed in a pop-up window.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ru/20-acerca-de.html b/libreplan-webapp/src/main/webapp/help/ru/20-acerca-de.html new file mode 100644 index 000000000..569e69e4d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/20-acerca-de.html @@ -0,0 +1,155 @@ + + + + + + +About + + + +
+

About

+ + + +
+

License

+

This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version.

+

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/>.

+
+
+

Written by

+
+

TASKPM Team

+ +
+
+

Previous Team Members

+ +
+
+

Translators

+ +
+
+

Contributors

+ +
+
+
+

Public Funding

+

This project currently accepts donations through the Open Collective organization <https://opencollective.com/TASKPM>.

+

Within the global scope that TASKPM is designed for regarding planning management, a project was developed to solve some common planning problems.

+

This project was partially financed by Xunta de Galicia, Ministerio de Industria, Turismo e Comercio, and by the European Union, Fondo Europeo de Desenvolvemento Rexional.

+
+images/logos.png +
+ +++ + + + +
scale:100
+

This project was part of Plan Avanza:

+
+images/avanza.png +
+ +++ + + + +
scale:100
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ru/21-communications.html b/libreplan-webapp/src/main/webapp/help/ru/21-communications.html new file mode 100644 index 000000000..e4f5ea081 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/21-communications.html @@ -0,0 +1,18 @@ + + + + + + +Subcontractor Work Description + + + +
+

Subcontractor Work Description

+ +

While it is possible to leave this field empty, doing so can lead to errors in communication functionality when multiple empty fields exist.

+

Therefore, we strongly recommend always using a unique work description.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ru/22-pert.html b/libreplan-webapp/src/main/webapp/help/ru/22-pert.html new file mode 100644 index 000000000..c27af3c56 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/22-pert.html @@ -0,0 +1,17 @@ + + + + + + +PERT Chart + + + +
+

PERT Chart

+ +

Unlike Libreplan, which was focused on the GANNT chart and did not have a PERT chart, TASKPM does have a PERT chart and is more focused on it.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ru/23-subnets.html b/libreplan-webapp/src/main/webapp/help/ru/23-subnets.html new file mode 100644 index 000000000..42cd9e634 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/23-subnets.html @@ -0,0 +1,17 @@ + + + + + + +Task Subnets + + + +
+

Task Subnets

+ +

Unlike Libreplan, which only had a single level of planning, the whole project, TASKPM has subnetworks of activities which can be embedded in a master project.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/advance-assignment.png b/libreplan-webapp/src/main/webapp/help/ru/images/advance-assignment.png new file mode 100644 index 000000000..aeb55b2b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/advance-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/asignacion-especifica.png b/libreplan-webapp/src/main/webapp/help/ru/images/asignacion-especifica.png new file mode 100644 index 000000000..9ee94d9c6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/asignacion-especifica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/asignacion-xenerica.png b/libreplan-webapp/src/main/webapp/help/ru/images/asignacion-xenerica.png new file mode 100644 index 000000000..d2a16597f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/asignacion-xenerica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/avance.png b/libreplan-webapp/src/main/webapp/help/ru/images/avance.png new file mode 100644 index 000000000..ee289e19c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/avanza.png b/libreplan-webapp/src/main/webapp/help/ru/images/avanza.png new file mode 100644 index 000000000..a51893f80 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/avanza.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/calendar-administration.png b/libreplan-webapp/src/main/webapp/help/ru/images/calendar-administration.png new file mode 100644 index 000000000..bb4e17032 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/calendar-administration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/calendar-create-derived.png b/libreplan-webapp/src/main/webapp/help/ru/images/calendar-create-derived.png new file mode 100644 index 000000000..9f01f2c33 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/calendar-create-derived.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/calendar-edition.png b/libreplan-webapp/src/main/webapp/help/ru/images/calendar-edition.png new file mode 100644 index 000000000..a98cc4454 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/calendar-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/calendar-exceptions.png b/libreplan-webapp/src/main/webapp/help/ru/images/calendar-exceptions.png new file mode 100644 index 000000000..c2a53a684 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/calendar-exceptions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/category-cost-edit.png b/libreplan-webapp/src/main/webapp/help/ru/images/category-cost-edit.png new file mode 100644 index 000000000..1755ee79e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/category-cost-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/category-cost-list.png b/libreplan-webapp/src/main/webapp/help/ru/images/category-cost-list.png new file mode 100644 index 000000000..1d7ff838c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/category-cost-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/company_view.png b/libreplan-webapp/src/main/webapp/help/ru/images/company_view.png new file mode 100644 index 000000000..c3a7631e6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/company_view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/contraste-avance.png b/libreplan-webapp/src/main/webapp/help/ru/images/contraste-avance.png new file mode 100644 index 000000000..831cceac3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/contraste-avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/default-calendar.png b/libreplan-webapp/src/main/webapp/help/ru/images/default-calendar.png new file mode 100644 index 000000000..6fd379d08 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/default-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/edicion-criterio.png b/libreplan-webapp/src/main/webapp/help/ru/images/edicion-criterio.png new file mode 100644 index 000000000..2b879ced5 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/edicion-criterio.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/hour-type-edit.png b/libreplan-webapp/src/main/webapp/help/ru/images/hour-type-edit.png new file mode 100644 index 000000000..4917b08a8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/hour-type-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/hour-type-list.png b/libreplan-webapp/src/main/webapp/help/ru/images/hour-type-list.png new file mode 100644 index 000000000..1872eb4f7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/hour-type-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/lista-criterios.png b/libreplan-webapp/src/main/webapp/help/ru/images/lista-criterios.png new file mode 100644 index 000000000..a2e7d03cb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/lista-criterios.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/logo.png b/libreplan-webapp/src/main/webapp/help/ru/images/logo.png new file mode 100644 index 000000000..4e7d02651 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/logo.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/logos.png b/libreplan-webapp/src/main/webapp/help/ru/images/logos.png new file mode 100644 index 000000000..7314a0759 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/logos.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/machine-calendar.png b/libreplan-webapp/src/main/webapp/help/ru/images/machine-calendar.png new file mode 100644 index 000000000..a725f67a2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/machine-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/machine-configuration.png b/libreplan-webapp/src/main/webapp/help/ru/images/machine-configuration.png new file mode 100644 index 000000000..0777473fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/machine-configuration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/machine-costcategory.png b/libreplan-webapp/src/main/webapp/help/ru/images/machine-costcategory.png new file mode 100644 index 000000000..b8414eac6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/machine-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/machine-criterions.png b/libreplan-webapp/src/main/webapp/help/ru/images/machine-criterions.png new file mode 100644 index 000000000..7c270bf35 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/machine-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/machine-data.png b/libreplan-webapp/src/main/webapp/help/ru/images/machine-data.png new file mode 100644 index 000000000..5edb47d12 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/machine-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/manage-user-profile.png b/libreplan-webapp/src/main/webapp/help/ru/images/manage-user-profile.png new file mode 100644 index 000000000..6a86064e2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/manage-user-profile.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/manage-user.png b/libreplan-webapp/src/main/webapp/help/ru/images/manage-user.png new file mode 100644 index 000000000..df59f1b7c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/manage-user.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/material.png b/libreplan-webapp/src/main/webapp/help/ru/images/material.png new file mode 100644 index 000000000..a77b5aa41 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/menu.png b/libreplan-webapp/src/main/webapp/help/ru/images/menu.png new file mode 100644 index 000000000..f4eec5250 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/menu.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/new-resource-calendar.png b/libreplan-webapp/src/main/webapp/help/ru/images/new-resource-calendar.png new file mode 100644 index 000000000..9040e0bc0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/new-resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/order-assigned-hours.png b/libreplan-webapp/src/main/webapp/help/ru/images/order-assigned-hours.png new file mode 100644 index 000000000..4fd629386 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/order-assigned-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/order-criterions.png b/libreplan-webapp/src/main/webapp/help/ru/images/order-criterions.png new file mode 100644 index 000000000..e59bd833f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/order-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/order-edition.png b/libreplan-webapp/src/main/webapp/help/ru/images/order-edition.png new file mode 100644 index 000000000..ff67134db Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/order-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/order-element-criterion.png b/libreplan-webapp/src/main/webapp/help/ru/images/order-element-criterion.png new file mode 100644 index 000000000..f167979b0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/order-element-criterion.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/order-element-edition.png b/libreplan-webapp/src/main/webapp/help/ru/images/order-element-edition.png new file mode 100644 index 000000000..66e5e8602 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/order-element-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/order-element-hours.png b/libreplan-webapp/src/main/webapp/help/ru/images/order-element-hours.png new file mode 100644 index 000000000..06cc1dc37 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/order-element-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/order-element-material-assign.png b/libreplan-webapp/src/main/webapp/help/ru/images/order-element-material-assign.png new file mode 100644 index 000000000..90f973766 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/order-element-material-assign.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/order-element-material-search.png b/libreplan-webapp/src/main/webapp/help/ru/images/order-element-material-search.png new file mode 100644 index 000000000..550f1d7fa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/order-element-material-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/order-element-quality.png b/libreplan-webapp/src/main/webapp/help/ru/images/order-element-quality.png new file mode 100644 index 000000000..3272ce70e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/order-element-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/order-element-tags.png b/libreplan-webapp/src/main/webapp/help/ru/images/order-element-tags.png new file mode 100644 index 000000000..e43a7d795 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/order-element-tags.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/order-elements-list.png b/libreplan-webapp/src/main/webapp/help/ru/images/order-elements-list.png new file mode 100644 index 000000000..271ac9bf6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/order-elements-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/order-labels.png b/libreplan-webapp/src/main/webapp/help/ru/images/order-labels.png new file mode 100644 index 000000000..076e0a745 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/order-labels.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/order-material.png b/libreplan-webapp/src/main/webapp/help/ru/images/order-material.png new file mode 100644 index 000000000..9197679e7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/order-material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/order-quality.png b/libreplan-webapp/src/main/webapp/help/ru/images/order-quality.png new file mode 100644 index 000000000..ee9e9027e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/order-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/order_list.png b/libreplan-webapp/src/main/webapp/help/ru/images/order_list.png new file mode 100644 index 000000000..72e70f3b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/order_list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/planning-view.png b/libreplan-webapp/src/main/webapp/help/ru/images/planning-view.png new file mode 100644 index 000000000..de74811eb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/planning-view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/quality.png b/libreplan-webapp/src/main/webapp/help/ru/images/quality.png new file mode 100644 index 000000000..1850f51b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/resource-assignment-generic.png b/libreplan-webapp/src/main/webapp/help/ru/images/resource-assignment-generic.png new file mode 100644 index 000000000..3519a5087 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/resource-assignment-generic.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/resource-assignment-planning.png b/libreplan-webapp/src/main/webapp/help/ru/images/resource-assignment-planning.png new file mode 100644 index 000000000..c4233780d Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/resource-assignment-planning.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/resource-assignment-search.png b/libreplan-webapp/src/main/webapp/help/ru/images/resource-assignment-search.png new file mode 100644 index 000000000..cae142d81 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/resource-assignment-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/resource-assignment-specific.png b/libreplan-webapp/src/main/webapp/help/ru/images/resource-assignment-specific.png new file mode 100644 index 000000000..8f7b1cba2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/resource-assignment-specific.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/resource-assignment.png b/libreplan-webapp/src/main/webapp/help/ru/images/resource-assignment.png new file mode 100644 index 000000000..427d25b79 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/resource-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/resource-calendar.png b/libreplan-webapp/src/main/webapp/help/ru/images/resource-calendar.png new file mode 100644 index 000000000..749c7b829 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/resource-load.png b/libreplan-webapp/src/main/webapp/help/ru/images/resource-load.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/resource-load.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/resources_global.png b/libreplan-webapp/src/main/webapp/help/ru/images/resources_global.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/resources_global.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/stretches.png b/libreplan-webapp/src/main/webapp/help/ru/images/stretches.png new file mode 100644 index 000000000..d661a63f6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/stretches.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/tag-types-edition.png b/libreplan-webapp/src/main/webapp/help/ru/images/tag-types-edition.png new file mode 100644 index 000000000..d366c09c2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/tag-types-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/tag-types-list.png b/libreplan-webapp/src/main/webapp/help/ru/images/tag-types-list.png new file mode 100644 index 000000000..e7de5048c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/tag-types-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/tipos-avances.png b/libreplan-webapp/src/main/webapp/help/ru/images/tipos-avances.png new file mode 100644 index 000000000..bb417f52c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/tipos-avances.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/virtual-resources.png b/libreplan-webapp/src/main/webapp/help/ru/images/virtual-resources.png new file mode 100644 index 000000000..3a54f95d3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/virtual-resources.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/work-report-hours.png b/libreplan-webapp/src/main/webapp/help/ru/images/work-report-hours.png new file mode 100644 index 000000000..568e9fed6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/work-report-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/work-report-type.png b/libreplan-webapp/src/main/webapp/help/ru/images/work-report-type.png new file mode 100644 index 000000000..2549d8b5e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/work-report-type.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/work-report-types.png b/libreplan-webapp/src/main/webapp/help/ru/images/work-report-types.png new file mode 100644 index 000000000..986f705aa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/work-report-types.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/worker-calendar.png b/libreplan-webapp/src/main/webapp/help/ru/images/worker-calendar.png new file mode 100644 index 000000000..1227969b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/worker-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/worker-costcategory.png b/libreplan-webapp/src/main/webapp/help/ru/images/worker-costcategory.png new file mode 100644 index 000000000..f330db68c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/worker-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/worker-criterions.png b/libreplan-webapp/src/main/webapp/help/ru/images/worker-criterions.png new file mode 100644 index 000000000..a131a29fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/worker-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/images/worker-personal-data.png b/libreplan-webapp/src/main/webapp/help/ru/images/worker-personal-data.png new file mode 100644 index 000000000..6a5033ba8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/ru/images/worker-personal-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/ru/index.html b/libreplan-webapp/src/main/webapp/help/ru/index.html new file mode 100644 index 000000000..7a9b74000 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/index.html @@ -0,0 +1,47 @@ + + + + + + +LibrePlan: User documentation + + + +
+

LibrePlan: User documentation

+ +images/logo.png +

Following document contains necessary help for using LibrePlan, the opensource web application for project planning.

+

This document is divided in three main sections:

+

First, global goals and behaviour.

+

Second, basic entities to understand the minimum concepts to use LibrePlan.

+

Finally, complete processes description to create orders, projects, project planning, resources assignment, advance assignment and result extraction.

+
    +
  1. Introduction
  2. +
  3. Criteria
  4. +
  5. Calendars
  6. +
  7. Progress
  8. +
  9. Resource Management
  10. +
  11. Orders and Order Elements
  12. +
  13. Task Planning
  14. +
  15. Resource Assignment
  16. +
  17. Work Reports
  18. +
  19. Labels
  20. +
  21. Materials Management
  22. +
  23. Quality Forms
  24. +
  25. User Management
  26. +
  27. Cost management
  28. +
  29. Reports
  30. +
  31. LDAP Configuration
  32. +
  33. Dashboards
  34. +
  35. Connectors
  36. +
  37. Scheduler
  38. +
  39. About
  40. +
  41. Subcontractor Work Description
  42. +
  43. PERT Chart
  44. +
  45. Task Subnets
  46. +
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/ru/lsr.css b/libreplan-webapp/src/main/webapp/help/ru/lsr.css new file mode 100644 index 000000000..ced6c967a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/ru/lsr.css @@ -0,0 +1,250 @@ +/* +Author: Peter Parente +Date: 2008/01/22 +Version: 1.0 +Copyright: This stylesheet has been placed in the public domain - free to edit and use for all uses. +*/ + +body { + font: 0.8em Verdana, Tahoma, sans-serif; + background: #ffffff; + color: black; + margin: 2em; +} + +p.topic-title { + font-weight: bold; +} + +table.docinfo { + text-align: left; + margin: 2em 0; +} + +a[href] { + color: #436976; + background-color: transparent; +} + +a.toc-backref { + text-decoration: none; +} + +h1 a[href] { + color: #003a6b; + text-decoration: none; + background-color: transparent; +} + +a.strong { + font-weight: bold; +} + +img { + margin: 0; + border: 0; +} + +p { + margin: 0.5em 0 1em 0; + line-height: 1.5em; +} + +p a:visited { + color: purple; + background-color: transparent; +} + +p a:active { + color: red; + background-color: transparent; +} + +a:hover { + text-decoration: none; +} + +p img { + border: 0; + margin: 0; +} + +p.rubric { + font-weight: bold; + font-style: italic; +} + +h1.title { + color: #003a6b; + font-size: 250%; + margin-bottom: 0; +} + +h2.subtitle { + color: #003a6b; + border-bottom: 0; +} + +h1, h2, h3, h4, h5, h6 { + color: #555; + background-color: transparent; + margin: 0; + padding-top: 0.5em; +} + +h1 { + font-size: 160%; + margin-bottom: 0.5em; + border-bottom: 2px solid #aaa; +} + +h2 { + font-size: 140%; + margin-bottom: 0.5em; + border-bottom: 1px solid #aaa; +} + +h3 { + font-size: 130%; + margin-bottom: 0.5em; +} + +h4 { + font-size: 110%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h5 { + font-size: 105%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h6 { + font-size: 100%; + font-weight: bold; + margin-bottom: 0.5em; +} + +dt { + font-style: italic; +} + +dd { + margin-bottom: 1.5em; +} + +div.admonition, div.note, div.tip, div.caution, div.important, div.warning { + margin: 2em 2em; + padding: 0 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +div.important { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +div.caution { + background: transparent url('../images/caution.png') 10px 2px no-repeat; +} + +div.note { + background: transparent url('../images/note.png') 10px 2px no-repeat; +} + +div.tip { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-example { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-critical-example { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +p.admonition-title { + font-weight: bold; + border-bottom: 1px solid #aaa; + padding-left: 30px; +} + +table.docutils { + text-align: left; + border: 1px solid gray; + border-collapse: collapse; + width: 100%; + margin: 1.5em 0; +} + +table.docutils caption { + font-style: italic; +} + +table.docutils td, table.docutils th { + padding: 0.25em 0.5em; +} + +table.docutils th { + background-color: #dddddd; +} + +div.sidebar { + width: 33%; + float: right; + margin: 0 2em; + padding: 0 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +p.sidebar-title { + margin-bottom: 0; + color: #003a6b; + border-bottom: 1px solid #aaa; + font-weight: bold; +} + +p.sidebar-subtitle { + margin-top: 0; + font-style: italic; + color: #003a6b; +} + +div.figure { + text-align: center; +} + +div.figure img { + background: #f8f8f8; + padding: 0.25em; + border: 1px solid #888; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +div.figure img:hover { + background: #e0e0e0; +} + +div.figure p.caption { + text-align: center; + margin-top: 0.1em; + font-style: italic; + color: #444; +} + +pre.literal-block { + padding: 0.15em; + background: #f8f8f8; + border: 1px solid #dfdfdf; + border-left: 0.25em solid #dfdfdf +} diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/01-introducion.html b/libreplan-webapp/src/main/webapp/help/sv_SE/01-introducion.html new file mode 100644 index 000000000..51e520ad7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/01-introducion.html @@ -0,0 +1,132 @@ + + + + + + +Introduction + + + +
+

Introduction

+ + +

This document describes the features of TASKPM and provides user information on how to configure and use the application.

+

TASKPM is an open-source web application for project planning. Its primary goal is to provide a comprehensive solution for company project management. For any specific information you may need about this software, please contact the development team at http://www.libreplan.com/contact/

+
+images/company_view.png +

Company Overview

+
+
+

Company Overview and View Management

+

As shown in the program's main screen (see the previous screenshot) and the company overview, users can view a list of planned projects. This allows them to understand the company's overall status regarding orders and resource utilization. The company overview offers three distinct views:

+
    +
  • Planning View: This view combines two perspectives:

    +
    +
      +
    • Order and Time Tracking: Each project is represented by a Gantt chart, indicating the project's start and end dates. This information is displayed alongside the agreed-upon deadline. A comparison is then made between the percentage of progress achieved and the actual time dedicated to each project. This provides a clear picture of the company's performance at any given time. This view is the program's default landing page.
    • +
    • Company Resource Utilization Graph: This graph displays information on resource allocation across projects, providing a summary of the entire company's resource usage. Green indicates that resource allocation is below 100% of capacity. The black line represents the total available resource capacity. Yellow indicates that resource allocation exceeds 100%. It's possible to have under-allocation overall while simultaneously experiencing over-allocation for specific resources.
    • +
    +
    +
  • +
  • Resource Load View: This screen displays a list of the company's workers and their specific task allocations, or generic allocations based on defined criteria. To access this view, click on Overall load of resources. See the following image for an example.

    +
  • +
  • Orders Administration View: This screen displays a list of company orders, allowing users to perform the following actions: filter, edit, delete, visualize planning, or create a new order. To access this view, click on Order list.

    +
  • +
+
+images/resources_global.png +

Resource Overview

+
+
+images/order_list.png +

Work Breakdown Structure

+
+

The view management described above for the company overview is very similar to the management available for a single project. A project can be accessed in several ways:

+
    +
  • Right-click on the Gantt chart for the order and select Plan.
  • +
  • Access the order list and click on the Gantt diagram icon.
  • +
  • Create a new order and change the current order view.
  • +
+

The program offers the following views for an order:

+
    +
  • Planning View: This view allows users to visualize task planning, dependencies, milestones, and more. See the Planning section for further details.
  • +
  • Resource Load View: This view allows users to check the designated resource load for a project. The color code is consistent with the company overview: green for a load less than 100%, yellow for a load equal to 100%, and red for a load over 100%. The load may originate from a specific task or a set of criteria (generic allocation).
  • +
  • Editing Order View: This view allows users to modify the details of the order. See the Orders section for more information.
  • +
  • Advanced Resource Allocation View: This view allows users to allocate resources with advanced options, such as specifying hours per day or the allocated functions to be performed. See the Resource allocation section for more information.
  • +
+
+
+

What Makes TASKPM Useful?

+

TASKPM is a general-purpose planning tool developed to address challenges in industrial project planning that were not adequately covered by existing tools. The development of TASKPM was also motivated by the desire to provide a free, open-source, and entirely web-based alternative to proprietary planning tools.

+

The core concepts underpinning the program are as follows:

+
    +
  • Company and Multi-Project Overview: TASKPM is specifically designed to provide users with information about multiple projects being carried out within a company. Therefore, it is inherently a multi-project program. The program's focus is not limited to individual projects, although specific views for individual projects are also available.
  • +
  • View Management: The company overview, or multi-project view, is accompanied by various views of the stored information. For example, the company overview allows users to view orders and compare their status, view the company's overall resource load, and manage orders. Users can also access the planning view, resource load view, advanced resource allocation view, and editing order view for individual projects.
  • +
  • Criteria: Criteria are a system entity that enables the classification of both resources (human and machine) and tasks. Resources must meet certain criteria, and tasks require specific criteria to be fulfilled. This is one of the program's most important features, as criteria form the basis of generic allocation and address a significant challenge in the industry: the time-consuming nature of human resource management and the difficulty of long-term company load estimations.
  • +
  • Resources: There are two types of resources: human and machine. Human resources are the company's workers, used for planning, monitoring, and controlling the company's workload. Machine resources, dependent on the people who operate them, function similarly to human resources.
  • +
  • Resource Allocation: A key feature of the program is the ability to designate resources in two ways: specifically and generically. Generic allocation is based on the criteria required to complete a task and must be fulfilled by resources capable of meeting those criteria. To understand generic allocation, consider this example: John Smith is a welder. Typically, John Smith would be specifically assigned to a planned task. However, TASKPM offers the option of selecting any welder within the company, without needing to specify that John Smith is the assigned person.
  • +
  • Company Load Control: The program allows for easy control of the company's resource load. This control extends to both the mid-term and long-term, as current and future projects can be managed within the program. TASKPM provides graphs that visually represent resource utilization.
  • +
  • Labels: Labels are used to categorize project tasks. With these labels, users can group tasks by concept, allowing for later review as a group or after filtering.
  • +
  • Filters: Because the system naturally includes elements that label or characterize tasks and resources, criteria filters or labels can be used. This is very useful for reviewing categorized information or generating specific reports based on criteria or labels.
  • +
  • Calendars: Calendars define the available productive hours for different resources. Users can create general company calendars or define more specific calendars, allowing for the creation of calendars for individual resources and tasks.
  • +
  • Orders and Order Elements: Work requested by clients is treated as an order within the application, structured into order elements. The order and its elements follow a hierarchical structure with x levels. This element tree forms the basis for work planning.
  • +
  • Progress: The program can manage various types of progress. A project's progress can be measured as a percentage, in units, against the agreed budget, and more. The responsibility for determining which type of progress to use for comparison at higher project levels lies with the planning manager.
  • +
  • Tasks: Tasks are the fundamental planning elements within the program. They are used to schedule work to be carried out. Key characteristics of tasks include: dependencies between tasks, and the potential requirement for specific criteria to be met before resources can be allocated.
  • +
  • Work Reports: These reports, submitted by the company's workers, detail the hours worked and the tasks associated with those hours. This information allows the system to calculate the actual time taken to complete a task compared to the budgeted time. Progress can then be compared against the actual hours used.
  • +
+

In addition to the core functions, TASKPM offers other features that distinguish it from similar programs:

+
    +
  • Integration with ERP: The program can directly import information from company ERP systems, including orders, human resources, work reports, and specific criteria.
  • +
  • Version Management: The program can manage multiple planning versions, while still allowing users to review the information from each version.
  • +
  • History Management: The program does not delete information; it only marks it as invalid. This allows users to review historical information using date filters.
  • +
+
+
+

Usability Conventions

+
+

Information About Forms

+

Before describing the various functions associated with the most important modules, we need to explain the general navigation and form behavior.

+

There are essentially three types of editing forms:

+
    +
  • Forms with a *Return* button: These forms are part of a larger context, and the changes made are stored in memory. The changes are only applied when the user explicitly saves all the details on the screen from which the form originated.
  • +
  • Forms with *Save* and *Close* buttons: These forms allow for two actions. The first saves the changes and closes the current window. The second closes the window without saving any changes.
  • +
  • Forms with *Save and continue*, *Save*, and *Close* buttons: These forms allow for three actions. The first saves the changes and keeps the current form open. The second saves the changes and closes the form. The third closes the window without saving any changes.
  • +
+
+
+

Standard Icons and Buttons

+
    +
  • Editing: In general, records in the program can be edited by clicking on an icon that looks like a pencil on a white notebook.
  • +
  • Left Indent: These operations are generally used for elements within a tree structure that need to be moved to a deeper level. This is done by clicking on the icon that looks like a green arrow pointing to the right.
  • +
  • Right Indent: These operations are generally used for elements within a tree structure that need to be moved to a higher level. This is done by clicking on the icon that looks like a green arrow pointing to the left.
  • +
  • Deleting: Users can delete information by clicking on the trash can icon.
  • +
  • Search: The magnifying glass icon indicates that the text field to its left is used for searching for elements.
  • +
+
+
+

Tabs

+

The program uses tabs to organize content editing and administration forms. This method is used to divide a comprehensive form into different sections, accessible by clicking on the tab names. The other tabs retain their current status. In all cases, the save and cancel options apply to all sub-forms within the different tabs.

+
+
+

Explicit Actions and Context Help

+

The program includes components that provide additional descriptions of elements when the mouse hovers over them for one second. The actions that the user can perform are indicated on the button labels, in the help texts associated with them, in the browsing menu options, and in the context menus that appear when right-clicking in the planner area. Furthermore, shortcuts are provided for the main operations, such as double-clicking on listed elements or using key events with the cursor and the Enter key to add elements when navigating through forms.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/02-criterios.html b/libreplan-webapp/src/main/webapp/help/sv_SE/02-criterios.html new file mode 100644 index 000000000..42fad10d3 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/02-criterios.html @@ -0,0 +1,69 @@ + + + + + + +Criteria + + + +
+

Criteria

+ +
+

Contents

+ +
+

Criteria are elements used within the program to categorize both resources and tasks. Tasks require specific criteria, and resources must meet those criteria.

+

Here's an example of how criteria are used: A resource is assigned the criterion "welder" (meaning the resource fulfills the "welder" category), and a task requires the "welder" criterion to be completed. Consequently, when resources are allocated to tasks using generic allocation (as opposed to specific allocation), workers with the "welder" criterion will be considered. For more information on the different types of allocation, refer to the chapter on resource allocation.

+

The program allows for several operations involving criteria:

+
    +
  • Criteria administration
  • +
  • Assigning criteria to resources
  • +
  • Assigning criteria to tasks
  • +
  • Filtering entities based on criteria. Tasks and order items can be filtered by criteria to perform various operations within the program.
  • +
+

This section will only explain the first function, criteria administration. The two types of allocation will be covered later: resource allocation in the "Resource Management" chapter, and filtering in the "Task Planning" chapter.

+
+

Criteria Administration

+

Criteria administration can be accessed through the administration menu:

+
+images/menu.png +

First-Level Menu Tabs

+
+

The specific operation for managing criteria is Manage criteria. This operation allows you to list the criteria available in the system.

+
+images/lista-criterios.png +

List of Criteria

+
+

You can access the create/edit criterion form by clicking the Create button. To edit an existing criterion, click the edit icon.

+
+images/edicion-criterio.png +

Editing Criteria

+
+

The criteria editing form, as shown in the previous image, allows you to perform the following operations:

+
    +
  • Edit the criterion's name.
  • +
  • Specify whether multiple values can be assigned simultaneously or only one value for the selected criterion type. For example, a resource could fulfill two criteria, "welder" and "lathe operator."
  • +
  • Specify the criterion type:
      +
    • Generic: A criterion that can be used for both machines and workers.
    • +
    • Worker: A criterion that can only be used for workers.
    • +
    • Machine: A criterion that can only be used for machines.
    • +
    +
  • +
  • Indicate whether the criterion is hierarchical. Sometimes, criteria need to be treated hierarchically. For example, assigning a criterion to an element does not automatically assign it to elements derived from it. A clear example of a hierarchical criterion is "location." For instance, a person designated with the location "Galicia" will also belong to "Spain."
  • +
  • Indicate whether the criterion is authorized. This is how users deactivate criteria. Once a criterion has been created and used in historical data, it cannot be changed. Instead, it can be deactivated to prevent it from appearing in selection lists.
  • +
  • Describe the criterion.
  • +
  • Add new values. A text entry field with the New criterion button is located in the second part of the form.
  • +
  • Edit the names of existing criteria values.
  • +
  • Move criteria values up or down in the list of current criteria values.
  • +
  • Remove a criterion value from the list.
  • +
+

The criteria administration form follows the form behavior described in the introduction, offering three actions: Save, Save and Close, and Close.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/03-calendarios.html b/libreplan-webapp/src/main/webapp/help/sv_SE/03-calendarios.html new file mode 100644 index 000000000..0d0bbf0d5 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/03-calendarios.html @@ -0,0 +1,187 @@ + + + + + + +Calendars + + + +
+

Calendars

+ + +

Calendars are entities within the program that define the working capacity of resources. A calendar consists of a series of days throughout the year, with each day divided into available working hours.

+

For example, a public holiday might have 0 available working hours. Conversely, a typical workday might have 8 hours designated as available working time.

+

There are two primary ways to define the number of working hours in a day:

+
    +
  • By Weekday: This method sets a standard number of working hours for each day of the week. For example, Mondays might typically have 8 working hours.
  • +
  • By Exception: This method allows for specific deviations from the standard weekday schedule. For example, Monday, January 30th, might have 10 working hours, overriding the standard Monday schedule.
  • +
+
+

Calendar Administration

+

The calendar system is hierarchical, allowing you to create base calendars and then derive new calendars from them, forming a tree structure. A calendar derived from a higher-level calendar will inherit its daily schedules and exceptions unless explicitly modified. To effectively manage calendars, it's important to understand the following concepts:

+
    +
  • Day Independence: Each day is treated independently, and each year has its own set of days. For example, if December 8th, 2009, is a public holiday, this does not automatically mean that December 8th, 2010, is also a public holiday.
  • +
  • Weekday-Based Working Days: Standard working days are based on weekdays. For example, if Mondays typically have 8 working hours, then all Mondays in all weeks of all years will have 8 available hours unless an exception is defined.
  • +
  • Exceptions and Exception Periods: You can define exceptions or exception periods to deviate from the standard weekday schedule. For example, you can specify a single day or a range of days with a different number of available working hours than the general rule for those weekdays.
  • +
+
+images/calendar-administration.png +

Calendar Administration

+
+

Calendar administration is accessible through the "Administration" menu. From there, users can perform the following actions:

+
    +
  1. Create a new calendar from scratch.
  2. +
  3. Create a calendar derived from an existing one.
  4. +
  5. Create a calendar as a copy of an existing one.
  6. +
  7. Edit an existing calendar.
  8. +
+
+

Creating a New Calendar

+

To create a new calendar, click the "Create" button. The system will display a form where you can configure the following:

+
    +
  • Select the Tab: Choose the tab you want to work on:
      +
    • Marking Exceptions: Define exceptions to the standard schedule.
    • +
    • Working Hours per Day: Define the standard working hours for each weekday.
    • +
    +
  • +
  • Marking Exceptions: If you select the "Marking Exceptions" option, you can:
      +
    • Select a specific day on the calendar.
    • +
    • Select the type of exception. The available types are: holiday, illness, strike, public holiday, and working holiday.
    • +
    • Select the end date of the exception period. (This field does not need to be changed for single-day exceptions.)
    • +
    • Define the number of working hours during the days of the exception period.
    • +
    • Delete previously defined exceptions.
    • +
    +
  • +
  • Working Hours per Day: If you select the "Working Hours per Day" option, you can:
      +
    • Define the available working hours for each weekday (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, and Sunday).
    • +
    • Define different weekly hour distributions for future periods.
    • +
    • Delete previously defined hour distributions.
    • +
    +
  • +
+

These options allow users to fully customize calendars according to their specific needs. Click the "Save" button to store any changes made to the form.

+
+images/calendar-edition.png +

Editing Calendars

+
+
+images/calendar-exceptions.png +

Adding an Exception to a Calendar

+
+
+
+

Creating Derived Calendars

+

A derived calendar is created based on an existing calendar. It inherits all the features of the original calendar, but you can modify it to include different options.

+

A common use case for derived calendars is when you have a general calendar for a country, such as Spain, and you need to create a derived calendar to include additional public holidays specific to a region, such as Galicia.

+

It's important to note that any changes made to the original calendar will automatically propagate to the derived calendar, unless a specific exception has been defined in the derived calendar. For example, the calendar for Spain might have an 8-hour working day on May 17th. However, the calendar for Galicia (a derived calendar) might have no working hours on that same day because it's a regional public holiday. If the Spanish calendar is later changed to have 4 available working hours per day for the week of May 17th, the Galician calendar will also change to have 4 available working hours for every day in that week, except for May 17th, which will remain a non-working day due to the defined exception.

+
+images/calendar-create-derived.png +

Creating a Derived Calendar

+
+

To create a derived calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Calendar administration option.
  • +
  • Select the calendar you want to use as the basis for the derived calendar and click the "Create" button.
  • +
  • The system will display an editing form with the same characteristics as the form used to create a calendar from scratch, except that the proposed exceptions and the working hours per weekday will be based on the original calendar.
  • +
+
+
+

Creating a Calendar by Copying

+

A copied calendar is an exact duplicate of an existing calendar. It inherits all the features of the original calendar, but you can modify it independently.

+

The key difference between a copied calendar and a derived calendar is how they are affected by changes to the original. If the original calendar is modified, the copied calendar remains unchanged. However, derived calendars are affected by changes made to the original, unless an exception is defined.

+

A common use case for copied calendars is when you have a calendar for one location, such as "Pontevedra," and you need a similar calendar for another location, such as "A Coruña," where most of the features are the same. However, changes to one calendar should not affect the other.

+

To create a copied calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Calendar administration option.
  • +
  • Select the calendar you want to copy and click the "Create" button.
  • +
  • The system will display an editing form with the same characteristics as the form used to create a calendar from scratch, except that the proposed exceptions and the working hours per weekday will be based on the original calendar.
  • +
+
+
+

Default Calendar

+

One of the existing calendars can be designated as the default calendar. This calendar will be automatically assigned to any entity in the system that is managed with calendars unless a different calendar is specified.

+

To set up a default calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Configuration option.
  • +
  • In the Default calendar field, select the calendar you want to use as the program's default calendar.
  • +
  • Click Save.
  • +
+
+images/default-calendar.png +

Setting a Default Calendar

+
+
+
+

Assigning a Calendar to Resources

+

Resources can only be activated (i.e., have available working hours) if they have an assigned calendar with a valid activation period. If no calendar is assigned to a resource, the default calendar is assigned automatically, with an activation period that begins on the start date and has no expiry date.

+
+images/resource-calendar.png +

Resource Calendar

+
+

However, you can delete the calendar that has been previously assigned to a resource and create a new calendar based on an existing one. This allows for complete customization of calendars for individual resources.

+

To assign a calendar to a resource:

+
    +
  • Go to the Edit resources option.
  • +
  • Select a resource and click Edit.
  • +
  • Select the "Calendar" tab.
  • +
  • The calendar, along with its exceptions, working hours per day, and activation periods, will be displayed.
  • +
  • Each tab will have the following options:
      +
    • Exceptions: Define exceptions and the period to which they apply, such as holidays, public holidays, or different workdays.
    • +
    • Working Week: Modify the working hours for each weekday (Monday, Tuesday, etc.).
    • +
    • Activation Periods: Create new activation periods to reflect the start and end dates of contracts associated with the resource. See the following image.
    • +
    +
  • +
  • Click Save to store the information.
  • +
  • Click Delete if you want to change the calendar assigned to a resource.
  • +
+
+images/new-resource-calendar.png +

Assigning a New Calendar to a Resource

+
+
+
+

Assigning Calendars to Orders

+

Projects can have a different calendar than the default calendar. To change the calendar for an order:

+
    +
  • Access the order list in the company overview.
  • +
  • Edit the order in question.
  • +
  • Access the "General information" tab.
  • +
  • Select the calendar to be assigned from the drop-down menu.
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+

Assigning Calendars to Tasks

+

Similar to resources and orders, you can assign specific calendars to individual tasks. This allows you to define different calendars for specific stages of a project. To assign a calendar to a task:

+
    +
  • Access the planning view of a project.
  • +
  • Right-click the task to which you want to assign a calendar.
  • +
  • Select the "Assign calendar" option.
  • +
  • Select the calendar to be assigned to the task.
  • +
  • Click Accept.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/04-avances.html b/libreplan-webapp/src/main/webapp/help/sv_SE/04-avances.html new file mode 100644 index 000000000..615d6109f --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/04-avances.html @@ -0,0 +1,97 @@ + + + + + + +Progress + + + +
+

Progress

+ + +

Project progress indicates the degree to which the estimated completion time of the project is being met. Task progress indicates the degree to which the task is being completed according to its estimated completion.

+

Generally, progress cannot be measured automatically. A staff member with experience or a checklist must determine the degree of completion for a task or project.

+

It's important to note the distinction between the hours assigned to a task or project and the progress of that task or project. While the number of hours used may be more or less than expected, the project may be ahead of or behind its estimated completion on the monitored day. Several situations can arise from these two measurements:

+
    +
  • Fewer hours consumed than expected, but the project is behind schedule: Progress is lower than estimated for the monitored day.
  • +
  • Fewer hours consumed than expected, and the project is ahead of schedule: Progress is higher than estimated for the monitored day.
  • +
  • More hours consumed than expected, and the project is behind schedule: Progress is lower than estimated for the monitored day.
  • +
  • More hours consumed than expected, but the project is ahead of schedule: Progress is higher than estimated for the monitored day.
  • +
+

The planning view allows you to compare these situations by using information about the progress made and the hours used. This chapter will explain how to enter information to monitor progress.

+

The philosophy behind progress monitoring is based on users defining the level at which they want to monitor their projects. For example, if users want to monitor orders, they only need to enter information for level-1 elements. If they want more precise monitoring at the task level, they must enter progress information at lower levels. The system will then aggregate the data upward through the hierarchy.

+
+

Managing Progress Types

+

Companies have varying needs when monitoring project progress, particularly the tasks involved. Therefore, the system includes "progress types." Users can define different progress types to measure a task's progress. For example, a task can be measured as a percentage, but this percentage can also be translated into progress in Tonnes based on the agreement with the client.

+

A progress type has a name, a maximum value, and a precision value:

+
    +
  • Name: A descriptive name that users will recognize when selecting the progress type. This name should clearly indicate what kind of progress is being measured.
  • +
  • Maximum Value: The maximum value that can be established for a task or project as the total progress measurement. For example, if you're working with Tonnes and the normal maximum is 4000 tonnes, and no task will ever require more than 4000 tonnes of any material, then 4000 would be the maximum value.
  • +
  • Precision Value: The increment value allowed for the progress type. For example, if progress in Tonnes is to be measured in whole numbers, the precision value would be 1. From that point on, only whole numbers can be entered as progress measurements (e.g., 1, 2, 300).
  • +
+

The system has two default progress types:

+
    +
  • Percentage: A general progress type that measures the progress of a project or task based on an estimated completion percentage. For example, a task is 30% complete out of the 100% estimated for a specific day.
  • +
  • Units: A general progress type that measures progress in units without specifying the type of unit. For example, a task involves creating 3000 units, and the progress is 500 units out of the total of 3000.
  • +
+
+images/tipos-avances.png +

Administration of Progress Types

+
+

Users can create new progress types as follows:

+
    +
  • Go to the "Administration" section.
  • +
  • Click the "Manage types of progress" option in the second-level menu.
  • +
  • The system will display a list of existing progress types.
  • +
  • For each progress type, users can:
      +
    • Edit
    • +
    • Delete
    • +
    +
  • +
  • Users can then create a new progress type.
  • +
  • When editing or creating a progress type, the system displays a form with the following information:
      +
    • Name of the progress type.
    • +
    • Maximum value allowed for the progress type.
    • +
    • Precision value for the progress type.
    • +
    +
  • +
+
+
+

Entering Progress Based on Type

+

Progress is entered for order elements, but it can also be entered using a shortcut from the planning tasks. Users are responsible for deciding which progress type to associate with each order element.

+

Users can enter a single, default progress type for the entire order.

+

Before measuring progress, users must associate the chosen progress type with the order. For example, they might choose percentage progress to measure progress on the entire task or an agreed progress rate if progress measurements agreed upon with the client will be entered in the future.

+
+images/avance.png +

Progress Entry Screen with Graphic Visualization

+
+

To enter progress measurements:

+
    +
  • Select the progress type to which the progress will be added. +* If no progress type exists, a new one must be created.
  • +
  • In the form that appears under the "Value" and "Date" fields, enter the absolute value of the measurement and the date of the measurement.
  • +
  • The system automatically stores the entered data.
  • +
+
+
+

Comparing Progress for an Order Element

+

Users can graphically compare the progress made on orders with the measurements taken. All progress types have a column with a check button ("Show"). When this button is selected, the progress chart of measurements taken is displayed for the order element.

+
+images/contraste-avance.png +

Comparison of Several Progress Types

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/05-recursos.html b/libreplan-webapp/src/main/webapp/help/sv_SE/05-recursos.html new file mode 100644 index 000000000..07190538a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/05-recursos.html @@ -0,0 +1,186 @@ + + + + + + +Resource Management + + + +
+

Resource Management

+ + +

The program manages two distinct types of resources: staff and machines.

+
+

Staff Resources

+

Staff resources represent the company's workers. Their key characteristics are:

+
    +
  • They fulfill one or more generic or worker-specific criteria.
  • +
  • They can be specifically assigned to a task.
  • +
  • They can be assigned generically to a task that requires a resource criterion.
  • +
  • They can have a default or a specific calendar, as needed.
  • +
+
+
+

Machine Resources

+

Machine resources represent the company's machinery. Their key characteristics are:

+
    +
  • They fulfill one or more generic or machine-specific criteria.
  • +
  • They can be specifically assigned to a task.
  • +
  • They can be assigned generically to a task that requires a machine criterion.
  • +
  • They can have a default or a specific calendar, as needed.
  • +
  • The program includes a configuration screen where an alpha value can be defined to represent the machine/worker ratio.
      +
    • The alpha value indicates the amount of worker time required to operate the machine. For example, an alpha value of 0.5 means that every 8 hours of machine operation requires 4 hours of a worker's time.
    • +
    • Users can assign an alpha value specifically to a worker, designating that worker to operate the machine for that percentage of time.
    • +
    • Users can also make a generic assignment based on a criterion, so that a percentage of use is assigned to all resources that meet that criterion and have available time. Generic assignment works similarly to generic assignment for tasks, as described previously.
    • +
    +
  • +
+
+
+

Managing Resources

+

Users can create, edit, and deactivate (but not permanently delete) workers and machines within the company by navigating to the "Resources" section. This section provides the following features:

+
    +
  • List of Workers: Displays a numbered list of workers, allowing users to manage their details.
  • +
  • List of Machines: Displays a numbered list of machines, allowing users to manage their details.
  • +
+
+

Managing Workers

+

Worker management is accessed by going to the "Resources" section and then selecting "List of workers." Users can edit any worker in the list by clicking the standard edit icon.

+

When editing a worker, users can access the following tabs:

+
    +
  1. Worker Details: This tab allows users to edit the worker's basic identification details:

    +
      +
    • Name
    • +
    • Surname(s)
    • +
    • National ID document (DNI)
    • +
    • Queue-based resource (see section on Queue-based Resources)
    • +
    +
    +images/worker-personal-data.png +

    Editing Workers' Personal Details

    +
    +
  2. +
  3. Criteria: This tab is used to configure the criteria that a worker fulfills. Users can assign any worker or generic criteria they deem appropriate. It's crucial for workers to fulfill criteria to maximize the program's functionality. To assign criteria:

    +
      +
    1. Click the "Add criteria" button.
    2. +
    3. Search for the criterion to be added and select the most appropriate one.
    4. +
    5. Click the "Add" button.
    6. +
    7. Select the start date when the criterion becomes applicable.
    8. +
    9. Select the end date for applying the criterion to the resource. This date is optional if the criterion is considered indefinite.
    10. +
    +
    +images/worker-criterions.png +

    Associating Criteria with Workers

    +
    +
  4. +
  5. Calendar: This tab allows users to configure a specific calendar for the worker. All workers have a default calendar assigned; however, it's possible to assign a specific calendar to each worker based on an existing calendar.

    +
    +images/worker-calendar.png +

    Calendar Tab for a Resource

    +
    +
  6. +
  7. Cost Category: This tab allows users to configure the cost category that a worker fulfills during a given period. This information is used to calculate the costs associated with a worker on a project.

    +
    +images/worker-costcategory.png +

    Cost Category Tab for a Resource

    +
    +
  8. +
+

Resource assignment is explained in the "Resource Assignment" section.

+
+
+

Managing Machines

+

Machines are treated as resources for all purposes. Therefore, similar to workers, machines can be managed and assigned to tasks. Resource assignment is covered in the "Resource Assignment" section, which will explain the specific features of machines.

+

Machines are managed from the "Resources" menu entry. This section has an operation called "Machine list," which displays the company's machines. Users can edit or delete a machine from this list.

+

When editing machines, the system displays a series of tabs for managing different details:

+
    +
  1. Machine Details: This tab allows users to edit the machine's identification details:

    +
      +
    1. Name
    2. +
    3. Machine code
    4. +
    5. Description of the machine
    6. +
    +
    +images/machine-data.png +

    Editing Machine Details

    +
    +
  2. +
  3. Criteria: As with worker resources, this tab is used to add criteria that the machine fulfills. Two types of criteria can be assigned to machines: machine-specific or generic. Worker criteria cannot be assigned to machines. To assign criteria:

    +
      +
    1. Click the "Add criteria" button.
    2. +
    3. Search for the criterion to be added and select the most appropriate one.
    4. +
    5. Select the start date when the criterion becomes applicable.
    6. +
    7. Select the end date for applying the criterion to the resource. This date is optional if the criterion is considered indefinite.
    8. +
    9. Click the "Save and continue" button.
    10. +
    +
    +images/machine-criterions.png +

    Assigning Criteria to Machines

    +
    +
  4. +
  5. Calendar: This tab allows users to configure a specific calendar for the machine. All machines have a default calendar assigned; however, it's possible to assign a specific calendar to each machine based on an existing calendar.

    +
    +images/machine-calendar.png +

    Assigning Calendars to Machines

    +
    +
  6. +
  7. Machine Configuration: This tab allows users to configure the ratio of machines to worker resources. A machine has an alpha value that indicates the machine/worker ratio. As mentioned previously, an alpha value of 0.5 indicates that 0.5 people are required for each full day of machine operation. Based on the alpha value, the system automatically assigns workers who are associated with the machine once the machine is assigned to a task. Associating a worker with a machine can be done in two ways:

    +
      +
    1. Specific Assignment: Assign a range of dates during which the worker is assigned to the machine. This is a specific assignment, as the system automatically assigns hours to the worker when the machine is scheduled.
    2. +
    3. Generic Assignment: Assign criteria that must be fulfilled by workers assigned to the machine. This creates a generic assignment of workers who meet the criteria.
    4. +
    +
    +images/machine-configuration.png +

    Configuration of Machines

    +
    +
  8. +
  9. Cost Category: This tab allows users to configure the cost category that a machine fulfills during a given period. This information is used to calculate the costs associated with a machine on a project.

    +
    +images/machine-costcategory.png +

    Assigning Cost Categories to Machines

    +
    +
  10. +
+
+
+

Virtual Worker Groups

+

The program allows users to create virtual worker groups, which are not real workers but simulated staff. These groups enable users to model increased production capacity at specific times, based on the calendar settings.

+

Virtual worker groups allow users to assess how project planning would be affected by hiring and assigning staff who meet specific criteria, thus aiding in the decision-making process.

+

The tabs for creating virtual worker groups are the same as those for configuring workers:

+
    +
  • General Details
  • +
  • Assigned Criteria
  • +
  • Calendars
  • +
  • Associated Hours
  • +
+

The difference between virtual worker groups and actual workers is that virtual worker groups have a name for the group and a quantity, which represents the number of real people in the group. There is also a field for comments, where additional information can be provided, such as which project would require hiring equivalent to the virtual worker group.

+
+images/virtual-resources.png +

Virtual Resources

+
+
+
+

Queue-based Resources

+

Queue-based resources are a specific type of productive element that can either be unassigned or have 100% dedication. In other words, they cannot have more than one task scheduled at the same time, nor can they be over-allocated.

+

For each queue-based resource, a queue is automatically created. The tasks scheduled for these resources can be managed specifically using the provided assignment methods, creating automatic assignments between tasks and queues that match the required criteria, or by moving tasks between queues.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/06-pedidos.html b/libreplan-webapp/src/main/webapp/help/sv_SE/06-pedidos.html new file mode 100644 index 000000000..87fd79071 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/06-pedidos.html @@ -0,0 +1,315 @@ + + + + + + +Orders and Order Elements + + + +
+

Orders and Order Elements

+ + +

Orders represent the work to be performed by users of the program. Each order corresponds to a project that the company will offer to its clients.

+

An order consists of one or more order elements. Each order element represents a specific part of the work to be done and defines how the work on the order should be planned and executed. Order elements are organized hierarchically, with no limitations on the depth of the hierarchy. This hierarchical structure allows for the inheritance of certain features, such as labels.

+

The following sections describe the operations that users can perform with orders and order elements.

+
+

Orders

+

An order represents a project or work requested by a client from the company. The order identifies the project within the company's planning. Unlike comprehensive management programs, TASKPM only requires certain key details for an order. These details are:

+
    +
  • Order Name: The name of the order.
  • +
  • Order Code: A unique code for the order.
  • +
  • Total Order Amount: The total financial value of the order.
  • +
  • Estimated Start Date: The planned start date for the order.
  • +
  • End Date: The planned completion date for the order.
  • +
  • Person in Charge: The individual responsible for the order.
  • +
  • Description: A description of the order.
  • +
  • Assigned Calendar: The calendar associated with the order.
  • +
  • Automatic Generation of Codes: A setting to instruct the system to automatically generate codes for order elements and hour groups.
  • +
  • Preference between Dependencies and Restrictions: Users can choose whether dependencies or restrictions take priority in case of conflicts.
  • +
+

However, a complete order also includes other associated entities:

+
    +
  • Hours Assigned to the Order: The total hours allocated to the order.
  • +
  • Progress Attributed to the Order: The progress made on the order.
  • +
  • Labels: Labels assigned to the order.
  • +
  • Criteria Assigned to the Order: Criteria associated with the order.
  • +
  • Materials: Materials required for the order.
  • +
  • Quality Forms: Quality forms associated with the order.
  • +
+

Creating or editing an order can be done from several locations within the program:

+
    +
  • From the "Order List" in the Company Overview:
      +
    • Editing: Click the edit button on the desired order.
    • +
    • Creating: Click "New order."
    • +
    +
  • +
  • From an Order in the Gantt Chart: Change to the order details view.
  • +
+

Users can access the following tabs when editing an order:

+
    +
  • Editing Order Details: This screen allows users to edit basic order details:

    +
      +
    • Name
    • +
    • Code
    • +
    • Estimated Start Date
    • +
    • End Date
    • +
    • Person in Charge
    • +
    • Client
    • +
    • Description
    • +
    +
    +images/order-edition.png +

    Editing Orders

    +
    +
  • +
  • Order Element List: This screen allows users to perform several operations on order elements:

    +
      +
    • Creating new order elements.
    • +
    • Promoting an order element one level up in the hierarchy.
    • +
    • Demoting an order element one level down in the hierarchy.
    • +
    • Indenting an order element (moving it down the hierarchy).
    • +
    • Unindenting an order element (moving it up the hierarchy).
    • +
    • Filtering order elements.
    • +
    • Deleting order elements.
    • +
    • Moving an element within the hierarchy by dragging and dropping.
    • +
    +
    +images/order-elements-list.png +

    Order Element List

    +
    +
  • +
  • Assigned Hours: This screen displays the total hours attributed to the project, grouping the hours entered in the order elements.

    +
    +images/order-assigned-hours.png +

    Assigning Hours Attributed to the Order by Workers

    +
    +
  • +
  • Progress: This screen allows users to assign progress types and enter progress measurements for the order. See the "Progress" section for more details.

    +
  • +
  • Labels: This screen allows users to assign labels to an order and view previously assigned direct and indirect labels. See the following section on editing order elements for a detailed description of label management.

    +
    +images/order-labels.png +

    Order Labels

    +
    +
  • +
  • Criteria: This screen allows users to assign criteria that will apply to all tasks within the order. These criteria will be automatically applied to all order elements, except those that have been explicitly invalidated. The hour groups of order elements, which are grouped by criteria, can also be viewed, allowing users to identify the criteria required for an order.

    +
    +images/order-criterions.png +

    Order Criteria

    +
    +
  • +
  • Materials: This screen allows users to assign materials to orders. Materials can be selected from the available material categories in the program. Materials are managed as follows:

    +
      +
    • Select the "Search materials" tab at the bottom of the screen.
    • +
    • Enter text to search for materials or select the categories for which you want to find materials.
    • +
    • The system filters the results.
    • +
    • Select the desired materials (multiple materials can be selected by pressing the "Ctrl" key).
    • +
    • Click "Assign."
    • +
    • The system displays the list of materials already assigned to the order.
    • +
    • Select the units and the status to assign to the order.
    • +
    • Click "Save" or "Save and continue."
    • +
    • To manage the receipt of materials, click "Divide" to change the status of a partial quantity of material.
    • +
    +
    +images/order-material.png +

    Materials Associated with an Order

    +
    +
  • +
  • Quality: Users can assign a quality form to the order. This form is then completed to ensure that certain activities associated with the order are carried out. See the following section on editing order elements for details on managing quality forms.

    +
    +images/order-quality.png +

    Quality Form Associated with the Order

    +
    +
  • +
+
+
+

Editing Order Elements

+

Order elements are edited from the "Order element list" tab by clicking the edit icon. This opens a new screen where users can:

+
    +
  • Edit information about the order element.
  • +
  • View hours attributed to order elements.
  • +
  • Manage progress of order elements.
  • +
  • Manage order labels.
  • +
  • Manage criteria required by the order element.
  • +
  • Manage materials.
  • +
  • Manage quality forms.
  • +
+

The following subsections describe each of these operations in detail.

+
+

Editing Information about the Order Element

+

Editing information about the order element includes modifying the following details:

+
    +
  • Order Element Name: The name of the order element.
  • +
  • Order Element Code: A unique code for the order element.
  • +
  • Start Date: The planned start date of the order element.
  • +
  • Estimated End Date: The planned completion date of the order element.
  • +
  • Total Hours: The total hours allocated to the order element. These hours can be calculated from the added hour groups or entered directly. If entered directly, the hours must be distributed among the hour groups, and a new hour group created if the percentages do not match the initial percentages.
  • +
  • Hour Groups: One or more hour groups can be added to the order element. The purpose of these hour groups is to define the requirements for the resources that will be assigned to perform the work.
  • +
  • Criteria: Criteria can be added that must be met to enable generic assignment for the order element.
  • +
+
+images/order-element-edition.png +

Editing Order Elements

+
+
+
+

Viewing Hours Attributed to Order Elements

+

The "Assigned hours" tab allows users to view the work reports associated with an order element and see how many of the estimated hours have already been completed.

+
+images/order-element-hours.png +

Hours Assigned to Order Elements

+
+

The screen is divided into two parts:

+
    +
  • Work Report List: Users can view the list of work reports associated with the order element, including the date and time, resource, and number of hours devoted to the task.
  • +
  • Use of Estimated Hours: The system calculates the total number of hours devoted to the task and compares them with the estimated hours.
  • +
+
+
+

Managing Progress of Order Elements

+

Entering progress types and managing order element progress is described in the "Progress" chapter.

+
+
+

Managing Order Labels

+

Labels, as described in the chapter on labels, allow users to categorize order elements. This enables users to group planning or order information based on these labels.

+

Users can assign labels directly to an order element or to a higher-level order element in the hierarchy. Once a label is assigned using either method, the order element and the related planning task are associated with the label and can be used for subsequent filtering.

+
+images/order-element-tags.png +

Assigning Labels for Order Elements

+
+

As shown in the image, users can perform the following actions from the Labels tab:

+
    +
  • View Inherited Labels: View labels associated with the order element that were inherited from a higher-level order element. The planning task associated with each order element has the same associated labels.
  • +
  • View Directly Assigned Labels: View labels directly associated with the order element using the assignment form for lower-level labels.
  • +
  • Assign Existing Labels: Assign labels by searching for them among the available labels in the form below the direct label list. To search for a label, click the magnifying glass icon or enter the first letters of the label in the text box to display the available options.
  • +
  • Create and Assign New Labels: Create new labels associated with an existing label type from this form. To do this, select a label type and enter the label value for the selected type. The system automatically creates the label and assigns it to the order element when "Create and assign" is clicked.
  • +
+
+
+

Managing Criteria Required by the Order Element and Hour Groups

+

Both an order and an order element can have criteria assigned that must be met for the work to be performed. Criteria can be direct or indirect:

+
    +
  • Direct Criteria: These are assigned directly to the order element. They are criteria required by the hour groups on the order element.
  • +
  • Indirect Criteria: These are assigned to higher-level order elements in the hierarchy and are inherited by the element being edited.
  • +
+

In addition to the required criteria, one or more hour groups that are part of the order element can be defined. This depends on whether the order element contains other order elements as child nodes or if it is a leaf node. In the first case, information about hours and hour groups can only be viewed. However, leaf nodes can be edited. Leaf nodes work as follows:

+
    +
  • The system creates a default hour group associated with the order element. The details that can be modified for an hour group are:
      +
    • Code: The code for the hour group (if not automatically generated).
    • +
    • Criterion Type: Users can choose to assign a machine or worker criterion.
    • +
    • Number of Hours: The number of hours in the hour group.
    • +
    • List of Criteria: The criteria to be applied to the hour group. To add new criteria, click "Add criterion" and select one from the search engine that appears after clicking the button.
    • +
    +
  • +
  • Users can add new hour groups with different features than previous hour groups. For example, an order element might require a welder (30 hours) and a painter (40 hours).
  • +
+
+images/order-element-criterion.png +

Assigning Criteria to Order Elements

+
+
+
+

Managing Materials

+

Materials are managed in projects as a list associated with each order element or an order in general. The list of materials includes the following fields:

+
    +
  • Code: The material code.
  • +
  • Date: The date associated with the material.
  • +
  • Units: The required number of units.
  • +
  • Unit Type: The type of unit used to measure the material.
  • +
  • Unit Price: The price per unit.
  • +
  • Total Price: The total price (calculated by multiplying the unit price by the number of units).
  • +
  • Category: The category to which the material belongs.
  • +
  • Status: The status of the material (e.g., Received, Requested, Pending, Processing, Cancelled).
  • +
+

Working with materials is done as follows:

+
    +
  • Select the "Materials" tab on an order element.
  • +
  • The system displays two sub-tabs: "Materials" and "Search materials."
  • +
  • If the order element has no assigned materials, the first tab will be empty.
  • +
  • Click "Search materials" in the lower-left part of the window.
  • +
  • The system displays the list of available categories and associated materials.
  • +
+
+images/order-element-material-search.png +

Searching for Materials

+
+
    +
  • Select categories to refine the material search.
  • +
  • The system displays the materials that belong to the selected categories.
  • +
  • From the materials list, select the materials to assign to the order element.
  • +
  • Click "Assign."
  • +
  • The system displays the selected list of materials on the "Materials" tab with new fields to complete.
  • +
+
+images/order-element-material-assign.png +

Assigning Materials to Order Elements

+
+
    +
  • Select the units, status, and date for the assigned materials.
  • +
+

For subsequent monitoring of materials, it's possible to change the status of a group of units of the received material. This is done as follows:

+
    +
  • Click the "Divide" button on the list of materials to the right of each row.
  • +
  • Select the number of units to divide the row into.
  • +
  • The program displays two rows with the material divided.
  • +
  • Change the status of the row containing the material.
  • +
+

The advantage of using this dividing tool is the ability to receive partial deliveries of material without having to wait for the entire delivery to mark it as received.

+
+
+

Managing Quality Forms

+

Some order elements require certification that certain tasks have been completed before they can be marked as complete. This is why the program has quality forms, which consist of a list of questions that are considered important if answered positively.

+

It's important to note that a quality form must be created beforehand to be assigned to an order element.

+

To manage quality forms:

+
    +
  • Go to the "Quality forms" tab.

    +
    +images/order-element-quality.png +

    Assigning Quality Forms to Order Elements

    +
    +
  • +
  • The program has a search engine for quality forms. There are two types of quality forms: by element or by percentage.

    +
      +
    • Element: Each element is independent.
    • +
    • Percentage: Each question increases the progress of the order element by a percentage. The percentages must be able to add up to 100%.
    • +
    +
  • +
  • Select one of the forms created in the administration interface and click "Assign."

    +
  • +
  • The program assigns the chosen form from the list of forms assigned to the order element.

    +
  • +
  • Click the "Edit" button on the order element.

    +
  • +
  • The program displays the questions from the quality form in the lower list.

    +
  • +
  • Mark the questions that have been completed as achieved.

    +
      +
    • If the quality form is based on percentages, the questions are answered in order.
    • +
    • If the quality form is based on elements, the questions can be answered in any order.
    • +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/07-planificacion.html b/libreplan-webapp/src/main/webapp/help/sv_SE/07-planificacion.html new file mode 100644 index 000000000..7b8954f83 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/07-planificacion.html @@ -0,0 +1,117 @@ + + + + + + +Task Planning + + + +
+

Task Planning

+ + +
+

Task Planning

+

Planning in TASKPM is a process that has been described throughout the user guide, with the chapters on orders and resource assignment being particularly important. This chapter describes the basic planning procedures after the order and Gantt charts have been properly configured.

+
+images/planning-view.png +

Work Planning View

+
+

As with the company overview, the project planning view is divided into several views based on the information being analyzed. The views available for a specific project are:

+
    +
  • Planning View
  • +
  • Resource Load View
  • +
  • Order List View
  • +
  • Advanced Assignment View
  • +
+
+

Planning View

+

The Planning View combines three different perspectives:

+
    +
  • Project Planning: Project planning is displayed in the upper right-hand part of the program as a Gantt chart. This view allows users to temporarily move tasks, assign dependencies between them, define milestones, and establish restrictions.
  • +
  • Resource Load: The Resource Load view, located in the lower right-hand part of the screen, shows resource availability based on assignments, as opposed to the assignments made to tasks. The information displayed in this view is as follows:
      +
    • Purple Area: Indicates a resource load below 100% of its capacity.
    • +
    • Green Area: Indicates a resource load below 100%, resulting from the resource being planned for another project.
    • +
    • Orange Area: Indicates a resource load over 100% as a result of the current project.
    • +
    • Yellow Area: Indicates a resource load over 100% as a result of other projects.
    • +
    +
  • +
  • Graph View and Earned Value Indicators: These can be viewed from the "Earned Value" tab. The generated graph is based on the earned value technique, and the indicators are calculated for each workday of the project. The calculated indicators are:
      +
    • BCWS (Budgeted Cost of Work Scheduled): The cumulative time function for the number of hours planned up to a certain date. It will be 0 at the planned start of the task and equal to the total number of planned hours at the end. As with all cumulative graphs, it will always increase. The function for a task will be the sum of the daily assignments until the calculation date. This function has values for all times, provided that resources have been assigned.
    • +
    • ACWP (Actual Cost of Work Performed): The cumulative time function for the hours reported in work reports up to a certain date. This function will only have a value of 0 before the date of the task's first work report, and its value will continue to increase as time passes and work report hours are added. It will have no value after the date of the last work report.
    • +
    • BCWP (Budgeted Cost of Work Performed): The cumulative time function that includes the resultant value of multiplying task progress by the amount of work that the task was estimated to require for completion. This function's values increase as time passes, as do progress values. Progress is multiplied by the total number of estimated hours for all tasks. The BCWP value is the sum of the values for the tasks being calculated. Progress is totaled when it is configured.
    • +
    • CV (Cost Variance): CV = BCWP - ACWP
    • +
    • SV (Schedule Variance): SV = BCWP - BCWS
    • +
    • BAC (Budget at Completion): BAC = max (BCWS)
    • +
    • EAC (Estimate at Completion): EAC = (ACWP / BCWP) * BAC
    • +
    • VAC (Variance at Completion): VAC = BAC - EAC
    • +
    • ETC (Estimate to Complete): ETC = EAC - ACWP
    • +
    • CPI (Cost Performance Index): CPI = BCWP / ACWP
    • +
    • SPI (Schedule Performance Index): SPI = BCWP / BCWS
    • +
    +
  • +
+

In the project planning view, users can perform the following actions:

+
    +
  • Assigning Dependencies: Right-click a task, choose "Add dependency," and drag the mouse pointer to the task to which the dependency should be assigned.
      +
    • To change the type of dependency, right-click the dependency and choose the desired type.
    • +
    +
  • +
  • Creating a New Milestone: Click the task before which the milestone is to be added and select the "Add milestone" option. Milestones can be moved by selecting the milestone with the mouse pointer and dragging it to the desired position.
  • +
  • Moving Tasks without Disturbing Dependencies: Right-click the body of the task and drag it to the desired position. If no restrictions or dependencies are violated, the system will update the daily assignment of resources to the task and place the task on the selected date.
  • +
  • Assigning Restrictions: Click the task in question and select the "Task properties" option. A pop-up window will appear with a "Restrictions" field that can be modified. Restrictions can conflict with dependencies, which is why each order specifies whether dependencies take priority over restrictions. The restrictions that can be established are:
      +
    • As Soon as Possible: Indicates that the task must start as soon as possible.
    • +
    • Not Before: Indicates that the task must not start before a certain date.
    • +
    • Start on a Specific Date: Indicates that the task must start on a specific date.
    • +
    +
  • +
+

The planning view also offers several procedures that function as viewing options:

+
    +
  • Zoom Level: Users can choose the desired zoom level. There are several zoom levels: annual, four-monthly, monthly, weekly, and daily.
  • +
  • Search Filters: Users can filter tasks based on labels or criteria.
  • +
  • Critical Path: As a result of using the Dijkstra algorithm to calculate paths on graphs, the critical path was implemented. It can be viewed by clicking the "Critical path" button in the viewing options.
  • +
  • Show Labels: Enables users to view the labels assigned to tasks in a project, which can be viewed on screen or printed.
  • +
  • Show Resources: Enables users to view the resources assigned to tasks in a project, which can be viewed on screen or printed.
  • +
  • Print: Enables users to print the Gantt chart being viewed.
  • +
+
+
+

Resource Load View

+

The Resource Load View provides a list of resources that contains a list of tasks or criteria that generate workloads. Each task or criterion is shown as a Gantt chart so that the start and end dates of the load can be seen. A different color is shown depending on whether the resource has a load that is higher or lower than 100%:

+
    +
  • Green: Load lower than 100%
  • +
  • Orange: 100% load
  • +
  • Red: Load over 100%
  • +
+
+images/resource-load.png +

Resource Load View for a Specific Order

+
+

If the mouse pointer is placed on the resource's Gantt chart, the load percentage for the worker will be shown.

+
+
+

Order List View

+

The Order List View allows users to access the order editing and deleting options. See the "Orders" chapter for more information.

+
+
+

Advanced Assignment View

+

The Advanced Assignment View is explained in depth in the "Resource Assignment" chapter.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/08-asignacion.html b/libreplan-webapp/src/main/webapp/help/sv_SE/08-asignacion.html new file mode 100644 index 000000000..46da7239c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/08-asignacion.html @@ -0,0 +1,179 @@ + + + + + + +Resource Assignment + + + +
+

Resource Assignment

+ + +

Resource assignment is one of the program's most important features and can be carried out in two different ways:

+
    +
  • Specific assignment
  • +
  • Generic assignment
  • +
+

Both types of assignment are explained in the following sections.

+

To perform either type of resource assignment, the following steps are necessary:

+
    +
  • Go to the planning view of an order.
  • +
  • Right-click on the task to be planned.
  • +
+
+images/resource-assignment-planning.png +

Resource Assignment Menu

+
+
    +
  • The program displays a screen with the following information:
      +
    • List of Criteria to be Fulfilled: For each hour group, a list of required criteria is shown.
    • +
    • Task Information: The start and end dates of the task.
    • +
    • Type of Calculation: The system allows users to choose the strategy for calculating assignments:
        +
      • Calculate Number of Hours: This calculates the number of hours required from the assigned resources, given an end date and a number of resources per day.
      • +
      • Calculate End Date: This calculates the end date of the task based on the number of resources assigned to the task and the total number of hours required to complete the task.
      • +
      • Calculate Number of Resources: This calculates the number of resources required to finish the task by a specific date, given a known number of hours per resource.
      • +
      +
    • +
    • Recommended Assignment: This option allows the program to gather the criteria to be fulfilled and the total number of hours from all hour groups, and then recommend a generic assignment. If a prior assignment exists, the system deletes it and replaces it with the new one.
    • +
    • Assignments: A list of assignments that have been made. This list shows the generic assignments (the number will be the list of fulfilled criteria, and the number of hours and resources per day). Each assignment can be explicitly removed by clicking the delete button.
    • +
    +
  • +
+
+images/resource-assignment.png +

Resource Assignment

+
+
    +
  • Users select "Search resources."
  • +
  • The program displays a new screen consisting of a criteria tree and a list of workers who fulfill the selected criteria on the right:
  • +
+
+images/resource-assignment-search.png +

Resource Assignment Search

+
+
    +
  • Users can select:
      +
    • Specific Assignment: See the "Specific Assignment" section for details on this option.
    • +
    • Generic Assignment: See the "Generic Assignment" section for details on this option.
    • +
    +
  • +
  • Users select a list of criteria (generic) or a list of workers (specific). Multiple selections can be made by pressing the "Ctrl" key while clicking each worker/criterion.
  • +
  • Users then click the "Select" button. It's important to remember that if a generic assignment is not selected, users must choose a worker or machine to perform the assignment. If a generic assignment is selected, it is sufficient for users to choose one or more criteria.
  • +
  • The program then displays the selected criteria or resource list in the list of assignments on the original resource assignment screen.
  • +
  • Users must choose the hours or resources per day, depending on the assignment method used in the program.
  • +
+
+

Specific Assignment

+

This is the specific assignment of a resource to a project task. In other words, the user decides which specific worker (by name and surname) or machine must be assigned to a task.

+

Specific assignment can be carried out on the screen shown in this image:

+
+images/asignacion-especifica.png +

Specific Resource Assignment

+
+

When a resource is specifically assigned, the program creates daily assignments based on the percentage of daily assigned resources selected, after comparing it with the available resource calendar. For example, an assignment of 0.5 resources for a 32-hour task means that 4 hours per day are assigned to the specific resource to complete the task (assuming a working calendar of 8 hours per day).

+
+

Specific Machine Assignment

+

Specific machine assignment functions in the same way as worker assignment. When a machine is assigned to a task, the system stores a specific assignment of hours for the chosen machine. The main difference is that the system searches the list of assigned workers or criteria at the moment the machine is assigned:

+
    +
  • If the machine has a list of assigned workers, the program chooses from those that are required by the machine, based on the assigned calendar. For example, if the machine calendar is 16 hours per day and the resource calendar is 8 hours, two resources are assigned from the list of available resources.
  • +
  • If the machine has one or more assigned criteria, generic assignments are made from among the resources that fulfill the criteria assigned to the machine.
  • +
+
+
+
+

Generic Assignment

+

Generic assignment occurs when users do not choose resources specifically but leave the decision to the program, which distributes the loads among the company's available resources.

+
+images/asignacion-xenerica.png +

Generic Resource Assignment

+
+

The assignment system uses the following assumptions as a basis:

+
    +
  • Tasks have criteria that are required from resources.
  • +
  • Resources are configured to fulfill criteria.
  • +
+

However, the system does not fail when criteria have not been assigned, but when all resources fulfill the non-requirement of criteria.

+

The generic assignment algorithm functions as follows:

+
    +
  • All resources and days are treated as containers where daily assignments of hours fit, based on the maximum assignment capacity in the task calendar.
  • +
  • The system searches for the resources that fulfill the criterion.
  • +
  • The system analyzes which assignments currently have different resources that fulfill criteria.
  • +
  • The resources that fulfill the criteria are chosen from those that have sufficient availability.
  • +
  • If freer resources are not available, assignments are made to the resources that have less availability.
  • +
  • Over-assignment of resources only begins when all the resources that fulfill the respective criteria are 100% assigned, until the total amount required to carry out the task is attained.
  • +
+
+

Generic Machine Assignment

+

Generic machine assignment functions in the same way as worker assignment. For example, when a machine is assigned to a task, the system stores a generic assignment of hours for all machines that fulfill the criteria, as described for resources in general. However, in addition, the system performs the following procedure for machines:

+
    +
  • For all machines chosen for generic assignment:
      +
    • It collects the machine's configuration information: alpha value, assigned workers, and criteria.
    • +
    • If the machine has an assigned list of workers, the program chooses the number required by the machine, depending on the assigned calendar. For example, if the machine calendar is 16 hours per day and the resource calendar is 8 hours, the program assigns two resources from the list of available resources.
    • +
    • If the machine has one or more assigned criteria, the program makes generic assignments from among the resources that fulfill the criteria assigned to the machine.
    • +
    +
  • +
+
+
+
+

Advanced Assignment

+

Advanced assignments allow users to design assignments that are automatically carried out by the application to personalize them. This procedure allows users to manually choose the daily hours that are dedicated by resources to assigned tasks or define a function that is applied to the assignment.

+

The steps to follow to manage advanced assignments are:

+
    +
  • Go to the advanced assignment window. There are two ways to access advanced assignments:
      +
    • Go to a specific order and change the view to advanced assignment. In this case, all the tasks on the order and assigned resources (specific and generic) will be shown.
    • +
    • Go to the resource assignment window by clicking the "Advanced assignment" button. In this case, the assignments that show the resources (generic and specific) assigned to a task will be shown.
    • +
    +
  • +
+
+images/advance-assignment.png +

Advanced Resource Assignment

+
+
    +
  • Users can choose the desired zoom level:
      +
    • Zoom Levels Greater Than One Day: If users change the assigned hour value to a week, month, four-month, or six-month period, the system distributes the hours linearly across all days throughout the chosen period.
    • +
    • Daily Zoom: If users change the assigned hour value to a day, these hours only apply to that day. Consequently, users can decide how many hours they want to assign per day to task resources.
    • +
    +
  • +
  • Users can choose to design an advanced assignment function. To do so, users must:
      +
    • Choose the function from the selection list that appears next to each resource and click "Configure."
    • +
    • The system displays a new window if the chosen function needs to be specifically configured. Supported functions:
        +
      • Segments: A function that allows users to define segments to which a polynomial function is applied. The function per segment is configured as follows:
          +
        • Date: The date on which the segment ends. If the following value (length) is established, the date is calculated; alternatively, length is calculated.
        • +
        • Defining the Length of Each Segment: This indicates what percentage of the task's duration is required for the segment.
        • +
        • Defining the Amount of Work: This indicates what workload percentage is expected to be completed in this segment. The quantity of work must be incremental. For example, if there is a 10% segment, the next one must be larger (for example, 20%).
        • +
        • Segment Graphs and Accumulated Loads.
        • +
        +
      • +
      +
    • +
    • Users then click "Accept."
    • +
    • The program stores the function and applies it to the daily resource assignments.
    • +
    +
  • +
+
+images/stretches.png +

Configuration of the Segment Function

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/09-partes.html b/libreplan-webapp/src/main/webapp/help/sv_SE/09-partes.html new file mode 100644 index 000000000..90242b6c7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/09-partes.html @@ -0,0 +1,84 @@ + + + + + + +Work Reports + + + +
+

Work Reports

+ + +

Work reports enable the monitoring of the hours that resources dedicate to the tasks to which they are assigned.

+

The program allows users to configure new forms for entering dedicated hours, specifying the fields that they want to appear in these forms. This allows for the incorporation of reports from tasks carried out by workers and the monitoring of worker activity.

+

Before users can add entries for resources, they must define at least one work report type. This type defines the structure of the report, including all the rows that are added to it. Users can create as many work report types as necessary within the system.

+
+

Work Report Types

+

A work report consists of a series of fields that are common to the entire report and a set of work report lines with specific values for the fields defined in each row. For example, resources and tasks are common to all reports. However, there can be other new fields, such as "incidents," which are not required in all report types.

+

Users can configure different work report types so that a company can design its reports to meet its specific needs:

+
+images/work-report-types.png +

Work Report Types

+
+

The administration of work report types allows users to configure these types and add new text fields or optional tags. In the first tab for editing work report types, it is possible to configure the type for the mandatory attributes (whether they apply to the whole report or are specified at the line level) and add new optional fields.

+

The mandatory fields that must appear in all work reports are as follows:

+
    +
  • Name and Code: Identification fields for the name of the work report type and its code.
  • +
  • Date: Field for the date of the report.
  • +
  • Resource: Worker or machine appearing on the report or work report line.
  • +
  • Order Element: Code for the order element to which the performed work is attributed.
  • +
  • Hour Management: Determines the hour attribution policy to be used, which can be:
      +
    • According to Assigned Hours: Hours are attributed based on the assigned hours.
    • +
    • According to Start and Finish Times: Hours are calculated based on the start and finish times.
    • +
    • According to the Number of Hours and Start and Finish Range: Discrepancies are allowed, and the number of hours takes priority.
    • +
    +
  • +
+

Users can add new fields to the reports:

+
    +
  • Tag Type: Users can request the system to display a tag when completing the work report. For example, the client tag type, if the user wishes to enter the client for whom the work was carried out in each report.
  • +
  • Free Fields: Fields where text can be entered freely in the work report.
  • +
+
+images/work-report-type.png +

Creating a Work Report Type with Personalized Fields

+
+

Users can configure date, resource, and order element fields to appear in the header of the report, which means they apply to the entire report, or they can be added to each of the rows.

+

Finally, new additional text fields or tags can be added to the existing ones, in the work report header or in each line, by using the "Additional text" and "Tag type" fields, respectively. Users can configure the order in which these elements are to be entered in the "Management of additional fields and tags" tab.

+
+
+

Work Report List

+

Once the format of the reports to be incorporated into the system has been configured, users can enter the details in the created form according to the structure defined in the corresponding work report type. To do this, users need to follow these steps:

+
    +
  • Click the "New work report" button associated with the desired report from the list of work report types.
  • +
  • The program then displays the report based on the configurations given for the type. See the following image.
  • +
+
+images/work-report-type.png +

Structure of the Work Report Based on Type

+
+
    +
  • Select all the fields shown for the report:
      +
    • Resource: If the header has been chosen, the resource is only shown once. Alternatively, for each line of the report, it is necessary to choose a resource.
    • +
    • Task Code: Code of the task to which the work report is being assigned. Similar to the rest of the fields, if the field is in the header, the value is entered once or as many times as necessary on the lines of the report.
    • +
    • Date: Date of the report or each line, depending on whether the header or line is configured.
    • +
    • Number of Hours: The number of work hours in the project.
    • +
    • Start and Finish Times: Start and finish times for the work in order to calculate definitive work hours. This field only appears in the case of the hour assignment policies, "According to Start and Finish Times" and "According to the Number of Hours and Start and Finish Range."
    • +
    • Type of Hours: Enables users to choose the type of hour, e.g., "Normal," "Extraordinary," etc.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/10-etiquetas.html b/libreplan-webapp/src/main/webapp/help/sv_SE/10-etiquetas.html new file mode 100644 index 000000000..eb6451798 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/10-etiquetas.html @@ -0,0 +1,68 @@ + + + + + + +Labels + + + +
+

Labels

+ +
+

Contents

+ +
+

Labels are entities used in the program to conceptually organize tasks or order elements.

+

Labels are categorized according to label type. A label can only belong to one label type; however, users can create many similar labels belonging to different label types.

+
+

Label Types

+

Label types are used to group the types of labels that users want to manage in the program. Here are some examples of possible label types:

+
    +
  • Client: Users may be interested in labeling tasks, orders, or order elements in relation to the client who requests them.
  • +
  • Area: Users may be interested in labeling tasks, orders, or order elements in relation to the areas in which they are carried out.
  • +
+

The administration of label types is managed from the "Administration" menu option. This is where users can edit label types, create new label types, and add labels to label types. Users can access the list of labels from this option.

+
+images/tag-types-list.png +

List of Label Types

+
+

From the list of label types, users can:

+
    +
  • Create a new label type.
  • +
  • Edit an existing label type.
  • +
  • Delete a label type with all of its labels.
  • +
+

Editing and creating labels share the same form. From this form, the user can assign a name to the label type, create or delete labels, and store the changes. The procedure is as follows:

+
    +
  • Select a label to edit or click the create button for a new one.
  • +
  • The system displays a form with a text entry for the name and a list of text entries with existing and assigned labels.
  • +
  • If users wish to add a new label, they must click the "New label" button.
  • +
  • The system displays a new row on the list with an empty text box that users must edit.
  • +
  • Users enter a name for the label.
  • +
  • The system adds the name to the list.
  • +
  • Users click "Save" or "Save and continue" to continue editing the form.
  • +
+
+images/tag-types-edition.png +

Editing Label Types

+
+
+
+

Labels

+

Labels are entities that belong to a label type. These entities can be assigned to order elements. Assigning a label to an order element means that all the elements descending from this element will inherit the label to which they belong. Having an assigned label means that these entities can be filtered where searches can be carried out:

+
    +
  • Search for tasks in the Gantt chart.
  • +
  • Search for order elements in the list of order elements.
  • +
  • Filters for reports.
  • +
+

The assignment of labels to order elements is covered in the chapter on orders.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/11-materiales.html b/libreplan-webapp/src/main/webapp/help/sv_SE/11-materiales.html new file mode 100644 index 000000000..a06770897 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/11-materiales.html @@ -0,0 +1,54 @@ + + + + + + +Materials Management + + + +
+

Materials Management

+ +
+

Contents

+ +
+
+

Administration of Materials

+

Users can manage a basic database of materials, organized by categories.

+

Categories are containers to which specific materials and other categories can be assigned. They are stored in a hierarchical tree structure, as materials can belong to leaf categories or intermediary categories.

+

To manage categories, users must follow these steps:

+
    +
  • Go to the "Administration -> Materials" option.
  • +
  • The program displays a tree of categories.
  • +
  • Enter a category name in the text box and then click "Add."
  • +
  • The program adds the category to the tree.
  • +
+

To insert a category into the category tree, users must first select the parent category in the tree and then click "Add."

+
+images/material.png +

Material Administration Screen

+
+

To manage materials, users must follow these steps:

+
    +
  • Select the category to which materials are to be added and click "Add" to the right of "Materials."
  • +
  • The program adds a new empty row with fields to enter details about the material:
      +
    • Code: Material type code (this can be the external code from an ERP).
    • +
    • Description: Description of the material.
    • +
    • Unit Price: Unit price of each piece of material.
    • +
    • Unit: Unit used to measure each unit of material.
    • +
    • Category: Category to which the material belongs.
    • +
    • Availability: Indicates whether or not the material is active.
    • +
    +
  • +
  • Users complete the fields and click "Save."
  • +
+

The assignment of materials to order elements is explained in the chapter on "Orders."

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/12-formularios-calidad.html b/libreplan-webapp/src/main/webapp/help/sv_SE/12-formularios-calidad.html new file mode 100644 index 000000000..97a584178 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/12-formularios-calidad.html @@ -0,0 +1,52 @@ + + + + + + +Quality Forms + + + +
+

Quality Forms

+ + +
+

Administration of Quality Forms

+

Quality forms consist of a list of questions or statements that indicate the tasks or processes that should have been completed before a task can be marked as complete by the company. These forms include the following fields:

+
    +
  • Name: The name of the quality form.
  • +
  • Description: A description of the quality form.
  • +
  • Type of Quality Form: The type can have two values:
      +
    • Percentage: Indicates that the questions must be answered in a logical order, and affirmative answers indicate that the task is progressing. For example, a basic process for a task might suggest that the task is 15% complete. Users must answer a question before proceeding to the next one.
    • +
    • Item: Indicates that the questions do not need to be answered in a logical order and can be answered in any sequence.
    • +
    +
  • +
+

Users must follow these steps to manage quality forms:

+
    +
  • From the "Administration" menu, access the "Quality forms" option.
  • +
  • Click "Edit" on an existing form or click "Create" to create a new one.
  • +
  • The program displays a form with fields for the name, description, and type.
  • +
  • Select the type.
  • +
  • The program displays the fields that are allowed for each type:
      +
    • Percentage: Question and percentage.
    • +
    • Item: Question.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+images/quality.png +

Quality Form Administration Screen

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/13-usuarios.html b/libreplan-webapp/src/main/webapp/help/sv_SE/13-usuarios.html new file mode 100644 index 000000000..f46a23ded --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/13-usuarios.html @@ -0,0 +1,79 @@ + + + + + + +User Management + + + +
+

User Management

+ +
+

Contents

+ +
+
+

Managing Users

+

TASKPM's system allows administrators to manage user profiles, authorizations, and users. Users are assigned to user profiles, which can have a series of predefined roles that grant access to the program's features. Roles are defined authorizations within TASKPM. Examples of roles include:

+
    +
  • Administration: A role that must be assigned to administrators to enable them to perform administrative operations.
  • +
  • Web Service Reader: A role required for users to consult the program's web services.
  • +
  • Web Service Writer: A role required for users to write data via the program's web services.
  • +
+

Roles are predefined within the system. A user profile consists of one or more roles. Users must have specific roles to perform certain operations.

+

Users can be assigned one or more profiles, or one or more roles directly, allowing for specific or generic authorization to be granted.

+

To manage users, follow these steps:

+
    +
  • Go to "Manage users" in the "Administration" menu.
  • +
  • The program displays a form with a list of users.
  • +
  • Click the edit button for the desired user or click the "Create" button.
  • +
  • A form will appear with the following fields:
      +
    • User Name: The user's login name.
    • +
    • Password: The user's password.
    • +
    • Authorized/Unauthorized: A setting to enable or disable the user's account.
    • +
    • Email: The user's email address.
    • +
    • List of Associated Roles: To add a new role, users must search for a role in the selection list and click "Assign."
    • +
    • List of Associated Profiles: To add a new profile, users must search for a profile in the selection list and click "Assign."
    • +
    +
  • +
+
+images/manage-user.png +

Managing Users

+
+
    +
  • Click "Save" or "Save and continue."
  • +
+
+

Managing Profiles

+

To manage the program's profiles, users must follow these steps:

+
    +
  • Go to "Manage user profiles" in the "Administration" menu.
  • +
  • The program displays a list of profiles.
  • +
  • Click the edit button for the desired profile or click "Create."
  • +
  • A form appears in the program with the following fields:
      +
    • Name: The name of the user profile.
    • +
    • List of Roles (Authorizations): To add a role to the profile, users must select a role from the role list and click "Add."
    • +
    +
  • +
+
+images/manage-user-profile.png +

Managing User Profiles

+
+
    +
  • Click "Save" or "Save and continue," and the system will store the created or modified profile.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/14-custos.html b/libreplan-webapp/src/main/webapp/help/sv_SE/14-custos.html new file mode 100644 index 000000000..5c35ce71d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/14-custos.html @@ -0,0 +1,110 @@ + + + + + + +Cost management + + + +
+

Cost management

+ +
+

Contents

+ +
+
+

Costs

+

Cost management allows users to estimate the costs of resources used in a project. To manage costs, the following entities must be defined:

+
    +
  • Hour Types: These indicate the types of hours worked by a resource. Users can define hour types for both machines and workers. Examples of hour types include: "Additional hours paid at €20 per hour." The following fields can be defined for hour types:
      +
    • Code: External code for the hour type.
    • +
    • Name: Name of the hour type. For example, "Additional."
    • +
    • Default Rate: Basic default rate for the hour type.
    • +
    • Activation: Indicates whether the hour type is active or not.
    • +
    +
  • +
  • Cost Categories: Cost categories define the costs associated with different hour types during specific periods (which may be indefinite). For example, the cost of additional hours for first-grade skilled workers in the following year is €24 per hour. Cost categories include:
      +
    • Name: Cost category name.
    • +
    • Activation: Indicates whether the category is active or not.
    • +
    • List of Hour Types: This list defines the hour types included in the cost category. It specifies the periods and rates for each hour type. For example, as rates change, each year can be included on this list as an hour type period, with a specific hourly rate for each hour type (which may differ from the default hourly rate for that hour type).
    • +
    +
  • +
+
+

Managing Hour Types

+

Users must follow these steps to register hour types:

+
    +
  • Select "Manage hour types worked" on the "Administration" menu.
  • +
  • The program displays a list of existing hour types.
  • +
+
+images/hour-type-list.png +

Hour Type List

+
+
    +
  • Click "Edit" or "Create."
  • +
  • The program displays an hour type editing form.
  • +
+
+images/hour-type-edit.png +

Editing Hour Types

+
+
    +
  • Users can enter or change:
      +
    • The hour type name.
    • +
    • The hour type code.
    • +
    • The default rate.
    • +
    • Hour type activation/deactivation.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+

Cost Categories

+

Users must follow these steps to register cost categories:

+
    +
  • Select "Manage cost categories" on the "Administration" menu.
  • +
  • The program displays a list of existing categories.
  • +
+
+images/category-cost-list.png +

Cost Category List

+
+
    +
  • Click the "Edit" or "Create" button.
  • +
  • The program displays a cost category editing form.
  • +
+
+images/category-cost-edit.png +

Editing Cost Categories

+
+
    +
  • Users enter or change:
      +
    • The name of the cost category.
    • +
    • The activation/deactivation of the cost category.
    • +
    • The list of hour types included in the category. All hour types have the following fields:
        +
      • Hour Type: Choose one of the existing hour types in the system. If none exist, an hour type must be created (this process is explained in the previous subsection).
      • +
      • Start and Finish Date: The start and finish dates (the latter is optional) for the period that applies to the cost category.
      • +
      • Hourly Rate: The hourly rate for this specific category.
      • +
      +
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+

The assignment of cost categories to resources is described in the chapter on resources. Go to the "Resources" section.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/15-1-report-hours-worked-by-resource.html b/libreplan-webapp/src/main/webapp/help/sv_SE/15-1-report-hours-worked-by-resource.html new file mode 100644 index 000000000..f97f118aa --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/15-1-report-hours-worked-by-resource.html @@ -0,0 +1,101 @@ + + + + + + +Hours Worked by Resource Report + + + +
+

Hours Worked by Resource Report

+ + +
+

Purpose

+

This report extracts a list of tasks and the time resources have dedicated to them within a specified period. Several filters allow users to refine the query to obtain only the desired information and exclude extraneous data.

+
+
+

Input Parameters and Filters

+
    +
  • +
    Dates.
    +
      +
    • Type: Optional.
    • +
    • +
      Two date fields:
      +
        +
      • Start Date: This is the earliest date for work reports to be included. Work reports with dates earlier than the Start Date are excluded. If this parameter is left blank, work reports are not filtered by Start Date.
      • +
      • End Date: This is the latest date for work reports to be included. Work reports with dates later than the End Date are excluded. If this parameter is left blank, work reports are not filtered by End Date.
      • +
      +
      +
      +
    • +
    +
    +
    +
  • +
  • Filter by Workers: +* Type: Optional. +* How it works: You can select one or more workers to restrict the work reports to the time tracked by those specific workers. To add a worker as a filter, search for them in the selector and click the Add button. If this filter is left empty, work reports are retrieved regardless of the worker.
  • +
  • Filter by Labels: +* Type: Optional. +* How it works: You can add one or more labels to use as filters by searching for them in the selector and clicking the Add button. These labels are used to select the tasks to be included in the results when calculating the hours dedicated to them. This filter can be applied to timesheets, tasks, both, or neither.
  • +
  • Filter by Criteria: +* Type: Optional. +* How it works: You can select one or more criteria by searching for them in the selector and then clicking the Add button. These criteria are used to select the resources that satisfy at least one of them. The report will show all the time dedicated by the resources that meet one of the selected criteria.
  • +
+
+
+

Output

+
+

Heading

+

The report heading displays the filters that were configured and applied to the current report.

+
+ +
+

Body

+

The report body consists of several groups of information.

+
    +
  • The first level of aggregation is by resource. All the time dedicated by a resource is shown together below the header. Each resource is identified by:

    +
      +
    • Worker: Surname, First Name.
    • +
    • Machine: Name.
    • +
    +

    A summary line shows the total number of hours worked by the resource.

    +
  • +
  • The second level of grouping is by date. All the reports from a specific resource on the same date are shown together.

    +

    A summary line shows the total number of hours worked by the resource on that date.

    +
  • +
  • The final level lists the work reports for the worker on that day. The information displayed for each work report line is:

    +
      +
    • Task Code: The code of the task to which the tracked hours are attributed.
    • +
    • Task Name: The name of the task to which the tracked hours are attributed.
    • +
    • Starting Time: This is optional. It is the time at which the resource began working on the task.
    • +
    • Ending Time: This is optional. It is the time at which the resource finished working on the task on the specified date.
    • +
    • Text Fields: This is optional. If the work report line has text fields, the filled values are shown here. The format is: <Name of the text field>:<Value>
    • +
    • Labels: This depends on whether the work report model has a label field in its definition. If there are multiple labels, they are shown in the same column. The format is: <Name of the label type>:<Value of the label>
    • +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/15-2-total-hours-by-resource-month.html b/libreplan-webapp/src/main/webapp/help/sv_SE/15-2-total-hours-by-resource-month.html new file mode 100644 index 000000000..246cfc9c1 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/15-2-total-hours-by-resource-month.html @@ -0,0 +1,67 @@ + + + + + + +Total Hours Worked by Resource in a Month Report + + + +
+

Total Hours Worked by Resource in a Month Report

+ + +
+

Purpose

+

This report provides the total number of hours worked by each resource in a given month. This information can be useful for determining worker overtime or, depending on the organization, the number of hours for which each resource should be compensated.

+

The application tracks work reports for both workers and machines. For machines, the report sums up the number of hours they were in operation during the month.

+
+
+

Input Parameters and Filters

+

To generate this report, users must specify the year and month for which they want to retrieve the total number of hours worked by each resource.

+
+
+

Output

+

The output format is as follows:

+ + +
+

Body

+

The data section of the report consists of a single table with two columns:

+
+
    +
  • One column labeled Name for the name of the resource.
  • +
  • One column labeled Hours with the total number of hours worked by the resource in that row.
  • +
+
+

There is a final row that aggregates the total number of hours worked by all resources during the specified month and year.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/15-3-work-progress-per-project.html b/libreplan-webapp/src/main/webapp/help/sv_SE/15-3-work-progress-per-project.html new file mode 100644 index 000000000..e2f5053a9 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/15-3-work-progress-per-project.html @@ -0,0 +1,125 @@ + + + + + + +Work and Progress per Project Report + + + +
+

Work and Progress per Project Report

+ + +
+

Purpose

+

This report provides an overview of the status of projects, considering both progress and cost.

+

It analyzes the current progress of each project, comparing it with the planned progress and the work completed.

+

The report also displays several ratios related to project cost, comparing current performance with the planned performance.

+
+
+

Input Parameters and Filters

+

There are several mandatory parameters:

+
+
    +
  • Reference Date: This is the date used as a reference point for comparing the planned status of the project with its actual performance. The default value for this field is the current date.
  • +
  • Progress Type: This is the progress type used to measure project progress. The application allows a project to be measured simultaneously with different progress types. The type selected by the user in the dropdown menu is used for calculating the report data. The default value for the progress type is spread, which is a special progress type that uses the preferred method of measuring progress configured for each WBS element.
  • +
+
+

The optional parameters are:

+
+
    +
  • Starting Date: This is the earliest start date for projects to be included in the report. If this field is left blank, there is no minimum start date for the projects.
  • +
  • Ending Date: This is the latest end date for projects to be included in the report. All projects that finish after the Ending Date will be excluded.
  • +
  • Filter by Projects: This filter allows users to select the specific projects to be included in the report. If no projects are added to the filter, the report will include all projects in the database. A searchable dropdown menu is provided to find the desired project. Projects are added to the filter by clicking the Add button.
  • +
+
+
+
+

Output

+

The output format is as follows:

+
+

Heading

+

The report header displays the following fields:

+
+
    +
  • Starting Date: The filtering start date. This is not displayed if the report is not filtered by this field.
  • +
  • Ending Date: The filtering end date. This is not displayed if the report is not filtered by this field.
  • +
  • Progress Type: The progress type used for the report.
  • +
  • Projects: This indicates the filtered projects for which the report is generated. It will show the string All when the report includes all projects that satisfy the other filters.
  • +
  • Reference Date: The mandatory input reference date selected for the report.
  • +
+
+
+ +
+

Body

+

The body of the report consists of a list of projects selected based on the input filters.

+

Filters work by adding conditions, except for the set formed by the date filters (Starting Date, Ending Date) and the Filter by Projects. In this case, if one or both date filters are filled and the Filter by Projects has a list of selected projects, the latter filter takes precedence. This means that the projects included in the report are those provided by the Filter by Projects, regardless of the date filters.

+

It's important to note that progress in the report is calculated as a fraction of unity, ranging between 0 and 1.

+

For each project selected for inclusion in the report output, the following information is displayed:

+
+
    +
  • Project Name.
  • +
  • +
    Total Hours. The total hours for the project are shown by adding the hours for each task. Two types of total hours are shown:
    +
      +
    • Estimated (TE). This is the sum of all the estimated hours in the project's WBS. It represents the total number of hours estimated to complete the project.
    • +
    • Planned (TP). In TASKPM, it's possible to have two different quantities: the estimated number of hours for a task (the number of hours initially estimated to complete the task) and the planned hours (the hours allocated in the plan to complete the task). The planned hours can be equal to, less than, or greater than the estimated hours and are determined in a later phase, the assignment operation. Therefore, the total planned hours for a project are the sum of all the allocated hours for its tasks.
    • +
    +
    +
    +
  • +
  • +
    Progress. Three measurements related to the overall progress of the type specified in the progress input filter for each project at the reference date are shown:
    +
      +
    • Measured (PM). This is the overall progress considering the progress measurements with a date earlier than the Reference Date in the input parameters of the report. All tasks are taken into account, and the sum is weighted by the number of hours for each task.
    • +
    • Imputed (PI). This is the progress assuming that work continues at the same pace as the hours completed for a task. If X hours out of Y hours for a task are completed, the overall imputed progress is considered to be X/Y.
    • +
    • Planned (PP). This is the overall progress of the project according to the planned schedule at the reference date. If everything happened exactly as planned, the measured progress should be the same as the planned progress.
    • +
    +
    +
    +
  • +
  • +
    Hours up to Date. There are two fields that show the number of hours up to the reference date from two perspectives:
    +
      +
    • Planned (HP). This number is the sum of the hours allocated to any task in the project with a date less than or equal to the Reference Date.
    • +
    • Actual (HR). This number is the sum of the hours reported in the work reports for any of the tasks in the project with a date less than or equal to the Reference Date.
    • +
    +
    +
    +
  • +
  • +
    Difference. Under this heading, there are several metrics related to cost:
    +
      +
    • Cost. This is the difference in hours between the number of hours spent, considering the measured progress, and the hours completed up to the reference date. The formula is: PM*TP - HR.
    • +
    • Planned. This is the difference between the hours spent according to the overall measured project progress and the number planned up to the Reference Date. It measures the advantage or delay in time. The formula is: PM*TP - HP.
    • +
    • Cost Ratio. This is calculated by dividing PM / PI. If it is greater than 1, it means that the project is profitable at this point. If it is less than 1, it means that the project is losing money.
    • +
    • Planned Ratio. This is calculated by dividing PM / PP. If it is greater than 1, it means that the project is ahead of schedule. If it is less than 1, it means that the project is behind schedule.
    • +
    +
    +
    +
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/15-informes.html b/libreplan-webapp/src/main/webapp/help/sv_SE/15-informes.html new file mode 100644 index 000000000..c2c7cafab --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/15-informes.html @@ -0,0 +1,26 @@ + + + + + + +Reports + + + +
+

Reports

+ +

TASKPM integrates with JasperReports to provide report management, enabling users to generate various reports for analyzing the data available in the program.

+

The available reports are:

+ +
+ + diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/16-ldap-authentication.html b/libreplan-webapp/src/main/webapp/help/sv_SE/16-ldap-authentication.html new file mode 100644 index 000000000..ad5d4976d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/16-ldap-authentication.html @@ -0,0 +1,251 @@ + + + + + + +LDAP Configuration + + + +
+

LDAP Configuration

+ + +

This screen allows you to establish a connection with LDAP to delegate +authentication and/or authorization.

+

It is divided into four different areas, which are explained below:

+
+

Activation

+

This area is used to set the properties that determine how TASKPM uses +LDAP.

+

If the field Enable LDAP authentication is checked, TASKPM will query +LDAP each time a user attempts to log in to the application.

+

The field Use LDAP roles checked means that a mapping between LDAP roles and +TASKPM roles is established. Consequently, the permissions for a user in +TASKPM will depend on the roles the user has in LDAP.

+
+
+

Configuration

+

This section contains the parameter values for accessing LDAP. Base, UserDN, and +Password are parameters used to connect to LDAP and search for users. Therefore, +the specified user must have permission to perform this operation in LDAP. At the +bottom of this section, there is a button to check if an LDAP connection is +possible with the given parameters. It is advisable to test the connection before +continuing the configuration.

+
+

Note

+

If your LDAP is configured to work with anonymous authentication, you can +leave the UserDN and Password attributes empty.

+
+
+

Tip

+

Regarding Active Directory (AD) configuration, the Base field must be the +exact location where the bound user resides in AD.

+

Example: ou=organizational_unit,dc=example,dc=org

+
+
+
+

Authentication

+

Here, you can configure the property in LDAP nodes where the given username +should be found. The property UserId must be filled with the name of the +property where the username is stored in LDAP.

+

The checkbox Save passwords in database, when checked, means that the +password is also stored in the TASKPM database. In this way, if LDAP is +offline or unreachable, LDAP users can authenticate against the TASKPM +database. If it is not checked, LDAP users can only be authenticated against +LDAP.

+
+
+

Authorization

+

This section allows you to define a strategy for matching LDAP roles with +TASKPM roles. The first choice is the strategy to use, depending on the +LDAP implementation.

+
+

Group Strategy

+

When this strategy is used, it indicates that LDAP has a role-group strategy. +This means that users in LDAP are nodes that are directly under a branch that +represents the group.

+

The next example represents a valid LDAP structure for using the group strategy.

+
    +
  • LDAP structure:

    +
    +dc=example,dc=org
    +|- ou=groups
    +   |- cn=admins
    +   |- cn=itpeople
    +   |- cn=workers
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

In this case, each group will have an attribute, for example, called member, +with the list of users belonging to the group:

+
    +
  • cn=admins:
      +
    • member: uid=admin1,ou=people,dc=example,dc=org
    • +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=itpeople:
      +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    • member: uid=it2,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=workers:
      +
    • member: uid=worker1,ou=people,dc=example,dc=org
    • +
    • member: uid=worker2,ou=people,dc=example,dc=org
    • +
    • member: uid=worker3,ou=people,dc=example,dc=org
    • +
    +
  • +
+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Group strategy
  • +
  • Group path: ou=groups
  • +
  • Role property: member
  • +
  • Role search query: uid=[USER_ID],ou=people,dc=example,dc=org
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: cn=admins;cn=itpeople
  • +
  • Web service reader: cn=itpeople
  • +
  • Web service writer: cn=itpeople
  • +
  • All projects read allowed: cn=admins
  • +
  • All projects edition allowed: cn=admins
  • +
  • Project creation allowed: cn=workers
  • +
+
+
+

Property Strategy

+

When an administrator decides to use this strategy, it indicates that each user +is an LDAP node, and within the node, there exists a property that represents +the group(s) for the user. In this case, the configuration does not require the +Group path parameter.

+

The next example represents a valid LDAP structure for using the property strategy.

+
    +
  • LDAP structure:

    +
    +dc=example,dc=org
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

With Attribute

+

In this case, each user will have an attribute, for example, called group, +with the name of the group to which they belong:

+
    +
  • uid=admin1:
      +
    • group: admins
    • +
    +
  • +
  • uid=it1:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=it2:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=worker1:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker2:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker3:
      +
    • group: workers
    • +
    +
  • +
+
+

Warning

+

This strategy has a restriction: each user can belong to only one group.

+
+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Property strategy
  • +
  • Group path:
  • +
  • Role property: group
  • +
  • Role search query: [USER_ID]
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: admins;itpeople
  • +
  • Web service reader: itpeople
  • +
  • Web service writer: itpeople
  • +
  • All projects read allowed: admins
  • +
  • All projects edition allowed: admins
  • +
  • Project creation allowed: workers
  • +
+

By User Identifier

+

You can even use a workaround to specify TASKPM roles directly to users +without having an attribute in each LDAP user.

+

In this case, you will specify which users have the different TASKPM roles +by uid.

+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Property strategy
  • +
  • Group path:
  • +
  • Role property: uid
  • +
  • Role search query: [USER_ID]
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: admin1;it1
  • +
  • Web service reader: it1;it2
  • +
  • Web service writer: it1;it2
  • +
  • All projects read allowed: admin1
  • +
  • All projects edition allowed: admin1
  • +
  • Project creation allowed: worker1;worker2;worker3
  • +
+
+
+

Role Matching

+

At the bottom of this section, there is a table with all the TASKPM roles +and a text field next to each one. This is for matching roles. For instance, +if an administrator decides that the Administration TASKPM role matches +the admin and administrators roles of LDAP, the text field should contain: +"admin;administrators". The character for splitting roles is ";".

+
+

Note

+

If you want to specify that all users or all groups have one permission, you +can use an asterisk (*) as a wildcard to refer to them. For example, if +you want everyone to have the Project creation allowed role, you will +configure the role matching as follows:

+
    +
  • Project creation allowed: *
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/17-1-project-dashboard.html b/libreplan-webapp/src/main/webapp/help/sv_SE/17-1-project-dashboard.html new file mode 100644 index 000000000..5dc0899b7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/17-1-project-dashboard.html @@ -0,0 +1,173 @@ + + + + + + +Project Dashboard + + + +
+

Project Dashboard

+ + +

The project dashboard is a TASKPM perspective that contains a set of KPIs (Key Performance Indicators) to help assess a project's performance in terms of:

+
+
    +
  • Work progress
  • +
  • Cost
  • +
  • Status of allocated resources
  • +
  • Time constraints
  • +
+
+
+

Progress Performance Indicators

+

Two indicators are calculated: project progress percentage and task status.

+
+

Project Progress Percentage

+

This chart displays the overall progress of a project, comparing it to the expected progress based on the Gantt chart.

+

Progress is represented by two bars:

+
+
    +
  • Current Progress: The current progress based on the measurements taken.
  • +
  • Expected Progress: The progress the project should have achieved at this point, according to the project plan.
  • +
+
+

To view the actual measured value for each bar, hover the mouse cursor over the bar.

+

The overall project progress is estimated using several different methods, as there is no single, universally correct approach:

+
+
    +
  • Spreading Progress: This is the progress type set as the spreading progress at the project level. In this case, there is no way to calculate an expected value, and only the current bar is displayed.
  • +
  • By All Task Hours: The progress of all project tasks is averaged to calculate the overall value. This is a weighted average that considers the number of hours allocated to each task.
  • +
  • By Critical Path Hours: The progress of tasks belonging to any of the project's critical paths is averaged to obtain the overall value. This is a weighted average that considers the total allocated hours for each involved task.
  • +
  • By Critical Path Duration: The progress of tasks belonging to any of the critical paths is averaged using a weighted average, but this time considering the duration of each involved task instead of the assigned hours.
  • +
+
+
+
+

Task Status

+

A pie chart shows the percentage of project tasks in different states. The defined states are:

+
+
    +
  • Finished: Completed tasks, identified by a 100% progress value.
  • +
  • In Progress: Tasks that are currently underway. These tasks have a progress value other than 0% or 100%, or some work time has been tracked.
  • +
  • Ready to Start: Tasks with 0% progress, no tracked time, all their FINISH_TO_START dependent tasks are finished, and all their START_TO_START dependent tasks are finished or in progress.
  • +
  • Blocked: Tasks with 0% progress, no tracked time, and with previous dependent tasks that are neither in progress nor in the ready to start state.
  • +
+
+
+
+
+

Cost Indicators

+

Several Earned Value Management cost indicators are calculated:

+
+
    +
  • CV (Cost Variance): The difference between the Earned Value curve and the Actual Cost curve at the current moment. Positive values indicate a benefit, and negative values indicate a loss.

    +
  • +
  • ACWP (Actual Cost of Work Performed): The total number of hours tracked in the project at the current moment.

    +
  • +
  • CPI (Cost Performance Index): The Earned Value / Actual Cost ratio.

    +
    +
      +
    • > 100 is favorable, indicating that the project is under budget.
    • +
    • = 100 is also favorable, indicating that the cost is right on plan.
    • +
    • < 100 is unfavorable, indicating that the cost of completing the work is higher than planned.
    • +
    +
    +
  • +
  • ETC (Estimate To Complete): The time remaining to complete the project.

    +
  • +
  • BAC (Budget At Completion): The total amount of work allocated in the project plan.

    +
  • +
  • EAC (Estimate At Completion): The manager's projection of the total cost at project completion, based on the CPI.

    +
  • +
  • VAC (Variance At Completion): The difference between the BAC and the EAC.

    +
    +
      +
    • < 0 indicates that the project is over budget.
    • +
    • > 0 indicates that the project is under budget.
    • +
    +
    +
  • +
+
+
+
+

Resources

+

To analyze the project from the resources' point of view, two ratios and a histogram are provided.

+
+

Estimation Deviation on Completed Task Histogram

+

This histogram calculates the deviation between the number of hours allocated to the project tasks and the actual number of hours dedicated to them.

+

The deviation is calculated as a percentage for all finished tasks, and the calculated deviations are represented in a histogram. The vertical axis shows the number of tasks within each deviation interval. Six deviation intervals are dynamically calculated.

+
+
+

Overtime Ratio

+

This ratio summarizes the overload of resources allocated to the project tasks. It is calculated using the formula: overtime ratio = overload / (load + overload).

+
+
    +
  • = 0 is favorable, indicating that the resources are not overloaded.
  • +
  • > 0 is unfavorable, indicating that the resources are overloaded.
  • +
+
+
+
+

Availability Ratio

+

This ratio summarizes the free capacity of the resources currently allocated to the project. Therefore, it measures the resources' availability to receive more allocations without being overloaded. It is calculated as: availability ratio = (1 - load/capacity) * 100

+
+
    +
  • Possible values are between 0% (fully assigned) and 100% (not assigned).
  • +
+
+
+
+
+

Time

+

Two charts are included: a histogram for the time deviation in the finish time of project tasks and a pie chart for deadline violations.

+
+

Task Completion Lead or Lag

+

This calculation determines the difference in days between the planned end time for project tasks and their actual end time. The planned completion date is taken from the Gantt chart, and the actual finish date is taken from the last time tracked for the task.

+

The lag or lead in task completion is represented in a histogram. The vertical axis shows the number of tasks with a lead/lag day difference value corresponding to the abscissa days interval. Six dynamic task completion deviation intervals are calculated.

+
+
    +
  • Negative values mean finishing ahead of schedule.
  • +
  • Positive values mean finishing behind schedule.
  • +
+
+
+
+

Deadline Violations

+

This section calculates the margin with the project deadline, if set. Additionally, a pie chart shows the percentage of tasks meeting their deadline. Three types of values are included in the chart:

+
+
    +
  • Percentage of tasks without a deadline configured.
  • +
  • Percentage of ended tasks with an actual end date later than their deadline. The actual end date is taken from the last time tracked for the task.
  • +
  • Percentage of ended tasks with an actual end date earlier than their deadline.
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/17-2-pipeline-dashboard.html b/libreplan-webapp/src/main/webapp/help/sv_SE/17-2-pipeline-dashboard.html new file mode 100644 index 000000000..bb54ed657 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/17-2-pipeline-dashboard.html @@ -0,0 +1,33 @@ + + + + + + +Pipeline Dashboard + + + +
+

Pipeline Dashboard

+ +

The pipeline dashboard is a TASKPM perspective that lists all company projects in a table. This "pipeline" table has nine columns, each corresponding to a project status:

+
+
    +
  • PRE-SALES
  • +
  • OFFERED
  • +
  • OUTSOURCED
  • +
  • ACCEPTED
  • +
  • STARTED
  • +
  • ON HOLD
  • +
  • FINISHED
  • +
  • CANCELLED
  • +
  • ARCHIVED
  • +
+
+

Projects are listed by name in each column based on their current status.

+

A project's start date, end date, and current progress can be viewed in a tooltip popup by hovering the mouse cursor over a project's name.

+

Projects with an ARCHIVED status can be hidden by unchecking the "Show archived column data" checkbox.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/17-dashboards.html b/libreplan-webapp/src/main/webapp/help/sv_SE/17-dashboards.html new file mode 100644 index 000000000..3dc8f1af4 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/17-dashboards.html @@ -0,0 +1,24 @@ + + + + + + +Dashboards + + + +
+

Dashboards

+ +

TASKPM offers dashboard views for projects, providing an overview of their current status.

+

The two available dashboard views are:

+ +
+ + diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/18-connectors.html b/libreplan-webapp/src/main/webapp/help/sv_SE/18-connectors.html new file mode 100644 index 000000000..0f879b53d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/18-connectors.html @@ -0,0 +1,238 @@ + + + + + + +Connectors + + + +
+

Connectors

+ + +

Connectors are TASKPM client applications that can be used to communicate with (web) servers to retrieve data, process it, and store it. Currently, there are three connectors: the JIRA connector, the Tim Enterprise connector, and the E-mail connector.

+
+

Configuration

+

Connectors must be configured properly before they can be used. They can be configured from the "Main Settings" screen under the "Connectors" tab.

+

The connector screen includes:

+
    +
  • Pull-down list: A list of available connectors.
  • +
  • Properties edit screen: A property edit form for the selected connector.
  • +
  • Test connection button: A button to test the connection with the connector.
  • +
+

Select the connector you want to configure from the pull-down list of connectors. A property editor form for the selected connector will be displayed. In the property editor form, you can change the property values as needed and test your configurations using the "Test connection" button.

+
+

Note

+

The properties are configured with default values. The most important property is "Activated." By default, it is set to "N." This indicates that the connector will not be used unless you change the value to "Y" and save the changes.

+
+
+
+

JIRA Connector

+

JIRA is an issue and project tracking system.

+

The JIRA connector is an application that can be used to request JIRA web server data for JIRA issues and process the response. The request is based on JIRA labels. In JIRA, labels can be used to categorize issues. The request is structured as follows: retrieve all issues that are categorized by this label name.

+

The connector receives the response, which in this case is the issues, and converts them to TASKPM "Order elements" and "Time sheets."

+

The JIRA connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the JIRA connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the JIRA connector. The default is "N."
  • +
  • Server URL: The absolute path to the JIRA web server.
  • +
  • User name and password: The user credentials for authorization.
  • +
  • JIRA labels: comma-separated list of labels or URL: You can either enter the label URL or a comma-separated list of labels.
  • +
  • Hours type: The type of work hours. The default is "Default."
  • +
+
+

Note

+

JIRA labels: Currently, the JIRA web server does not support providing a list of all available labels. As a workaround, we have developed a simple PHP script that performs a simple SQL query in the JIRA database to fetch all distinct labels. You can either use this PHP script as the "JIRA labels URL" or enter the labels you want as comma-separated text in the "JIRA labels" field.

+
+

Finally, click the "Test connection" button to test if you can connect to the JIRA web server and that your configurations are correct.

+
+
+

Synchronization

+

From the project window, under "General data," you can start synchronizing order elements with JIRA issues.

+

Click the "Sync with JIRA" button to start the synchronization.

+
    +
  • If this is the first time, a pop-up window (with an auto-completed list of labels) will be displayed. In this window, you can select a label to synchronize with and click the "Start sync" button to begin the synchronization process, or click the "Cancel" button to cancel it.
  • +
  • If a label is already synchronized, the last synchronized date and the label will be displayed in the JIRA screen. In this case, no pop-up window to select a label will be displayed. Instead, the synchronization process will start directly for that displayed (already synchronized) label.
  • +
+
+

Note

+

The relationship between "Order" and "label" is one-to-one. Only one label can be synchronized with one "Order."

+
+
+

Note

+

Upon successful (re)synchronization, the information will be written to the database, and the JIRA screen will be updated with the last synchronized date and label.

+
+

(Re)synchronization is performed in two phases:

+
    +
  • Phase 1: Synchronizing order elements, including progress assignment and measurements.
  • +
  • Phase 2: Synchronizing time sheets.
  • +
+
+

Note

+

If Phase 1 fails, Phase 2 will not be performed, and no information will be written to the database.

+
+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+

Upon successful completion of synchronization, the result will be displayed in the "Work Breakdown Structure (WBS tasks)" tab of the "Project details" screen. In this UI, there are two changes from the standard WBS:

+
    +
  • The "Total task hours" column is unmodifiable (read-only) because the synchronization is one-way. Task hours can only be updated in the JIRA web server.
  • +
  • The "Code" column displays the JIRA issue keys, and they are also hyperlinks to the JIRA issues. Click the desired key if you want to go to the document for that key (JIRA issue).
  • +
+
+
+

Scheduling

+

Re-synchronization of JIRA issues can also be performed through the scheduler. Go to the "Job scheduling" screen. In that screen, you can configure a JIRA job to perform synchronization. The job searches for the last synchronized labels in the database and re-synchronizes them accordingly. See also the Scheduler Manual.

+
+
+
+

Tim Enterprise Connector

+

Tim Enterprise is a Dutch product from Aenova. It is a web-based application for the administration of time spent on projects and tasks.

+

The Tim connector is an application that can be used to communicate with the Tim Enterprise server to:

+
    +
  • Export all hours spent by a worker (user) on a project that could be registered in Tim Enterprise.
  • +
  • Import all rosters of the worker (user) to plan the resource effectively.
  • +
+

The Tim connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the Tim connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the Tim connector. The default is "N."
  • +
  • Server URL: The absolute path to the Tim Enterprise server.
  • +
  • User name and password: The user credentials for authorization.
  • +
  • Number of days timesheet to Tim: The number of days back you want to export the time sheets.
  • +
  • Number of days roster from Tim: The number of days forward you want to import the rosters.
  • +
  • Productivity factor: Effective working hours in percentage. The default is "100%."
  • +
  • Department IDs to import roster: Comma-separated department IDs.
  • +
+

Finally, click the "Test connection" button to test if you can connect to the Tim Enterprise server and that your configurations are correct.

+
+
+

Export

+

From the project window, under "General data," you can start exporting time sheets to the Tim Enterprise server.

+

Enter the "Tim product code" and click the "Export to Tim" button to start the export.

+

The Tim connector adds the following fields along with the product code:

+
    +
  • The worker/user's full name.
  • +
  • The date the worker worked on a task.
  • +
  • The effort, or hours worked on the task.
  • +
  • An option indicating whether Tim Enterprise should update the registration or insert a new one.
  • +
+

The Tim Enterprise response contains only a list of record IDs (integers). This makes it difficult to determine what went wrong, as the response list contains only numbers not related to the request fields. The export request (registration in Tim) is assumed to have succeeded if all the list entries do not contain "0" values. Otherwise, the export request has failed for those entries that contain "0" values. Therefore, you cannot see which request failed, as the list entries only contain the value "0." The only way to determine this is to examine the log file on the Tim Enterprise server.

+
+

Note

+

Upon successful exporting, the information will be written to the database, and the Tim screen will be updated with the last exported date and product code.

+
+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+
+
+

Scheduling Export

+

The export process can also be performed through the scheduler. Go to the "Job Scheduling" screen. In that screen, you can configure a Tim Export job. The job searches for the last exported time sheets in the database and re-exports them accordingly. See also the Scheduler manual.

+
+
+

Import

+

Importing rosters only works with the help of the scheduler. There is no user interface designed for this, as no input is needed from the user. Go to the "Job scheduling" screen and configure a Tim Import job. The job loops through all departments configured in the connector properties and imports all rosters for each department. See also the Scheduler Manual.

+

For import, the Tim connector adds the following fields in the request:

+
    +
  • Period: The period (date from - date to) for which you want to import the roster. This can be provided as a filter criterion.
  • +
  • Department: The department for which you want to import the roster. Departments are configurable.
  • +
  • The fields you are interested in (like Person info, RosterCategory, etc.) that the Tim server should include in its response.
  • +
+

The import response contains the following fields, which are sufficient to manage the exception days in TASKPM:

+
    +
  • Person info: Name and network name.
  • +
  • Department: The department the worker is working in.
  • +
  • Roster category: Information on the presence/absence (Aanwzig/afwezig) of the worker and the reason (TASKPM exception type) in case the worker is absent.
  • +
  • Date: The date the worker is present/absent.
  • +
  • Time: The start time of presence/absence, for example, 08:00.
  • +
  • Duration: The number of hours that the worker is present/absent.
  • +
+

By converting the import response to TASKPM's "Exception day," the following translations are taken into account:

+
    +
  • If the roster category contains the name "Vakantie," it will be translated to "RESOURCE HOLIDAY."
  • +
  • The roster category "Feestdag" will be translated to "BANK HOLIDAY."
  • +
  • All the rest, like "Jus uren," "PLB uren," etc., should be added to the "Calendar Exception Days" manually.
  • +
+

Moreover, in the import response, the roster is divided into two or three parts per day: for example, roster-morning, roster-afternoon, and roster-evening. However, TASKPM allows only one "Exception type" per day. The Tim connector is then responsible for merging these parts as one exception type. That is, the roster category with the highest duration is assumed to be a valid exception type, but the total duration is the sum of all durations of these category parts.

+

Contrary to TASKPM, in Tim Enterprise, the total duration in case the worker is on holiday means the worker is not available for that total duration. However, in TASKPM, if the worker is on holiday, the total duration should be zero. The Tim connector also handles this translation.

+
+
+
+

E-mail Connector

+

E-mail is a method of exchanging digital messages from an author to one or more recipients.

+

The E-mail connector can be used to set Simple Mail Transfer Protocol (SMTP) server connection properties.

+

The E-mail connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the E-mail connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the E-mail connector. The default is "N."
  • +
  • Protocol: The type of SMTP protocol.
  • +
  • Host: The absolute path to the SMTP server.
  • +
  • Port: The port of the SMTP server.
  • +
  • From address: The e-mail address of the message sender.
  • +
  • Username: The username for the SMTP server.
  • +
  • Password: The password for the SMTP server.
  • +
+

Finally, click the "Test connection" button to test if you can connect to the SMTP server and that your configurations are correct.

+
+
+

Edit E-mail Template

+

From the project window, under "Configuration" and then "Edit E-mail Templates," you can modify the e-mail templates for messages.

+

You can choose:

+
    +
  • Template language:
  • +
  • Template type:
  • +
  • E-mail subject:
  • +
  • Template contents:
  • +
+

You need to specify the language because the web application will send e-mails to users in the language they have chosen in their preferences. You need to choose the template type. The type is the user role, meaning that this e-mail will be sent only to users who are in the selected role (type). You need to set the e-mail subject. The subject is a brief summary of the topic of the message. You need to set the e-mail contents. This is any information that you want to send to the user. There are also some keywords that you may use in the message; the web application will parse them and set a new value instead of the keyword.

+
+
+

Scheduling E-mails

+

Sending e-mails can only be performed through the scheduler. Go to "Configuration," then the "Job Scheduling" screen. In that screen, you can configure an e-mail sending job. The job takes a list of e-mail notifications, gathers data, and sends it to the user's e-mail. See also the Scheduler manual.

+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/19-scheduler.html b/libreplan-webapp/src/main/webapp/help/sv_SE/19-scheduler.html new file mode 100644 index 000000000..8379b5b4c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/19-scheduler.html @@ -0,0 +1,107 @@ + + + + + + +Scheduler + + + +
+

Scheduler

+ + +

The scheduler is designed to schedule jobs dynamically. It is developed using the Spring Framework Quartz scheduler.

+

To use this scheduler effectively, the jobs (Quartz jobs) that should be scheduled must be created first. Then, these jobs can be added to the database, as all jobs to be scheduled are stored in the database.

+

When the scheduler starts, it reads the jobs to be scheduled or unscheduled from the database and schedules or removes them accordingly. Afterward, jobs can be added, updated, or removed dynamically using the Job scheduling user interface.

+
+

Note

+

The scheduler starts when the TASKPM web application starts and stops when the application stops.

+
+
+

Note

+

This scheduler supports only cron expressions to schedule jobs.

+
+

The criteria that the scheduler uses to schedule or remove jobs when it starts are as follows:

+

For all jobs:

+
    +
  • Schedule
      +
    • Job has a Connector, and the Connector is activated, and the job is allowed to be scheduled.
    • +
    • Job has no Connector and is allowed to be scheduled.
    • +
    +
  • +
  • Remove
      +
    • Job has a Connector, and the Connector is not activated.
    • +
    • Job has a Connector, and the Connector is activated, but the job is not allowed to be scheduled.
    • +
    • Job has no Connector and is not allowed to be scheduled.
    • +
    +
  • +
+
+

Note

+

Jobs cannot be rescheduled or unscheduled if they are currently running.

+
+
+

Job Scheduling List View

+

The Job scheduling list view allows users to:

+
    +
  • Add a new job.
  • +
  • Edit an existing job.
  • +
  • Remove a job.
  • +
  • Start a process manually.
  • +
+
+
+

Add or Edit Job

+

From the Job scheduling list view, click:

+
    +
  • Create to add a new job, or
  • +
  • Edit to modify the selected job.
  • +
+

Both actions will open a create/edit job form. The form displays the following properties:

+
    +
  • Fields:
      +
    • Job group: The name of the job group.
    • +
    • Job name: The name of the job.
    • +
    • Cron expression: A read-only field with an Edit button to open the cron expression input window.
    • +
    • Job class name: A pull-down list to select the job (an existing job).
    • +
    • Connector: A pull-down list to select a connector. This is not mandatory.
    • +
    • Schedule: A checkbox to indicate whether to schedule this job.
    • +
    +
  • +
  • Buttons:
      +
    • Save: To save or update a job in both the database and the scheduler. The user is then returned to the Job scheduling list view.
    • +
    • Save and continue: The same as "Save," but the user is not returned to the Job scheduling list view.
    • +
    • Cancel: Nothing is saved, and the user is returned to the Job scheduling list view.
    • +
    +
  • +
  • And a hint section about cron expression syntax.
  • +
+
+

Cron Expression Pop-up

+

To enter the cron expression correctly, a cron expression pop-up form is used. In this form, you can enter the desired cron expression. See also the hint about the cron expression. If you enter an invalid cron expression, you will be notified immediately.

+
+
+
+

Remove Job

+

Click the Remove button to delete the job from both the database and the scheduler. The success or failure of this action will be displayed.

+
+
+

Start Job Manually

+

As an alternative to waiting for the job to run as scheduled, you can click this button to start the process directly. Afterward, the success or failure information will be displayed in a pop-up window.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/20-acerca-de.html b/libreplan-webapp/src/main/webapp/help/sv_SE/20-acerca-de.html new file mode 100644 index 000000000..569e69e4d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/20-acerca-de.html @@ -0,0 +1,155 @@ + + + + + + +About + + + +
+

About

+ + + +
+

License

+

This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version.

+

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/>.

+
+
+

Written by

+
+

TASKPM Team

+ +
+
+

Previous Team Members

+ +
+
+

Translators

+ +
+
+

Contributors

+ +
+
+
+

Public Funding

+

This project currently accepts donations through the Open Collective organization <https://opencollective.com/TASKPM>.

+

Within the global scope that TASKPM is designed for regarding planning management, a project was developed to solve some common planning problems.

+

This project was partially financed by Xunta de Galicia, Ministerio de Industria, Turismo e Comercio, and by the European Union, Fondo Europeo de Desenvolvemento Rexional.

+
+images/logos.png +
+ +++ + + + +
scale:100
+

This project was part of Plan Avanza:

+
+images/avanza.png +
+ +++ + + + +
scale:100
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/21-communications.html b/libreplan-webapp/src/main/webapp/help/sv_SE/21-communications.html new file mode 100644 index 000000000..e4f5ea081 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/21-communications.html @@ -0,0 +1,18 @@ + + + + + + +Subcontractor Work Description + + + +
+

Subcontractor Work Description

+ +

While it is possible to leave this field empty, doing so can lead to errors in communication functionality when multiple empty fields exist.

+

Therefore, we strongly recommend always using a unique work description.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/22-pert.html b/libreplan-webapp/src/main/webapp/help/sv_SE/22-pert.html new file mode 100644 index 000000000..c27af3c56 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/22-pert.html @@ -0,0 +1,17 @@ + + + + + + +PERT Chart + + + +
+

PERT Chart

+ +

Unlike Libreplan, which was focused on the GANNT chart and did not have a PERT chart, TASKPM does have a PERT chart and is more focused on it.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/23-subnets.html b/libreplan-webapp/src/main/webapp/help/sv_SE/23-subnets.html new file mode 100644 index 000000000..42cd9e634 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/23-subnets.html @@ -0,0 +1,17 @@ + + + + + + +Task Subnets + + + +
+

Task Subnets

+ +

Unlike Libreplan, which only had a single level of planning, the whole project, TASKPM has subnetworks of activities which can be embedded in a master project.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/advance-assignment.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/advance-assignment.png new file mode 100644 index 000000000..aeb55b2b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/advance-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/asignacion-especifica.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/asignacion-especifica.png new file mode 100644 index 000000000..9ee94d9c6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/asignacion-especifica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/asignacion-xenerica.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/asignacion-xenerica.png new file mode 100644 index 000000000..d2a16597f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/asignacion-xenerica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/avance.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/avance.png new file mode 100644 index 000000000..ee289e19c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/avanza.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/avanza.png new file mode 100644 index 000000000..a51893f80 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/avanza.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/calendar-administration.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/calendar-administration.png new file mode 100644 index 000000000..bb4e17032 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/calendar-administration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/calendar-create-derived.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/calendar-create-derived.png new file mode 100644 index 000000000..9f01f2c33 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/calendar-create-derived.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/calendar-edition.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/calendar-edition.png new file mode 100644 index 000000000..a98cc4454 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/calendar-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/calendar-exceptions.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/calendar-exceptions.png new file mode 100644 index 000000000..c2a53a684 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/calendar-exceptions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/category-cost-edit.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/category-cost-edit.png new file mode 100644 index 000000000..1755ee79e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/category-cost-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/category-cost-list.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/category-cost-list.png new file mode 100644 index 000000000..1d7ff838c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/category-cost-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/company_view.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/company_view.png new file mode 100644 index 000000000..c3a7631e6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/company_view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/contraste-avance.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/contraste-avance.png new file mode 100644 index 000000000..831cceac3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/contraste-avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/default-calendar.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/default-calendar.png new file mode 100644 index 000000000..6fd379d08 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/default-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/edicion-criterio.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/edicion-criterio.png new file mode 100644 index 000000000..2b879ced5 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/edicion-criterio.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/hour-type-edit.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/hour-type-edit.png new file mode 100644 index 000000000..4917b08a8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/hour-type-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/hour-type-list.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/hour-type-list.png new file mode 100644 index 000000000..1872eb4f7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/hour-type-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/lista-criterios.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/lista-criterios.png new file mode 100644 index 000000000..a2e7d03cb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/lista-criterios.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/logo.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/logo.png new file mode 100644 index 000000000..4e7d02651 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/logo.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/logos.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/logos.png new file mode 100644 index 000000000..7314a0759 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/logos.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/machine-calendar.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/machine-calendar.png new file mode 100644 index 000000000..a725f67a2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/machine-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/machine-configuration.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/machine-configuration.png new file mode 100644 index 000000000..0777473fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/machine-configuration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/machine-costcategory.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/machine-costcategory.png new file mode 100644 index 000000000..b8414eac6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/machine-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/machine-criterions.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/machine-criterions.png new file mode 100644 index 000000000..7c270bf35 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/machine-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/machine-data.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/machine-data.png new file mode 100644 index 000000000..5edb47d12 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/machine-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/manage-user-profile.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/manage-user-profile.png new file mode 100644 index 000000000..6a86064e2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/manage-user-profile.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/manage-user.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/manage-user.png new file mode 100644 index 000000000..df59f1b7c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/manage-user.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/material.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/material.png new file mode 100644 index 000000000..a77b5aa41 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/menu.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/menu.png new file mode 100644 index 000000000..f4eec5250 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/menu.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/new-resource-calendar.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/new-resource-calendar.png new file mode 100644 index 000000000..9040e0bc0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/new-resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-assigned-hours.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-assigned-hours.png new file mode 100644 index 000000000..4fd629386 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-assigned-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-criterions.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-criterions.png new file mode 100644 index 000000000..e59bd833f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-edition.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-edition.png new file mode 100644 index 000000000..ff67134db Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-element-criterion.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-element-criterion.png new file mode 100644 index 000000000..f167979b0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-element-criterion.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-element-edition.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-element-edition.png new file mode 100644 index 000000000..66e5e8602 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-element-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-element-hours.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-element-hours.png new file mode 100644 index 000000000..06cc1dc37 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-element-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-element-material-assign.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-element-material-assign.png new file mode 100644 index 000000000..90f973766 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-element-material-assign.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-element-material-search.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-element-material-search.png new file mode 100644 index 000000000..550f1d7fa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-element-material-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-element-quality.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-element-quality.png new file mode 100644 index 000000000..3272ce70e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-element-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-element-tags.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-element-tags.png new file mode 100644 index 000000000..e43a7d795 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-element-tags.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-elements-list.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-elements-list.png new file mode 100644 index 000000000..271ac9bf6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-elements-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-labels.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-labels.png new file mode 100644 index 000000000..076e0a745 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-labels.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-material.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-material.png new file mode 100644 index 000000000..9197679e7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-quality.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-quality.png new file mode 100644 index 000000000..ee9e9027e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/order_list.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order_list.png new file mode 100644 index 000000000..72e70f3b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/order_list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/planning-view.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/planning-view.png new file mode 100644 index 000000000..de74811eb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/planning-view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/quality.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/quality.png new file mode 100644 index 000000000..1850f51b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/resource-assignment-generic.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/resource-assignment-generic.png new file mode 100644 index 000000000..3519a5087 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/resource-assignment-generic.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/resource-assignment-planning.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/resource-assignment-planning.png new file mode 100644 index 000000000..c4233780d Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/resource-assignment-planning.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/resource-assignment-search.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/resource-assignment-search.png new file mode 100644 index 000000000..cae142d81 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/resource-assignment-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/resource-assignment-specific.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/resource-assignment-specific.png new file mode 100644 index 000000000..8f7b1cba2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/resource-assignment-specific.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/resource-assignment.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/resource-assignment.png new file mode 100644 index 000000000..427d25b79 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/resource-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/resource-calendar.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/resource-calendar.png new file mode 100644 index 000000000..749c7b829 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/resource-load.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/resource-load.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/resource-load.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/resources_global.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/resources_global.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/resources_global.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/stretches.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/stretches.png new file mode 100644 index 000000000..d661a63f6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/stretches.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/tag-types-edition.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/tag-types-edition.png new file mode 100644 index 000000000..d366c09c2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/tag-types-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/tag-types-list.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/tag-types-list.png new file mode 100644 index 000000000..e7de5048c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/tag-types-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/tipos-avances.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/tipos-avances.png new file mode 100644 index 000000000..bb417f52c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/tipos-avances.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/virtual-resources.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/virtual-resources.png new file mode 100644 index 000000000..3a54f95d3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/virtual-resources.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/work-report-hours.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/work-report-hours.png new file mode 100644 index 000000000..568e9fed6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/work-report-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/work-report-type.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/work-report-type.png new file mode 100644 index 000000000..2549d8b5e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/work-report-type.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/work-report-types.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/work-report-types.png new file mode 100644 index 000000000..986f705aa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/work-report-types.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/worker-calendar.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/worker-calendar.png new file mode 100644 index 000000000..1227969b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/worker-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/worker-costcategory.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/worker-costcategory.png new file mode 100644 index 000000000..f330db68c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/worker-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/worker-criterions.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/worker-criterions.png new file mode 100644 index 000000000..a131a29fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/worker-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/images/worker-personal-data.png b/libreplan-webapp/src/main/webapp/help/sv_SE/images/worker-personal-data.png new file mode 100644 index 000000000..6a5033ba8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/sv_SE/images/worker-personal-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/index.html b/libreplan-webapp/src/main/webapp/help/sv_SE/index.html new file mode 100644 index 000000000..7a9b74000 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/index.html @@ -0,0 +1,47 @@ + + + + + + +LibrePlan: User documentation + + + +
+

LibrePlan: User documentation

+ +images/logo.png +

Following document contains necessary help for using LibrePlan, the opensource web application for project planning.

+

This document is divided in three main sections:

+

First, global goals and behaviour.

+

Second, basic entities to understand the minimum concepts to use LibrePlan.

+

Finally, complete processes description to create orders, projects, project planning, resources assignment, advance assignment and result extraction.

+
    +
  1. Introduction
  2. +
  3. Criteria
  4. +
  5. Calendars
  6. +
  7. Progress
  8. +
  9. Resource Management
  10. +
  11. Orders and Order Elements
  12. +
  13. Task Planning
  14. +
  15. Resource Assignment
  16. +
  17. Work Reports
  18. +
  19. Labels
  20. +
  21. Materials Management
  22. +
  23. Quality Forms
  24. +
  25. User Management
  26. +
  27. Cost management
  28. +
  29. Reports
  30. +
  31. LDAP Configuration
  32. +
  33. Dashboards
  34. +
  35. Connectors
  36. +
  37. Scheduler
  38. +
  39. About
  40. +
  41. Subcontractor Work Description
  42. +
  43. PERT Chart
  44. +
  45. Task Subnets
  46. +
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/sv_SE/lsr.css b/libreplan-webapp/src/main/webapp/help/sv_SE/lsr.css new file mode 100644 index 000000000..ced6c967a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/sv_SE/lsr.css @@ -0,0 +1,250 @@ +/* +Author: Peter Parente +Date: 2008/01/22 +Version: 1.0 +Copyright: This stylesheet has been placed in the public domain - free to edit and use for all uses. +*/ + +body { + font: 0.8em Verdana, Tahoma, sans-serif; + background: #ffffff; + color: black; + margin: 2em; +} + +p.topic-title { + font-weight: bold; +} + +table.docinfo { + text-align: left; + margin: 2em 0; +} + +a[href] { + color: #436976; + background-color: transparent; +} + +a.toc-backref { + text-decoration: none; +} + +h1 a[href] { + color: #003a6b; + text-decoration: none; + background-color: transparent; +} + +a.strong { + font-weight: bold; +} + +img { + margin: 0; + border: 0; +} + +p { + margin: 0.5em 0 1em 0; + line-height: 1.5em; +} + +p a:visited { + color: purple; + background-color: transparent; +} + +p a:active { + color: red; + background-color: transparent; +} + +a:hover { + text-decoration: none; +} + +p img { + border: 0; + margin: 0; +} + +p.rubric { + font-weight: bold; + font-style: italic; +} + +h1.title { + color: #003a6b; + font-size: 250%; + margin-bottom: 0; +} + +h2.subtitle { + color: #003a6b; + border-bottom: 0; +} + +h1, h2, h3, h4, h5, h6 { + color: #555; + background-color: transparent; + margin: 0; + padding-top: 0.5em; +} + +h1 { + font-size: 160%; + margin-bottom: 0.5em; + border-bottom: 2px solid #aaa; +} + +h2 { + font-size: 140%; + margin-bottom: 0.5em; + border-bottom: 1px solid #aaa; +} + +h3 { + font-size: 130%; + margin-bottom: 0.5em; +} + +h4 { + font-size: 110%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h5 { + font-size: 105%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h6 { + font-size: 100%; + font-weight: bold; + margin-bottom: 0.5em; +} + +dt { + font-style: italic; +} + +dd { + margin-bottom: 1.5em; +} + +div.admonition, div.note, div.tip, div.caution, div.important, div.warning { + margin: 2em 2em; + padding: 0 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +div.important { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +div.caution { + background: transparent url('../images/caution.png') 10px 2px no-repeat; +} + +div.note { + background: transparent url('../images/note.png') 10px 2px no-repeat; +} + +div.tip { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-example { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-critical-example { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +p.admonition-title { + font-weight: bold; + border-bottom: 1px solid #aaa; + padding-left: 30px; +} + +table.docutils { + text-align: left; + border: 1px solid gray; + border-collapse: collapse; + width: 100%; + margin: 1.5em 0; +} + +table.docutils caption { + font-style: italic; +} + +table.docutils td, table.docutils th { + padding: 0.25em 0.5em; +} + +table.docutils th { + background-color: #dddddd; +} + +div.sidebar { + width: 33%; + float: right; + margin: 0 2em; + padding: 0 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +p.sidebar-title { + margin-bottom: 0; + color: #003a6b; + border-bottom: 1px solid #aaa; + font-weight: bold; +} + +p.sidebar-subtitle { + margin-top: 0; + font-style: italic; + color: #003a6b; +} + +div.figure { + text-align: center; +} + +div.figure img { + background: #f8f8f8; + padding: 0.25em; + border: 1px solid #888; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +div.figure img:hover { + background: #e0e0e0; +} + +div.figure p.caption { + text-align: center; + margin-top: 0.1em; + font-style: italic; + color: #444; +} + +pre.literal-block { + padding: 0.15em; + background: #f8f8f8; + border: 1px solid #dfdfdf; + border-left: 0.25em solid #dfdfdf +} diff --git a/libreplan-webapp/src/main/webapp/help/zh/01-introducion.html b/libreplan-webapp/src/main/webapp/help/zh/01-introducion.html new file mode 100644 index 000000000..51e520ad7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/01-introducion.html @@ -0,0 +1,132 @@ + + + + + + +Introduction + + + +
+

Introduction

+ + +

This document describes the features of TASKPM and provides user information on how to configure and use the application.

+

TASKPM is an open-source web application for project planning. Its primary goal is to provide a comprehensive solution for company project management. For any specific information you may need about this software, please contact the development team at http://www.libreplan.com/contact/

+
+images/company_view.png +

Company Overview

+
+
+

Company Overview and View Management

+

As shown in the program's main screen (see the previous screenshot) and the company overview, users can view a list of planned projects. This allows them to understand the company's overall status regarding orders and resource utilization. The company overview offers three distinct views:

+
    +
  • Planning View: This view combines two perspectives:

    +
    +
      +
    • Order and Time Tracking: Each project is represented by a Gantt chart, indicating the project's start and end dates. This information is displayed alongside the agreed-upon deadline. A comparison is then made between the percentage of progress achieved and the actual time dedicated to each project. This provides a clear picture of the company's performance at any given time. This view is the program's default landing page.
    • +
    • Company Resource Utilization Graph: This graph displays information on resource allocation across projects, providing a summary of the entire company's resource usage. Green indicates that resource allocation is below 100% of capacity. The black line represents the total available resource capacity. Yellow indicates that resource allocation exceeds 100%. It's possible to have under-allocation overall while simultaneously experiencing over-allocation for specific resources.
    • +
    +
    +
  • +
  • Resource Load View: This screen displays a list of the company's workers and their specific task allocations, or generic allocations based on defined criteria. To access this view, click on Overall load of resources. See the following image for an example.

    +
  • +
  • Orders Administration View: This screen displays a list of company orders, allowing users to perform the following actions: filter, edit, delete, visualize planning, or create a new order. To access this view, click on Order list.

    +
  • +
+
+images/resources_global.png +

Resource Overview

+
+
+images/order_list.png +

Work Breakdown Structure

+
+

The view management described above for the company overview is very similar to the management available for a single project. A project can be accessed in several ways:

+
    +
  • Right-click on the Gantt chart for the order and select Plan.
  • +
  • Access the order list and click on the Gantt diagram icon.
  • +
  • Create a new order and change the current order view.
  • +
+

The program offers the following views for an order:

+
    +
  • Planning View: This view allows users to visualize task planning, dependencies, milestones, and more. See the Planning section for further details.
  • +
  • Resource Load View: This view allows users to check the designated resource load for a project. The color code is consistent with the company overview: green for a load less than 100%, yellow for a load equal to 100%, and red for a load over 100%. The load may originate from a specific task or a set of criteria (generic allocation).
  • +
  • Editing Order View: This view allows users to modify the details of the order. See the Orders section for more information.
  • +
  • Advanced Resource Allocation View: This view allows users to allocate resources with advanced options, such as specifying hours per day or the allocated functions to be performed. See the Resource allocation section for more information.
  • +
+
+
+

What Makes TASKPM Useful?

+

TASKPM is a general-purpose planning tool developed to address challenges in industrial project planning that were not adequately covered by existing tools. The development of TASKPM was also motivated by the desire to provide a free, open-source, and entirely web-based alternative to proprietary planning tools.

+

The core concepts underpinning the program are as follows:

+
    +
  • Company and Multi-Project Overview: TASKPM is specifically designed to provide users with information about multiple projects being carried out within a company. Therefore, it is inherently a multi-project program. The program's focus is not limited to individual projects, although specific views for individual projects are also available.
  • +
  • View Management: The company overview, or multi-project view, is accompanied by various views of the stored information. For example, the company overview allows users to view orders and compare their status, view the company's overall resource load, and manage orders. Users can also access the planning view, resource load view, advanced resource allocation view, and editing order view for individual projects.
  • +
  • Criteria: Criteria are a system entity that enables the classification of both resources (human and machine) and tasks. Resources must meet certain criteria, and tasks require specific criteria to be fulfilled. This is one of the program's most important features, as criteria form the basis of generic allocation and address a significant challenge in the industry: the time-consuming nature of human resource management and the difficulty of long-term company load estimations.
  • +
  • Resources: There are two types of resources: human and machine. Human resources are the company's workers, used for planning, monitoring, and controlling the company's workload. Machine resources, dependent on the people who operate them, function similarly to human resources.
  • +
  • Resource Allocation: A key feature of the program is the ability to designate resources in two ways: specifically and generically. Generic allocation is based on the criteria required to complete a task and must be fulfilled by resources capable of meeting those criteria. To understand generic allocation, consider this example: John Smith is a welder. Typically, John Smith would be specifically assigned to a planned task. However, TASKPM offers the option of selecting any welder within the company, without needing to specify that John Smith is the assigned person.
  • +
  • Company Load Control: The program allows for easy control of the company's resource load. This control extends to both the mid-term and long-term, as current and future projects can be managed within the program. TASKPM provides graphs that visually represent resource utilization.
  • +
  • Labels: Labels are used to categorize project tasks. With these labels, users can group tasks by concept, allowing for later review as a group or after filtering.
  • +
  • Filters: Because the system naturally includes elements that label or characterize tasks and resources, criteria filters or labels can be used. This is very useful for reviewing categorized information or generating specific reports based on criteria or labels.
  • +
  • Calendars: Calendars define the available productive hours for different resources. Users can create general company calendars or define more specific calendars, allowing for the creation of calendars for individual resources and tasks.
  • +
  • Orders and Order Elements: Work requested by clients is treated as an order within the application, structured into order elements. The order and its elements follow a hierarchical structure with x levels. This element tree forms the basis for work planning.
  • +
  • Progress: The program can manage various types of progress. A project's progress can be measured as a percentage, in units, against the agreed budget, and more. The responsibility for determining which type of progress to use for comparison at higher project levels lies with the planning manager.
  • +
  • Tasks: Tasks are the fundamental planning elements within the program. They are used to schedule work to be carried out. Key characteristics of tasks include: dependencies between tasks, and the potential requirement for specific criteria to be met before resources can be allocated.
  • +
  • Work Reports: These reports, submitted by the company's workers, detail the hours worked and the tasks associated with those hours. This information allows the system to calculate the actual time taken to complete a task compared to the budgeted time. Progress can then be compared against the actual hours used.
  • +
+

In addition to the core functions, TASKPM offers other features that distinguish it from similar programs:

+
    +
  • Integration with ERP: The program can directly import information from company ERP systems, including orders, human resources, work reports, and specific criteria.
  • +
  • Version Management: The program can manage multiple planning versions, while still allowing users to review the information from each version.
  • +
  • History Management: The program does not delete information; it only marks it as invalid. This allows users to review historical information using date filters.
  • +
+
+
+

Usability Conventions

+
+

Information About Forms

+

Before describing the various functions associated with the most important modules, we need to explain the general navigation and form behavior.

+

There are essentially three types of editing forms:

+
    +
  • Forms with a *Return* button: These forms are part of a larger context, and the changes made are stored in memory. The changes are only applied when the user explicitly saves all the details on the screen from which the form originated.
  • +
  • Forms with *Save* and *Close* buttons: These forms allow for two actions. The first saves the changes and closes the current window. The second closes the window without saving any changes.
  • +
  • Forms with *Save and continue*, *Save*, and *Close* buttons: These forms allow for three actions. The first saves the changes and keeps the current form open. The second saves the changes and closes the form. The third closes the window without saving any changes.
  • +
+
+
+

Standard Icons and Buttons

+
    +
  • Editing: In general, records in the program can be edited by clicking on an icon that looks like a pencil on a white notebook.
  • +
  • Left Indent: These operations are generally used for elements within a tree structure that need to be moved to a deeper level. This is done by clicking on the icon that looks like a green arrow pointing to the right.
  • +
  • Right Indent: These operations are generally used for elements within a tree structure that need to be moved to a higher level. This is done by clicking on the icon that looks like a green arrow pointing to the left.
  • +
  • Deleting: Users can delete information by clicking on the trash can icon.
  • +
  • Search: The magnifying glass icon indicates that the text field to its left is used for searching for elements.
  • +
+
+
+

Tabs

+

The program uses tabs to organize content editing and administration forms. This method is used to divide a comprehensive form into different sections, accessible by clicking on the tab names. The other tabs retain their current status. In all cases, the save and cancel options apply to all sub-forms within the different tabs.

+
+
+

Explicit Actions and Context Help

+

The program includes components that provide additional descriptions of elements when the mouse hovers over them for one second. The actions that the user can perform are indicated on the button labels, in the help texts associated with them, in the browsing menu options, and in the context menus that appear when right-clicking in the planner area. Furthermore, shortcuts are provided for the main operations, such as double-clicking on listed elements or using key events with the cursor and the Enter key to add elements when navigating through forms.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh/02-criterios.html b/libreplan-webapp/src/main/webapp/help/zh/02-criterios.html new file mode 100644 index 000000000..42fad10d3 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/02-criterios.html @@ -0,0 +1,69 @@ + + + + + + +Criteria + + + +
+

Criteria

+ +
+

Contents

+ +
+

Criteria are elements used within the program to categorize both resources and tasks. Tasks require specific criteria, and resources must meet those criteria.

+

Here's an example of how criteria are used: A resource is assigned the criterion "welder" (meaning the resource fulfills the "welder" category), and a task requires the "welder" criterion to be completed. Consequently, when resources are allocated to tasks using generic allocation (as opposed to specific allocation), workers with the "welder" criterion will be considered. For more information on the different types of allocation, refer to the chapter on resource allocation.

+

The program allows for several operations involving criteria:

+
    +
  • Criteria administration
  • +
  • Assigning criteria to resources
  • +
  • Assigning criteria to tasks
  • +
  • Filtering entities based on criteria. Tasks and order items can be filtered by criteria to perform various operations within the program.
  • +
+

This section will only explain the first function, criteria administration. The two types of allocation will be covered later: resource allocation in the "Resource Management" chapter, and filtering in the "Task Planning" chapter.

+
+

Criteria Administration

+

Criteria administration can be accessed through the administration menu:

+
+images/menu.png +

First-Level Menu Tabs

+
+

The specific operation for managing criteria is Manage criteria. This operation allows you to list the criteria available in the system.

+
+images/lista-criterios.png +

List of Criteria

+
+

You can access the create/edit criterion form by clicking the Create button. To edit an existing criterion, click the edit icon.

+
+images/edicion-criterio.png +

Editing Criteria

+
+

The criteria editing form, as shown in the previous image, allows you to perform the following operations:

+
    +
  • Edit the criterion's name.
  • +
  • Specify whether multiple values can be assigned simultaneously or only one value for the selected criterion type. For example, a resource could fulfill two criteria, "welder" and "lathe operator."
  • +
  • Specify the criterion type:
      +
    • Generic: A criterion that can be used for both machines and workers.
    • +
    • Worker: A criterion that can only be used for workers.
    • +
    • Machine: A criterion that can only be used for machines.
    • +
    +
  • +
  • Indicate whether the criterion is hierarchical. Sometimes, criteria need to be treated hierarchically. For example, assigning a criterion to an element does not automatically assign it to elements derived from it. A clear example of a hierarchical criterion is "location." For instance, a person designated with the location "Galicia" will also belong to "Spain."
  • +
  • Indicate whether the criterion is authorized. This is how users deactivate criteria. Once a criterion has been created and used in historical data, it cannot be changed. Instead, it can be deactivated to prevent it from appearing in selection lists.
  • +
  • Describe the criterion.
  • +
  • Add new values. A text entry field with the New criterion button is located in the second part of the form.
  • +
  • Edit the names of existing criteria values.
  • +
  • Move criteria values up or down in the list of current criteria values.
  • +
  • Remove a criterion value from the list.
  • +
+

The criteria administration form follows the form behavior described in the introduction, offering three actions: Save, Save and Close, and Close.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh/03-calendarios.html b/libreplan-webapp/src/main/webapp/help/zh/03-calendarios.html new file mode 100644 index 000000000..0d0bbf0d5 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/03-calendarios.html @@ -0,0 +1,187 @@ + + + + + + +Calendars + + + +
+

Calendars

+ + +

Calendars are entities within the program that define the working capacity of resources. A calendar consists of a series of days throughout the year, with each day divided into available working hours.

+

For example, a public holiday might have 0 available working hours. Conversely, a typical workday might have 8 hours designated as available working time.

+

There are two primary ways to define the number of working hours in a day:

+
    +
  • By Weekday: This method sets a standard number of working hours for each day of the week. For example, Mondays might typically have 8 working hours.
  • +
  • By Exception: This method allows for specific deviations from the standard weekday schedule. For example, Monday, January 30th, might have 10 working hours, overriding the standard Monday schedule.
  • +
+
+

Calendar Administration

+

The calendar system is hierarchical, allowing you to create base calendars and then derive new calendars from them, forming a tree structure. A calendar derived from a higher-level calendar will inherit its daily schedules and exceptions unless explicitly modified. To effectively manage calendars, it's important to understand the following concepts:

+
    +
  • Day Independence: Each day is treated independently, and each year has its own set of days. For example, if December 8th, 2009, is a public holiday, this does not automatically mean that December 8th, 2010, is also a public holiday.
  • +
  • Weekday-Based Working Days: Standard working days are based on weekdays. For example, if Mondays typically have 8 working hours, then all Mondays in all weeks of all years will have 8 available hours unless an exception is defined.
  • +
  • Exceptions and Exception Periods: You can define exceptions or exception periods to deviate from the standard weekday schedule. For example, you can specify a single day or a range of days with a different number of available working hours than the general rule for those weekdays.
  • +
+
+images/calendar-administration.png +

Calendar Administration

+
+

Calendar administration is accessible through the "Administration" menu. From there, users can perform the following actions:

+
    +
  1. Create a new calendar from scratch.
  2. +
  3. Create a calendar derived from an existing one.
  4. +
  5. Create a calendar as a copy of an existing one.
  6. +
  7. Edit an existing calendar.
  8. +
+
+

Creating a New Calendar

+

To create a new calendar, click the "Create" button. The system will display a form where you can configure the following:

+
    +
  • Select the Tab: Choose the tab you want to work on:
      +
    • Marking Exceptions: Define exceptions to the standard schedule.
    • +
    • Working Hours per Day: Define the standard working hours for each weekday.
    • +
    +
  • +
  • Marking Exceptions: If you select the "Marking Exceptions" option, you can:
      +
    • Select a specific day on the calendar.
    • +
    • Select the type of exception. The available types are: holiday, illness, strike, public holiday, and working holiday.
    • +
    • Select the end date of the exception period. (This field does not need to be changed for single-day exceptions.)
    • +
    • Define the number of working hours during the days of the exception period.
    • +
    • Delete previously defined exceptions.
    • +
    +
  • +
  • Working Hours per Day: If you select the "Working Hours per Day" option, you can:
      +
    • Define the available working hours for each weekday (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, and Sunday).
    • +
    • Define different weekly hour distributions for future periods.
    • +
    • Delete previously defined hour distributions.
    • +
    +
  • +
+

These options allow users to fully customize calendars according to their specific needs. Click the "Save" button to store any changes made to the form.

+
+images/calendar-edition.png +

Editing Calendars

+
+
+images/calendar-exceptions.png +

Adding an Exception to a Calendar

+
+
+
+

Creating Derived Calendars

+

A derived calendar is created based on an existing calendar. It inherits all the features of the original calendar, but you can modify it to include different options.

+

A common use case for derived calendars is when you have a general calendar for a country, such as Spain, and you need to create a derived calendar to include additional public holidays specific to a region, such as Galicia.

+

It's important to note that any changes made to the original calendar will automatically propagate to the derived calendar, unless a specific exception has been defined in the derived calendar. For example, the calendar for Spain might have an 8-hour working day on May 17th. However, the calendar for Galicia (a derived calendar) might have no working hours on that same day because it's a regional public holiday. If the Spanish calendar is later changed to have 4 available working hours per day for the week of May 17th, the Galician calendar will also change to have 4 available working hours for every day in that week, except for May 17th, which will remain a non-working day due to the defined exception.

+
+images/calendar-create-derived.png +

Creating a Derived Calendar

+
+

To create a derived calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Calendar administration option.
  • +
  • Select the calendar you want to use as the basis for the derived calendar and click the "Create" button.
  • +
  • The system will display an editing form with the same characteristics as the form used to create a calendar from scratch, except that the proposed exceptions and the working hours per weekday will be based on the original calendar.
  • +
+
+
+

Creating a Calendar by Copying

+

A copied calendar is an exact duplicate of an existing calendar. It inherits all the features of the original calendar, but you can modify it independently.

+

The key difference between a copied calendar and a derived calendar is how they are affected by changes to the original. If the original calendar is modified, the copied calendar remains unchanged. However, derived calendars are affected by changes made to the original, unless an exception is defined.

+

A common use case for copied calendars is when you have a calendar for one location, such as "Pontevedra," and you need a similar calendar for another location, such as "A Coruña," where most of the features are the same. However, changes to one calendar should not affect the other.

+

To create a copied calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Calendar administration option.
  • +
  • Select the calendar you want to copy and click the "Create" button.
  • +
  • The system will display an editing form with the same characteristics as the form used to create a calendar from scratch, except that the proposed exceptions and the working hours per weekday will be based on the original calendar.
  • +
+
+
+

Default Calendar

+

One of the existing calendars can be designated as the default calendar. This calendar will be automatically assigned to any entity in the system that is managed with calendars unless a different calendar is specified.

+

To set up a default calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Configuration option.
  • +
  • In the Default calendar field, select the calendar you want to use as the program's default calendar.
  • +
  • Click Save.
  • +
+
+images/default-calendar.png +

Setting a Default Calendar

+
+
+
+

Assigning a Calendar to Resources

+

Resources can only be activated (i.e., have available working hours) if they have an assigned calendar with a valid activation period. If no calendar is assigned to a resource, the default calendar is assigned automatically, with an activation period that begins on the start date and has no expiry date.

+
+images/resource-calendar.png +

Resource Calendar

+
+

However, you can delete the calendar that has been previously assigned to a resource and create a new calendar based on an existing one. This allows for complete customization of calendars for individual resources.

+

To assign a calendar to a resource:

+
    +
  • Go to the Edit resources option.
  • +
  • Select a resource and click Edit.
  • +
  • Select the "Calendar" tab.
  • +
  • The calendar, along with its exceptions, working hours per day, and activation periods, will be displayed.
  • +
  • Each tab will have the following options:
      +
    • Exceptions: Define exceptions and the period to which they apply, such as holidays, public holidays, or different workdays.
    • +
    • Working Week: Modify the working hours for each weekday (Monday, Tuesday, etc.).
    • +
    • Activation Periods: Create new activation periods to reflect the start and end dates of contracts associated with the resource. See the following image.
    • +
    +
  • +
  • Click Save to store the information.
  • +
  • Click Delete if you want to change the calendar assigned to a resource.
  • +
+
+images/new-resource-calendar.png +

Assigning a New Calendar to a Resource

+
+
+
+

Assigning Calendars to Orders

+

Projects can have a different calendar than the default calendar. To change the calendar for an order:

+
    +
  • Access the order list in the company overview.
  • +
  • Edit the order in question.
  • +
  • Access the "General information" tab.
  • +
  • Select the calendar to be assigned from the drop-down menu.
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+

Assigning Calendars to Tasks

+

Similar to resources and orders, you can assign specific calendars to individual tasks. This allows you to define different calendars for specific stages of a project. To assign a calendar to a task:

+
    +
  • Access the planning view of a project.
  • +
  • Right-click the task to which you want to assign a calendar.
  • +
  • Select the "Assign calendar" option.
  • +
  • Select the calendar to be assigned to the task.
  • +
  • Click Accept.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh/04-avances.html b/libreplan-webapp/src/main/webapp/help/zh/04-avances.html new file mode 100644 index 000000000..615d6109f --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/04-avances.html @@ -0,0 +1,97 @@ + + + + + + +Progress + + + +
+

Progress

+ + +

Project progress indicates the degree to which the estimated completion time of the project is being met. Task progress indicates the degree to which the task is being completed according to its estimated completion.

+

Generally, progress cannot be measured automatically. A staff member with experience or a checklist must determine the degree of completion for a task or project.

+

It's important to note the distinction between the hours assigned to a task or project and the progress of that task or project. While the number of hours used may be more or less than expected, the project may be ahead of or behind its estimated completion on the monitored day. Several situations can arise from these two measurements:

+
    +
  • Fewer hours consumed than expected, but the project is behind schedule: Progress is lower than estimated for the monitored day.
  • +
  • Fewer hours consumed than expected, and the project is ahead of schedule: Progress is higher than estimated for the monitored day.
  • +
  • More hours consumed than expected, and the project is behind schedule: Progress is lower than estimated for the monitored day.
  • +
  • More hours consumed than expected, but the project is ahead of schedule: Progress is higher than estimated for the monitored day.
  • +
+

The planning view allows you to compare these situations by using information about the progress made and the hours used. This chapter will explain how to enter information to monitor progress.

+

The philosophy behind progress monitoring is based on users defining the level at which they want to monitor their projects. For example, if users want to monitor orders, they only need to enter information for level-1 elements. If they want more precise monitoring at the task level, they must enter progress information at lower levels. The system will then aggregate the data upward through the hierarchy.

+
+

Managing Progress Types

+

Companies have varying needs when monitoring project progress, particularly the tasks involved. Therefore, the system includes "progress types." Users can define different progress types to measure a task's progress. For example, a task can be measured as a percentage, but this percentage can also be translated into progress in Tonnes based on the agreement with the client.

+

A progress type has a name, a maximum value, and a precision value:

+
    +
  • Name: A descriptive name that users will recognize when selecting the progress type. This name should clearly indicate what kind of progress is being measured.
  • +
  • Maximum Value: The maximum value that can be established for a task or project as the total progress measurement. For example, if you're working with Tonnes and the normal maximum is 4000 tonnes, and no task will ever require more than 4000 tonnes of any material, then 4000 would be the maximum value.
  • +
  • Precision Value: The increment value allowed for the progress type. For example, if progress in Tonnes is to be measured in whole numbers, the precision value would be 1. From that point on, only whole numbers can be entered as progress measurements (e.g., 1, 2, 300).
  • +
+

The system has two default progress types:

+
    +
  • Percentage: A general progress type that measures the progress of a project or task based on an estimated completion percentage. For example, a task is 30% complete out of the 100% estimated for a specific day.
  • +
  • Units: A general progress type that measures progress in units without specifying the type of unit. For example, a task involves creating 3000 units, and the progress is 500 units out of the total of 3000.
  • +
+
+images/tipos-avances.png +

Administration of Progress Types

+
+

Users can create new progress types as follows:

+
    +
  • Go to the "Administration" section.
  • +
  • Click the "Manage types of progress" option in the second-level menu.
  • +
  • The system will display a list of existing progress types.
  • +
  • For each progress type, users can:
      +
    • Edit
    • +
    • Delete
    • +
    +
  • +
  • Users can then create a new progress type.
  • +
  • When editing or creating a progress type, the system displays a form with the following information:
      +
    • Name of the progress type.
    • +
    • Maximum value allowed for the progress type.
    • +
    • Precision value for the progress type.
    • +
    +
  • +
+
+
+

Entering Progress Based on Type

+

Progress is entered for order elements, but it can also be entered using a shortcut from the planning tasks. Users are responsible for deciding which progress type to associate with each order element.

+

Users can enter a single, default progress type for the entire order.

+

Before measuring progress, users must associate the chosen progress type with the order. For example, they might choose percentage progress to measure progress on the entire task or an agreed progress rate if progress measurements agreed upon with the client will be entered in the future.

+
+images/avance.png +

Progress Entry Screen with Graphic Visualization

+
+

To enter progress measurements:

+
    +
  • Select the progress type to which the progress will be added. +* If no progress type exists, a new one must be created.
  • +
  • In the form that appears under the "Value" and "Date" fields, enter the absolute value of the measurement and the date of the measurement.
  • +
  • The system automatically stores the entered data.
  • +
+
+
+

Comparing Progress for an Order Element

+

Users can graphically compare the progress made on orders with the measurements taken. All progress types have a column with a check button ("Show"). When this button is selected, the progress chart of measurements taken is displayed for the order element.

+
+images/contraste-avance.png +

Comparison of Several Progress Types

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh/05-recursos.html b/libreplan-webapp/src/main/webapp/help/zh/05-recursos.html new file mode 100644 index 000000000..07190538a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/05-recursos.html @@ -0,0 +1,186 @@ + + + + + + +Resource Management + + + +
+

Resource Management

+ + +

The program manages two distinct types of resources: staff and machines.

+
+

Staff Resources

+

Staff resources represent the company's workers. Their key characteristics are:

+
    +
  • They fulfill one or more generic or worker-specific criteria.
  • +
  • They can be specifically assigned to a task.
  • +
  • They can be assigned generically to a task that requires a resource criterion.
  • +
  • They can have a default or a specific calendar, as needed.
  • +
+
+
+

Machine Resources

+

Machine resources represent the company's machinery. Their key characteristics are:

+
    +
  • They fulfill one or more generic or machine-specific criteria.
  • +
  • They can be specifically assigned to a task.
  • +
  • They can be assigned generically to a task that requires a machine criterion.
  • +
  • They can have a default or a specific calendar, as needed.
  • +
  • The program includes a configuration screen where an alpha value can be defined to represent the machine/worker ratio.
      +
    • The alpha value indicates the amount of worker time required to operate the machine. For example, an alpha value of 0.5 means that every 8 hours of machine operation requires 4 hours of a worker's time.
    • +
    • Users can assign an alpha value specifically to a worker, designating that worker to operate the machine for that percentage of time.
    • +
    • Users can also make a generic assignment based on a criterion, so that a percentage of use is assigned to all resources that meet that criterion and have available time. Generic assignment works similarly to generic assignment for tasks, as described previously.
    • +
    +
  • +
+
+
+

Managing Resources

+

Users can create, edit, and deactivate (but not permanently delete) workers and machines within the company by navigating to the "Resources" section. This section provides the following features:

+
    +
  • List of Workers: Displays a numbered list of workers, allowing users to manage their details.
  • +
  • List of Machines: Displays a numbered list of machines, allowing users to manage their details.
  • +
+
+

Managing Workers

+

Worker management is accessed by going to the "Resources" section and then selecting "List of workers." Users can edit any worker in the list by clicking the standard edit icon.

+

When editing a worker, users can access the following tabs:

+
    +
  1. Worker Details: This tab allows users to edit the worker's basic identification details:

    +
      +
    • Name
    • +
    • Surname(s)
    • +
    • National ID document (DNI)
    • +
    • Queue-based resource (see section on Queue-based Resources)
    • +
    +
    +images/worker-personal-data.png +

    Editing Workers' Personal Details

    +
    +
  2. +
  3. Criteria: This tab is used to configure the criteria that a worker fulfills. Users can assign any worker or generic criteria they deem appropriate. It's crucial for workers to fulfill criteria to maximize the program's functionality. To assign criteria:

    +
      +
    1. Click the "Add criteria" button.
    2. +
    3. Search for the criterion to be added and select the most appropriate one.
    4. +
    5. Click the "Add" button.
    6. +
    7. Select the start date when the criterion becomes applicable.
    8. +
    9. Select the end date for applying the criterion to the resource. This date is optional if the criterion is considered indefinite.
    10. +
    +
    +images/worker-criterions.png +

    Associating Criteria with Workers

    +
    +
  4. +
  5. Calendar: This tab allows users to configure a specific calendar for the worker. All workers have a default calendar assigned; however, it's possible to assign a specific calendar to each worker based on an existing calendar.

    +
    +images/worker-calendar.png +

    Calendar Tab for a Resource

    +
    +
  6. +
  7. Cost Category: This tab allows users to configure the cost category that a worker fulfills during a given period. This information is used to calculate the costs associated with a worker on a project.

    +
    +images/worker-costcategory.png +

    Cost Category Tab for a Resource

    +
    +
  8. +
+

Resource assignment is explained in the "Resource Assignment" section.

+
+
+

Managing Machines

+

Machines are treated as resources for all purposes. Therefore, similar to workers, machines can be managed and assigned to tasks. Resource assignment is covered in the "Resource Assignment" section, which will explain the specific features of machines.

+

Machines are managed from the "Resources" menu entry. This section has an operation called "Machine list," which displays the company's machines. Users can edit or delete a machine from this list.

+

When editing machines, the system displays a series of tabs for managing different details:

+
    +
  1. Machine Details: This tab allows users to edit the machine's identification details:

    +
      +
    1. Name
    2. +
    3. Machine code
    4. +
    5. Description of the machine
    6. +
    +
    +images/machine-data.png +

    Editing Machine Details

    +
    +
  2. +
  3. Criteria: As with worker resources, this tab is used to add criteria that the machine fulfills. Two types of criteria can be assigned to machines: machine-specific or generic. Worker criteria cannot be assigned to machines. To assign criteria:

    +
      +
    1. Click the "Add criteria" button.
    2. +
    3. Search for the criterion to be added and select the most appropriate one.
    4. +
    5. Select the start date when the criterion becomes applicable.
    6. +
    7. Select the end date for applying the criterion to the resource. This date is optional if the criterion is considered indefinite.
    8. +
    9. Click the "Save and continue" button.
    10. +
    +
    +images/machine-criterions.png +

    Assigning Criteria to Machines

    +
    +
  4. +
  5. Calendar: This tab allows users to configure a specific calendar for the machine. All machines have a default calendar assigned; however, it's possible to assign a specific calendar to each machine based on an existing calendar.

    +
    +images/machine-calendar.png +

    Assigning Calendars to Machines

    +
    +
  6. +
  7. Machine Configuration: This tab allows users to configure the ratio of machines to worker resources. A machine has an alpha value that indicates the machine/worker ratio. As mentioned previously, an alpha value of 0.5 indicates that 0.5 people are required for each full day of machine operation. Based on the alpha value, the system automatically assigns workers who are associated with the machine once the machine is assigned to a task. Associating a worker with a machine can be done in two ways:

    +
      +
    1. Specific Assignment: Assign a range of dates during which the worker is assigned to the machine. This is a specific assignment, as the system automatically assigns hours to the worker when the machine is scheduled.
    2. +
    3. Generic Assignment: Assign criteria that must be fulfilled by workers assigned to the machine. This creates a generic assignment of workers who meet the criteria.
    4. +
    +
    +images/machine-configuration.png +

    Configuration of Machines

    +
    +
  8. +
  9. Cost Category: This tab allows users to configure the cost category that a machine fulfills during a given period. This information is used to calculate the costs associated with a machine on a project.

    +
    +images/machine-costcategory.png +

    Assigning Cost Categories to Machines

    +
    +
  10. +
+
+
+

Virtual Worker Groups

+

The program allows users to create virtual worker groups, which are not real workers but simulated staff. These groups enable users to model increased production capacity at specific times, based on the calendar settings.

+

Virtual worker groups allow users to assess how project planning would be affected by hiring and assigning staff who meet specific criteria, thus aiding in the decision-making process.

+

The tabs for creating virtual worker groups are the same as those for configuring workers:

+
    +
  • General Details
  • +
  • Assigned Criteria
  • +
  • Calendars
  • +
  • Associated Hours
  • +
+

The difference between virtual worker groups and actual workers is that virtual worker groups have a name for the group and a quantity, which represents the number of real people in the group. There is also a field for comments, where additional information can be provided, such as which project would require hiring equivalent to the virtual worker group.

+
+images/virtual-resources.png +

Virtual Resources

+
+
+
+

Queue-based Resources

+

Queue-based resources are a specific type of productive element that can either be unassigned or have 100% dedication. In other words, they cannot have more than one task scheduled at the same time, nor can they be over-allocated.

+

For each queue-based resource, a queue is automatically created. The tasks scheduled for these resources can be managed specifically using the provided assignment methods, creating automatic assignments between tasks and queues that match the required criteria, or by moving tasks between queues.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh/06-pedidos.html b/libreplan-webapp/src/main/webapp/help/zh/06-pedidos.html new file mode 100644 index 000000000..87fd79071 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/06-pedidos.html @@ -0,0 +1,315 @@ + + + + + + +Orders and Order Elements + + + +
+

Orders and Order Elements

+ + +

Orders represent the work to be performed by users of the program. Each order corresponds to a project that the company will offer to its clients.

+

An order consists of one or more order elements. Each order element represents a specific part of the work to be done and defines how the work on the order should be planned and executed. Order elements are organized hierarchically, with no limitations on the depth of the hierarchy. This hierarchical structure allows for the inheritance of certain features, such as labels.

+

The following sections describe the operations that users can perform with orders and order elements.

+
+

Orders

+

An order represents a project or work requested by a client from the company. The order identifies the project within the company's planning. Unlike comprehensive management programs, TASKPM only requires certain key details for an order. These details are:

+
    +
  • Order Name: The name of the order.
  • +
  • Order Code: A unique code for the order.
  • +
  • Total Order Amount: The total financial value of the order.
  • +
  • Estimated Start Date: The planned start date for the order.
  • +
  • End Date: The planned completion date for the order.
  • +
  • Person in Charge: The individual responsible for the order.
  • +
  • Description: A description of the order.
  • +
  • Assigned Calendar: The calendar associated with the order.
  • +
  • Automatic Generation of Codes: A setting to instruct the system to automatically generate codes for order elements and hour groups.
  • +
  • Preference between Dependencies and Restrictions: Users can choose whether dependencies or restrictions take priority in case of conflicts.
  • +
+

However, a complete order also includes other associated entities:

+
    +
  • Hours Assigned to the Order: The total hours allocated to the order.
  • +
  • Progress Attributed to the Order: The progress made on the order.
  • +
  • Labels: Labels assigned to the order.
  • +
  • Criteria Assigned to the Order: Criteria associated with the order.
  • +
  • Materials: Materials required for the order.
  • +
  • Quality Forms: Quality forms associated with the order.
  • +
+

Creating or editing an order can be done from several locations within the program:

+
    +
  • From the "Order List" in the Company Overview:
      +
    • Editing: Click the edit button on the desired order.
    • +
    • Creating: Click "New order."
    • +
    +
  • +
  • From an Order in the Gantt Chart: Change to the order details view.
  • +
+

Users can access the following tabs when editing an order:

+
    +
  • Editing Order Details: This screen allows users to edit basic order details:

    +
      +
    • Name
    • +
    • Code
    • +
    • Estimated Start Date
    • +
    • End Date
    • +
    • Person in Charge
    • +
    • Client
    • +
    • Description
    • +
    +
    +images/order-edition.png +

    Editing Orders

    +
    +
  • +
  • Order Element List: This screen allows users to perform several operations on order elements:

    +
      +
    • Creating new order elements.
    • +
    • Promoting an order element one level up in the hierarchy.
    • +
    • Demoting an order element one level down in the hierarchy.
    • +
    • Indenting an order element (moving it down the hierarchy).
    • +
    • Unindenting an order element (moving it up the hierarchy).
    • +
    • Filtering order elements.
    • +
    • Deleting order elements.
    • +
    • Moving an element within the hierarchy by dragging and dropping.
    • +
    +
    +images/order-elements-list.png +

    Order Element List

    +
    +
  • +
  • Assigned Hours: This screen displays the total hours attributed to the project, grouping the hours entered in the order elements.

    +
    +images/order-assigned-hours.png +

    Assigning Hours Attributed to the Order by Workers

    +
    +
  • +
  • Progress: This screen allows users to assign progress types and enter progress measurements for the order. See the "Progress" section for more details.

    +
  • +
  • Labels: This screen allows users to assign labels to an order and view previously assigned direct and indirect labels. See the following section on editing order elements for a detailed description of label management.

    +
    +images/order-labels.png +

    Order Labels

    +
    +
  • +
  • Criteria: This screen allows users to assign criteria that will apply to all tasks within the order. These criteria will be automatically applied to all order elements, except those that have been explicitly invalidated. The hour groups of order elements, which are grouped by criteria, can also be viewed, allowing users to identify the criteria required for an order.

    +
    +images/order-criterions.png +

    Order Criteria

    +
    +
  • +
  • Materials: This screen allows users to assign materials to orders. Materials can be selected from the available material categories in the program. Materials are managed as follows:

    +
      +
    • Select the "Search materials" tab at the bottom of the screen.
    • +
    • Enter text to search for materials or select the categories for which you want to find materials.
    • +
    • The system filters the results.
    • +
    • Select the desired materials (multiple materials can be selected by pressing the "Ctrl" key).
    • +
    • Click "Assign."
    • +
    • The system displays the list of materials already assigned to the order.
    • +
    • Select the units and the status to assign to the order.
    • +
    • Click "Save" or "Save and continue."
    • +
    • To manage the receipt of materials, click "Divide" to change the status of a partial quantity of material.
    • +
    +
    +images/order-material.png +

    Materials Associated with an Order

    +
    +
  • +
  • Quality: Users can assign a quality form to the order. This form is then completed to ensure that certain activities associated with the order are carried out. See the following section on editing order elements for details on managing quality forms.

    +
    +images/order-quality.png +

    Quality Form Associated with the Order

    +
    +
  • +
+
+
+

Editing Order Elements

+

Order elements are edited from the "Order element list" tab by clicking the edit icon. This opens a new screen where users can:

+
    +
  • Edit information about the order element.
  • +
  • View hours attributed to order elements.
  • +
  • Manage progress of order elements.
  • +
  • Manage order labels.
  • +
  • Manage criteria required by the order element.
  • +
  • Manage materials.
  • +
  • Manage quality forms.
  • +
+

The following subsections describe each of these operations in detail.

+
+

Editing Information about the Order Element

+

Editing information about the order element includes modifying the following details:

+
    +
  • Order Element Name: The name of the order element.
  • +
  • Order Element Code: A unique code for the order element.
  • +
  • Start Date: The planned start date of the order element.
  • +
  • Estimated End Date: The planned completion date of the order element.
  • +
  • Total Hours: The total hours allocated to the order element. These hours can be calculated from the added hour groups or entered directly. If entered directly, the hours must be distributed among the hour groups, and a new hour group created if the percentages do not match the initial percentages.
  • +
  • Hour Groups: One or more hour groups can be added to the order element. The purpose of these hour groups is to define the requirements for the resources that will be assigned to perform the work.
  • +
  • Criteria: Criteria can be added that must be met to enable generic assignment for the order element.
  • +
+
+images/order-element-edition.png +

Editing Order Elements

+
+
+
+

Viewing Hours Attributed to Order Elements

+

The "Assigned hours" tab allows users to view the work reports associated with an order element and see how many of the estimated hours have already been completed.

+
+images/order-element-hours.png +

Hours Assigned to Order Elements

+
+

The screen is divided into two parts:

+
    +
  • Work Report List: Users can view the list of work reports associated with the order element, including the date and time, resource, and number of hours devoted to the task.
  • +
  • Use of Estimated Hours: The system calculates the total number of hours devoted to the task and compares them with the estimated hours.
  • +
+
+
+

Managing Progress of Order Elements

+

Entering progress types and managing order element progress is described in the "Progress" chapter.

+
+
+

Managing Order Labels

+

Labels, as described in the chapter on labels, allow users to categorize order elements. This enables users to group planning or order information based on these labels.

+

Users can assign labels directly to an order element or to a higher-level order element in the hierarchy. Once a label is assigned using either method, the order element and the related planning task are associated with the label and can be used for subsequent filtering.

+
+images/order-element-tags.png +

Assigning Labels for Order Elements

+
+

As shown in the image, users can perform the following actions from the Labels tab:

+
    +
  • View Inherited Labels: View labels associated with the order element that were inherited from a higher-level order element. The planning task associated with each order element has the same associated labels.
  • +
  • View Directly Assigned Labels: View labels directly associated with the order element using the assignment form for lower-level labels.
  • +
  • Assign Existing Labels: Assign labels by searching for them among the available labels in the form below the direct label list. To search for a label, click the magnifying glass icon or enter the first letters of the label in the text box to display the available options.
  • +
  • Create and Assign New Labels: Create new labels associated with an existing label type from this form. To do this, select a label type and enter the label value for the selected type. The system automatically creates the label and assigns it to the order element when "Create and assign" is clicked.
  • +
+
+
+

Managing Criteria Required by the Order Element and Hour Groups

+

Both an order and an order element can have criteria assigned that must be met for the work to be performed. Criteria can be direct or indirect:

+
    +
  • Direct Criteria: These are assigned directly to the order element. They are criteria required by the hour groups on the order element.
  • +
  • Indirect Criteria: These are assigned to higher-level order elements in the hierarchy and are inherited by the element being edited.
  • +
+

In addition to the required criteria, one or more hour groups that are part of the order element can be defined. This depends on whether the order element contains other order elements as child nodes or if it is a leaf node. In the first case, information about hours and hour groups can only be viewed. However, leaf nodes can be edited. Leaf nodes work as follows:

+
    +
  • The system creates a default hour group associated with the order element. The details that can be modified for an hour group are:
      +
    • Code: The code for the hour group (if not automatically generated).
    • +
    • Criterion Type: Users can choose to assign a machine or worker criterion.
    • +
    • Number of Hours: The number of hours in the hour group.
    • +
    • List of Criteria: The criteria to be applied to the hour group. To add new criteria, click "Add criterion" and select one from the search engine that appears after clicking the button.
    • +
    +
  • +
  • Users can add new hour groups with different features than previous hour groups. For example, an order element might require a welder (30 hours) and a painter (40 hours).
  • +
+
+images/order-element-criterion.png +

Assigning Criteria to Order Elements

+
+
+
+

Managing Materials

+

Materials are managed in projects as a list associated with each order element or an order in general. The list of materials includes the following fields:

+
    +
  • Code: The material code.
  • +
  • Date: The date associated with the material.
  • +
  • Units: The required number of units.
  • +
  • Unit Type: The type of unit used to measure the material.
  • +
  • Unit Price: The price per unit.
  • +
  • Total Price: The total price (calculated by multiplying the unit price by the number of units).
  • +
  • Category: The category to which the material belongs.
  • +
  • Status: The status of the material (e.g., Received, Requested, Pending, Processing, Cancelled).
  • +
+

Working with materials is done as follows:

+
    +
  • Select the "Materials" tab on an order element.
  • +
  • The system displays two sub-tabs: "Materials" and "Search materials."
  • +
  • If the order element has no assigned materials, the first tab will be empty.
  • +
  • Click "Search materials" in the lower-left part of the window.
  • +
  • The system displays the list of available categories and associated materials.
  • +
+
+images/order-element-material-search.png +

Searching for Materials

+
+
    +
  • Select categories to refine the material search.
  • +
  • The system displays the materials that belong to the selected categories.
  • +
  • From the materials list, select the materials to assign to the order element.
  • +
  • Click "Assign."
  • +
  • The system displays the selected list of materials on the "Materials" tab with new fields to complete.
  • +
+
+images/order-element-material-assign.png +

Assigning Materials to Order Elements

+
+
    +
  • Select the units, status, and date for the assigned materials.
  • +
+

For subsequent monitoring of materials, it's possible to change the status of a group of units of the received material. This is done as follows:

+
    +
  • Click the "Divide" button on the list of materials to the right of each row.
  • +
  • Select the number of units to divide the row into.
  • +
  • The program displays two rows with the material divided.
  • +
  • Change the status of the row containing the material.
  • +
+

The advantage of using this dividing tool is the ability to receive partial deliveries of material without having to wait for the entire delivery to mark it as received.

+
+
+

Managing Quality Forms

+

Some order elements require certification that certain tasks have been completed before they can be marked as complete. This is why the program has quality forms, which consist of a list of questions that are considered important if answered positively.

+

It's important to note that a quality form must be created beforehand to be assigned to an order element.

+

To manage quality forms:

+
    +
  • Go to the "Quality forms" tab.

    +
    +images/order-element-quality.png +

    Assigning Quality Forms to Order Elements

    +
    +
  • +
  • The program has a search engine for quality forms. There are two types of quality forms: by element or by percentage.

    +
      +
    • Element: Each element is independent.
    • +
    • Percentage: Each question increases the progress of the order element by a percentage. The percentages must be able to add up to 100%.
    • +
    +
  • +
  • Select one of the forms created in the administration interface and click "Assign."

    +
  • +
  • The program assigns the chosen form from the list of forms assigned to the order element.

    +
  • +
  • Click the "Edit" button on the order element.

    +
  • +
  • The program displays the questions from the quality form in the lower list.

    +
  • +
  • Mark the questions that have been completed as achieved.

    +
      +
    • If the quality form is based on percentages, the questions are answered in order.
    • +
    • If the quality form is based on elements, the questions can be answered in any order.
    • +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh/07-planificacion.html b/libreplan-webapp/src/main/webapp/help/zh/07-planificacion.html new file mode 100644 index 000000000..7b8954f83 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/07-planificacion.html @@ -0,0 +1,117 @@ + + + + + + +Task Planning + + + +
+

Task Planning

+ + +
+

Task Planning

+

Planning in TASKPM is a process that has been described throughout the user guide, with the chapters on orders and resource assignment being particularly important. This chapter describes the basic planning procedures after the order and Gantt charts have been properly configured.

+
+images/planning-view.png +

Work Planning View

+
+

As with the company overview, the project planning view is divided into several views based on the information being analyzed. The views available for a specific project are:

+
    +
  • Planning View
  • +
  • Resource Load View
  • +
  • Order List View
  • +
  • Advanced Assignment View
  • +
+
+

Planning View

+

The Planning View combines three different perspectives:

+
    +
  • Project Planning: Project planning is displayed in the upper right-hand part of the program as a Gantt chart. This view allows users to temporarily move tasks, assign dependencies between them, define milestones, and establish restrictions.
  • +
  • Resource Load: The Resource Load view, located in the lower right-hand part of the screen, shows resource availability based on assignments, as opposed to the assignments made to tasks. The information displayed in this view is as follows:
      +
    • Purple Area: Indicates a resource load below 100% of its capacity.
    • +
    • Green Area: Indicates a resource load below 100%, resulting from the resource being planned for another project.
    • +
    • Orange Area: Indicates a resource load over 100% as a result of the current project.
    • +
    • Yellow Area: Indicates a resource load over 100% as a result of other projects.
    • +
    +
  • +
  • Graph View and Earned Value Indicators: These can be viewed from the "Earned Value" tab. The generated graph is based on the earned value technique, and the indicators are calculated for each workday of the project. The calculated indicators are:
      +
    • BCWS (Budgeted Cost of Work Scheduled): The cumulative time function for the number of hours planned up to a certain date. It will be 0 at the planned start of the task and equal to the total number of planned hours at the end. As with all cumulative graphs, it will always increase. The function for a task will be the sum of the daily assignments until the calculation date. This function has values for all times, provided that resources have been assigned.
    • +
    • ACWP (Actual Cost of Work Performed): The cumulative time function for the hours reported in work reports up to a certain date. This function will only have a value of 0 before the date of the task's first work report, and its value will continue to increase as time passes and work report hours are added. It will have no value after the date of the last work report.
    • +
    • BCWP (Budgeted Cost of Work Performed): The cumulative time function that includes the resultant value of multiplying task progress by the amount of work that the task was estimated to require for completion. This function's values increase as time passes, as do progress values. Progress is multiplied by the total number of estimated hours for all tasks. The BCWP value is the sum of the values for the tasks being calculated. Progress is totaled when it is configured.
    • +
    • CV (Cost Variance): CV = BCWP - ACWP
    • +
    • SV (Schedule Variance): SV = BCWP - BCWS
    • +
    • BAC (Budget at Completion): BAC = max (BCWS)
    • +
    • EAC (Estimate at Completion): EAC = (ACWP / BCWP) * BAC
    • +
    • VAC (Variance at Completion): VAC = BAC - EAC
    • +
    • ETC (Estimate to Complete): ETC = EAC - ACWP
    • +
    • CPI (Cost Performance Index): CPI = BCWP / ACWP
    • +
    • SPI (Schedule Performance Index): SPI = BCWP / BCWS
    • +
    +
  • +
+

In the project planning view, users can perform the following actions:

+
    +
  • Assigning Dependencies: Right-click a task, choose "Add dependency," and drag the mouse pointer to the task to which the dependency should be assigned.
      +
    • To change the type of dependency, right-click the dependency and choose the desired type.
    • +
    +
  • +
  • Creating a New Milestone: Click the task before which the milestone is to be added and select the "Add milestone" option. Milestones can be moved by selecting the milestone with the mouse pointer and dragging it to the desired position.
  • +
  • Moving Tasks without Disturbing Dependencies: Right-click the body of the task and drag it to the desired position. If no restrictions or dependencies are violated, the system will update the daily assignment of resources to the task and place the task on the selected date.
  • +
  • Assigning Restrictions: Click the task in question and select the "Task properties" option. A pop-up window will appear with a "Restrictions" field that can be modified. Restrictions can conflict with dependencies, which is why each order specifies whether dependencies take priority over restrictions. The restrictions that can be established are:
      +
    • As Soon as Possible: Indicates that the task must start as soon as possible.
    • +
    • Not Before: Indicates that the task must not start before a certain date.
    • +
    • Start on a Specific Date: Indicates that the task must start on a specific date.
    • +
    +
  • +
+

The planning view also offers several procedures that function as viewing options:

+
    +
  • Zoom Level: Users can choose the desired zoom level. There are several zoom levels: annual, four-monthly, monthly, weekly, and daily.
  • +
  • Search Filters: Users can filter tasks based on labels or criteria.
  • +
  • Critical Path: As a result of using the Dijkstra algorithm to calculate paths on graphs, the critical path was implemented. It can be viewed by clicking the "Critical path" button in the viewing options.
  • +
  • Show Labels: Enables users to view the labels assigned to tasks in a project, which can be viewed on screen or printed.
  • +
  • Show Resources: Enables users to view the resources assigned to tasks in a project, which can be viewed on screen or printed.
  • +
  • Print: Enables users to print the Gantt chart being viewed.
  • +
+
+
+

Resource Load View

+

The Resource Load View provides a list of resources that contains a list of tasks or criteria that generate workloads. Each task or criterion is shown as a Gantt chart so that the start and end dates of the load can be seen. A different color is shown depending on whether the resource has a load that is higher or lower than 100%:

+
    +
  • Green: Load lower than 100%
  • +
  • Orange: 100% load
  • +
  • Red: Load over 100%
  • +
+
+images/resource-load.png +

Resource Load View for a Specific Order

+
+

If the mouse pointer is placed on the resource's Gantt chart, the load percentage for the worker will be shown.

+
+
+

Order List View

+

The Order List View allows users to access the order editing and deleting options. See the "Orders" chapter for more information.

+
+
+

Advanced Assignment View

+

The Advanced Assignment View is explained in depth in the "Resource Assignment" chapter.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh/08-asignacion.html b/libreplan-webapp/src/main/webapp/help/zh/08-asignacion.html new file mode 100644 index 000000000..46da7239c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/08-asignacion.html @@ -0,0 +1,179 @@ + + + + + + +Resource Assignment + + + +
+

Resource Assignment

+ + +

Resource assignment is one of the program's most important features and can be carried out in two different ways:

+
    +
  • Specific assignment
  • +
  • Generic assignment
  • +
+

Both types of assignment are explained in the following sections.

+

To perform either type of resource assignment, the following steps are necessary:

+
    +
  • Go to the planning view of an order.
  • +
  • Right-click on the task to be planned.
  • +
+
+images/resource-assignment-planning.png +

Resource Assignment Menu

+
+
    +
  • The program displays a screen with the following information:
      +
    • List of Criteria to be Fulfilled: For each hour group, a list of required criteria is shown.
    • +
    • Task Information: The start and end dates of the task.
    • +
    • Type of Calculation: The system allows users to choose the strategy for calculating assignments:
        +
      • Calculate Number of Hours: This calculates the number of hours required from the assigned resources, given an end date and a number of resources per day.
      • +
      • Calculate End Date: This calculates the end date of the task based on the number of resources assigned to the task and the total number of hours required to complete the task.
      • +
      • Calculate Number of Resources: This calculates the number of resources required to finish the task by a specific date, given a known number of hours per resource.
      • +
      +
    • +
    • Recommended Assignment: This option allows the program to gather the criteria to be fulfilled and the total number of hours from all hour groups, and then recommend a generic assignment. If a prior assignment exists, the system deletes it and replaces it with the new one.
    • +
    • Assignments: A list of assignments that have been made. This list shows the generic assignments (the number will be the list of fulfilled criteria, and the number of hours and resources per day). Each assignment can be explicitly removed by clicking the delete button.
    • +
    +
  • +
+
+images/resource-assignment.png +

Resource Assignment

+
+
    +
  • Users select "Search resources."
  • +
  • The program displays a new screen consisting of a criteria tree and a list of workers who fulfill the selected criteria on the right:
  • +
+
+images/resource-assignment-search.png +

Resource Assignment Search

+
+
    +
  • Users can select:
      +
    • Specific Assignment: See the "Specific Assignment" section for details on this option.
    • +
    • Generic Assignment: See the "Generic Assignment" section for details on this option.
    • +
    +
  • +
  • Users select a list of criteria (generic) or a list of workers (specific). Multiple selections can be made by pressing the "Ctrl" key while clicking each worker/criterion.
  • +
  • Users then click the "Select" button. It's important to remember that if a generic assignment is not selected, users must choose a worker or machine to perform the assignment. If a generic assignment is selected, it is sufficient for users to choose one or more criteria.
  • +
  • The program then displays the selected criteria or resource list in the list of assignments on the original resource assignment screen.
  • +
  • Users must choose the hours or resources per day, depending on the assignment method used in the program.
  • +
+
+

Specific Assignment

+

This is the specific assignment of a resource to a project task. In other words, the user decides which specific worker (by name and surname) or machine must be assigned to a task.

+

Specific assignment can be carried out on the screen shown in this image:

+
+images/asignacion-especifica.png +

Specific Resource Assignment

+
+

When a resource is specifically assigned, the program creates daily assignments based on the percentage of daily assigned resources selected, after comparing it with the available resource calendar. For example, an assignment of 0.5 resources for a 32-hour task means that 4 hours per day are assigned to the specific resource to complete the task (assuming a working calendar of 8 hours per day).

+
+

Specific Machine Assignment

+

Specific machine assignment functions in the same way as worker assignment. When a machine is assigned to a task, the system stores a specific assignment of hours for the chosen machine. The main difference is that the system searches the list of assigned workers or criteria at the moment the machine is assigned:

+
    +
  • If the machine has a list of assigned workers, the program chooses from those that are required by the machine, based on the assigned calendar. For example, if the machine calendar is 16 hours per day and the resource calendar is 8 hours, two resources are assigned from the list of available resources.
  • +
  • If the machine has one or more assigned criteria, generic assignments are made from among the resources that fulfill the criteria assigned to the machine.
  • +
+
+
+
+

Generic Assignment

+

Generic assignment occurs when users do not choose resources specifically but leave the decision to the program, which distributes the loads among the company's available resources.

+
+images/asignacion-xenerica.png +

Generic Resource Assignment

+
+

The assignment system uses the following assumptions as a basis:

+
    +
  • Tasks have criteria that are required from resources.
  • +
  • Resources are configured to fulfill criteria.
  • +
+

However, the system does not fail when criteria have not been assigned, but when all resources fulfill the non-requirement of criteria.

+

The generic assignment algorithm functions as follows:

+
    +
  • All resources and days are treated as containers where daily assignments of hours fit, based on the maximum assignment capacity in the task calendar.
  • +
  • The system searches for the resources that fulfill the criterion.
  • +
  • The system analyzes which assignments currently have different resources that fulfill criteria.
  • +
  • The resources that fulfill the criteria are chosen from those that have sufficient availability.
  • +
  • If freer resources are not available, assignments are made to the resources that have less availability.
  • +
  • Over-assignment of resources only begins when all the resources that fulfill the respective criteria are 100% assigned, until the total amount required to carry out the task is attained.
  • +
+
+

Generic Machine Assignment

+

Generic machine assignment functions in the same way as worker assignment. For example, when a machine is assigned to a task, the system stores a generic assignment of hours for all machines that fulfill the criteria, as described for resources in general. However, in addition, the system performs the following procedure for machines:

+
    +
  • For all machines chosen for generic assignment:
      +
    • It collects the machine's configuration information: alpha value, assigned workers, and criteria.
    • +
    • If the machine has an assigned list of workers, the program chooses the number required by the machine, depending on the assigned calendar. For example, if the machine calendar is 16 hours per day and the resource calendar is 8 hours, the program assigns two resources from the list of available resources.
    • +
    • If the machine has one or more assigned criteria, the program makes generic assignments from among the resources that fulfill the criteria assigned to the machine.
    • +
    +
  • +
+
+
+
+

Advanced Assignment

+

Advanced assignments allow users to design assignments that are automatically carried out by the application to personalize them. This procedure allows users to manually choose the daily hours that are dedicated by resources to assigned tasks or define a function that is applied to the assignment.

+

The steps to follow to manage advanced assignments are:

+
    +
  • Go to the advanced assignment window. There are two ways to access advanced assignments:
      +
    • Go to a specific order and change the view to advanced assignment. In this case, all the tasks on the order and assigned resources (specific and generic) will be shown.
    • +
    • Go to the resource assignment window by clicking the "Advanced assignment" button. In this case, the assignments that show the resources (generic and specific) assigned to a task will be shown.
    • +
    +
  • +
+
+images/advance-assignment.png +

Advanced Resource Assignment

+
+
    +
  • Users can choose the desired zoom level:
      +
    • Zoom Levels Greater Than One Day: If users change the assigned hour value to a week, month, four-month, or six-month period, the system distributes the hours linearly across all days throughout the chosen period.
    • +
    • Daily Zoom: If users change the assigned hour value to a day, these hours only apply to that day. Consequently, users can decide how many hours they want to assign per day to task resources.
    • +
    +
  • +
  • Users can choose to design an advanced assignment function. To do so, users must:
      +
    • Choose the function from the selection list that appears next to each resource and click "Configure."
    • +
    • The system displays a new window if the chosen function needs to be specifically configured. Supported functions:
        +
      • Segments: A function that allows users to define segments to which a polynomial function is applied. The function per segment is configured as follows:
          +
        • Date: The date on which the segment ends. If the following value (length) is established, the date is calculated; alternatively, length is calculated.
        • +
        • Defining the Length of Each Segment: This indicates what percentage of the task's duration is required for the segment.
        • +
        • Defining the Amount of Work: This indicates what workload percentage is expected to be completed in this segment. The quantity of work must be incremental. For example, if there is a 10% segment, the next one must be larger (for example, 20%).
        • +
        • Segment Graphs and Accumulated Loads.
        • +
        +
      • +
      +
    • +
    • Users then click "Accept."
    • +
    • The program stores the function and applies it to the daily resource assignments.
    • +
    +
  • +
+
+images/stretches.png +

Configuration of the Segment Function

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh/09-partes.html b/libreplan-webapp/src/main/webapp/help/zh/09-partes.html new file mode 100644 index 000000000..90242b6c7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/09-partes.html @@ -0,0 +1,84 @@ + + + + + + +Work Reports + + + +
+

Work Reports

+ + +

Work reports enable the monitoring of the hours that resources dedicate to the tasks to which they are assigned.

+

The program allows users to configure new forms for entering dedicated hours, specifying the fields that they want to appear in these forms. This allows for the incorporation of reports from tasks carried out by workers and the monitoring of worker activity.

+

Before users can add entries for resources, they must define at least one work report type. This type defines the structure of the report, including all the rows that are added to it. Users can create as many work report types as necessary within the system.

+
+

Work Report Types

+

A work report consists of a series of fields that are common to the entire report and a set of work report lines with specific values for the fields defined in each row. For example, resources and tasks are common to all reports. However, there can be other new fields, such as "incidents," which are not required in all report types.

+

Users can configure different work report types so that a company can design its reports to meet its specific needs:

+
+images/work-report-types.png +

Work Report Types

+
+

The administration of work report types allows users to configure these types and add new text fields or optional tags. In the first tab for editing work report types, it is possible to configure the type for the mandatory attributes (whether they apply to the whole report or are specified at the line level) and add new optional fields.

+

The mandatory fields that must appear in all work reports are as follows:

+
    +
  • Name and Code: Identification fields for the name of the work report type and its code.
  • +
  • Date: Field for the date of the report.
  • +
  • Resource: Worker or machine appearing on the report or work report line.
  • +
  • Order Element: Code for the order element to which the performed work is attributed.
  • +
  • Hour Management: Determines the hour attribution policy to be used, which can be:
      +
    • According to Assigned Hours: Hours are attributed based on the assigned hours.
    • +
    • According to Start and Finish Times: Hours are calculated based on the start and finish times.
    • +
    • According to the Number of Hours and Start and Finish Range: Discrepancies are allowed, and the number of hours takes priority.
    • +
    +
  • +
+

Users can add new fields to the reports:

+
    +
  • Tag Type: Users can request the system to display a tag when completing the work report. For example, the client tag type, if the user wishes to enter the client for whom the work was carried out in each report.
  • +
  • Free Fields: Fields where text can be entered freely in the work report.
  • +
+
+images/work-report-type.png +

Creating a Work Report Type with Personalized Fields

+
+

Users can configure date, resource, and order element fields to appear in the header of the report, which means they apply to the entire report, or they can be added to each of the rows.

+

Finally, new additional text fields or tags can be added to the existing ones, in the work report header or in each line, by using the "Additional text" and "Tag type" fields, respectively. Users can configure the order in which these elements are to be entered in the "Management of additional fields and tags" tab.

+
+
+

Work Report List

+

Once the format of the reports to be incorporated into the system has been configured, users can enter the details in the created form according to the structure defined in the corresponding work report type. To do this, users need to follow these steps:

+
    +
  • Click the "New work report" button associated with the desired report from the list of work report types.
  • +
  • The program then displays the report based on the configurations given for the type. See the following image.
  • +
+
+images/work-report-type.png +

Structure of the Work Report Based on Type

+
+
    +
  • Select all the fields shown for the report:
      +
    • Resource: If the header has been chosen, the resource is only shown once. Alternatively, for each line of the report, it is necessary to choose a resource.
    • +
    • Task Code: Code of the task to which the work report is being assigned. Similar to the rest of the fields, if the field is in the header, the value is entered once or as many times as necessary on the lines of the report.
    • +
    • Date: Date of the report or each line, depending on whether the header or line is configured.
    • +
    • Number of Hours: The number of work hours in the project.
    • +
    • Start and Finish Times: Start and finish times for the work in order to calculate definitive work hours. This field only appears in the case of the hour assignment policies, "According to Start and Finish Times" and "According to the Number of Hours and Start and Finish Range."
    • +
    • Type of Hours: Enables users to choose the type of hour, e.g., "Normal," "Extraordinary," etc.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh/10-etiquetas.html b/libreplan-webapp/src/main/webapp/help/zh/10-etiquetas.html new file mode 100644 index 000000000..eb6451798 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/10-etiquetas.html @@ -0,0 +1,68 @@ + + + + + + +Labels + + + +
+

Labels

+ +
+

Contents

+ +
+

Labels are entities used in the program to conceptually organize tasks or order elements.

+

Labels are categorized according to label type. A label can only belong to one label type; however, users can create many similar labels belonging to different label types.

+
+

Label Types

+

Label types are used to group the types of labels that users want to manage in the program. Here are some examples of possible label types:

+
    +
  • Client: Users may be interested in labeling tasks, orders, or order elements in relation to the client who requests them.
  • +
  • Area: Users may be interested in labeling tasks, orders, or order elements in relation to the areas in which they are carried out.
  • +
+

The administration of label types is managed from the "Administration" menu option. This is where users can edit label types, create new label types, and add labels to label types. Users can access the list of labels from this option.

+
+images/tag-types-list.png +

List of Label Types

+
+

From the list of label types, users can:

+
    +
  • Create a new label type.
  • +
  • Edit an existing label type.
  • +
  • Delete a label type with all of its labels.
  • +
+

Editing and creating labels share the same form. From this form, the user can assign a name to the label type, create or delete labels, and store the changes. The procedure is as follows:

+
    +
  • Select a label to edit or click the create button for a new one.
  • +
  • The system displays a form with a text entry for the name and a list of text entries with existing and assigned labels.
  • +
  • If users wish to add a new label, they must click the "New label" button.
  • +
  • The system displays a new row on the list with an empty text box that users must edit.
  • +
  • Users enter a name for the label.
  • +
  • The system adds the name to the list.
  • +
  • Users click "Save" or "Save and continue" to continue editing the form.
  • +
+
+images/tag-types-edition.png +

Editing Label Types

+
+
+
+

Labels

+

Labels are entities that belong to a label type. These entities can be assigned to order elements. Assigning a label to an order element means that all the elements descending from this element will inherit the label to which they belong. Having an assigned label means that these entities can be filtered where searches can be carried out:

+
    +
  • Search for tasks in the Gantt chart.
  • +
  • Search for order elements in the list of order elements.
  • +
  • Filters for reports.
  • +
+

The assignment of labels to order elements is covered in the chapter on orders.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh/11-materiales.html b/libreplan-webapp/src/main/webapp/help/zh/11-materiales.html new file mode 100644 index 000000000..a06770897 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/11-materiales.html @@ -0,0 +1,54 @@ + + + + + + +Materials Management + + + +
+

Materials Management

+ +
+

Contents

+ +
+
+

Administration of Materials

+

Users can manage a basic database of materials, organized by categories.

+

Categories are containers to which specific materials and other categories can be assigned. They are stored in a hierarchical tree structure, as materials can belong to leaf categories or intermediary categories.

+

To manage categories, users must follow these steps:

+
    +
  • Go to the "Administration -> Materials" option.
  • +
  • The program displays a tree of categories.
  • +
  • Enter a category name in the text box and then click "Add."
  • +
  • The program adds the category to the tree.
  • +
+

To insert a category into the category tree, users must first select the parent category in the tree and then click "Add."

+
+images/material.png +

Material Administration Screen

+
+

To manage materials, users must follow these steps:

+
    +
  • Select the category to which materials are to be added and click "Add" to the right of "Materials."
  • +
  • The program adds a new empty row with fields to enter details about the material:
      +
    • Code: Material type code (this can be the external code from an ERP).
    • +
    • Description: Description of the material.
    • +
    • Unit Price: Unit price of each piece of material.
    • +
    • Unit: Unit used to measure each unit of material.
    • +
    • Category: Category to which the material belongs.
    • +
    • Availability: Indicates whether or not the material is active.
    • +
    +
  • +
  • Users complete the fields and click "Save."
  • +
+

The assignment of materials to order elements is explained in the chapter on "Orders."

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh/12-formularios-calidad.html b/libreplan-webapp/src/main/webapp/help/zh/12-formularios-calidad.html new file mode 100644 index 000000000..97a584178 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/12-formularios-calidad.html @@ -0,0 +1,52 @@ + + + + + + +Quality Forms + + + +
+

Quality Forms

+ + +
+

Administration of Quality Forms

+

Quality forms consist of a list of questions or statements that indicate the tasks or processes that should have been completed before a task can be marked as complete by the company. These forms include the following fields:

+
    +
  • Name: The name of the quality form.
  • +
  • Description: A description of the quality form.
  • +
  • Type of Quality Form: The type can have two values:
      +
    • Percentage: Indicates that the questions must be answered in a logical order, and affirmative answers indicate that the task is progressing. For example, a basic process for a task might suggest that the task is 15% complete. Users must answer a question before proceeding to the next one.
    • +
    • Item: Indicates that the questions do not need to be answered in a logical order and can be answered in any sequence.
    • +
    +
  • +
+

Users must follow these steps to manage quality forms:

+
    +
  • From the "Administration" menu, access the "Quality forms" option.
  • +
  • Click "Edit" on an existing form or click "Create" to create a new one.
  • +
  • The program displays a form with fields for the name, description, and type.
  • +
  • Select the type.
  • +
  • The program displays the fields that are allowed for each type:
      +
    • Percentage: Question and percentage.
    • +
    • Item: Question.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+images/quality.png +

Quality Form Administration Screen

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh/13-usuarios.html b/libreplan-webapp/src/main/webapp/help/zh/13-usuarios.html new file mode 100644 index 000000000..f46a23ded --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/13-usuarios.html @@ -0,0 +1,79 @@ + + + + + + +User Management + + + +
+

User Management

+ +
+

Contents

+ +
+
+

Managing Users

+

TASKPM's system allows administrators to manage user profiles, authorizations, and users. Users are assigned to user profiles, which can have a series of predefined roles that grant access to the program's features. Roles are defined authorizations within TASKPM. Examples of roles include:

+
    +
  • Administration: A role that must be assigned to administrators to enable them to perform administrative operations.
  • +
  • Web Service Reader: A role required for users to consult the program's web services.
  • +
  • Web Service Writer: A role required for users to write data via the program's web services.
  • +
+

Roles are predefined within the system. A user profile consists of one or more roles. Users must have specific roles to perform certain operations.

+

Users can be assigned one or more profiles, or one or more roles directly, allowing for specific or generic authorization to be granted.

+

To manage users, follow these steps:

+
    +
  • Go to "Manage users" in the "Administration" menu.
  • +
  • The program displays a form with a list of users.
  • +
  • Click the edit button for the desired user or click the "Create" button.
  • +
  • A form will appear with the following fields:
      +
    • User Name: The user's login name.
    • +
    • Password: The user's password.
    • +
    • Authorized/Unauthorized: A setting to enable or disable the user's account.
    • +
    • Email: The user's email address.
    • +
    • List of Associated Roles: To add a new role, users must search for a role in the selection list and click "Assign."
    • +
    • List of Associated Profiles: To add a new profile, users must search for a profile in the selection list and click "Assign."
    • +
    +
  • +
+
+images/manage-user.png +

Managing Users

+
+
    +
  • Click "Save" or "Save and continue."
  • +
+
+

Managing Profiles

+

To manage the program's profiles, users must follow these steps:

+
    +
  • Go to "Manage user profiles" in the "Administration" menu.
  • +
  • The program displays a list of profiles.
  • +
  • Click the edit button for the desired profile or click "Create."
  • +
  • A form appears in the program with the following fields:
      +
    • Name: The name of the user profile.
    • +
    • List of Roles (Authorizations): To add a role to the profile, users must select a role from the role list and click "Add."
    • +
    +
  • +
+
+images/manage-user-profile.png +

Managing User Profiles

+
+
    +
  • Click "Save" or "Save and continue," and the system will store the created or modified profile.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh/14-custos.html b/libreplan-webapp/src/main/webapp/help/zh/14-custos.html new file mode 100644 index 000000000..5c35ce71d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/14-custos.html @@ -0,0 +1,110 @@ + + + + + + +Cost management + + + +
+

Cost management

+ +
+

Contents

+ +
+
+

Costs

+

Cost management allows users to estimate the costs of resources used in a project. To manage costs, the following entities must be defined:

+
    +
  • Hour Types: These indicate the types of hours worked by a resource. Users can define hour types for both machines and workers. Examples of hour types include: "Additional hours paid at €20 per hour." The following fields can be defined for hour types:
      +
    • Code: External code for the hour type.
    • +
    • Name: Name of the hour type. For example, "Additional."
    • +
    • Default Rate: Basic default rate for the hour type.
    • +
    • Activation: Indicates whether the hour type is active or not.
    • +
    +
  • +
  • Cost Categories: Cost categories define the costs associated with different hour types during specific periods (which may be indefinite). For example, the cost of additional hours for first-grade skilled workers in the following year is €24 per hour. Cost categories include:
      +
    • Name: Cost category name.
    • +
    • Activation: Indicates whether the category is active or not.
    • +
    • List of Hour Types: This list defines the hour types included in the cost category. It specifies the periods and rates for each hour type. For example, as rates change, each year can be included on this list as an hour type period, with a specific hourly rate for each hour type (which may differ from the default hourly rate for that hour type).
    • +
    +
  • +
+
+

Managing Hour Types

+

Users must follow these steps to register hour types:

+
    +
  • Select "Manage hour types worked" on the "Administration" menu.
  • +
  • The program displays a list of existing hour types.
  • +
+
+images/hour-type-list.png +

Hour Type List

+
+
    +
  • Click "Edit" or "Create."
  • +
  • The program displays an hour type editing form.
  • +
+
+images/hour-type-edit.png +

Editing Hour Types

+
+
    +
  • Users can enter or change:
      +
    • The hour type name.
    • +
    • The hour type code.
    • +
    • The default rate.
    • +
    • Hour type activation/deactivation.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+

Cost Categories

+

Users must follow these steps to register cost categories:

+
    +
  • Select "Manage cost categories" on the "Administration" menu.
  • +
  • The program displays a list of existing categories.
  • +
+
+images/category-cost-list.png +

Cost Category List

+
+
    +
  • Click the "Edit" or "Create" button.
  • +
  • The program displays a cost category editing form.
  • +
+
+images/category-cost-edit.png +

Editing Cost Categories

+
+
    +
  • Users enter or change:
      +
    • The name of the cost category.
    • +
    • The activation/deactivation of the cost category.
    • +
    • The list of hour types included in the category. All hour types have the following fields:
        +
      • Hour Type: Choose one of the existing hour types in the system. If none exist, an hour type must be created (this process is explained in the previous subsection).
      • +
      • Start and Finish Date: The start and finish dates (the latter is optional) for the period that applies to the cost category.
      • +
      • Hourly Rate: The hourly rate for this specific category.
      • +
      +
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+

The assignment of cost categories to resources is described in the chapter on resources. Go to the "Resources" section.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh/15-1-report-hours-worked-by-resource.html b/libreplan-webapp/src/main/webapp/help/zh/15-1-report-hours-worked-by-resource.html new file mode 100644 index 000000000..f97f118aa --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/15-1-report-hours-worked-by-resource.html @@ -0,0 +1,101 @@ + + + + + + +Hours Worked by Resource Report + + + +
+

Hours Worked by Resource Report

+ + +
+

Purpose

+

This report extracts a list of tasks and the time resources have dedicated to them within a specified period. Several filters allow users to refine the query to obtain only the desired information and exclude extraneous data.

+
+
+

Input Parameters and Filters

+
    +
  • +
    Dates.
    +
      +
    • Type: Optional.
    • +
    • +
      Two date fields:
      +
        +
      • Start Date: This is the earliest date for work reports to be included. Work reports with dates earlier than the Start Date are excluded. If this parameter is left blank, work reports are not filtered by Start Date.
      • +
      • End Date: This is the latest date for work reports to be included. Work reports with dates later than the End Date are excluded. If this parameter is left blank, work reports are not filtered by End Date.
      • +
      +
      +
      +
    • +
    +
    +
    +
  • +
  • Filter by Workers: +* Type: Optional. +* How it works: You can select one or more workers to restrict the work reports to the time tracked by those specific workers. To add a worker as a filter, search for them in the selector and click the Add button. If this filter is left empty, work reports are retrieved regardless of the worker.
  • +
  • Filter by Labels: +* Type: Optional. +* How it works: You can add one or more labels to use as filters by searching for them in the selector and clicking the Add button. These labels are used to select the tasks to be included in the results when calculating the hours dedicated to them. This filter can be applied to timesheets, tasks, both, or neither.
  • +
  • Filter by Criteria: +* Type: Optional. +* How it works: You can select one or more criteria by searching for them in the selector and then clicking the Add button. These criteria are used to select the resources that satisfy at least one of them. The report will show all the time dedicated by the resources that meet one of the selected criteria.
  • +
+
+
+

Output

+
+

Heading

+

The report heading displays the filters that were configured and applied to the current report.

+
+ +
+

Body

+

The report body consists of several groups of information.

+
    +
  • The first level of aggregation is by resource. All the time dedicated by a resource is shown together below the header. Each resource is identified by:

    +
      +
    • Worker: Surname, First Name.
    • +
    • Machine: Name.
    • +
    +

    A summary line shows the total number of hours worked by the resource.

    +
  • +
  • The second level of grouping is by date. All the reports from a specific resource on the same date are shown together.

    +

    A summary line shows the total number of hours worked by the resource on that date.

    +
  • +
  • The final level lists the work reports for the worker on that day. The information displayed for each work report line is:

    +
      +
    • Task Code: The code of the task to which the tracked hours are attributed.
    • +
    • Task Name: The name of the task to which the tracked hours are attributed.
    • +
    • Starting Time: This is optional. It is the time at which the resource began working on the task.
    • +
    • Ending Time: This is optional. It is the time at which the resource finished working on the task on the specified date.
    • +
    • Text Fields: This is optional. If the work report line has text fields, the filled values are shown here. The format is: <Name of the text field>:<Value>
    • +
    • Labels: This depends on whether the work report model has a label field in its definition. If there are multiple labels, they are shown in the same column. The format is: <Name of the label type>:<Value of the label>
    • +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh/15-2-total-hours-by-resource-month.html b/libreplan-webapp/src/main/webapp/help/zh/15-2-total-hours-by-resource-month.html new file mode 100644 index 000000000..246cfc9c1 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/15-2-total-hours-by-resource-month.html @@ -0,0 +1,67 @@ + + + + + + +Total Hours Worked by Resource in a Month Report + + + +
+

Total Hours Worked by Resource in a Month Report

+ + +
+

Purpose

+

This report provides the total number of hours worked by each resource in a given month. This information can be useful for determining worker overtime or, depending on the organization, the number of hours for which each resource should be compensated.

+

The application tracks work reports for both workers and machines. For machines, the report sums up the number of hours they were in operation during the month.

+
+
+

Input Parameters and Filters

+

To generate this report, users must specify the year and month for which they want to retrieve the total number of hours worked by each resource.

+
+
+

Output

+

The output format is as follows:

+ + +
+

Body

+

The data section of the report consists of a single table with two columns:

+
+
    +
  • One column labeled Name for the name of the resource.
  • +
  • One column labeled Hours with the total number of hours worked by the resource in that row.
  • +
+
+

There is a final row that aggregates the total number of hours worked by all resources during the specified month and year.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh/15-3-work-progress-per-project.html b/libreplan-webapp/src/main/webapp/help/zh/15-3-work-progress-per-project.html new file mode 100644 index 000000000..e2f5053a9 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/15-3-work-progress-per-project.html @@ -0,0 +1,125 @@ + + + + + + +Work and Progress per Project Report + + + +
+

Work and Progress per Project Report

+ + +
+

Purpose

+

This report provides an overview of the status of projects, considering both progress and cost.

+

It analyzes the current progress of each project, comparing it with the planned progress and the work completed.

+

The report also displays several ratios related to project cost, comparing current performance with the planned performance.

+
+
+

Input Parameters and Filters

+

There are several mandatory parameters:

+
+
    +
  • Reference Date: This is the date used as a reference point for comparing the planned status of the project with its actual performance. The default value for this field is the current date.
  • +
  • Progress Type: This is the progress type used to measure project progress. The application allows a project to be measured simultaneously with different progress types. The type selected by the user in the dropdown menu is used for calculating the report data. The default value for the progress type is spread, which is a special progress type that uses the preferred method of measuring progress configured for each WBS element.
  • +
+
+

The optional parameters are:

+
+
    +
  • Starting Date: This is the earliest start date for projects to be included in the report. If this field is left blank, there is no minimum start date for the projects.
  • +
  • Ending Date: This is the latest end date for projects to be included in the report. All projects that finish after the Ending Date will be excluded.
  • +
  • Filter by Projects: This filter allows users to select the specific projects to be included in the report. If no projects are added to the filter, the report will include all projects in the database. A searchable dropdown menu is provided to find the desired project. Projects are added to the filter by clicking the Add button.
  • +
+
+
+
+

Output

+

The output format is as follows:

+
+

Heading

+

The report header displays the following fields:

+
+
    +
  • Starting Date: The filtering start date. This is not displayed if the report is not filtered by this field.
  • +
  • Ending Date: The filtering end date. This is not displayed if the report is not filtered by this field.
  • +
  • Progress Type: The progress type used for the report.
  • +
  • Projects: This indicates the filtered projects for which the report is generated. It will show the string All when the report includes all projects that satisfy the other filters.
  • +
  • Reference Date: The mandatory input reference date selected for the report.
  • +
+
+
+ +
+

Body

+

The body of the report consists of a list of projects selected based on the input filters.

+

Filters work by adding conditions, except for the set formed by the date filters (Starting Date, Ending Date) and the Filter by Projects. In this case, if one or both date filters are filled and the Filter by Projects has a list of selected projects, the latter filter takes precedence. This means that the projects included in the report are those provided by the Filter by Projects, regardless of the date filters.

+

It's important to note that progress in the report is calculated as a fraction of unity, ranging between 0 and 1.

+

For each project selected for inclusion in the report output, the following information is displayed:

+
+
    +
  • Project Name.
  • +
  • +
    Total Hours. The total hours for the project are shown by adding the hours for each task. Two types of total hours are shown:
    +
      +
    • Estimated (TE). This is the sum of all the estimated hours in the project's WBS. It represents the total number of hours estimated to complete the project.
    • +
    • Planned (TP). In TASKPM, it's possible to have two different quantities: the estimated number of hours for a task (the number of hours initially estimated to complete the task) and the planned hours (the hours allocated in the plan to complete the task). The planned hours can be equal to, less than, or greater than the estimated hours and are determined in a later phase, the assignment operation. Therefore, the total planned hours for a project are the sum of all the allocated hours for its tasks.
    • +
    +
    +
    +
  • +
  • +
    Progress. Three measurements related to the overall progress of the type specified in the progress input filter for each project at the reference date are shown:
    +
      +
    • Measured (PM). This is the overall progress considering the progress measurements with a date earlier than the Reference Date in the input parameters of the report. All tasks are taken into account, and the sum is weighted by the number of hours for each task.
    • +
    • Imputed (PI). This is the progress assuming that work continues at the same pace as the hours completed for a task. If X hours out of Y hours for a task are completed, the overall imputed progress is considered to be X/Y.
    • +
    • Planned (PP). This is the overall progress of the project according to the planned schedule at the reference date. If everything happened exactly as planned, the measured progress should be the same as the planned progress.
    • +
    +
    +
    +
  • +
  • +
    Hours up to Date. There are two fields that show the number of hours up to the reference date from two perspectives:
    +
      +
    • Planned (HP). This number is the sum of the hours allocated to any task in the project with a date less than or equal to the Reference Date.
    • +
    • Actual (HR). This number is the sum of the hours reported in the work reports for any of the tasks in the project with a date less than or equal to the Reference Date.
    • +
    +
    +
    +
  • +
  • +
    Difference. Under this heading, there are several metrics related to cost:
    +
      +
    • Cost. This is the difference in hours between the number of hours spent, considering the measured progress, and the hours completed up to the reference date. The formula is: PM*TP - HR.
    • +
    • Planned. This is the difference between the hours spent according to the overall measured project progress and the number planned up to the Reference Date. It measures the advantage or delay in time. The formula is: PM*TP - HP.
    • +
    • Cost Ratio. This is calculated by dividing PM / PI. If it is greater than 1, it means that the project is profitable at this point. If it is less than 1, it means that the project is losing money.
    • +
    • Planned Ratio. This is calculated by dividing PM / PP. If it is greater than 1, it means that the project is ahead of schedule. If it is less than 1, it means that the project is behind schedule.
    • +
    +
    +
    +
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh/15-informes.html b/libreplan-webapp/src/main/webapp/help/zh/15-informes.html new file mode 100644 index 000000000..c2c7cafab --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/15-informes.html @@ -0,0 +1,26 @@ + + + + + + +Reports + + + +
+

Reports

+ +

TASKPM integrates with JasperReports to provide report management, enabling users to generate various reports for analyzing the data available in the program.

+

The available reports are:

+ +
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh/16-ldap-authentication.html b/libreplan-webapp/src/main/webapp/help/zh/16-ldap-authentication.html new file mode 100644 index 000000000..ad5d4976d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/16-ldap-authentication.html @@ -0,0 +1,251 @@ + + + + + + +LDAP Configuration + + + +
+

LDAP Configuration

+ + +

This screen allows you to establish a connection with LDAP to delegate +authentication and/or authorization.

+

It is divided into four different areas, which are explained below:

+
+

Activation

+

This area is used to set the properties that determine how TASKPM uses +LDAP.

+

If the field Enable LDAP authentication is checked, TASKPM will query +LDAP each time a user attempts to log in to the application.

+

The field Use LDAP roles checked means that a mapping between LDAP roles and +TASKPM roles is established. Consequently, the permissions for a user in +TASKPM will depend on the roles the user has in LDAP.

+
+
+

Configuration

+

This section contains the parameter values for accessing LDAP. Base, UserDN, and +Password are parameters used to connect to LDAP and search for users. Therefore, +the specified user must have permission to perform this operation in LDAP. At the +bottom of this section, there is a button to check if an LDAP connection is +possible with the given parameters. It is advisable to test the connection before +continuing the configuration.

+
+

Note

+

If your LDAP is configured to work with anonymous authentication, you can +leave the UserDN and Password attributes empty.

+
+
+

Tip

+

Regarding Active Directory (AD) configuration, the Base field must be the +exact location where the bound user resides in AD.

+

Example: ou=organizational_unit,dc=example,dc=org

+
+
+
+

Authentication

+

Here, you can configure the property in LDAP nodes where the given username +should be found. The property UserId must be filled with the name of the +property where the username is stored in LDAP.

+

The checkbox Save passwords in database, when checked, means that the +password is also stored in the TASKPM database. In this way, if LDAP is +offline or unreachable, LDAP users can authenticate against the TASKPM +database. If it is not checked, LDAP users can only be authenticated against +LDAP.

+
+
+

Authorization

+

This section allows you to define a strategy for matching LDAP roles with +TASKPM roles. The first choice is the strategy to use, depending on the +LDAP implementation.

+
+

Group Strategy

+

When this strategy is used, it indicates that LDAP has a role-group strategy. +This means that users in LDAP are nodes that are directly under a branch that +represents the group.

+

The next example represents a valid LDAP structure for using the group strategy.

+
    +
  • LDAP structure:

    +
    +dc=example,dc=org
    +|- ou=groups
    +   |- cn=admins
    +   |- cn=itpeople
    +   |- cn=workers
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

In this case, each group will have an attribute, for example, called member, +with the list of users belonging to the group:

+
    +
  • cn=admins:
      +
    • member: uid=admin1,ou=people,dc=example,dc=org
    • +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=itpeople:
      +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    • member: uid=it2,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=workers:
      +
    • member: uid=worker1,ou=people,dc=example,dc=org
    • +
    • member: uid=worker2,ou=people,dc=example,dc=org
    • +
    • member: uid=worker3,ou=people,dc=example,dc=org
    • +
    +
  • +
+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Group strategy
  • +
  • Group path: ou=groups
  • +
  • Role property: member
  • +
  • Role search query: uid=[USER_ID],ou=people,dc=example,dc=org
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: cn=admins;cn=itpeople
  • +
  • Web service reader: cn=itpeople
  • +
  • Web service writer: cn=itpeople
  • +
  • All projects read allowed: cn=admins
  • +
  • All projects edition allowed: cn=admins
  • +
  • Project creation allowed: cn=workers
  • +
+
+
+

Property Strategy

+

When an administrator decides to use this strategy, it indicates that each user +is an LDAP node, and within the node, there exists a property that represents +the group(s) for the user. In this case, the configuration does not require the +Group path parameter.

+

The next example represents a valid LDAP structure for using the property strategy.

+
    +
  • LDAP structure:

    +
    +dc=example,dc=org
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

With Attribute

+

In this case, each user will have an attribute, for example, called group, +with the name of the group to which they belong:

+
    +
  • uid=admin1:
      +
    • group: admins
    • +
    +
  • +
  • uid=it1:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=it2:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=worker1:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker2:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker3:
      +
    • group: workers
    • +
    +
  • +
+
+

Warning

+

This strategy has a restriction: each user can belong to only one group.

+
+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Property strategy
  • +
  • Group path:
  • +
  • Role property: group
  • +
  • Role search query: [USER_ID]
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: admins;itpeople
  • +
  • Web service reader: itpeople
  • +
  • Web service writer: itpeople
  • +
  • All projects read allowed: admins
  • +
  • All projects edition allowed: admins
  • +
  • Project creation allowed: workers
  • +
+

By User Identifier

+

You can even use a workaround to specify TASKPM roles directly to users +without having an attribute in each LDAP user.

+

In this case, you will specify which users have the different TASKPM roles +by uid.

+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Property strategy
  • +
  • Group path:
  • +
  • Role property: uid
  • +
  • Role search query: [USER_ID]
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: admin1;it1
  • +
  • Web service reader: it1;it2
  • +
  • Web service writer: it1;it2
  • +
  • All projects read allowed: admin1
  • +
  • All projects edition allowed: admin1
  • +
  • Project creation allowed: worker1;worker2;worker3
  • +
+
+
+

Role Matching

+

At the bottom of this section, there is a table with all the TASKPM roles +and a text field next to each one. This is for matching roles. For instance, +if an administrator decides that the Administration TASKPM role matches +the admin and administrators roles of LDAP, the text field should contain: +"admin;administrators". The character for splitting roles is ";".

+
+

Note

+

If you want to specify that all users or all groups have one permission, you +can use an asterisk (*) as a wildcard to refer to them. For example, if +you want everyone to have the Project creation allowed role, you will +configure the role matching as follows:

+
    +
  • Project creation allowed: *
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh/17-1-project-dashboard.html b/libreplan-webapp/src/main/webapp/help/zh/17-1-project-dashboard.html new file mode 100644 index 000000000..5dc0899b7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/17-1-project-dashboard.html @@ -0,0 +1,173 @@ + + + + + + +Project Dashboard + + + +
+

Project Dashboard

+ + +

The project dashboard is a TASKPM perspective that contains a set of KPIs (Key Performance Indicators) to help assess a project's performance in terms of:

+
+
    +
  • Work progress
  • +
  • Cost
  • +
  • Status of allocated resources
  • +
  • Time constraints
  • +
+
+
+

Progress Performance Indicators

+

Two indicators are calculated: project progress percentage and task status.

+
+

Project Progress Percentage

+

This chart displays the overall progress of a project, comparing it to the expected progress based on the Gantt chart.

+

Progress is represented by two bars:

+
+
    +
  • Current Progress: The current progress based on the measurements taken.
  • +
  • Expected Progress: The progress the project should have achieved at this point, according to the project plan.
  • +
+
+

To view the actual measured value for each bar, hover the mouse cursor over the bar.

+

The overall project progress is estimated using several different methods, as there is no single, universally correct approach:

+
+
    +
  • Spreading Progress: This is the progress type set as the spreading progress at the project level. In this case, there is no way to calculate an expected value, and only the current bar is displayed.
  • +
  • By All Task Hours: The progress of all project tasks is averaged to calculate the overall value. This is a weighted average that considers the number of hours allocated to each task.
  • +
  • By Critical Path Hours: The progress of tasks belonging to any of the project's critical paths is averaged to obtain the overall value. This is a weighted average that considers the total allocated hours for each involved task.
  • +
  • By Critical Path Duration: The progress of tasks belonging to any of the critical paths is averaged using a weighted average, but this time considering the duration of each involved task instead of the assigned hours.
  • +
+
+
+
+

Task Status

+

A pie chart shows the percentage of project tasks in different states. The defined states are:

+
+
    +
  • Finished: Completed tasks, identified by a 100% progress value.
  • +
  • In Progress: Tasks that are currently underway. These tasks have a progress value other than 0% or 100%, or some work time has been tracked.
  • +
  • Ready to Start: Tasks with 0% progress, no tracked time, all their FINISH_TO_START dependent tasks are finished, and all their START_TO_START dependent tasks are finished or in progress.
  • +
  • Blocked: Tasks with 0% progress, no tracked time, and with previous dependent tasks that are neither in progress nor in the ready to start state.
  • +
+
+
+
+
+

Cost Indicators

+

Several Earned Value Management cost indicators are calculated:

+
+
    +
  • CV (Cost Variance): The difference between the Earned Value curve and the Actual Cost curve at the current moment. Positive values indicate a benefit, and negative values indicate a loss.

    +
  • +
  • ACWP (Actual Cost of Work Performed): The total number of hours tracked in the project at the current moment.

    +
  • +
  • CPI (Cost Performance Index): The Earned Value / Actual Cost ratio.

    +
    +
      +
    • > 100 is favorable, indicating that the project is under budget.
    • +
    • = 100 is also favorable, indicating that the cost is right on plan.
    • +
    • < 100 is unfavorable, indicating that the cost of completing the work is higher than planned.
    • +
    +
    +
  • +
  • ETC (Estimate To Complete): The time remaining to complete the project.

    +
  • +
  • BAC (Budget At Completion): The total amount of work allocated in the project plan.

    +
  • +
  • EAC (Estimate At Completion): The manager's projection of the total cost at project completion, based on the CPI.

    +
  • +
  • VAC (Variance At Completion): The difference between the BAC and the EAC.

    +
    +
      +
    • < 0 indicates that the project is over budget.
    • +
    • > 0 indicates that the project is under budget.
    • +
    +
    +
  • +
+
+
+
+

Resources

+

To analyze the project from the resources' point of view, two ratios and a histogram are provided.

+
+

Estimation Deviation on Completed Task Histogram

+

This histogram calculates the deviation between the number of hours allocated to the project tasks and the actual number of hours dedicated to them.

+

The deviation is calculated as a percentage for all finished tasks, and the calculated deviations are represented in a histogram. The vertical axis shows the number of tasks within each deviation interval. Six deviation intervals are dynamically calculated.

+
+
+

Overtime Ratio

+

This ratio summarizes the overload of resources allocated to the project tasks. It is calculated using the formula: overtime ratio = overload / (load + overload).

+
+
    +
  • = 0 is favorable, indicating that the resources are not overloaded.
  • +
  • > 0 is unfavorable, indicating that the resources are overloaded.
  • +
+
+
+
+

Availability Ratio

+

This ratio summarizes the free capacity of the resources currently allocated to the project. Therefore, it measures the resources' availability to receive more allocations without being overloaded. It is calculated as: availability ratio = (1 - load/capacity) * 100

+
+
    +
  • Possible values are between 0% (fully assigned) and 100% (not assigned).
  • +
+
+
+
+
+

Time

+

Two charts are included: a histogram for the time deviation in the finish time of project tasks and a pie chart for deadline violations.

+
+

Task Completion Lead or Lag

+

This calculation determines the difference in days between the planned end time for project tasks and their actual end time. The planned completion date is taken from the Gantt chart, and the actual finish date is taken from the last time tracked for the task.

+

The lag or lead in task completion is represented in a histogram. The vertical axis shows the number of tasks with a lead/lag day difference value corresponding to the abscissa days interval. Six dynamic task completion deviation intervals are calculated.

+
+
    +
  • Negative values mean finishing ahead of schedule.
  • +
  • Positive values mean finishing behind schedule.
  • +
+
+
+
+

Deadline Violations

+

This section calculates the margin with the project deadline, if set. Additionally, a pie chart shows the percentage of tasks meeting their deadline. Three types of values are included in the chart:

+
+
    +
  • Percentage of tasks without a deadline configured.
  • +
  • Percentage of ended tasks with an actual end date later than their deadline. The actual end date is taken from the last time tracked for the task.
  • +
  • Percentage of ended tasks with an actual end date earlier than their deadline.
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh/17-2-pipeline-dashboard.html b/libreplan-webapp/src/main/webapp/help/zh/17-2-pipeline-dashboard.html new file mode 100644 index 000000000..bb54ed657 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/17-2-pipeline-dashboard.html @@ -0,0 +1,33 @@ + + + + + + +Pipeline Dashboard + + + +
+

Pipeline Dashboard

+ +

The pipeline dashboard is a TASKPM perspective that lists all company projects in a table. This "pipeline" table has nine columns, each corresponding to a project status:

+
+
    +
  • PRE-SALES
  • +
  • OFFERED
  • +
  • OUTSOURCED
  • +
  • ACCEPTED
  • +
  • STARTED
  • +
  • ON HOLD
  • +
  • FINISHED
  • +
  • CANCELLED
  • +
  • ARCHIVED
  • +
+
+

Projects are listed by name in each column based on their current status.

+

A project's start date, end date, and current progress can be viewed in a tooltip popup by hovering the mouse cursor over a project's name.

+

Projects with an ARCHIVED status can be hidden by unchecking the "Show archived column data" checkbox.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh/17-dashboards.html b/libreplan-webapp/src/main/webapp/help/zh/17-dashboards.html new file mode 100644 index 000000000..3dc8f1af4 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/17-dashboards.html @@ -0,0 +1,24 @@ + + + + + + +Dashboards + + + +
+

Dashboards

+ +

TASKPM offers dashboard views for projects, providing an overview of their current status.

+

The two available dashboard views are:

+ +
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh/18-connectors.html b/libreplan-webapp/src/main/webapp/help/zh/18-connectors.html new file mode 100644 index 000000000..0f879b53d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/18-connectors.html @@ -0,0 +1,238 @@ + + + + + + +Connectors + + + +
+

Connectors

+ + +

Connectors are TASKPM client applications that can be used to communicate with (web) servers to retrieve data, process it, and store it. Currently, there are three connectors: the JIRA connector, the Tim Enterprise connector, and the E-mail connector.

+
+

Configuration

+

Connectors must be configured properly before they can be used. They can be configured from the "Main Settings" screen under the "Connectors" tab.

+

The connector screen includes:

+
    +
  • Pull-down list: A list of available connectors.
  • +
  • Properties edit screen: A property edit form for the selected connector.
  • +
  • Test connection button: A button to test the connection with the connector.
  • +
+

Select the connector you want to configure from the pull-down list of connectors. A property editor form for the selected connector will be displayed. In the property editor form, you can change the property values as needed and test your configurations using the "Test connection" button.

+
+

Note

+

The properties are configured with default values. The most important property is "Activated." By default, it is set to "N." This indicates that the connector will not be used unless you change the value to "Y" and save the changes.

+
+
+
+

JIRA Connector

+

JIRA is an issue and project tracking system.

+

The JIRA connector is an application that can be used to request JIRA web server data for JIRA issues and process the response. The request is based on JIRA labels. In JIRA, labels can be used to categorize issues. The request is structured as follows: retrieve all issues that are categorized by this label name.

+

The connector receives the response, which in this case is the issues, and converts them to TASKPM "Order elements" and "Time sheets."

+

The JIRA connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the JIRA connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the JIRA connector. The default is "N."
  • +
  • Server URL: The absolute path to the JIRA web server.
  • +
  • User name and password: The user credentials for authorization.
  • +
  • JIRA labels: comma-separated list of labels or URL: You can either enter the label URL or a comma-separated list of labels.
  • +
  • Hours type: The type of work hours. The default is "Default."
  • +
+
+

Note

+

JIRA labels: Currently, the JIRA web server does not support providing a list of all available labels. As a workaround, we have developed a simple PHP script that performs a simple SQL query in the JIRA database to fetch all distinct labels. You can either use this PHP script as the "JIRA labels URL" or enter the labels you want as comma-separated text in the "JIRA labels" field.

+
+

Finally, click the "Test connection" button to test if you can connect to the JIRA web server and that your configurations are correct.

+
+
+

Synchronization

+

From the project window, under "General data," you can start synchronizing order elements with JIRA issues.

+

Click the "Sync with JIRA" button to start the synchronization.

+
    +
  • If this is the first time, a pop-up window (with an auto-completed list of labels) will be displayed. In this window, you can select a label to synchronize with and click the "Start sync" button to begin the synchronization process, or click the "Cancel" button to cancel it.
  • +
  • If a label is already synchronized, the last synchronized date and the label will be displayed in the JIRA screen. In this case, no pop-up window to select a label will be displayed. Instead, the synchronization process will start directly for that displayed (already synchronized) label.
  • +
+
+

Note

+

The relationship between "Order" and "label" is one-to-one. Only one label can be synchronized with one "Order."

+
+
+

Note

+

Upon successful (re)synchronization, the information will be written to the database, and the JIRA screen will be updated with the last synchronized date and label.

+
+

(Re)synchronization is performed in two phases:

+
    +
  • Phase 1: Synchronizing order elements, including progress assignment and measurements.
  • +
  • Phase 2: Synchronizing time sheets.
  • +
+
+

Note

+

If Phase 1 fails, Phase 2 will not be performed, and no information will be written to the database.

+
+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+

Upon successful completion of synchronization, the result will be displayed in the "Work Breakdown Structure (WBS tasks)" tab of the "Project details" screen. In this UI, there are two changes from the standard WBS:

+
    +
  • The "Total task hours" column is unmodifiable (read-only) because the synchronization is one-way. Task hours can only be updated in the JIRA web server.
  • +
  • The "Code" column displays the JIRA issue keys, and they are also hyperlinks to the JIRA issues. Click the desired key if you want to go to the document for that key (JIRA issue).
  • +
+
+
+

Scheduling

+

Re-synchronization of JIRA issues can also be performed through the scheduler. Go to the "Job scheduling" screen. In that screen, you can configure a JIRA job to perform synchronization. The job searches for the last synchronized labels in the database and re-synchronizes them accordingly. See also the Scheduler Manual.

+
+
+
+

Tim Enterprise Connector

+

Tim Enterprise is a Dutch product from Aenova. It is a web-based application for the administration of time spent on projects and tasks.

+

The Tim connector is an application that can be used to communicate with the Tim Enterprise server to:

+
    +
  • Export all hours spent by a worker (user) on a project that could be registered in Tim Enterprise.
  • +
  • Import all rosters of the worker (user) to plan the resource effectively.
  • +
+

The Tim connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the Tim connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the Tim connector. The default is "N."
  • +
  • Server URL: The absolute path to the Tim Enterprise server.
  • +
  • User name and password: The user credentials for authorization.
  • +
  • Number of days timesheet to Tim: The number of days back you want to export the time sheets.
  • +
  • Number of days roster from Tim: The number of days forward you want to import the rosters.
  • +
  • Productivity factor: Effective working hours in percentage. The default is "100%."
  • +
  • Department IDs to import roster: Comma-separated department IDs.
  • +
+

Finally, click the "Test connection" button to test if you can connect to the Tim Enterprise server and that your configurations are correct.

+
+
+

Export

+

From the project window, under "General data," you can start exporting time sheets to the Tim Enterprise server.

+

Enter the "Tim product code" and click the "Export to Tim" button to start the export.

+

The Tim connector adds the following fields along with the product code:

+
    +
  • The worker/user's full name.
  • +
  • The date the worker worked on a task.
  • +
  • The effort, or hours worked on the task.
  • +
  • An option indicating whether Tim Enterprise should update the registration or insert a new one.
  • +
+

The Tim Enterprise response contains only a list of record IDs (integers). This makes it difficult to determine what went wrong, as the response list contains only numbers not related to the request fields. The export request (registration in Tim) is assumed to have succeeded if all the list entries do not contain "0" values. Otherwise, the export request has failed for those entries that contain "0" values. Therefore, you cannot see which request failed, as the list entries only contain the value "0." The only way to determine this is to examine the log file on the Tim Enterprise server.

+
+

Note

+

Upon successful exporting, the information will be written to the database, and the Tim screen will be updated with the last exported date and product code.

+
+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+
+
+

Scheduling Export

+

The export process can also be performed through the scheduler. Go to the "Job Scheduling" screen. In that screen, you can configure a Tim Export job. The job searches for the last exported time sheets in the database and re-exports them accordingly. See also the Scheduler manual.

+
+
+

Import

+

Importing rosters only works with the help of the scheduler. There is no user interface designed for this, as no input is needed from the user. Go to the "Job scheduling" screen and configure a Tim Import job. The job loops through all departments configured in the connector properties and imports all rosters for each department. See also the Scheduler Manual.

+

For import, the Tim connector adds the following fields in the request:

+
    +
  • Period: The period (date from - date to) for which you want to import the roster. This can be provided as a filter criterion.
  • +
  • Department: The department for which you want to import the roster. Departments are configurable.
  • +
  • The fields you are interested in (like Person info, RosterCategory, etc.) that the Tim server should include in its response.
  • +
+

The import response contains the following fields, which are sufficient to manage the exception days in TASKPM:

+
    +
  • Person info: Name and network name.
  • +
  • Department: The department the worker is working in.
  • +
  • Roster category: Information on the presence/absence (Aanwzig/afwezig) of the worker and the reason (TASKPM exception type) in case the worker is absent.
  • +
  • Date: The date the worker is present/absent.
  • +
  • Time: The start time of presence/absence, for example, 08:00.
  • +
  • Duration: The number of hours that the worker is present/absent.
  • +
+

By converting the import response to TASKPM's "Exception day," the following translations are taken into account:

+
    +
  • If the roster category contains the name "Vakantie," it will be translated to "RESOURCE HOLIDAY."
  • +
  • The roster category "Feestdag" will be translated to "BANK HOLIDAY."
  • +
  • All the rest, like "Jus uren," "PLB uren," etc., should be added to the "Calendar Exception Days" manually.
  • +
+

Moreover, in the import response, the roster is divided into two or three parts per day: for example, roster-morning, roster-afternoon, and roster-evening. However, TASKPM allows only one "Exception type" per day. The Tim connector is then responsible for merging these parts as one exception type. That is, the roster category with the highest duration is assumed to be a valid exception type, but the total duration is the sum of all durations of these category parts.

+

Contrary to TASKPM, in Tim Enterprise, the total duration in case the worker is on holiday means the worker is not available for that total duration. However, in TASKPM, if the worker is on holiday, the total duration should be zero. The Tim connector also handles this translation.

+
+
+
+

E-mail Connector

+

E-mail is a method of exchanging digital messages from an author to one or more recipients.

+

The E-mail connector can be used to set Simple Mail Transfer Protocol (SMTP) server connection properties.

+

The E-mail connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the E-mail connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the E-mail connector. The default is "N."
  • +
  • Protocol: The type of SMTP protocol.
  • +
  • Host: The absolute path to the SMTP server.
  • +
  • Port: The port of the SMTP server.
  • +
  • From address: The e-mail address of the message sender.
  • +
  • Username: The username for the SMTP server.
  • +
  • Password: The password for the SMTP server.
  • +
+

Finally, click the "Test connection" button to test if you can connect to the SMTP server and that your configurations are correct.

+
+
+

Edit E-mail Template

+

From the project window, under "Configuration" and then "Edit E-mail Templates," you can modify the e-mail templates for messages.

+

You can choose:

+
    +
  • Template language:
  • +
  • Template type:
  • +
  • E-mail subject:
  • +
  • Template contents:
  • +
+

You need to specify the language because the web application will send e-mails to users in the language they have chosen in their preferences. You need to choose the template type. The type is the user role, meaning that this e-mail will be sent only to users who are in the selected role (type). You need to set the e-mail subject. The subject is a brief summary of the topic of the message. You need to set the e-mail contents. This is any information that you want to send to the user. There are also some keywords that you may use in the message; the web application will parse them and set a new value instead of the keyword.

+
+
+

Scheduling E-mails

+

Sending e-mails can only be performed through the scheduler. Go to "Configuration," then the "Job Scheduling" screen. In that screen, you can configure an e-mail sending job. The job takes a list of e-mail notifications, gathers data, and sends it to the user's e-mail. See also the Scheduler manual.

+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh/19-scheduler.html b/libreplan-webapp/src/main/webapp/help/zh/19-scheduler.html new file mode 100644 index 000000000..8379b5b4c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/19-scheduler.html @@ -0,0 +1,107 @@ + + + + + + +Scheduler + + + +
+

Scheduler

+ + +

The scheduler is designed to schedule jobs dynamically. It is developed using the Spring Framework Quartz scheduler.

+

To use this scheduler effectively, the jobs (Quartz jobs) that should be scheduled must be created first. Then, these jobs can be added to the database, as all jobs to be scheduled are stored in the database.

+

When the scheduler starts, it reads the jobs to be scheduled or unscheduled from the database and schedules or removes them accordingly. Afterward, jobs can be added, updated, or removed dynamically using the Job scheduling user interface.

+
+

Note

+

The scheduler starts when the TASKPM web application starts and stops when the application stops.

+
+
+

Note

+

This scheduler supports only cron expressions to schedule jobs.

+
+

The criteria that the scheduler uses to schedule or remove jobs when it starts are as follows:

+

For all jobs:

+
    +
  • Schedule
      +
    • Job has a Connector, and the Connector is activated, and the job is allowed to be scheduled.
    • +
    • Job has no Connector and is allowed to be scheduled.
    • +
    +
  • +
  • Remove
      +
    • Job has a Connector, and the Connector is not activated.
    • +
    • Job has a Connector, and the Connector is activated, but the job is not allowed to be scheduled.
    • +
    • Job has no Connector and is not allowed to be scheduled.
    • +
    +
  • +
+
+

Note

+

Jobs cannot be rescheduled or unscheduled if they are currently running.

+
+
+

Job Scheduling List View

+

The Job scheduling list view allows users to:

+
    +
  • Add a new job.
  • +
  • Edit an existing job.
  • +
  • Remove a job.
  • +
  • Start a process manually.
  • +
+
+
+

Add or Edit Job

+

From the Job scheduling list view, click:

+
    +
  • Create to add a new job, or
  • +
  • Edit to modify the selected job.
  • +
+

Both actions will open a create/edit job form. The form displays the following properties:

+
    +
  • Fields:
      +
    • Job group: The name of the job group.
    • +
    • Job name: The name of the job.
    • +
    • Cron expression: A read-only field with an Edit button to open the cron expression input window.
    • +
    • Job class name: A pull-down list to select the job (an existing job).
    • +
    • Connector: A pull-down list to select a connector. This is not mandatory.
    • +
    • Schedule: A checkbox to indicate whether to schedule this job.
    • +
    +
  • +
  • Buttons:
      +
    • Save: To save or update a job in both the database and the scheduler. The user is then returned to the Job scheduling list view.
    • +
    • Save and continue: The same as "Save," but the user is not returned to the Job scheduling list view.
    • +
    • Cancel: Nothing is saved, and the user is returned to the Job scheduling list view.
    • +
    +
  • +
  • And a hint section about cron expression syntax.
  • +
+
+

Cron Expression Pop-up

+

To enter the cron expression correctly, a cron expression pop-up form is used. In this form, you can enter the desired cron expression. See also the hint about the cron expression. If you enter an invalid cron expression, you will be notified immediately.

+
+
+
+

Remove Job

+

Click the Remove button to delete the job from both the database and the scheduler. The success or failure of this action will be displayed.

+
+
+

Start Job Manually

+

As an alternative to waiting for the job to run as scheduled, you can click this button to start the process directly. Afterward, the success or failure information will be displayed in a pop-up window.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh/20-acerca-de.html b/libreplan-webapp/src/main/webapp/help/zh/20-acerca-de.html new file mode 100644 index 000000000..569e69e4d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/20-acerca-de.html @@ -0,0 +1,155 @@ + + + + + + +About + + + +
+

About

+ + + +
+

License

+

This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version.

+

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/>.

+
+
+

Written by

+
+

TASKPM Team

+ +
+
+

Previous Team Members

+ +
+
+

Translators

+ +
+
+

Contributors

+ +
+
+
+

Public Funding

+

This project currently accepts donations through the Open Collective organization <https://opencollective.com/TASKPM>.

+

Within the global scope that TASKPM is designed for regarding planning management, a project was developed to solve some common planning problems.

+

This project was partially financed by Xunta de Galicia, Ministerio de Industria, Turismo e Comercio, and by the European Union, Fondo Europeo de Desenvolvemento Rexional.

+
+images/logos.png +
+ +++ + + + +
scale:100
+

This project was part of Plan Avanza:

+
+images/avanza.png +
+ +++ + + + +
scale:100
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh/21-communications.html b/libreplan-webapp/src/main/webapp/help/zh/21-communications.html new file mode 100644 index 000000000..e4f5ea081 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/21-communications.html @@ -0,0 +1,18 @@ + + + + + + +Subcontractor Work Description + + + +
+

Subcontractor Work Description

+ +

While it is possible to leave this field empty, doing so can lead to errors in communication functionality when multiple empty fields exist.

+

Therefore, we strongly recommend always using a unique work description.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh/22-pert.html b/libreplan-webapp/src/main/webapp/help/zh/22-pert.html new file mode 100644 index 000000000..c27af3c56 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/22-pert.html @@ -0,0 +1,17 @@ + + + + + + +PERT Chart + + + +
+

PERT Chart

+ +

Unlike Libreplan, which was focused on the GANNT chart and did not have a PERT chart, TASKPM does have a PERT chart and is more focused on it.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh/23-subnets.html b/libreplan-webapp/src/main/webapp/help/zh/23-subnets.html new file mode 100644 index 000000000..42cd9e634 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/23-subnets.html @@ -0,0 +1,17 @@ + + + + + + +Task Subnets + + + +
+

Task Subnets

+ +

Unlike Libreplan, which only had a single level of planning, the whole project, TASKPM has subnetworks of activities which can be embedded in a master project.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/advance-assignment.png b/libreplan-webapp/src/main/webapp/help/zh/images/advance-assignment.png new file mode 100644 index 000000000..aeb55b2b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/advance-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/asignacion-especifica.png b/libreplan-webapp/src/main/webapp/help/zh/images/asignacion-especifica.png new file mode 100644 index 000000000..9ee94d9c6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/asignacion-especifica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/asignacion-xenerica.png b/libreplan-webapp/src/main/webapp/help/zh/images/asignacion-xenerica.png new file mode 100644 index 000000000..d2a16597f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/asignacion-xenerica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/avance.png b/libreplan-webapp/src/main/webapp/help/zh/images/avance.png new file mode 100644 index 000000000..ee289e19c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/avanza.png b/libreplan-webapp/src/main/webapp/help/zh/images/avanza.png new file mode 100644 index 000000000..a51893f80 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/avanza.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/calendar-administration.png b/libreplan-webapp/src/main/webapp/help/zh/images/calendar-administration.png new file mode 100644 index 000000000..bb4e17032 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/calendar-administration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/calendar-create-derived.png b/libreplan-webapp/src/main/webapp/help/zh/images/calendar-create-derived.png new file mode 100644 index 000000000..9f01f2c33 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/calendar-create-derived.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/calendar-edition.png b/libreplan-webapp/src/main/webapp/help/zh/images/calendar-edition.png new file mode 100644 index 000000000..a98cc4454 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/calendar-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/calendar-exceptions.png b/libreplan-webapp/src/main/webapp/help/zh/images/calendar-exceptions.png new file mode 100644 index 000000000..c2a53a684 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/calendar-exceptions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/category-cost-edit.png b/libreplan-webapp/src/main/webapp/help/zh/images/category-cost-edit.png new file mode 100644 index 000000000..1755ee79e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/category-cost-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/category-cost-list.png b/libreplan-webapp/src/main/webapp/help/zh/images/category-cost-list.png new file mode 100644 index 000000000..1d7ff838c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/category-cost-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/company_view.png b/libreplan-webapp/src/main/webapp/help/zh/images/company_view.png new file mode 100644 index 000000000..c3a7631e6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/company_view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/contraste-avance.png b/libreplan-webapp/src/main/webapp/help/zh/images/contraste-avance.png new file mode 100644 index 000000000..831cceac3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/contraste-avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/default-calendar.png b/libreplan-webapp/src/main/webapp/help/zh/images/default-calendar.png new file mode 100644 index 000000000..6fd379d08 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/default-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/edicion-criterio.png b/libreplan-webapp/src/main/webapp/help/zh/images/edicion-criterio.png new file mode 100644 index 000000000..2b879ced5 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/edicion-criterio.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/hour-type-edit.png b/libreplan-webapp/src/main/webapp/help/zh/images/hour-type-edit.png new file mode 100644 index 000000000..4917b08a8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/hour-type-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/hour-type-list.png b/libreplan-webapp/src/main/webapp/help/zh/images/hour-type-list.png new file mode 100644 index 000000000..1872eb4f7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/hour-type-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/lista-criterios.png b/libreplan-webapp/src/main/webapp/help/zh/images/lista-criterios.png new file mode 100644 index 000000000..a2e7d03cb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/lista-criterios.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/logo.png b/libreplan-webapp/src/main/webapp/help/zh/images/logo.png new file mode 100644 index 000000000..4e7d02651 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/logo.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/logos.png b/libreplan-webapp/src/main/webapp/help/zh/images/logos.png new file mode 100644 index 000000000..7314a0759 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/logos.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/machine-calendar.png b/libreplan-webapp/src/main/webapp/help/zh/images/machine-calendar.png new file mode 100644 index 000000000..a725f67a2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/machine-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/machine-configuration.png b/libreplan-webapp/src/main/webapp/help/zh/images/machine-configuration.png new file mode 100644 index 000000000..0777473fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/machine-configuration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/machine-costcategory.png b/libreplan-webapp/src/main/webapp/help/zh/images/machine-costcategory.png new file mode 100644 index 000000000..b8414eac6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/machine-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/machine-criterions.png b/libreplan-webapp/src/main/webapp/help/zh/images/machine-criterions.png new file mode 100644 index 000000000..7c270bf35 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/machine-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/machine-data.png b/libreplan-webapp/src/main/webapp/help/zh/images/machine-data.png new file mode 100644 index 000000000..5edb47d12 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/machine-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/manage-user-profile.png b/libreplan-webapp/src/main/webapp/help/zh/images/manage-user-profile.png new file mode 100644 index 000000000..6a86064e2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/manage-user-profile.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/manage-user.png b/libreplan-webapp/src/main/webapp/help/zh/images/manage-user.png new file mode 100644 index 000000000..df59f1b7c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/manage-user.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/material.png b/libreplan-webapp/src/main/webapp/help/zh/images/material.png new file mode 100644 index 000000000..a77b5aa41 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/menu.png b/libreplan-webapp/src/main/webapp/help/zh/images/menu.png new file mode 100644 index 000000000..f4eec5250 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/menu.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/new-resource-calendar.png b/libreplan-webapp/src/main/webapp/help/zh/images/new-resource-calendar.png new file mode 100644 index 000000000..9040e0bc0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/new-resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/order-assigned-hours.png b/libreplan-webapp/src/main/webapp/help/zh/images/order-assigned-hours.png new file mode 100644 index 000000000..4fd629386 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/order-assigned-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/order-criterions.png b/libreplan-webapp/src/main/webapp/help/zh/images/order-criterions.png new file mode 100644 index 000000000..e59bd833f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/order-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/order-edition.png b/libreplan-webapp/src/main/webapp/help/zh/images/order-edition.png new file mode 100644 index 000000000..ff67134db Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/order-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/order-element-criterion.png b/libreplan-webapp/src/main/webapp/help/zh/images/order-element-criterion.png new file mode 100644 index 000000000..f167979b0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/order-element-criterion.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/order-element-edition.png b/libreplan-webapp/src/main/webapp/help/zh/images/order-element-edition.png new file mode 100644 index 000000000..66e5e8602 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/order-element-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/order-element-hours.png b/libreplan-webapp/src/main/webapp/help/zh/images/order-element-hours.png new file mode 100644 index 000000000..06cc1dc37 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/order-element-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/order-element-material-assign.png b/libreplan-webapp/src/main/webapp/help/zh/images/order-element-material-assign.png new file mode 100644 index 000000000..90f973766 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/order-element-material-assign.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/order-element-material-search.png b/libreplan-webapp/src/main/webapp/help/zh/images/order-element-material-search.png new file mode 100644 index 000000000..550f1d7fa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/order-element-material-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/order-element-quality.png b/libreplan-webapp/src/main/webapp/help/zh/images/order-element-quality.png new file mode 100644 index 000000000..3272ce70e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/order-element-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/order-element-tags.png b/libreplan-webapp/src/main/webapp/help/zh/images/order-element-tags.png new file mode 100644 index 000000000..e43a7d795 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/order-element-tags.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/order-elements-list.png b/libreplan-webapp/src/main/webapp/help/zh/images/order-elements-list.png new file mode 100644 index 000000000..271ac9bf6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/order-elements-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/order-labels.png b/libreplan-webapp/src/main/webapp/help/zh/images/order-labels.png new file mode 100644 index 000000000..076e0a745 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/order-labels.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/order-material.png b/libreplan-webapp/src/main/webapp/help/zh/images/order-material.png new file mode 100644 index 000000000..9197679e7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/order-material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/order-quality.png b/libreplan-webapp/src/main/webapp/help/zh/images/order-quality.png new file mode 100644 index 000000000..ee9e9027e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/order-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/order_list.png b/libreplan-webapp/src/main/webapp/help/zh/images/order_list.png new file mode 100644 index 000000000..72e70f3b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/order_list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/planning-view.png b/libreplan-webapp/src/main/webapp/help/zh/images/planning-view.png new file mode 100644 index 000000000..de74811eb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/planning-view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/quality.png b/libreplan-webapp/src/main/webapp/help/zh/images/quality.png new file mode 100644 index 000000000..1850f51b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/resource-assignment-generic.png b/libreplan-webapp/src/main/webapp/help/zh/images/resource-assignment-generic.png new file mode 100644 index 000000000..3519a5087 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/resource-assignment-generic.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/resource-assignment-planning.png b/libreplan-webapp/src/main/webapp/help/zh/images/resource-assignment-planning.png new file mode 100644 index 000000000..c4233780d Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/resource-assignment-planning.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/resource-assignment-search.png b/libreplan-webapp/src/main/webapp/help/zh/images/resource-assignment-search.png new file mode 100644 index 000000000..cae142d81 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/resource-assignment-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/resource-assignment-specific.png b/libreplan-webapp/src/main/webapp/help/zh/images/resource-assignment-specific.png new file mode 100644 index 000000000..8f7b1cba2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/resource-assignment-specific.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/resource-assignment.png b/libreplan-webapp/src/main/webapp/help/zh/images/resource-assignment.png new file mode 100644 index 000000000..427d25b79 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/resource-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/resource-calendar.png b/libreplan-webapp/src/main/webapp/help/zh/images/resource-calendar.png new file mode 100644 index 000000000..749c7b829 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/resource-load.png b/libreplan-webapp/src/main/webapp/help/zh/images/resource-load.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/resource-load.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/resources_global.png b/libreplan-webapp/src/main/webapp/help/zh/images/resources_global.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/resources_global.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/stretches.png b/libreplan-webapp/src/main/webapp/help/zh/images/stretches.png new file mode 100644 index 000000000..d661a63f6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/stretches.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/tag-types-edition.png b/libreplan-webapp/src/main/webapp/help/zh/images/tag-types-edition.png new file mode 100644 index 000000000..d366c09c2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/tag-types-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/tag-types-list.png b/libreplan-webapp/src/main/webapp/help/zh/images/tag-types-list.png new file mode 100644 index 000000000..e7de5048c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/tag-types-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/tipos-avances.png b/libreplan-webapp/src/main/webapp/help/zh/images/tipos-avances.png new file mode 100644 index 000000000..bb417f52c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/tipos-avances.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/virtual-resources.png b/libreplan-webapp/src/main/webapp/help/zh/images/virtual-resources.png new file mode 100644 index 000000000..3a54f95d3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/virtual-resources.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/work-report-hours.png b/libreplan-webapp/src/main/webapp/help/zh/images/work-report-hours.png new file mode 100644 index 000000000..568e9fed6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/work-report-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/work-report-type.png b/libreplan-webapp/src/main/webapp/help/zh/images/work-report-type.png new file mode 100644 index 000000000..2549d8b5e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/work-report-type.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/work-report-types.png b/libreplan-webapp/src/main/webapp/help/zh/images/work-report-types.png new file mode 100644 index 000000000..986f705aa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/work-report-types.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/worker-calendar.png b/libreplan-webapp/src/main/webapp/help/zh/images/worker-calendar.png new file mode 100644 index 000000000..1227969b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/worker-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/worker-costcategory.png b/libreplan-webapp/src/main/webapp/help/zh/images/worker-costcategory.png new file mode 100644 index 000000000..f330db68c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/worker-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/worker-criterions.png b/libreplan-webapp/src/main/webapp/help/zh/images/worker-criterions.png new file mode 100644 index 000000000..a131a29fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/worker-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/images/worker-personal-data.png b/libreplan-webapp/src/main/webapp/help/zh/images/worker-personal-data.png new file mode 100644 index 000000000..6a5033ba8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh/images/worker-personal-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh/index.html b/libreplan-webapp/src/main/webapp/help/zh/index.html new file mode 100644 index 000000000..7a9b74000 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/index.html @@ -0,0 +1,47 @@ + + + + + + +LibrePlan: User documentation + + + +
+

LibrePlan: User documentation

+ +images/logo.png +

Following document contains necessary help for using LibrePlan, the opensource web application for project planning.

+

This document is divided in three main sections:

+

First, global goals and behaviour.

+

Second, basic entities to understand the minimum concepts to use LibrePlan.

+

Finally, complete processes description to create orders, projects, project planning, resources assignment, advance assignment and result extraction.

+
    +
  1. Introduction
  2. +
  3. Criteria
  4. +
  5. Calendars
  6. +
  7. Progress
  8. +
  9. Resource Management
  10. +
  11. Orders and Order Elements
  12. +
  13. Task Planning
  14. +
  15. Resource Assignment
  16. +
  17. Work Reports
  18. +
  19. Labels
  20. +
  21. Materials Management
  22. +
  23. Quality Forms
  24. +
  25. User Management
  26. +
  27. Cost management
  28. +
  29. Reports
  30. +
  31. LDAP Configuration
  32. +
  33. Dashboards
  34. +
  35. Connectors
  36. +
  37. Scheduler
  38. +
  39. About
  40. +
  41. Subcontractor Work Description
  42. +
  43. PERT Chart
  44. +
  45. Task Subnets
  46. +
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh/lsr.css b/libreplan-webapp/src/main/webapp/help/zh/lsr.css new file mode 100644 index 000000000..ced6c967a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh/lsr.css @@ -0,0 +1,250 @@ +/* +Author: Peter Parente +Date: 2008/01/22 +Version: 1.0 +Copyright: This stylesheet has been placed in the public domain - free to edit and use for all uses. +*/ + +body { + font: 0.8em Verdana, Tahoma, sans-serif; + background: #ffffff; + color: black; + margin: 2em; +} + +p.topic-title { + font-weight: bold; +} + +table.docinfo { + text-align: left; + margin: 2em 0; +} + +a[href] { + color: #436976; + background-color: transparent; +} + +a.toc-backref { + text-decoration: none; +} + +h1 a[href] { + color: #003a6b; + text-decoration: none; + background-color: transparent; +} + +a.strong { + font-weight: bold; +} + +img { + margin: 0; + border: 0; +} + +p { + margin: 0.5em 0 1em 0; + line-height: 1.5em; +} + +p a:visited { + color: purple; + background-color: transparent; +} + +p a:active { + color: red; + background-color: transparent; +} + +a:hover { + text-decoration: none; +} + +p img { + border: 0; + margin: 0; +} + +p.rubric { + font-weight: bold; + font-style: italic; +} + +h1.title { + color: #003a6b; + font-size: 250%; + margin-bottom: 0; +} + +h2.subtitle { + color: #003a6b; + border-bottom: 0; +} + +h1, h2, h3, h4, h5, h6 { + color: #555; + background-color: transparent; + margin: 0; + padding-top: 0.5em; +} + +h1 { + font-size: 160%; + margin-bottom: 0.5em; + border-bottom: 2px solid #aaa; +} + +h2 { + font-size: 140%; + margin-bottom: 0.5em; + border-bottom: 1px solid #aaa; +} + +h3 { + font-size: 130%; + margin-bottom: 0.5em; +} + +h4 { + font-size: 110%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h5 { + font-size: 105%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h6 { + font-size: 100%; + font-weight: bold; + margin-bottom: 0.5em; +} + +dt { + font-style: italic; +} + +dd { + margin-bottom: 1.5em; +} + +div.admonition, div.note, div.tip, div.caution, div.important, div.warning { + margin: 2em 2em; + padding: 0 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +div.important { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +div.caution { + background: transparent url('../images/caution.png') 10px 2px no-repeat; +} + +div.note { + background: transparent url('../images/note.png') 10px 2px no-repeat; +} + +div.tip { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-example { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-critical-example { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +p.admonition-title { + font-weight: bold; + border-bottom: 1px solid #aaa; + padding-left: 30px; +} + +table.docutils { + text-align: left; + border: 1px solid gray; + border-collapse: collapse; + width: 100%; + margin: 1.5em 0; +} + +table.docutils caption { + font-style: italic; +} + +table.docutils td, table.docutils th { + padding: 0.25em 0.5em; +} + +table.docutils th { + background-color: #dddddd; +} + +div.sidebar { + width: 33%; + float: right; + margin: 0 2em; + padding: 0 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +p.sidebar-title { + margin-bottom: 0; + color: #003a6b; + border-bottom: 1px solid #aaa; + font-weight: bold; +} + +p.sidebar-subtitle { + margin-top: 0; + font-style: italic; + color: #003a6b; +} + +div.figure { + text-align: center; +} + +div.figure img { + background: #f8f8f8; + padding: 0.25em; + border: 1px solid #888; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +div.figure img:hover { + background: #e0e0e0; +} + +div.figure p.caption { + text-align: center; + margin-top: 0.1em; + font-style: italic; + color: #444; +} + +pre.literal-block { + padding: 0.15em; + background: #f8f8f8; + border: 1px solid #dfdfdf; + border-left: 0.25em solid #dfdfdf +} diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/01-introducion.html b/libreplan-webapp/src/main/webapp/help/zh_CN/01-introducion.html new file mode 100644 index 000000000..51e520ad7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/01-introducion.html @@ -0,0 +1,132 @@ + + + + + + +Introduction + + + +
+

Introduction

+ + +

This document describes the features of TASKPM and provides user information on how to configure and use the application.

+

TASKPM is an open-source web application for project planning. Its primary goal is to provide a comprehensive solution for company project management. For any specific information you may need about this software, please contact the development team at http://www.libreplan.com/contact/

+
+images/company_view.png +

Company Overview

+
+
+

Company Overview and View Management

+

As shown in the program's main screen (see the previous screenshot) and the company overview, users can view a list of planned projects. This allows them to understand the company's overall status regarding orders and resource utilization. The company overview offers three distinct views:

+
    +
  • Planning View: This view combines two perspectives:

    +
    +
      +
    • Order and Time Tracking: Each project is represented by a Gantt chart, indicating the project's start and end dates. This information is displayed alongside the agreed-upon deadline. A comparison is then made between the percentage of progress achieved and the actual time dedicated to each project. This provides a clear picture of the company's performance at any given time. This view is the program's default landing page.
    • +
    • Company Resource Utilization Graph: This graph displays information on resource allocation across projects, providing a summary of the entire company's resource usage. Green indicates that resource allocation is below 100% of capacity. The black line represents the total available resource capacity. Yellow indicates that resource allocation exceeds 100%. It's possible to have under-allocation overall while simultaneously experiencing over-allocation for specific resources.
    • +
    +
    +
  • +
  • Resource Load View: This screen displays a list of the company's workers and their specific task allocations, or generic allocations based on defined criteria. To access this view, click on Overall load of resources. See the following image for an example.

    +
  • +
  • Orders Administration View: This screen displays a list of company orders, allowing users to perform the following actions: filter, edit, delete, visualize planning, or create a new order. To access this view, click on Order list.

    +
  • +
+
+images/resources_global.png +

Resource Overview

+
+
+images/order_list.png +

Work Breakdown Structure

+
+

The view management described above for the company overview is very similar to the management available for a single project. A project can be accessed in several ways:

+
    +
  • Right-click on the Gantt chart for the order and select Plan.
  • +
  • Access the order list and click on the Gantt diagram icon.
  • +
  • Create a new order and change the current order view.
  • +
+

The program offers the following views for an order:

+
    +
  • Planning View: This view allows users to visualize task planning, dependencies, milestones, and more. See the Planning section for further details.
  • +
  • Resource Load View: This view allows users to check the designated resource load for a project. The color code is consistent with the company overview: green for a load less than 100%, yellow for a load equal to 100%, and red for a load over 100%. The load may originate from a specific task or a set of criteria (generic allocation).
  • +
  • Editing Order View: This view allows users to modify the details of the order. See the Orders section for more information.
  • +
  • Advanced Resource Allocation View: This view allows users to allocate resources with advanced options, such as specifying hours per day or the allocated functions to be performed. See the Resource allocation section for more information.
  • +
+
+
+

What Makes TASKPM Useful?

+

TASKPM is a general-purpose planning tool developed to address challenges in industrial project planning that were not adequately covered by existing tools. The development of TASKPM was also motivated by the desire to provide a free, open-source, and entirely web-based alternative to proprietary planning tools.

+

The core concepts underpinning the program are as follows:

+
    +
  • Company and Multi-Project Overview: TASKPM is specifically designed to provide users with information about multiple projects being carried out within a company. Therefore, it is inherently a multi-project program. The program's focus is not limited to individual projects, although specific views for individual projects are also available.
  • +
  • View Management: The company overview, or multi-project view, is accompanied by various views of the stored information. For example, the company overview allows users to view orders and compare their status, view the company's overall resource load, and manage orders. Users can also access the planning view, resource load view, advanced resource allocation view, and editing order view for individual projects.
  • +
  • Criteria: Criteria are a system entity that enables the classification of both resources (human and machine) and tasks. Resources must meet certain criteria, and tasks require specific criteria to be fulfilled. This is one of the program's most important features, as criteria form the basis of generic allocation and address a significant challenge in the industry: the time-consuming nature of human resource management and the difficulty of long-term company load estimations.
  • +
  • Resources: There are two types of resources: human and machine. Human resources are the company's workers, used for planning, monitoring, and controlling the company's workload. Machine resources, dependent on the people who operate them, function similarly to human resources.
  • +
  • Resource Allocation: A key feature of the program is the ability to designate resources in two ways: specifically and generically. Generic allocation is based on the criteria required to complete a task and must be fulfilled by resources capable of meeting those criteria. To understand generic allocation, consider this example: John Smith is a welder. Typically, John Smith would be specifically assigned to a planned task. However, TASKPM offers the option of selecting any welder within the company, without needing to specify that John Smith is the assigned person.
  • +
  • Company Load Control: The program allows for easy control of the company's resource load. This control extends to both the mid-term and long-term, as current and future projects can be managed within the program. TASKPM provides graphs that visually represent resource utilization.
  • +
  • Labels: Labels are used to categorize project tasks. With these labels, users can group tasks by concept, allowing for later review as a group or after filtering.
  • +
  • Filters: Because the system naturally includes elements that label or characterize tasks and resources, criteria filters or labels can be used. This is very useful for reviewing categorized information or generating specific reports based on criteria or labels.
  • +
  • Calendars: Calendars define the available productive hours for different resources. Users can create general company calendars or define more specific calendars, allowing for the creation of calendars for individual resources and tasks.
  • +
  • Orders and Order Elements: Work requested by clients is treated as an order within the application, structured into order elements. The order and its elements follow a hierarchical structure with x levels. This element tree forms the basis for work planning.
  • +
  • Progress: The program can manage various types of progress. A project's progress can be measured as a percentage, in units, against the agreed budget, and more. The responsibility for determining which type of progress to use for comparison at higher project levels lies with the planning manager.
  • +
  • Tasks: Tasks are the fundamental planning elements within the program. They are used to schedule work to be carried out. Key characteristics of tasks include: dependencies between tasks, and the potential requirement for specific criteria to be met before resources can be allocated.
  • +
  • Work Reports: These reports, submitted by the company's workers, detail the hours worked and the tasks associated with those hours. This information allows the system to calculate the actual time taken to complete a task compared to the budgeted time. Progress can then be compared against the actual hours used.
  • +
+

In addition to the core functions, TASKPM offers other features that distinguish it from similar programs:

+
    +
  • Integration with ERP: The program can directly import information from company ERP systems, including orders, human resources, work reports, and specific criteria.
  • +
  • Version Management: The program can manage multiple planning versions, while still allowing users to review the information from each version.
  • +
  • History Management: The program does not delete information; it only marks it as invalid. This allows users to review historical information using date filters.
  • +
+
+
+

Usability Conventions

+
+

Information About Forms

+

Before describing the various functions associated with the most important modules, we need to explain the general navigation and form behavior.

+

There are essentially three types of editing forms:

+
    +
  • Forms with a *Return* button: These forms are part of a larger context, and the changes made are stored in memory. The changes are only applied when the user explicitly saves all the details on the screen from which the form originated.
  • +
  • Forms with *Save* and *Close* buttons: These forms allow for two actions. The first saves the changes and closes the current window. The second closes the window without saving any changes.
  • +
  • Forms with *Save and continue*, *Save*, and *Close* buttons: These forms allow for three actions. The first saves the changes and keeps the current form open. The second saves the changes and closes the form. The third closes the window without saving any changes.
  • +
+
+
+

Standard Icons and Buttons

+
    +
  • Editing: In general, records in the program can be edited by clicking on an icon that looks like a pencil on a white notebook.
  • +
  • Left Indent: These operations are generally used for elements within a tree structure that need to be moved to a deeper level. This is done by clicking on the icon that looks like a green arrow pointing to the right.
  • +
  • Right Indent: These operations are generally used for elements within a tree structure that need to be moved to a higher level. This is done by clicking on the icon that looks like a green arrow pointing to the left.
  • +
  • Deleting: Users can delete information by clicking on the trash can icon.
  • +
  • Search: The magnifying glass icon indicates that the text field to its left is used for searching for elements.
  • +
+
+
+

Tabs

+

The program uses tabs to organize content editing and administration forms. This method is used to divide a comprehensive form into different sections, accessible by clicking on the tab names. The other tabs retain their current status. In all cases, the save and cancel options apply to all sub-forms within the different tabs.

+
+
+

Explicit Actions and Context Help

+

The program includes components that provide additional descriptions of elements when the mouse hovers over them for one second. The actions that the user can perform are indicated on the button labels, in the help texts associated with them, in the browsing menu options, and in the context menus that appear when right-clicking in the planner area. Furthermore, shortcuts are provided for the main operations, such as double-clicking on listed elements or using key events with the cursor and the Enter key to add elements when navigating through forms.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/02-criterios.html b/libreplan-webapp/src/main/webapp/help/zh_CN/02-criterios.html new file mode 100644 index 000000000..42fad10d3 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/02-criterios.html @@ -0,0 +1,69 @@ + + + + + + +Criteria + + + +
+

Criteria

+ +
+

Contents

+ +
+

Criteria are elements used within the program to categorize both resources and tasks. Tasks require specific criteria, and resources must meet those criteria.

+

Here's an example of how criteria are used: A resource is assigned the criterion "welder" (meaning the resource fulfills the "welder" category), and a task requires the "welder" criterion to be completed. Consequently, when resources are allocated to tasks using generic allocation (as opposed to specific allocation), workers with the "welder" criterion will be considered. For more information on the different types of allocation, refer to the chapter on resource allocation.

+

The program allows for several operations involving criteria:

+
    +
  • Criteria administration
  • +
  • Assigning criteria to resources
  • +
  • Assigning criteria to tasks
  • +
  • Filtering entities based on criteria. Tasks and order items can be filtered by criteria to perform various operations within the program.
  • +
+

This section will only explain the first function, criteria administration. The two types of allocation will be covered later: resource allocation in the "Resource Management" chapter, and filtering in the "Task Planning" chapter.

+
+

Criteria Administration

+

Criteria administration can be accessed through the administration menu:

+
+images/menu.png +

First-Level Menu Tabs

+
+

The specific operation for managing criteria is Manage criteria. This operation allows you to list the criteria available in the system.

+
+images/lista-criterios.png +

List of Criteria

+
+

You can access the create/edit criterion form by clicking the Create button. To edit an existing criterion, click the edit icon.

+
+images/edicion-criterio.png +

Editing Criteria

+
+

The criteria editing form, as shown in the previous image, allows you to perform the following operations:

+
    +
  • Edit the criterion's name.
  • +
  • Specify whether multiple values can be assigned simultaneously or only one value for the selected criterion type. For example, a resource could fulfill two criteria, "welder" and "lathe operator."
  • +
  • Specify the criterion type:
      +
    • Generic: A criterion that can be used for both machines and workers.
    • +
    • Worker: A criterion that can only be used for workers.
    • +
    • Machine: A criterion that can only be used for machines.
    • +
    +
  • +
  • Indicate whether the criterion is hierarchical. Sometimes, criteria need to be treated hierarchically. For example, assigning a criterion to an element does not automatically assign it to elements derived from it. A clear example of a hierarchical criterion is "location." For instance, a person designated with the location "Galicia" will also belong to "Spain."
  • +
  • Indicate whether the criterion is authorized. This is how users deactivate criteria. Once a criterion has been created and used in historical data, it cannot be changed. Instead, it can be deactivated to prevent it from appearing in selection lists.
  • +
  • Describe the criterion.
  • +
  • Add new values. A text entry field with the New criterion button is located in the second part of the form.
  • +
  • Edit the names of existing criteria values.
  • +
  • Move criteria values up or down in the list of current criteria values.
  • +
  • Remove a criterion value from the list.
  • +
+

The criteria administration form follows the form behavior described in the introduction, offering three actions: Save, Save and Close, and Close.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/03-calendarios.html b/libreplan-webapp/src/main/webapp/help/zh_CN/03-calendarios.html new file mode 100644 index 000000000..0d0bbf0d5 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/03-calendarios.html @@ -0,0 +1,187 @@ + + + + + + +Calendars + + + +
+

Calendars

+ + +

Calendars are entities within the program that define the working capacity of resources. A calendar consists of a series of days throughout the year, with each day divided into available working hours.

+

For example, a public holiday might have 0 available working hours. Conversely, a typical workday might have 8 hours designated as available working time.

+

There are two primary ways to define the number of working hours in a day:

+
    +
  • By Weekday: This method sets a standard number of working hours for each day of the week. For example, Mondays might typically have 8 working hours.
  • +
  • By Exception: This method allows for specific deviations from the standard weekday schedule. For example, Monday, January 30th, might have 10 working hours, overriding the standard Monday schedule.
  • +
+
+

Calendar Administration

+

The calendar system is hierarchical, allowing you to create base calendars and then derive new calendars from them, forming a tree structure. A calendar derived from a higher-level calendar will inherit its daily schedules and exceptions unless explicitly modified. To effectively manage calendars, it's important to understand the following concepts:

+
    +
  • Day Independence: Each day is treated independently, and each year has its own set of days. For example, if December 8th, 2009, is a public holiday, this does not automatically mean that December 8th, 2010, is also a public holiday.
  • +
  • Weekday-Based Working Days: Standard working days are based on weekdays. For example, if Mondays typically have 8 working hours, then all Mondays in all weeks of all years will have 8 available hours unless an exception is defined.
  • +
  • Exceptions and Exception Periods: You can define exceptions or exception periods to deviate from the standard weekday schedule. For example, you can specify a single day or a range of days with a different number of available working hours than the general rule for those weekdays.
  • +
+
+images/calendar-administration.png +

Calendar Administration

+
+

Calendar administration is accessible through the "Administration" menu. From there, users can perform the following actions:

+
    +
  1. Create a new calendar from scratch.
  2. +
  3. Create a calendar derived from an existing one.
  4. +
  5. Create a calendar as a copy of an existing one.
  6. +
  7. Edit an existing calendar.
  8. +
+
+

Creating a New Calendar

+

To create a new calendar, click the "Create" button. The system will display a form where you can configure the following:

+
    +
  • Select the Tab: Choose the tab you want to work on:
      +
    • Marking Exceptions: Define exceptions to the standard schedule.
    • +
    • Working Hours per Day: Define the standard working hours for each weekday.
    • +
    +
  • +
  • Marking Exceptions: If you select the "Marking Exceptions" option, you can:
      +
    • Select a specific day on the calendar.
    • +
    • Select the type of exception. The available types are: holiday, illness, strike, public holiday, and working holiday.
    • +
    • Select the end date of the exception period. (This field does not need to be changed for single-day exceptions.)
    • +
    • Define the number of working hours during the days of the exception period.
    • +
    • Delete previously defined exceptions.
    • +
    +
  • +
  • Working Hours per Day: If you select the "Working Hours per Day" option, you can:
      +
    • Define the available working hours for each weekday (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, and Sunday).
    • +
    • Define different weekly hour distributions for future periods.
    • +
    • Delete previously defined hour distributions.
    • +
    +
  • +
+

These options allow users to fully customize calendars according to their specific needs. Click the "Save" button to store any changes made to the form.

+
+images/calendar-edition.png +

Editing Calendars

+
+
+images/calendar-exceptions.png +

Adding an Exception to a Calendar

+
+
+
+

Creating Derived Calendars

+

A derived calendar is created based on an existing calendar. It inherits all the features of the original calendar, but you can modify it to include different options.

+

A common use case for derived calendars is when you have a general calendar for a country, such as Spain, and you need to create a derived calendar to include additional public holidays specific to a region, such as Galicia.

+

It's important to note that any changes made to the original calendar will automatically propagate to the derived calendar, unless a specific exception has been defined in the derived calendar. For example, the calendar for Spain might have an 8-hour working day on May 17th. However, the calendar for Galicia (a derived calendar) might have no working hours on that same day because it's a regional public holiday. If the Spanish calendar is later changed to have 4 available working hours per day for the week of May 17th, the Galician calendar will also change to have 4 available working hours for every day in that week, except for May 17th, which will remain a non-working day due to the defined exception.

+
+images/calendar-create-derived.png +

Creating a Derived Calendar

+
+

To create a derived calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Calendar administration option.
  • +
  • Select the calendar you want to use as the basis for the derived calendar and click the "Create" button.
  • +
  • The system will display an editing form with the same characteristics as the form used to create a calendar from scratch, except that the proposed exceptions and the working hours per weekday will be based on the original calendar.
  • +
+
+
+

Creating a Calendar by Copying

+

A copied calendar is an exact duplicate of an existing calendar. It inherits all the features of the original calendar, but you can modify it independently.

+

The key difference between a copied calendar and a derived calendar is how they are affected by changes to the original. If the original calendar is modified, the copied calendar remains unchanged. However, derived calendars are affected by changes made to the original, unless an exception is defined.

+

A common use case for copied calendars is when you have a calendar for one location, such as "Pontevedra," and you need a similar calendar for another location, such as "A Coruña," where most of the features are the same. However, changes to one calendar should not affect the other.

+

To create a copied calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Calendar administration option.
  • +
  • Select the calendar you want to copy and click the "Create" button.
  • +
  • The system will display an editing form with the same characteristics as the form used to create a calendar from scratch, except that the proposed exceptions and the working hours per weekday will be based on the original calendar.
  • +
+
+
+

Default Calendar

+

One of the existing calendars can be designated as the default calendar. This calendar will be automatically assigned to any entity in the system that is managed with calendars unless a different calendar is specified.

+

To set up a default calendar:

+
    +
  • Go to the Administration menu.
  • +
  • Click the Configuration option.
  • +
  • In the Default calendar field, select the calendar you want to use as the program's default calendar.
  • +
  • Click Save.
  • +
+
+images/default-calendar.png +

Setting a Default Calendar

+
+
+
+

Assigning a Calendar to Resources

+

Resources can only be activated (i.e., have available working hours) if they have an assigned calendar with a valid activation period. If no calendar is assigned to a resource, the default calendar is assigned automatically, with an activation period that begins on the start date and has no expiry date.

+
+images/resource-calendar.png +

Resource Calendar

+
+

However, you can delete the calendar that has been previously assigned to a resource and create a new calendar based on an existing one. This allows for complete customization of calendars for individual resources.

+

To assign a calendar to a resource:

+
    +
  • Go to the Edit resources option.
  • +
  • Select a resource and click Edit.
  • +
  • Select the "Calendar" tab.
  • +
  • The calendar, along with its exceptions, working hours per day, and activation periods, will be displayed.
  • +
  • Each tab will have the following options:
      +
    • Exceptions: Define exceptions and the period to which they apply, such as holidays, public holidays, or different workdays.
    • +
    • Working Week: Modify the working hours for each weekday (Monday, Tuesday, etc.).
    • +
    • Activation Periods: Create new activation periods to reflect the start and end dates of contracts associated with the resource. See the following image.
    • +
    +
  • +
  • Click Save to store the information.
  • +
  • Click Delete if you want to change the calendar assigned to a resource.
  • +
+
+images/new-resource-calendar.png +

Assigning a New Calendar to a Resource

+
+
+
+

Assigning Calendars to Orders

+

Projects can have a different calendar than the default calendar. To change the calendar for an order:

+
    +
  • Access the order list in the company overview.
  • +
  • Edit the order in question.
  • +
  • Access the "General information" tab.
  • +
  • Select the calendar to be assigned from the drop-down menu.
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+

Assigning Calendars to Tasks

+

Similar to resources and orders, you can assign specific calendars to individual tasks. This allows you to define different calendars for specific stages of a project. To assign a calendar to a task:

+
    +
  • Access the planning view of a project.
  • +
  • Right-click the task to which you want to assign a calendar.
  • +
  • Select the "Assign calendar" option.
  • +
  • Select the calendar to be assigned to the task.
  • +
  • Click Accept.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/04-avances.html b/libreplan-webapp/src/main/webapp/help/zh_CN/04-avances.html new file mode 100644 index 000000000..615d6109f --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/04-avances.html @@ -0,0 +1,97 @@ + + + + + + +Progress + + + +
+

Progress

+ + +

Project progress indicates the degree to which the estimated completion time of the project is being met. Task progress indicates the degree to which the task is being completed according to its estimated completion.

+

Generally, progress cannot be measured automatically. A staff member with experience or a checklist must determine the degree of completion for a task or project.

+

It's important to note the distinction between the hours assigned to a task or project and the progress of that task or project. While the number of hours used may be more or less than expected, the project may be ahead of or behind its estimated completion on the monitored day. Several situations can arise from these two measurements:

+
    +
  • Fewer hours consumed than expected, but the project is behind schedule: Progress is lower than estimated for the monitored day.
  • +
  • Fewer hours consumed than expected, and the project is ahead of schedule: Progress is higher than estimated for the monitored day.
  • +
  • More hours consumed than expected, and the project is behind schedule: Progress is lower than estimated for the monitored day.
  • +
  • More hours consumed than expected, but the project is ahead of schedule: Progress is higher than estimated for the monitored day.
  • +
+

The planning view allows you to compare these situations by using information about the progress made and the hours used. This chapter will explain how to enter information to monitor progress.

+

The philosophy behind progress monitoring is based on users defining the level at which they want to monitor their projects. For example, if users want to monitor orders, they only need to enter information for level-1 elements. If they want more precise monitoring at the task level, they must enter progress information at lower levels. The system will then aggregate the data upward through the hierarchy.

+
+

Managing Progress Types

+

Companies have varying needs when monitoring project progress, particularly the tasks involved. Therefore, the system includes "progress types." Users can define different progress types to measure a task's progress. For example, a task can be measured as a percentage, but this percentage can also be translated into progress in Tonnes based on the agreement with the client.

+

A progress type has a name, a maximum value, and a precision value:

+
    +
  • Name: A descriptive name that users will recognize when selecting the progress type. This name should clearly indicate what kind of progress is being measured.
  • +
  • Maximum Value: The maximum value that can be established for a task or project as the total progress measurement. For example, if you're working with Tonnes and the normal maximum is 4000 tonnes, and no task will ever require more than 4000 tonnes of any material, then 4000 would be the maximum value.
  • +
  • Precision Value: The increment value allowed for the progress type. For example, if progress in Tonnes is to be measured in whole numbers, the precision value would be 1. From that point on, only whole numbers can be entered as progress measurements (e.g., 1, 2, 300).
  • +
+

The system has two default progress types:

+
    +
  • Percentage: A general progress type that measures the progress of a project or task based on an estimated completion percentage. For example, a task is 30% complete out of the 100% estimated for a specific day.
  • +
  • Units: A general progress type that measures progress in units without specifying the type of unit. For example, a task involves creating 3000 units, and the progress is 500 units out of the total of 3000.
  • +
+
+images/tipos-avances.png +

Administration of Progress Types

+
+

Users can create new progress types as follows:

+
    +
  • Go to the "Administration" section.
  • +
  • Click the "Manage types of progress" option in the second-level menu.
  • +
  • The system will display a list of existing progress types.
  • +
  • For each progress type, users can:
      +
    • Edit
    • +
    • Delete
    • +
    +
  • +
  • Users can then create a new progress type.
  • +
  • When editing or creating a progress type, the system displays a form with the following information:
      +
    • Name of the progress type.
    • +
    • Maximum value allowed for the progress type.
    • +
    • Precision value for the progress type.
    • +
    +
  • +
+
+
+

Entering Progress Based on Type

+

Progress is entered for order elements, but it can also be entered using a shortcut from the planning tasks. Users are responsible for deciding which progress type to associate with each order element.

+

Users can enter a single, default progress type for the entire order.

+

Before measuring progress, users must associate the chosen progress type with the order. For example, they might choose percentage progress to measure progress on the entire task or an agreed progress rate if progress measurements agreed upon with the client will be entered in the future.

+
+images/avance.png +

Progress Entry Screen with Graphic Visualization

+
+

To enter progress measurements:

+
    +
  • Select the progress type to which the progress will be added. +* If no progress type exists, a new one must be created.
  • +
  • In the form that appears under the "Value" and "Date" fields, enter the absolute value of the measurement and the date of the measurement.
  • +
  • The system automatically stores the entered data.
  • +
+
+
+

Comparing Progress for an Order Element

+

Users can graphically compare the progress made on orders with the measurements taken. All progress types have a column with a check button ("Show"). When this button is selected, the progress chart of measurements taken is displayed for the order element.

+
+images/contraste-avance.png +

Comparison of Several Progress Types

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/05-recursos.html b/libreplan-webapp/src/main/webapp/help/zh_CN/05-recursos.html new file mode 100644 index 000000000..07190538a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/05-recursos.html @@ -0,0 +1,186 @@ + + + + + + +Resource Management + + + +
+

Resource Management

+ + +

The program manages two distinct types of resources: staff and machines.

+
+

Staff Resources

+

Staff resources represent the company's workers. Their key characteristics are:

+
    +
  • They fulfill one or more generic or worker-specific criteria.
  • +
  • They can be specifically assigned to a task.
  • +
  • They can be assigned generically to a task that requires a resource criterion.
  • +
  • They can have a default or a specific calendar, as needed.
  • +
+
+
+

Machine Resources

+

Machine resources represent the company's machinery. Their key characteristics are:

+
    +
  • They fulfill one or more generic or machine-specific criteria.
  • +
  • They can be specifically assigned to a task.
  • +
  • They can be assigned generically to a task that requires a machine criterion.
  • +
  • They can have a default or a specific calendar, as needed.
  • +
  • The program includes a configuration screen where an alpha value can be defined to represent the machine/worker ratio.
      +
    • The alpha value indicates the amount of worker time required to operate the machine. For example, an alpha value of 0.5 means that every 8 hours of machine operation requires 4 hours of a worker's time.
    • +
    • Users can assign an alpha value specifically to a worker, designating that worker to operate the machine for that percentage of time.
    • +
    • Users can also make a generic assignment based on a criterion, so that a percentage of use is assigned to all resources that meet that criterion and have available time. Generic assignment works similarly to generic assignment for tasks, as described previously.
    • +
    +
  • +
+
+
+

Managing Resources

+

Users can create, edit, and deactivate (but not permanently delete) workers and machines within the company by navigating to the "Resources" section. This section provides the following features:

+
    +
  • List of Workers: Displays a numbered list of workers, allowing users to manage their details.
  • +
  • List of Machines: Displays a numbered list of machines, allowing users to manage their details.
  • +
+
+

Managing Workers

+

Worker management is accessed by going to the "Resources" section and then selecting "List of workers." Users can edit any worker in the list by clicking the standard edit icon.

+

When editing a worker, users can access the following tabs:

+
    +
  1. Worker Details: This tab allows users to edit the worker's basic identification details:

    +
      +
    • Name
    • +
    • Surname(s)
    • +
    • National ID document (DNI)
    • +
    • Queue-based resource (see section on Queue-based Resources)
    • +
    +
    +images/worker-personal-data.png +

    Editing Workers' Personal Details

    +
    +
  2. +
  3. Criteria: This tab is used to configure the criteria that a worker fulfills. Users can assign any worker or generic criteria they deem appropriate. It's crucial for workers to fulfill criteria to maximize the program's functionality. To assign criteria:

    +
      +
    1. Click the "Add criteria" button.
    2. +
    3. Search for the criterion to be added and select the most appropriate one.
    4. +
    5. Click the "Add" button.
    6. +
    7. Select the start date when the criterion becomes applicable.
    8. +
    9. Select the end date for applying the criterion to the resource. This date is optional if the criterion is considered indefinite.
    10. +
    +
    +images/worker-criterions.png +

    Associating Criteria with Workers

    +
    +
  4. +
  5. Calendar: This tab allows users to configure a specific calendar for the worker. All workers have a default calendar assigned; however, it's possible to assign a specific calendar to each worker based on an existing calendar.

    +
    +images/worker-calendar.png +

    Calendar Tab for a Resource

    +
    +
  6. +
  7. Cost Category: This tab allows users to configure the cost category that a worker fulfills during a given period. This information is used to calculate the costs associated with a worker on a project.

    +
    +images/worker-costcategory.png +

    Cost Category Tab for a Resource

    +
    +
  8. +
+

Resource assignment is explained in the "Resource Assignment" section.

+
+
+

Managing Machines

+

Machines are treated as resources for all purposes. Therefore, similar to workers, machines can be managed and assigned to tasks. Resource assignment is covered in the "Resource Assignment" section, which will explain the specific features of machines.

+

Machines are managed from the "Resources" menu entry. This section has an operation called "Machine list," which displays the company's machines. Users can edit or delete a machine from this list.

+

When editing machines, the system displays a series of tabs for managing different details:

+
    +
  1. Machine Details: This tab allows users to edit the machine's identification details:

    +
      +
    1. Name
    2. +
    3. Machine code
    4. +
    5. Description of the machine
    6. +
    +
    +images/machine-data.png +

    Editing Machine Details

    +
    +
  2. +
  3. Criteria: As with worker resources, this tab is used to add criteria that the machine fulfills. Two types of criteria can be assigned to machines: machine-specific or generic. Worker criteria cannot be assigned to machines. To assign criteria:

    +
      +
    1. Click the "Add criteria" button.
    2. +
    3. Search for the criterion to be added and select the most appropriate one.
    4. +
    5. Select the start date when the criterion becomes applicable.
    6. +
    7. Select the end date for applying the criterion to the resource. This date is optional if the criterion is considered indefinite.
    8. +
    9. Click the "Save and continue" button.
    10. +
    +
    +images/machine-criterions.png +

    Assigning Criteria to Machines

    +
    +
  4. +
  5. Calendar: This tab allows users to configure a specific calendar for the machine. All machines have a default calendar assigned; however, it's possible to assign a specific calendar to each machine based on an existing calendar.

    +
    +images/machine-calendar.png +

    Assigning Calendars to Machines

    +
    +
  6. +
  7. Machine Configuration: This tab allows users to configure the ratio of machines to worker resources. A machine has an alpha value that indicates the machine/worker ratio. As mentioned previously, an alpha value of 0.5 indicates that 0.5 people are required for each full day of machine operation. Based on the alpha value, the system automatically assigns workers who are associated with the machine once the machine is assigned to a task. Associating a worker with a machine can be done in two ways:

    +
      +
    1. Specific Assignment: Assign a range of dates during which the worker is assigned to the machine. This is a specific assignment, as the system automatically assigns hours to the worker when the machine is scheduled.
    2. +
    3. Generic Assignment: Assign criteria that must be fulfilled by workers assigned to the machine. This creates a generic assignment of workers who meet the criteria.
    4. +
    +
    +images/machine-configuration.png +

    Configuration of Machines

    +
    +
  8. +
  9. Cost Category: This tab allows users to configure the cost category that a machine fulfills during a given period. This information is used to calculate the costs associated with a machine on a project.

    +
    +images/machine-costcategory.png +

    Assigning Cost Categories to Machines

    +
    +
  10. +
+
+
+

Virtual Worker Groups

+

The program allows users to create virtual worker groups, which are not real workers but simulated staff. These groups enable users to model increased production capacity at specific times, based on the calendar settings.

+

Virtual worker groups allow users to assess how project planning would be affected by hiring and assigning staff who meet specific criteria, thus aiding in the decision-making process.

+

The tabs for creating virtual worker groups are the same as those for configuring workers:

+
    +
  • General Details
  • +
  • Assigned Criteria
  • +
  • Calendars
  • +
  • Associated Hours
  • +
+

The difference between virtual worker groups and actual workers is that virtual worker groups have a name for the group and a quantity, which represents the number of real people in the group. There is also a field for comments, where additional information can be provided, such as which project would require hiring equivalent to the virtual worker group.

+
+images/virtual-resources.png +

Virtual Resources

+
+
+
+

Queue-based Resources

+

Queue-based resources are a specific type of productive element that can either be unassigned or have 100% dedication. In other words, they cannot have more than one task scheduled at the same time, nor can they be over-allocated.

+

For each queue-based resource, a queue is automatically created. The tasks scheduled for these resources can be managed specifically using the provided assignment methods, creating automatic assignments between tasks and queues that match the required criteria, or by moving tasks between queues.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/06-pedidos.html b/libreplan-webapp/src/main/webapp/help/zh_CN/06-pedidos.html new file mode 100644 index 000000000..87fd79071 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/06-pedidos.html @@ -0,0 +1,315 @@ + + + + + + +Orders and Order Elements + + + +
+

Orders and Order Elements

+ + +

Orders represent the work to be performed by users of the program. Each order corresponds to a project that the company will offer to its clients.

+

An order consists of one or more order elements. Each order element represents a specific part of the work to be done and defines how the work on the order should be planned and executed. Order elements are organized hierarchically, with no limitations on the depth of the hierarchy. This hierarchical structure allows for the inheritance of certain features, such as labels.

+

The following sections describe the operations that users can perform with orders and order elements.

+
+

Orders

+

An order represents a project or work requested by a client from the company. The order identifies the project within the company's planning. Unlike comprehensive management programs, TASKPM only requires certain key details for an order. These details are:

+
    +
  • Order Name: The name of the order.
  • +
  • Order Code: A unique code for the order.
  • +
  • Total Order Amount: The total financial value of the order.
  • +
  • Estimated Start Date: The planned start date for the order.
  • +
  • End Date: The planned completion date for the order.
  • +
  • Person in Charge: The individual responsible for the order.
  • +
  • Description: A description of the order.
  • +
  • Assigned Calendar: The calendar associated with the order.
  • +
  • Automatic Generation of Codes: A setting to instruct the system to automatically generate codes for order elements and hour groups.
  • +
  • Preference between Dependencies and Restrictions: Users can choose whether dependencies or restrictions take priority in case of conflicts.
  • +
+

However, a complete order also includes other associated entities:

+
    +
  • Hours Assigned to the Order: The total hours allocated to the order.
  • +
  • Progress Attributed to the Order: The progress made on the order.
  • +
  • Labels: Labels assigned to the order.
  • +
  • Criteria Assigned to the Order: Criteria associated with the order.
  • +
  • Materials: Materials required for the order.
  • +
  • Quality Forms: Quality forms associated with the order.
  • +
+

Creating or editing an order can be done from several locations within the program:

+
    +
  • From the "Order List" in the Company Overview:
      +
    • Editing: Click the edit button on the desired order.
    • +
    • Creating: Click "New order."
    • +
    +
  • +
  • From an Order in the Gantt Chart: Change to the order details view.
  • +
+

Users can access the following tabs when editing an order:

+
    +
  • Editing Order Details: This screen allows users to edit basic order details:

    +
      +
    • Name
    • +
    • Code
    • +
    • Estimated Start Date
    • +
    • End Date
    • +
    • Person in Charge
    • +
    • Client
    • +
    • Description
    • +
    +
    +images/order-edition.png +

    Editing Orders

    +
    +
  • +
  • Order Element List: This screen allows users to perform several operations on order elements:

    +
      +
    • Creating new order elements.
    • +
    • Promoting an order element one level up in the hierarchy.
    • +
    • Demoting an order element one level down in the hierarchy.
    • +
    • Indenting an order element (moving it down the hierarchy).
    • +
    • Unindenting an order element (moving it up the hierarchy).
    • +
    • Filtering order elements.
    • +
    • Deleting order elements.
    • +
    • Moving an element within the hierarchy by dragging and dropping.
    • +
    +
    +images/order-elements-list.png +

    Order Element List

    +
    +
  • +
  • Assigned Hours: This screen displays the total hours attributed to the project, grouping the hours entered in the order elements.

    +
    +images/order-assigned-hours.png +

    Assigning Hours Attributed to the Order by Workers

    +
    +
  • +
  • Progress: This screen allows users to assign progress types and enter progress measurements for the order. See the "Progress" section for more details.

    +
  • +
  • Labels: This screen allows users to assign labels to an order and view previously assigned direct and indirect labels. See the following section on editing order elements for a detailed description of label management.

    +
    +images/order-labels.png +

    Order Labels

    +
    +
  • +
  • Criteria: This screen allows users to assign criteria that will apply to all tasks within the order. These criteria will be automatically applied to all order elements, except those that have been explicitly invalidated. The hour groups of order elements, which are grouped by criteria, can also be viewed, allowing users to identify the criteria required for an order.

    +
    +images/order-criterions.png +

    Order Criteria

    +
    +
  • +
  • Materials: This screen allows users to assign materials to orders. Materials can be selected from the available material categories in the program. Materials are managed as follows:

    +
      +
    • Select the "Search materials" tab at the bottom of the screen.
    • +
    • Enter text to search for materials or select the categories for which you want to find materials.
    • +
    • The system filters the results.
    • +
    • Select the desired materials (multiple materials can be selected by pressing the "Ctrl" key).
    • +
    • Click "Assign."
    • +
    • The system displays the list of materials already assigned to the order.
    • +
    • Select the units and the status to assign to the order.
    • +
    • Click "Save" or "Save and continue."
    • +
    • To manage the receipt of materials, click "Divide" to change the status of a partial quantity of material.
    • +
    +
    +images/order-material.png +

    Materials Associated with an Order

    +
    +
  • +
  • Quality: Users can assign a quality form to the order. This form is then completed to ensure that certain activities associated with the order are carried out. See the following section on editing order elements for details on managing quality forms.

    +
    +images/order-quality.png +

    Quality Form Associated with the Order

    +
    +
  • +
+
+
+

Editing Order Elements

+

Order elements are edited from the "Order element list" tab by clicking the edit icon. This opens a new screen where users can:

+
    +
  • Edit information about the order element.
  • +
  • View hours attributed to order elements.
  • +
  • Manage progress of order elements.
  • +
  • Manage order labels.
  • +
  • Manage criteria required by the order element.
  • +
  • Manage materials.
  • +
  • Manage quality forms.
  • +
+

The following subsections describe each of these operations in detail.

+
+

Editing Information about the Order Element

+

Editing information about the order element includes modifying the following details:

+
    +
  • Order Element Name: The name of the order element.
  • +
  • Order Element Code: A unique code for the order element.
  • +
  • Start Date: The planned start date of the order element.
  • +
  • Estimated End Date: The planned completion date of the order element.
  • +
  • Total Hours: The total hours allocated to the order element. These hours can be calculated from the added hour groups or entered directly. If entered directly, the hours must be distributed among the hour groups, and a new hour group created if the percentages do not match the initial percentages.
  • +
  • Hour Groups: One or more hour groups can be added to the order element. The purpose of these hour groups is to define the requirements for the resources that will be assigned to perform the work.
  • +
  • Criteria: Criteria can be added that must be met to enable generic assignment for the order element.
  • +
+
+images/order-element-edition.png +

Editing Order Elements

+
+
+
+

Viewing Hours Attributed to Order Elements

+

The "Assigned hours" tab allows users to view the work reports associated with an order element and see how many of the estimated hours have already been completed.

+
+images/order-element-hours.png +

Hours Assigned to Order Elements

+
+

The screen is divided into two parts:

+
    +
  • Work Report List: Users can view the list of work reports associated with the order element, including the date and time, resource, and number of hours devoted to the task.
  • +
  • Use of Estimated Hours: The system calculates the total number of hours devoted to the task and compares them with the estimated hours.
  • +
+
+
+

Managing Progress of Order Elements

+

Entering progress types and managing order element progress is described in the "Progress" chapter.

+
+
+

Managing Order Labels

+

Labels, as described in the chapter on labels, allow users to categorize order elements. This enables users to group planning or order information based on these labels.

+

Users can assign labels directly to an order element or to a higher-level order element in the hierarchy. Once a label is assigned using either method, the order element and the related planning task are associated with the label and can be used for subsequent filtering.

+
+images/order-element-tags.png +

Assigning Labels for Order Elements

+
+

As shown in the image, users can perform the following actions from the Labels tab:

+
    +
  • View Inherited Labels: View labels associated with the order element that were inherited from a higher-level order element. The planning task associated with each order element has the same associated labels.
  • +
  • View Directly Assigned Labels: View labels directly associated with the order element using the assignment form for lower-level labels.
  • +
  • Assign Existing Labels: Assign labels by searching for them among the available labels in the form below the direct label list. To search for a label, click the magnifying glass icon or enter the first letters of the label in the text box to display the available options.
  • +
  • Create and Assign New Labels: Create new labels associated with an existing label type from this form. To do this, select a label type and enter the label value for the selected type. The system automatically creates the label and assigns it to the order element when "Create and assign" is clicked.
  • +
+
+
+

Managing Criteria Required by the Order Element and Hour Groups

+

Both an order and an order element can have criteria assigned that must be met for the work to be performed. Criteria can be direct or indirect:

+
    +
  • Direct Criteria: These are assigned directly to the order element. They are criteria required by the hour groups on the order element.
  • +
  • Indirect Criteria: These are assigned to higher-level order elements in the hierarchy and are inherited by the element being edited.
  • +
+

In addition to the required criteria, one or more hour groups that are part of the order element can be defined. This depends on whether the order element contains other order elements as child nodes or if it is a leaf node. In the first case, information about hours and hour groups can only be viewed. However, leaf nodes can be edited. Leaf nodes work as follows:

+
    +
  • The system creates a default hour group associated with the order element. The details that can be modified for an hour group are:
      +
    • Code: The code for the hour group (if not automatically generated).
    • +
    • Criterion Type: Users can choose to assign a machine or worker criterion.
    • +
    • Number of Hours: The number of hours in the hour group.
    • +
    • List of Criteria: The criteria to be applied to the hour group. To add new criteria, click "Add criterion" and select one from the search engine that appears after clicking the button.
    • +
    +
  • +
  • Users can add new hour groups with different features than previous hour groups. For example, an order element might require a welder (30 hours) and a painter (40 hours).
  • +
+
+images/order-element-criterion.png +

Assigning Criteria to Order Elements

+
+
+
+

Managing Materials

+

Materials are managed in projects as a list associated with each order element or an order in general. The list of materials includes the following fields:

+
    +
  • Code: The material code.
  • +
  • Date: The date associated with the material.
  • +
  • Units: The required number of units.
  • +
  • Unit Type: The type of unit used to measure the material.
  • +
  • Unit Price: The price per unit.
  • +
  • Total Price: The total price (calculated by multiplying the unit price by the number of units).
  • +
  • Category: The category to which the material belongs.
  • +
  • Status: The status of the material (e.g., Received, Requested, Pending, Processing, Cancelled).
  • +
+

Working with materials is done as follows:

+
    +
  • Select the "Materials" tab on an order element.
  • +
  • The system displays two sub-tabs: "Materials" and "Search materials."
  • +
  • If the order element has no assigned materials, the first tab will be empty.
  • +
  • Click "Search materials" in the lower-left part of the window.
  • +
  • The system displays the list of available categories and associated materials.
  • +
+
+images/order-element-material-search.png +

Searching for Materials

+
+
    +
  • Select categories to refine the material search.
  • +
  • The system displays the materials that belong to the selected categories.
  • +
  • From the materials list, select the materials to assign to the order element.
  • +
  • Click "Assign."
  • +
  • The system displays the selected list of materials on the "Materials" tab with new fields to complete.
  • +
+
+images/order-element-material-assign.png +

Assigning Materials to Order Elements

+
+
    +
  • Select the units, status, and date for the assigned materials.
  • +
+

For subsequent monitoring of materials, it's possible to change the status of a group of units of the received material. This is done as follows:

+
    +
  • Click the "Divide" button on the list of materials to the right of each row.
  • +
  • Select the number of units to divide the row into.
  • +
  • The program displays two rows with the material divided.
  • +
  • Change the status of the row containing the material.
  • +
+

The advantage of using this dividing tool is the ability to receive partial deliveries of material without having to wait for the entire delivery to mark it as received.

+
+
+

Managing Quality Forms

+

Some order elements require certification that certain tasks have been completed before they can be marked as complete. This is why the program has quality forms, which consist of a list of questions that are considered important if answered positively.

+

It's important to note that a quality form must be created beforehand to be assigned to an order element.

+

To manage quality forms:

+
    +
  • Go to the "Quality forms" tab.

    +
    +images/order-element-quality.png +

    Assigning Quality Forms to Order Elements

    +
    +
  • +
  • The program has a search engine for quality forms. There are two types of quality forms: by element or by percentage.

    +
      +
    • Element: Each element is independent.
    • +
    • Percentage: Each question increases the progress of the order element by a percentage. The percentages must be able to add up to 100%.
    • +
    +
  • +
  • Select one of the forms created in the administration interface and click "Assign."

    +
  • +
  • The program assigns the chosen form from the list of forms assigned to the order element.

    +
  • +
  • Click the "Edit" button on the order element.

    +
  • +
  • The program displays the questions from the quality form in the lower list.

    +
  • +
  • Mark the questions that have been completed as achieved.

    +
      +
    • If the quality form is based on percentages, the questions are answered in order.
    • +
    • If the quality form is based on elements, the questions can be answered in any order.
    • +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/07-planificacion.html b/libreplan-webapp/src/main/webapp/help/zh_CN/07-planificacion.html new file mode 100644 index 000000000..7b8954f83 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/07-planificacion.html @@ -0,0 +1,117 @@ + + + + + + +Task Planning + + + +
+

Task Planning

+ + +
+

Task Planning

+

Planning in TASKPM is a process that has been described throughout the user guide, with the chapters on orders and resource assignment being particularly important. This chapter describes the basic planning procedures after the order and Gantt charts have been properly configured.

+
+images/planning-view.png +

Work Planning View

+
+

As with the company overview, the project planning view is divided into several views based on the information being analyzed. The views available for a specific project are:

+
    +
  • Planning View
  • +
  • Resource Load View
  • +
  • Order List View
  • +
  • Advanced Assignment View
  • +
+
+

Planning View

+

The Planning View combines three different perspectives:

+
    +
  • Project Planning: Project planning is displayed in the upper right-hand part of the program as a Gantt chart. This view allows users to temporarily move tasks, assign dependencies between them, define milestones, and establish restrictions.
  • +
  • Resource Load: The Resource Load view, located in the lower right-hand part of the screen, shows resource availability based on assignments, as opposed to the assignments made to tasks. The information displayed in this view is as follows:
      +
    • Purple Area: Indicates a resource load below 100% of its capacity.
    • +
    • Green Area: Indicates a resource load below 100%, resulting from the resource being planned for another project.
    • +
    • Orange Area: Indicates a resource load over 100% as a result of the current project.
    • +
    • Yellow Area: Indicates a resource load over 100% as a result of other projects.
    • +
    +
  • +
  • Graph View and Earned Value Indicators: These can be viewed from the "Earned Value" tab. The generated graph is based on the earned value technique, and the indicators are calculated for each workday of the project. The calculated indicators are:
      +
    • BCWS (Budgeted Cost of Work Scheduled): The cumulative time function for the number of hours planned up to a certain date. It will be 0 at the planned start of the task and equal to the total number of planned hours at the end. As with all cumulative graphs, it will always increase. The function for a task will be the sum of the daily assignments until the calculation date. This function has values for all times, provided that resources have been assigned.
    • +
    • ACWP (Actual Cost of Work Performed): The cumulative time function for the hours reported in work reports up to a certain date. This function will only have a value of 0 before the date of the task's first work report, and its value will continue to increase as time passes and work report hours are added. It will have no value after the date of the last work report.
    • +
    • BCWP (Budgeted Cost of Work Performed): The cumulative time function that includes the resultant value of multiplying task progress by the amount of work that the task was estimated to require for completion. This function's values increase as time passes, as do progress values. Progress is multiplied by the total number of estimated hours for all tasks. The BCWP value is the sum of the values for the tasks being calculated. Progress is totaled when it is configured.
    • +
    • CV (Cost Variance): CV = BCWP - ACWP
    • +
    • SV (Schedule Variance): SV = BCWP - BCWS
    • +
    • BAC (Budget at Completion): BAC = max (BCWS)
    • +
    • EAC (Estimate at Completion): EAC = (ACWP / BCWP) * BAC
    • +
    • VAC (Variance at Completion): VAC = BAC - EAC
    • +
    • ETC (Estimate to Complete): ETC = EAC - ACWP
    • +
    • CPI (Cost Performance Index): CPI = BCWP / ACWP
    • +
    • SPI (Schedule Performance Index): SPI = BCWP / BCWS
    • +
    +
  • +
+

In the project planning view, users can perform the following actions:

+
    +
  • Assigning Dependencies: Right-click a task, choose "Add dependency," and drag the mouse pointer to the task to which the dependency should be assigned.
      +
    • To change the type of dependency, right-click the dependency and choose the desired type.
    • +
    +
  • +
  • Creating a New Milestone: Click the task before which the milestone is to be added and select the "Add milestone" option. Milestones can be moved by selecting the milestone with the mouse pointer and dragging it to the desired position.
  • +
  • Moving Tasks without Disturbing Dependencies: Right-click the body of the task and drag it to the desired position. If no restrictions or dependencies are violated, the system will update the daily assignment of resources to the task and place the task on the selected date.
  • +
  • Assigning Restrictions: Click the task in question and select the "Task properties" option. A pop-up window will appear with a "Restrictions" field that can be modified. Restrictions can conflict with dependencies, which is why each order specifies whether dependencies take priority over restrictions. The restrictions that can be established are:
      +
    • As Soon as Possible: Indicates that the task must start as soon as possible.
    • +
    • Not Before: Indicates that the task must not start before a certain date.
    • +
    • Start on a Specific Date: Indicates that the task must start on a specific date.
    • +
    +
  • +
+

The planning view also offers several procedures that function as viewing options:

+
    +
  • Zoom Level: Users can choose the desired zoom level. There are several zoom levels: annual, four-monthly, monthly, weekly, and daily.
  • +
  • Search Filters: Users can filter tasks based on labels or criteria.
  • +
  • Critical Path: As a result of using the Dijkstra algorithm to calculate paths on graphs, the critical path was implemented. It can be viewed by clicking the "Critical path" button in the viewing options.
  • +
  • Show Labels: Enables users to view the labels assigned to tasks in a project, which can be viewed on screen or printed.
  • +
  • Show Resources: Enables users to view the resources assigned to tasks in a project, which can be viewed on screen or printed.
  • +
  • Print: Enables users to print the Gantt chart being viewed.
  • +
+
+
+

Resource Load View

+

The Resource Load View provides a list of resources that contains a list of tasks or criteria that generate workloads. Each task or criterion is shown as a Gantt chart so that the start and end dates of the load can be seen. A different color is shown depending on whether the resource has a load that is higher or lower than 100%:

+
    +
  • Green: Load lower than 100%
  • +
  • Orange: 100% load
  • +
  • Red: Load over 100%
  • +
+
+images/resource-load.png +

Resource Load View for a Specific Order

+
+

If the mouse pointer is placed on the resource's Gantt chart, the load percentage for the worker will be shown.

+
+
+

Order List View

+

The Order List View allows users to access the order editing and deleting options. See the "Orders" chapter for more information.

+
+
+

Advanced Assignment View

+

The Advanced Assignment View is explained in depth in the "Resource Assignment" chapter.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/08-asignacion.html b/libreplan-webapp/src/main/webapp/help/zh_CN/08-asignacion.html new file mode 100644 index 000000000..46da7239c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/08-asignacion.html @@ -0,0 +1,179 @@ + + + + + + +Resource Assignment + + + +
+

Resource Assignment

+ + +

Resource assignment is one of the program's most important features and can be carried out in two different ways:

+
    +
  • Specific assignment
  • +
  • Generic assignment
  • +
+

Both types of assignment are explained in the following sections.

+

To perform either type of resource assignment, the following steps are necessary:

+
    +
  • Go to the planning view of an order.
  • +
  • Right-click on the task to be planned.
  • +
+
+images/resource-assignment-planning.png +

Resource Assignment Menu

+
+
    +
  • The program displays a screen with the following information:
      +
    • List of Criteria to be Fulfilled: For each hour group, a list of required criteria is shown.
    • +
    • Task Information: The start and end dates of the task.
    • +
    • Type of Calculation: The system allows users to choose the strategy for calculating assignments:
        +
      • Calculate Number of Hours: This calculates the number of hours required from the assigned resources, given an end date and a number of resources per day.
      • +
      • Calculate End Date: This calculates the end date of the task based on the number of resources assigned to the task and the total number of hours required to complete the task.
      • +
      • Calculate Number of Resources: This calculates the number of resources required to finish the task by a specific date, given a known number of hours per resource.
      • +
      +
    • +
    • Recommended Assignment: This option allows the program to gather the criteria to be fulfilled and the total number of hours from all hour groups, and then recommend a generic assignment. If a prior assignment exists, the system deletes it and replaces it with the new one.
    • +
    • Assignments: A list of assignments that have been made. This list shows the generic assignments (the number will be the list of fulfilled criteria, and the number of hours and resources per day). Each assignment can be explicitly removed by clicking the delete button.
    • +
    +
  • +
+
+images/resource-assignment.png +

Resource Assignment

+
+
    +
  • Users select "Search resources."
  • +
  • The program displays a new screen consisting of a criteria tree and a list of workers who fulfill the selected criteria on the right:
  • +
+
+images/resource-assignment-search.png +

Resource Assignment Search

+
+
    +
  • Users can select:
      +
    • Specific Assignment: See the "Specific Assignment" section for details on this option.
    • +
    • Generic Assignment: See the "Generic Assignment" section for details on this option.
    • +
    +
  • +
  • Users select a list of criteria (generic) or a list of workers (specific). Multiple selections can be made by pressing the "Ctrl" key while clicking each worker/criterion.
  • +
  • Users then click the "Select" button. It's important to remember that if a generic assignment is not selected, users must choose a worker or machine to perform the assignment. If a generic assignment is selected, it is sufficient for users to choose one or more criteria.
  • +
  • The program then displays the selected criteria or resource list in the list of assignments on the original resource assignment screen.
  • +
  • Users must choose the hours or resources per day, depending on the assignment method used in the program.
  • +
+
+

Specific Assignment

+

This is the specific assignment of a resource to a project task. In other words, the user decides which specific worker (by name and surname) or machine must be assigned to a task.

+

Specific assignment can be carried out on the screen shown in this image:

+
+images/asignacion-especifica.png +

Specific Resource Assignment

+
+

When a resource is specifically assigned, the program creates daily assignments based on the percentage of daily assigned resources selected, after comparing it with the available resource calendar. For example, an assignment of 0.5 resources for a 32-hour task means that 4 hours per day are assigned to the specific resource to complete the task (assuming a working calendar of 8 hours per day).

+
+

Specific Machine Assignment

+

Specific machine assignment functions in the same way as worker assignment. When a machine is assigned to a task, the system stores a specific assignment of hours for the chosen machine. The main difference is that the system searches the list of assigned workers or criteria at the moment the machine is assigned:

+
    +
  • If the machine has a list of assigned workers, the program chooses from those that are required by the machine, based on the assigned calendar. For example, if the machine calendar is 16 hours per day and the resource calendar is 8 hours, two resources are assigned from the list of available resources.
  • +
  • If the machine has one or more assigned criteria, generic assignments are made from among the resources that fulfill the criteria assigned to the machine.
  • +
+
+
+
+

Generic Assignment

+

Generic assignment occurs when users do not choose resources specifically but leave the decision to the program, which distributes the loads among the company's available resources.

+
+images/asignacion-xenerica.png +

Generic Resource Assignment

+
+

The assignment system uses the following assumptions as a basis:

+
    +
  • Tasks have criteria that are required from resources.
  • +
  • Resources are configured to fulfill criteria.
  • +
+

However, the system does not fail when criteria have not been assigned, but when all resources fulfill the non-requirement of criteria.

+

The generic assignment algorithm functions as follows:

+
    +
  • All resources and days are treated as containers where daily assignments of hours fit, based on the maximum assignment capacity in the task calendar.
  • +
  • The system searches for the resources that fulfill the criterion.
  • +
  • The system analyzes which assignments currently have different resources that fulfill criteria.
  • +
  • The resources that fulfill the criteria are chosen from those that have sufficient availability.
  • +
  • If freer resources are not available, assignments are made to the resources that have less availability.
  • +
  • Over-assignment of resources only begins when all the resources that fulfill the respective criteria are 100% assigned, until the total amount required to carry out the task is attained.
  • +
+
+

Generic Machine Assignment

+

Generic machine assignment functions in the same way as worker assignment. For example, when a machine is assigned to a task, the system stores a generic assignment of hours for all machines that fulfill the criteria, as described for resources in general. However, in addition, the system performs the following procedure for machines:

+
    +
  • For all machines chosen for generic assignment:
      +
    • It collects the machine's configuration information: alpha value, assigned workers, and criteria.
    • +
    • If the machine has an assigned list of workers, the program chooses the number required by the machine, depending on the assigned calendar. For example, if the machine calendar is 16 hours per day and the resource calendar is 8 hours, the program assigns two resources from the list of available resources.
    • +
    • If the machine has one or more assigned criteria, the program makes generic assignments from among the resources that fulfill the criteria assigned to the machine.
    • +
    +
  • +
+
+
+
+

Advanced Assignment

+

Advanced assignments allow users to design assignments that are automatically carried out by the application to personalize them. This procedure allows users to manually choose the daily hours that are dedicated by resources to assigned tasks or define a function that is applied to the assignment.

+

The steps to follow to manage advanced assignments are:

+
    +
  • Go to the advanced assignment window. There are two ways to access advanced assignments:
      +
    • Go to a specific order and change the view to advanced assignment. In this case, all the tasks on the order and assigned resources (specific and generic) will be shown.
    • +
    • Go to the resource assignment window by clicking the "Advanced assignment" button. In this case, the assignments that show the resources (generic and specific) assigned to a task will be shown.
    • +
    +
  • +
+
+images/advance-assignment.png +

Advanced Resource Assignment

+
+
    +
  • Users can choose the desired zoom level:
      +
    • Zoom Levels Greater Than One Day: If users change the assigned hour value to a week, month, four-month, or six-month period, the system distributes the hours linearly across all days throughout the chosen period.
    • +
    • Daily Zoom: If users change the assigned hour value to a day, these hours only apply to that day. Consequently, users can decide how many hours they want to assign per day to task resources.
    • +
    +
  • +
  • Users can choose to design an advanced assignment function. To do so, users must:
      +
    • Choose the function from the selection list that appears next to each resource and click "Configure."
    • +
    • The system displays a new window if the chosen function needs to be specifically configured. Supported functions:
        +
      • Segments: A function that allows users to define segments to which a polynomial function is applied. The function per segment is configured as follows:
          +
        • Date: The date on which the segment ends. If the following value (length) is established, the date is calculated; alternatively, length is calculated.
        • +
        • Defining the Length of Each Segment: This indicates what percentage of the task's duration is required for the segment.
        • +
        • Defining the Amount of Work: This indicates what workload percentage is expected to be completed in this segment. The quantity of work must be incremental. For example, if there is a 10% segment, the next one must be larger (for example, 20%).
        • +
        • Segment Graphs and Accumulated Loads.
        • +
        +
      • +
      +
    • +
    • Users then click "Accept."
    • +
    • The program stores the function and applies it to the daily resource assignments.
    • +
    +
  • +
+
+images/stretches.png +

Configuration of the Segment Function

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/09-partes.html b/libreplan-webapp/src/main/webapp/help/zh_CN/09-partes.html new file mode 100644 index 000000000..90242b6c7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/09-partes.html @@ -0,0 +1,84 @@ + + + + + + +Work Reports + + + +
+

Work Reports

+ + +

Work reports enable the monitoring of the hours that resources dedicate to the tasks to which they are assigned.

+

The program allows users to configure new forms for entering dedicated hours, specifying the fields that they want to appear in these forms. This allows for the incorporation of reports from tasks carried out by workers and the monitoring of worker activity.

+

Before users can add entries for resources, they must define at least one work report type. This type defines the structure of the report, including all the rows that are added to it. Users can create as many work report types as necessary within the system.

+
+

Work Report Types

+

A work report consists of a series of fields that are common to the entire report and a set of work report lines with specific values for the fields defined in each row. For example, resources and tasks are common to all reports. However, there can be other new fields, such as "incidents," which are not required in all report types.

+

Users can configure different work report types so that a company can design its reports to meet its specific needs:

+
+images/work-report-types.png +

Work Report Types

+
+

The administration of work report types allows users to configure these types and add new text fields or optional tags. In the first tab for editing work report types, it is possible to configure the type for the mandatory attributes (whether they apply to the whole report or are specified at the line level) and add new optional fields.

+

The mandatory fields that must appear in all work reports are as follows:

+
    +
  • Name and Code: Identification fields for the name of the work report type and its code.
  • +
  • Date: Field for the date of the report.
  • +
  • Resource: Worker or machine appearing on the report or work report line.
  • +
  • Order Element: Code for the order element to which the performed work is attributed.
  • +
  • Hour Management: Determines the hour attribution policy to be used, which can be:
      +
    • According to Assigned Hours: Hours are attributed based on the assigned hours.
    • +
    • According to Start and Finish Times: Hours are calculated based on the start and finish times.
    • +
    • According to the Number of Hours and Start and Finish Range: Discrepancies are allowed, and the number of hours takes priority.
    • +
    +
  • +
+

Users can add new fields to the reports:

+
    +
  • Tag Type: Users can request the system to display a tag when completing the work report. For example, the client tag type, if the user wishes to enter the client for whom the work was carried out in each report.
  • +
  • Free Fields: Fields where text can be entered freely in the work report.
  • +
+
+images/work-report-type.png +

Creating a Work Report Type with Personalized Fields

+
+

Users can configure date, resource, and order element fields to appear in the header of the report, which means they apply to the entire report, or they can be added to each of the rows.

+

Finally, new additional text fields or tags can be added to the existing ones, in the work report header or in each line, by using the "Additional text" and "Tag type" fields, respectively. Users can configure the order in which these elements are to be entered in the "Management of additional fields and tags" tab.

+
+
+

Work Report List

+

Once the format of the reports to be incorporated into the system has been configured, users can enter the details in the created form according to the structure defined in the corresponding work report type. To do this, users need to follow these steps:

+
    +
  • Click the "New work report" button associated with the desired report from the list of work report types.
  • +
  • The program then displays the report based on the configurations given for the type. See the following image.
  • +
+
+images/work-report-type.png +

Structure of the Work Report Based on Type

+
+
    +
  • Select all the fields shown for the report:
      +
    • Resource: If the header has been chosen, the resource is only shown once. Alternatively, for each line of the report, it is necessary to choose a resource.
    • +
    • Task Code: Code of the task to which the work report is being assigned. Similar to the rest of the fields, if the field is in the header, the value is entered once or as many times as necessary on the lines of the report.
    • +
    • Date: Date of the report or each line, depending on whether the header or line is configured.
    • +
    • Number of Hours: The number of work hours in the project.
    • +
    • Start and Finish Times: Start and finish times for the work in order to calculate definitive work hours. This field only appears in the case of the hour assignment policies, "According to Start and Finish Times" and "According to the Number of Hours and Start and Finish Range."
    • +
    • Type of Hours: Enables users to choose the type of hour, e.g., "Normal," "Extraordinary," etc.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/10-etiquetas.html b/libreplan-webapp/src/main/webapp/help/zh_CN/10-etiquetas.html new file mode 100644 index 000000000..eb6451798 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/10-etiquetas.html @@ -0,0 +1,68 @@ + + + + + + +Labels + + + +
+

Labels

+ +
+

Contents

+ +
+

Labels are entities used in the program to conceptually organize tasks or order elements.

+

Labels are categorized according to label type. A label can only belong to one label type; however, users can create many similar labels belonging to different label types.

+
+

Label Types

+

Label types are used to group the types of labels that users want to manage in the program. Here are some examples of possible label types:

+
    +
  • Client: Users may be interested in labeling tasks, orders, or order elements in relation to the client who requests them.
  • +
  • Area: Users may be interested in labeling tasks, orders, or order elements in relation to the areas in which they are carried out.
  • +
+

The administration of label types is managed from the "Administration" menu option. This is where users can edit label types, create new label types, and add labels to label types. Users can access the list of labels from this option.

+
+images/tag-types-list.png +

List of Label Types

+
+

From the list of label types, users can:

+
    +
  • Create a new label type.
  • +
  • Edit an existing label type.
  • +
  • Delete a label type with all of its labels.
  • +
+

Editing and creating labels share the same form. From this form, the user can assign a name to the label type, create or delete labels, and store the changes. The procedure is as follows:

+
    +
  • Select a label to edit or click the create button for a new one.
  • +
  • The system displays a form with a text entry for the name and a list of text entries with existing and assigned labels.
  • +
  • If users wish to add a new label, they must click the "New label" button.
  • +
  • The system displays a new row on the list with an empty text box that users must edit.
  • +
  • Users enter a name for the label.
  • +
  • The system adds the name to the list.
  • +
  • Users click "Save" or "Save and continue" to continue editing the form.
  • +
+
+images/tag-types-edition.png +

Editing Label Types

+
+
+
+

Labels

+

Labels are entities that belong to a label type. These entities can be assigned to order elements. Assigning a label to an order element means that all the elements descending from this element will inherit the label to which they belong. Having an assigned label means that these entities can be filtered where searches can be carried out:

+
    +
  • Search for tasks in the Gantt chart.
  • +
  • Search for order elements in the list of order elements.
  • +
  • Filters for reports.
  • +
+

The assignment of labels to order elements is covered in the chapter on orders.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/11-materiales.html b/libreplan-webapp/src/main/webapp/help/zh_CN/11-materiales.html new file mode 100644 index 000000000..a06770897 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/11-materiales.html @@ -0,0 +1,54 @@ + + + + + + +Materials Management + + + +
+

Materials Management

+ +
+

Contents

+ +
+
+

Administration of Materials

+

Users can manage a basic database of materials, organized by categories.

+

Categories are containers to which specific materials and other categories can be assigned. They are stored in a hierarchical tree structure, as materials can belong to leaf categories or intermediary categories.

+

To manage categories, users must follow these steps:

+
    +
  • Go to the "Administration -> Materials" option.
  • +
  • The program displays a tree of categories.
  • +
  • Enter a category name in the text box and then click "Add."
  • +
  • The program adds the category to the tree.
  • +
+

To insert a category into the category tree, users must first select the parent category in the tree and then click "Add."

+
+images/material.png +

Material Administration Screen

+
+

To manage materials, users must follow these steps:

+
    +
  • Select the category to which materials are to be added and click "Add" to the right of "Materials."
  • +
  • The program adds a new empty row with fields to enter details about the material:
      +
    • Code: Material type code (this can be the external code from an ERP).
    • +
    • Description: Description of the material.
    • +
    • Unit Price: Unit price of each piece of material.
    • +
    • Unit: Unit used to measure each unit of material.
    • +
    • Category: Category to which the material belongs.
    • +
    • Availability: Indicates whether or not the material is active.
    • +
    +
  • +
  • Users complete the fields and click "Save."
  • +
+

The assignment of materials to order elements is explained in the chapter on "Orders."

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/12-formularios-calidad.html b/libreplan-webapp/src/main/webapp/help/zh_CN/12-formularios-calidad.html new file mode 100644 index 000000000..97a584178 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/12-formularios-calidad.html @@ -0,0 +1,52 @@ + + + + + + +Quality Forms + + + +
+

Quality Forms

+ + +
+

Administration of Quality Forms

+

Quality forms consist of a list of questions or statements that indicate the tasks or processes that should have been completed before a task can be marked as complete by the company. These forms include the following fields:

+
    +
  • Name: The name of the quality form.
  • +
  • Description: A description of the quality form.
  • +
  • Type of Quality Form: The type can have two values:
      +
    • Percentage: Indicates that the questions must be answered in a logical order, and affirmative answers indicate that the task is progressing. For example, a basic process for a task might suggest that the task is 15% complete. Users must answer a question before proceeding to the next one.
    • +
    • Item: Indicates that the questions do not need to be answered in a logical order and can be answered in any sequence.
    • +
    +
  • +
+

Users must follow these steps to manage quality forms:

+
    +
  • From the "Administration" menu, access the "Quality forms" option.
  • +
  • Click "Edit" on an existing form or click "Create" to create a new one.
  • +
  • The program displays a form with fields for the name, description, and type.
  • +
  • Select the type.
  • +
  • The program displays the fields that are allowed for each type:
      +
    • Percentage: Question and percentage.
    • +
    • Item: Question.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+images/quality.png +

Quality Form Administration Screen

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/13-usuarios.html b/libreplan-webapp/src/main/webapp/help/zh_CN/13-usuarios.html new file mode 100644 index 000000000..f46a23ded --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/13-usuarios.html @@ -0,0 +1,79 @@ + + + + + + +User Management + + + +
+

User Management

+ +
+

Contents

+ +
+
+

Managing Users

+

TASKPM's system allows administrators to manage user profiles, authorizations, and users. Users are assigned to user profiles, which can have a series of predefined roles that grant access to the program's features. Roles are defined authorizations within TASKPM. Examples of roles include:

+
    +
  • Administration: A role that must be assigned to administrators to enable them to perform administrative operations.
  • +
  • Web Service Reader: A role required for users to consult the program's web services.
  • +
  • Web Service Writer: A role required for users to write data via the program's web services.
  • +
+

Roles are predefined within the system. A user profile consists of one or more roles. Users must have specific roles to perform certain operations.

+

Users can be assigned one or more profiles, or one or more roles directly, allowing for specific or generic authorization to be granted.

+

To manage users, follow these steps:

+
    +
  • Go to "Manage users" in the "Administration" menu.
  • +
  • The program displays a form with a list of users.
  • +
  • Click the edit button for the desired user or click the "Create" button.
  • +
  • A form will appear with the following fields:
      +
    • User Name: The user's login name.
    • +
    • Password: The user's password.
    • +
    • Authorized/Unauthorized: A setting to enable or disable the user's account.
    • +
    • Email: The user's email address.
    • +
    • List of Associated Roles: To add a new role, users must search for a role in the selection list and click "Assign."
    • +
    • List of Associated Profiles: To add a new profile, users must search for a profile in the selection list and click "Assign."
    • +
    +
  • +
+
+images/manage-user.png +

Managing Users

+
+
    +
  • Click "Save" or "Save and continue."
  • +
+
+

Managing Profiles

+

To manage the program's profiles, users must follow these steps:

+
    +
  • Go to "Manage user profiles" in the "Administration" menu.
  • +
  • The program displays a list of profiles.
  • +
  • Click the edit button for the desired profile or click "Create."
  • +
  • A form appears in the program with the following fields:
      +
    • Name: The name of the user profile.
    • +
    • List of Roles (Authorizations): To add a role to the profile, users must select a role from the role list and click "Add."
    • +
    +
  • +
+
+images/manage-user-profile.png +

Managing User Profiles

+
+
    +
  • Click "Save" or "Save and continue," and the system will store the created or modified profile.
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/14-custos.html b/libreplan-webapp/src/main/webapp/help/zh_CN/14-custos.html new file mode 100644 index 000000000..5c35ce71d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/14-custos.html @@ -0,0 +1,110 @@ + + + + + + +Cost management + + + +
+

Cost management

+ +
+

Contents

+ +
+
+

Costs

+

Cost management allows users to estimate the costs of resources used in a project. To manage costs, the following entities must be defined:

+
    +
  • Hour Types: These indicate the types of hours worked by a resource. Users can define hour types for both machines and workers. Examples of hour types include: "Additional hours paid at €20 per hour." The following fields can be defined for hour types:
      +
    • Code: External code for the hour type.
    • +
    • Name: Name of the hour type. For example, "Additional."
    • +
    • Default Rate: Basic default rate for the hour type.
    • +
    • Activation: Indicates whether the hour type is active or not.
    • +
    +
  • +
  • Cost Categories: Cost categories define the costs associated with different hour types during specific periods (which may be indefinite). For example, the cost of additional hours for first-grade skilled workers in the following year is €24 per hour. Cost categories include:
      +
    • Name: Cost category name.
    • +
    • Activation: Indicates whether the category is active or not.
    • +
    • List of Hour Types: This list defines the hour types included in the cost category. It specifies the periods and rates for each hour type. For example, as rates change, each year can be included on this list as an hour type period, with a specific hourly rate for each hour type (which may differ from the default hourly rate for that hour type).
    • +
    +
  • +
+
+

Managing Hour Types

+

Users must follow these steps to register hour types:

+
    +
  • Select "Manage hour types worked" on the "Administration" menu.
  • +
  • The program displays a list of existing hour types.
  • +
+
+images/hour-type-list.png +

Hour Type List

+
+
    +
  • Click "Edit" or "Create."
  • +
  • The program displays an hour type editing form.
  • +
+
+images/hour-type-edit.png +

Editing Hour Types

+
+
    +
  • Users can enter or change:
      +
    • The hour type name.
    • +
    • The hour type code.
    • +
    • The default rate.
    • +
    • Hour type activation/deactivation.
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+
+
+

Cost Categories

+

Users must follow these steps to register cost categories:

+
    +
  • Select "Manage cost categories" on the "Administration" menu.
  • +
  • The program displays a list of existing categories.
  • +
+
+images/category-cost-list.png +

Cost Category List

+
+
    +
  • Click the "Edit" or "Create" button.
  • +
  • The program displays a cost category editing form.
  • +
+
+images/category-cost-edit.png +

Editing Cost Categories

+
+
    +
  • Users enter or change:
      +
    • The name of the cost category.
    • +
    • The activation/deactivation of the cost category.
    • +
    • The list of hour types included in the category. All hour types have the following fields:
        +
      • Hour Type: Choose one of the existing hour types in the system. If none exist, an hour type must be created (this process is explained in the previous subsection).
      • +
      • Start and Finish Date: The start and finish dates (the latter is optional) for the period that applies to the cost category.
      • +
      • Hourly Rate: The hourly rate for this specific category.
      • +
      +
    • +
    +
  • +
  • Click "Save" or "Save and continue."
  • +
+

The assignment of cost categories to resources is described in the chapter on resources. Go to the "Resources" section.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/15-1-report-hours-worked-by-resource.html b/libreplan-webapp/src/main/webapp/help/zh_CN/15-1-report-hours-worked-by-resource.html new file mode 100644 index 000000000..f97f118aa --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/15-1-report-hours-worked-by-resource.html @@ -0,0 +1,101 @@ + + + + + + +Hours Worked by Resource Report + + + +
+

Hours Worked by Resource Report

+ + +
+

Purpose

+

This report extracts a list of tasks and the time resources have dedicated to them within a specified period. Several filters allow users to refine the query to obtain only the desired information and exclude extraneous data.

+
+
+

Input Parameters and Filters

+
    +
  • +
    Dates.
    +
      +
    • Type: Optional.
    • +
    • +
      Two date fields:
      +
        +
      • Start Date: This is the earliest date for work reports to be included. Work reports with dates earlier than the Start Date are excluded. If this parameter is left blank, work reports are not filtered by Start Date.
      • +
      • End Date: This is the latest date for work reports to be included. Work reports with dates later than the End Date are excluded. If this parameter is left blank, work reports are not filtered by End Date.
      • +
      +
      +
      +
    • +
    +
    +
    +
  • +
  • Filter by Workers: +* Type: Optional. +* How it works: You can select one or more workers to restrict the work reports to the time tracked by those specific workers. To add a worker as a filter, search for them in the selector and click the Add button. If this filter is left empty, work reports are retrieved regardless of the worker.
  • +
  • Filter by Labels: +* Type: Optional. +* How it works: You can add one or more labels to use as filters by searching for them in the selector and clicking the Add button. These labels are used to select the tasks to be included in the results when calculating the hours dedicated to them. This filter can be applied to timesheets, tasks, both, or neither.
  • +
  • Filter by Criteria: +* Type: Optional. +* How it works: You can select one or more criteria by searching for them in the selector and then clicking the Add button. These criteria are used to select the resources that satisfy at least one of them. The report will show all the time dedicated by the resources that meet one of the selected criteria.
  • +
+
+
+

Output

+
+

Heading

+

The report heading displays the filters that were configured and applied to the current report.

+
+ +
+

Body

+

The report body consists of several groups of information.

+
    +
  • The first level of aggregation is by resource. All the time dedicated by a resource is shown together below the header. Each resource is identified by:

    +
      +
    • Worker: Surname, First Name.
    • +
    • Machine: Name.
    • +
    +

    A summary line shows the total number of hours worked by the resource.

    +
  • +
  • The second level of grouping is by date. All the reports from a specific resource on the same date are shown together.

    +

    A summary line shows the total number of hours worked by the resource on that date.

    +
  • +
  • The final level lists the work reports for the worker on that day. The information displayed for each work report line is:

    +
      +
    • Task Code: The code of the task to which the tracked hours are attributed.
    • +
    • Task Name: The name of the task to which the tracked hours are attributed.
    • +
    • Starting Time: This is optional. It is the time at which the resource began working on the task.
    • +
    • Ending Time: This is optional. It is the time at which the resource finished working on the task on the specified date.
    • +
    • Text Fields: This is optional. If the work report line has text fields, the filled values are shown here. The format is: <Name of the text field>:<Value>
    • +
    • Labels: This depends on whether the work report model has a label field in its definition. If there are multiple labels, they are shown in the same column. The format is: <Name of the label type>:<Value of the label>
    • +
    +
  • +
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/15-2-total-hours-by-resource-month.html b/libreplan-webapp/src/main/webapp/help/zh_CN/15-2-total-hours-by-resource-month.html new file mode 100644 index 000000000..246cfc9c1 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/15-2-total-hours-by-resource-month.html @@ -0,0 +1,67 @@ + + + + + + +Total Hours Worked by Resource in a Month Report + + + +
+

Total Hours Worked by Resource in a Month Report

+ + +
+

Purpose

+

This report provides the total number of hours worked by each resource in a given month. This information can be useful for determining worker overtime or, depending on the organization, the number of hours for which each resource should be compensated.

+

The application tracks work reports for both workers and machines. For machines, the report sums up the number of hours they were in operation during the month.

+
+
+

Input Parameters and Filters

+

To generate this report, users must specify the year and month for which they want to retrieve the total number of hours worked by each resource.

+
+
+

Output

+

The output format is as follows:

+ + +
+

Body

+

The data section of the report consists of a single table with two columns:

+
+
    +
  • One column labeled Name for the name of the resource.
  • +
  • One column labeled Hours with the total number of hours worked by the resource in that row.
  • +
+
+

There is a final row that aggregates the total number of hours worked by all resources during the specified month and year.

+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/15-3-work-progress-per-project.html b/libreplan-webapp/src/main/webapp/help/zh_CN/15-3-work-progress-per-project.html new file mode 100644 index 000000000..e2f5053a9 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/15-3-work-progress-per-project.html @@ -0,0 +1,125 @@ + + + + + + +Work and Progress per Project Report + + + +
+

Work and Progress per Project Report

+ + +
+

Purpose

+

This report provides an overview of the status of projects, considering both progress and cost.

+

It analyzes the current progress of each project, comparing it with the planned progress and the work completed.

+

The report also displays several ratios related to project cost, comparing current performance with the planned performance.

+
+
+

Input Parameters and Filters

+

There are several mandatory parameters:

+
+
    +
  • Reference Date: This is the date used as a reference point for comparing the planned status of the project with its actual performance. The default value for this field is the current date.
  • +
  • Progress Type: This is the progress type used to measure project progress. The application allows a project to be measured simultaneously with different progress types. The type selected by the user in the dropdown menu is used for calculating the report data. The default value for the progress type is spread, which is a special progress type that uses the preferred method of measuring progress configured for each WBS element.
  • +
+
+

The optional parameters are:

+
+
    +
  • Starting Date: This is the earliest start date for projects to be included in the report. If this field is left blank, there is no minimum start date for the projects.
  • +
  • Ending Date: This is the latest end date for projects to be included in the report. All projects that finish after the Ending Date will be excluded.
  • +
  • Filter by Projects: This filter allows users to select the specific projects to be included in the report. If no projects are added to the filter, the report will include all projects in the database. A searchable dropdown menu is provided to find the desired project. Projects are added to the filter by clicking the Add button.
  • +
+
+
+
+

Output

+

The output format is as follows:

+
+

Heading

+

The report header displays the following fields:

+
+
    +
  • Starting Date: The filtering start date. This is not displayed if the report is not filtered by this field.
  • +
  • Ending Date: The filtering end date. This is not displayed if the report is not filtered by this field.
  • +
  • Progress Type: The progress type used for the report.
  • +
  • Projects: This indicates the filtered projects for which the report is generated. It will show the string All when the report includes all projects that satisfy the other filters.
  • +
  • Reference Date: The mandatory input reference date selected for the report.
  • +
+
+
+ +
+

Body

+

The body of the report consists of a list of projects selected based on the input filters.

+

Filters work by adding conditions, except for the set formed by the date filters (Starting Date, Ending Date) and the Filter by Projects. In this case, if one or both date filters are filled and the Filter by Projects has a list of selected projects, the latter filter takes precedence. This means that the projects included in the report are those provided by the Filter by Projects, regardless of the date filters.

+

It's important to note that progress in the report is calculated as a fraction of unity, ranging between 0 and 1.

+

For each project selected for inclusion in the report output, the following information is displayed:

+
+
    +
  • Project Name.
  • +
  • +
    Total Hours. The total hours for the project are shown by adding the hours for each task. Two types of total hours are shown:
    +
      +
    • Estimated (TE). This is the sum of all the estimated hours in the project's WBS. It represents the total number of hours estimated to complete the project.
    • +
    • Planned (TP). In TASKPM, it's possible to have two different quantities: the estimated number of hours for a task (the number of hours initially estimated to complete the task) and the planned hours (the hours allocated in the plan to complete the task). The planned hours can be equal to, less than, or greater than the estimated hours and are determined in a later phase, the assignment operation. Therefore, the total planned hours for a project are the sum of all the allocated hours for its tasks.
    • +
    +
    +
    +
  • +
  • +
    Progress. Three measurements related to the overall progress of the type specified in the progress input filter for each project at the reference date are shown:
    +
      +
    • Measured (PM). This is the overall progress considering the progress measurements with a date earlier than the Reference Date in the input parameters of the report. All tasks are taken into account, and the sum is weighted by the number of hours for each task.
    • +
    • Imputed (PI). This is the progress assuming that work continues at the same pace as the hours completed for a task. If X hours out of Y hours for a task are completed, the overall imputed progress is considered to be X/Y.
    • +
    • Planned (PP). This is the overall progress of the project according to the planned schedule at the reference date. If everything happened exactly as planned, the measured progress should be the same as the planned progress.
    • +
    +
    +
    +
  • +
  • +
    Hours up to Date. There are two fields that show the number of hours up to the reference date from two perspectives:
    +
      +
    • Planned (HP). This number is the sum of the hours allocated to any task in the project with a date less than or equal to the Reference Date.
    • +
    • Actual (HR). This number is the sum of the hours reported in the work reports for any of the tasks in the project with a date less than or equal to the Reference Date.
    • +
    +
    +
    +
  • +
  • +
    Difference. Under this heading, there are several metrics related to cost:
    +
      +
    • Cost. This is the difference in hours between the number of hours spent, considering the measured progress, and the hours completed up to the reference date. The formula is: PM*TP - HR.
    • +
    • Planned. This is the difference between the hours spent according to the overall measured project progress and the number planned up to the Reference Date. It measures the advantage or delay in time. The formula is: PM*TP - HP.
    • +
    • Cost Ratio. This is calculated by dividing PM / PI. If it is greater than 1, it means that the project is profitable at this point. If it is less than 1, it means that the project is losing money.
    • +
    • Planned Ratio. This is calculated by dividing PM / PP. If it is greater than 1, it means that the project is ahead of schedule. If it is less than 1, it means that the project is behind schedule.
    • +
    +
    +
    +
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/15-informes.html b/libreplan-webapp/src/main/webapp/help/zh_CN/15-informes.html new file mode 100644 index 000000000..c2c7cafab --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/15-informes.html @@ -0,0 +1,26 @@ + + + + + + +Reports + + + +
+

Reports

+ +

TASKPM integrates with JasperReports to provide report management, enabling users to generate various reports for analyzing the data available in the program.

+

The available reports are:

+ +
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/16-ldap-authentication.html b/libreplan-webapp/src/main/webapp/help/zh_CN/16-ldap-authentication.html new file mode 100644 index 000000000..ad5d4976d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/16-ldap-authentication.html @@ -0,0 +1,251 @@ + + + + + + +LDAP Configuration + + + +
+

LDAP Configuration

+ + +

This screen allows you to establish a connection with LDAP to delegate +authentication and/or authorization.

+

It is divided into four different areas, which are explained below:

+
+

Activation

+

This area is used to set the properties that determine how TASKPM uses +LDAP.

+

If the field Enable LDAP authentication is checked, TASKPM will query +LDAP each time a user attempts to log in to the application.

+

The field Use LDAP roles checked means that a mapping between LDAP roles and +TASKPM roles is established. Consequently, the permissions for a user in +TASKPM will depend on the roles the user has in LDAP.

+
+
+

Configuration

+

This section contains the parameter values for accessing LDAP. Base, UserDN, and +Password are parameters used to connect to LDAP and search for users. Therefore, +the specified user must have permission to perform this operation in LDAP. At the +bottom of this section, there is a button to check if an LDAP connection is +possible with the given parameters. It is advisable to test the connection before +continuing the configuration.

+
+

Note

+

If your LDAP is configured to work with anonymous authentication, you can +leave the UserDN and Password attributes empty.

+
+
+

Tip

+

Regarding Active Directory (AD) configuration, the Base field must be the +exact location where the bound user resides in AD.

+

Example: ou=organizational_unit,dc=example,dc=org

+
+
+
+

Authentication

+

Here, you can configure the property in LDAP nodes where the given username +should be found. The property UserId must be filled with the name of the +property where the username is stored in LDAP.

+

The checkbox Save passwords in database, when checked, means that the +password is also stored in the TASKPM database. In this way, if LDAP is +offline or unreachable, LDAP users can authenticate against the TASKPM +database. If it is not checked, LDAP users can only be authenticated against +LDAP.

+
+
+

Authorization

+

This section allows you to define a strategy for matching LDAP roles with +TASKPM roles. The first choice is the strategy to use, depending on the +LDAP implementation.

+
+

Group Strategy

+

When this strategy is used, it indicates that LDAP has a role-group strategy. +This means that users in LDAP are nodes that are directly under a branch that +represents the group.

+

The next example represents a valid LDAP structure for using the group strategy.

+
    +
  • LDAP structure:

    +
    +dc=example,dc=org
    +|- ou=groups
    +   |- cn=admins
    +   |- cn=itpeople
    +   |- cn=workers
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

In this case, each group will have an attribute, for example, called member, +with the list of users belonging to the group:

+
    +
  • cn=admins:
      +
    • member: uid=admin1,ou=people,dc=example,dc=org
    • +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=itpeople:
      +
    • member: uid=it1,ou=people,dc=example,dc=org
    • +
    • member: uid=it2,ou=people,dc=example,dc=org
    • +
    +
  • +
  • cn=workers:
      +
    • member: uid=worker1,ou=people,dc=example,dc=org
    • +
    • member: uid=worker2,ou=people,dc=example,dc=org
    • +
    • member: uid=worker3,ou=people,dc=example,dc=org
    • +
    +
  • +
+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Group strategy
  • +
  • Group path: ou=groups
  • +
  • Role property: member
  • +
  • Role search query: uid=[USER_ID],ou=people,dc=example,dc=org
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: cn=admins;cn=itpeople
  • +
  • Web service reader: cn=itpeople
  • +
  • Web service writer: cn=itpeople
  • +
  • All projects read allowed: cn=admins
  • +
  • All projects edition allowed: cn=admins
  • +
  • Project creation allowed: cn=workers
  • +
+
+
+

Property Strategy

+

When an administrator decides to use this strategy, it indicates that each user +is an LDAP node, and within the node, there exists a property that represents +the group(s) for the user. In this case, the configuration does not require the +Group path parameter.

+

The next example represents a valid LDAP structure for using the property strategy.

+
    +
  • LDAP structure:

    +
    +dc=example,dc=org
    +|- ou=people
    +   |- uid=admin1
    +   |- uid=it1
    +   |- uid=it2
    +   |- uid=worker1
    +   |- uid=worker2
    +   |- uid=worker3
    +
    +
  • +
+

With Attribute

+

In this case, each user will have an attribute, for example, called group, +with the name of the group to which they belong:

+
    +
  • uid=admin1:
      +
    • group: admins
    • +
    +
  • +
  • uid=it1:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=it2:
      +
    • group: itpeople
    • +
    +
  • +
  • uid=worker1:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker2:
      +
    • group: workers
    • +
    +
  • +
  • uid=worker3:
      +
    • group: workers
    • +
    +
  • +
+
+

Warning

+

This strategy has a restriction: each user can belong to only one group.

+
+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Property strategy
  • +
  • Group path:
  • +
  • Role property: group
  • +
  • Role search query: [USER_ID]
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: admins;itpeople
  • +
  • Web service reader: itpeople
  • +
  • Web service writer: itpeople
  • +
  • All projects read allowed: admins
  • +
  • All projects edition allowed: admins
  • +
  • Project creation allowed: workers
  • +
+

By User Identifier

+

You can even use a workaround to specify TASKPM roles directly to users +without having an attribute in each LDAP user.

+

In this case, you will specify which users have the different TASKPM roles +by uid.

+

The configuration for this case is as follows:

+
    +
  • Role search strategy: Property strategy
  • +
  • Group path:
  • +
  • Role property: uid
  • +
  • Role search query: [USER_ID]
  • +
+

And, for example, if you want to match some roles:

+
    +
  • Administration: admin1;it1
  • +
  • Web service reader: it1;it2
  • +
  • Web service writer: it1;it2
  • +
  • All projects read allowed: admin1
  • +
  • All projects edition allowed: admin1
  • +
  • Project creation allowed: worker1;worker2;worker3
  • +
+
+
+

Role Matching

+

At the bottom of this section, there is a table with all the TASKPM roles +and a text field next to each one. This is for matching roles. For instance, +if an administrator decides that the Administration TASKPM role matches +the admin and administrators roles of LDAP, the text field should contain: +"admin;administrators". The character for splitting roles is ";".

+
+

Note

+

If you want to specify that all users or all groups have one permission, you +can use an asterisk (*) as a wildcard to refer to them. For example, if +you want everyone to have the Project creation allowed role, you will +configure the role matching as follows:

+
    +
  • Project creation allowed: *
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/17-1-project-dashboard.html b/libreplan-webapp/src/main/webapp/help/zh_CN/17-1-project-dashboard.html new file mode 100644 index 000000000..5dc0899b7 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/17-1-project-dashboard.html @@ -0,0 +1,173 @@ + + + + + + +Project Dashboard + + + +
+

Project Dashboard

+ + +

The project dashboard is a TASKPM perspective that contains a set of KPIs (Key Performance Indicators) to help assess a project's performance in terms of:

+
+
    +
  • Work progress
  • +
  • Cost
  • +
  • Status of allocated resources
  • +
  • Time constraints
  • +
+
+
+

Progress Performance Indicators

+

Two indicators are calculated: project progress percentage and task status.

+
+

Project Progress Percentage

+

This chart displays the overall progress of a project, comparing it to the expected progress based on the Gantt chart.

+

Progress is represented by two bars:

+
+
    +
  • Current Progress: The current progress based on the measurements taken.
  • +
  • Expected Progress: The progress the project should have achieved at this point, according to the project plan.
  • +
+
+

To view the actual measured value for each bar, hover the mouse cursor over the bar.

+

The overall project progress is estimated using several different methods, as there is no single, universally correct approach:

+
+
    +
  • Spreading Progress: This is the progress type set as the spreading progress at the project level. In this case, there is no way to calculate an expected value, and only the current bar is displayed.
  • +
  • By All Task Hours: The progress of all project tasks is averaged to calculate the overall value. This is a weighted average that considers the number of hours allocated to each task.
  • +
  • By Critical Path Hours: The progress of tasks belonging to any of the project's critical paths is averaged to obtain the overall value. This is a weighted average that considers the total allocated hours for each involved task.
  • +
  • By Critical Path Duration: The progress of tasks belonging to any of the critical paths is averaged using a weighted average, but this time considering the duration of each involved task instead of the assigned hours.
  • +
+
+
+
+

Task Status

+

A pie chart shows the percentage of project tasks in different states. The defined states are:

+
+
    +
  • Finished: Completed tasks, identified by a 100% progress value.
  • +
  • In Progress: Tasks that are currently underway. These tasks have a progress value other than 0% or 100%, or some work time has been tracked.
  • +
  • Ready to Start: Tasks with 0% progress, no tracked time, all their FINISH_TO_START dependent tasks are finished, and all their START_TO_START dependent tasks are finished or in progress.
  • +
  • Blocked: Tasks with 0% progress, no tracked time, and with previous dependent tasks that are neither in progress nor in the ready to start state.
  • +
+
+
+
+
+

Cost Indicators

+

Several Earned Value Management cost indicators are calculated:

+
+
    +
  • CV (Cost Variance): The difference between the Earned Value curve and the Actual Cost curve at the current moment. Positive values indicate a benefit, and negative values indicate a loss.

    +
  • +
  • ACWP (Actual Cost of Work Performed): The total number of hours tracked in the project at the current moment.

    +
  • +
  • CPI (Cost Performance Index): The Earned Value / Actual Cost ratio.

    +
    +
      +
    • > 100 is favorable, indicating that the project is under budget.
    • +
    • = 100 is also favorable, indicating that the cost is right on plan.
    • +
    • < 100 is unfavorable, indicating that the cost of completing the work is higher than planned.
    • +
    +
    +
  • +
  • ETC (Estimate To Complete): The time remaining to complete the project.

    +
  • +
  • BAC (Budget At Completion): The total amount of work allocated in the project plan.

    +
  • +
  • EAC (Estimate At Completion): The manager's projection of the total cost at project completion, based on the CPI.

    +
  • +
  • VAC (Variance At Completion): The difference between the BAC and the EAC.

    +
    +
      +
    • < 0 indicates that the project is over budget.
    • +
    • > 0 indicates that the project is under budget.
    • +
    +
    +
  • +
+
+
+
+

Resources

+

To analyze the project from the resources' point of view, two ratios and a histogram are provided.

+
+

Estimation Deviation on Completed Task Histogram

+

This histogram calculates the deviation between the number of hours allocated to the project tasks and the actual number of hours dedicated to them.

+

The deviation is calculated as a percentage for all finished tasks, and the calculated deviations are represented in a histogram. The vertical axis shows the number of tasks within each deviation interval. Six deviation intervals are dynamically calculated.

+
+
+

Overtime Ratio

+

This ratio summarizes the overload of resources allocated to the project tasks. It is calculated using the formula: overtime ratio = overload / (load + overload).

+
+
    +
  • = 0 is favorable, indicating that the resources are not overloaded.
  • +
  • > 0 is unfavorable, indicating that the resources are overloaded.
  • +
+
+
+
+

Availability Ratio

+

This ratio summarizes the free capacity of the resources currently allocated to the project. Therefore, it measures the resources' availability to receive more allocations without being overloaded. It is calculated as: availability ratio = (1 - load/capacity) * 100

+
+
    +
  • Possible values are between 0% (fully assigned) and 100% (not assigned).
  • +
+
+
+
+
+

Time

+

Two charts are included: a histogram for the time deviation in the finish time of project tasks and a pie chart for deadline violations.

+
+

Task Completion Lead or Lag

+

This calculation determines the difference in days between the planned end time for project tasks and their actual end time. The planned completion date is taken from the Gantt chart, and the actual finish date is taken from the last time tracked for the task.

+

The lag or lead in task completion is represented in a histogram. The vertical axis shows the number of tasks with a lead/lag day difference value corresponding to the abscissa days interval. Six dynamic task completion deviation intervals are calculated.

+
+
    +
  • Negative values mean finishing ahead of schedule.
  • +
  • Positive values mean finishing behind schedule.
  • +
+
+
+
+

Deadline Violations

+

This section calculates the margin with the project deadline, if set. Additionally, a pie chart shows the percentage of tasks meeting their deadline. Three types of values are included in the chart:

+
+
    +
  • Percentage of tasks without a deadline configured.
  • +
  • Percentage of ended tasks with an actual end date later than their deadline. The actual end date is taken from the last time tracked for the task.
  • +
  • Percentage of ended tasks with an actual end date earlier than their deadline.
  • +
+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/17-2-pipeline-dashboard.html b/libreplan-webapp/src/main/webapp/help/zh_CN/17-2-pipeline-dashboard.html new file mode 100644 index 000000000..bb54ed657 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/17-2-pipeline-dashboard.html @@ -0,0 +1,33 @@ + + + + + + +Pipeline Dashboard + + + +
+

Pipeline Dashboard

+ +

The pipeline dashboard is a TASKPM perspective that lists all company projects in a table. This "pipeline" table has nine columns, each corresponding to a project status:

+
+
    +
  • PRE-SALES
  • +
  • OFFERED
  • +
  • OUTSOURCED
  • +
  • ACCEPTED
  • +
  • STARTED
  • +
  • ON HOLD
  • +
  • FINISHED
  • +
  • CANCELLED
  • +
  • ARCHIVED
  • +
+
+

Projects are listed by name in each column based on their current status.

+

A project's start date, end date, and current progress can be viewed in a tooltip popup by hovering the mouse cursor over a project's name.

+

Projects with an ARCHIVED status can be hidden by unchecking the "Show archived column data" checkbox.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/17-dashboards.html b/libreplan-webapp/src/main/webapp/help/zh_CN/17-dashboards.html new file mode 100644 index 000000000..3dc8f1af4 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/17-dashboards.html @@ -0,0 +1,24 @@ + + + + + + +Dashboards + + + +
+

Dashboards

+ +

TASKPM offers dashboard views for projects, providing an overview of their current status.

+

The two available dashboard views are:

+ +
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/18-connectors.html b/libreplan-webapp/src/main/webapp/help/zh_CN/18-connectors.html new file mode 100644 index 000000000..0f879b53d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/18-connectors.html @@ -0,0 +1,238 @@ + + + + + + +Connectors + + + +
+

Connectors

+ + +

Connectors are TASKPM client applications that can be used to communicate with (web) servers to retrieve data, process it, and store it. Currently, there are three connectors: the JIRA connector, the Tim Enterprise connector, and the E-mail connector.

+
+

Configuration

+

Connectors must be configured properly before they can be used. They can be configured from the "Main Settings" screen under the "Connectors" tab.

+

The connector screen includes:

+
    +
  • Pull-down list: A list of available connectors.
  • +
  • Properties edit screen: A property edit form for the selected connector.
  • +
  • Test connection button: A button to test the connection with the connector.
  • +
+

Select the connector you want to configure from the pull-down list of connectors. A property editor form for the selected connector will be displayed. In the property editor form, you can change the property values as needed and test your configurations using the "Test connection" button.

+
+

Note

+

The properties are configured with default values. The most important property is "Activated." By default, it is set to "N." This indicates that the connector will not be used unless you change the value to "Y" and save the changes.

+
+
+
+

JIRA Connector

+

JIRA is an issue and project tracking system.

+

The JIRA connector is an application that can be used to request JIRA web server data for JIRA issues and process the response. The request is based on JIRA labels. In JIRA, labels can be used to categorize issues. The request is structured as follows: retrieve all issues that are categorized by this label name.

+

The connector receives the response, which in this case is the issues, and converts them to TASKPM "Order elements" and "Time sheets."

+

The JIRA connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the JIRA connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the JIRA connector. The default is "N."
  • +
  • Server URL: The absolute path to the JIRA web server.
  • +
  • User name and password: The user credentials for authorization.
  • +
  • JIRA labels: comma-separated list of labels or URL: You can either enter the label URL or a comma-separated list of labels.
  • +
  • Hours type: The type of work hours. The default is "Default."
  • +
+
+

Note

+

JIRA labels: Currently, the JIRA web server does not support providing a list of all available labels. As a workaround, we have developed a simple PHP script that performs a simple SQL query in the JIRA database to fetch all distinct labels. You can either use this PHP script as the "JIRA labels URL" or enter the labels you want as comma-separated text in the "JIRA labels" field.

+
+

Finally, click the "Test connection" button to test if you can connect to the JIRA web server and that your configurations are correct.

+
+
+

Synchronization

+

From the project window, under "General data," you can start synchronizing order elements with JIRA issues.

+

Click the "Sync with JIRA" button to start the synchronization.

+
    +
  • If this is the first time, a pop-up window (with an auto-completed list of labels) will be displayed. In this window, you can select a label to synchronize with and click the "Start sync" button to begin the synchronization process, or click the "Cancel" button to cancel it.
  • +
  • If a label is already synchronized, the last synchronized date and the label will be displayed in the JIRA screen. In this case, no pop-up window to select a label will be displayed. Instead, the synchronization process will start directly for that displayed (already synchronized) label.
  • +
+
+

Note

+

The relationship between "Order" and "label" is one-to-one. Only one label can be synchronized with one "Order."

+
+
+

Note

+

Upon successful (re)synchronization, the information will be written to the database, and the JIRA screen will be updated with the last synchronized date and label.

+
+

(Re)synchronization is performed in two phases:

+
    +
  • Phase 1: Synchronizing order elements, including progress assignment and measurements.
  • +
  • Phase 2: Synchronizing time sheets.
  • +
+
+

Note

+

If Phase 1 fails, Phase 2 will not be performed, and no information will be written to the database.

+
+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+

Upon successful completion of synchronization, the result will be displayed in the "Work Breakdown Structure (WBS tasks)" tab of the "Project details" screen. In this UI, there are two changes from the standard WBS:

+
    +
  • The "Total task hours" column is unmodifiable (read-only) because the synchronization is one-way. Task hours can only be updated in the JIRA web server.
  • +
  • The "Code" column displays the JIRA issue keys, and they are also hyperlinks to the JIRA issues. Click the desired key if you want to go to the document for that key (JIRA issue).
  • +
+
+
+

Scheduling

+

Re-synchronization of JIRA issues can also be performed through the scheduler. Go to the "Job scheduling" screen. In that screen, you can configure a JIRA job to perform synchronization. The job searches for the last synchronized labels in the database and re-synchronizes them accordingly. See also the Scheduler Manual.

+
+
+
+

Tim Enterprise Connector

+

Tim Enterprise is a Dutch product from Aenova. It is a web-based application for the administration of time spent on projects and tasks.

+

The Tim connector is an application that can be used to communicate with the Tim Enterprise server to:

+
    +
  • Export all hours spent by a worker (user) on a project that could be registered in Tim Enterprise.
  • +
  • Import all rosters of the worker (user) to plan the resource effectively.
  • +
+

The Tim connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the Tim connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the Tim connector. The default is "N."
  • +
  • Server URL: The absolute path to the Tim Enterprise server.
  • +
  • User name and password: The user credentials for authorization.
  • +
  • Number of days timesheet to Tim: The number of days back you want to export the time sheets.
  • +
  • Number of days roster from Tim: The number of days forward you want to import the rosters.
  • +
  • Productivity factor: Effective working hours in percentage. The default is "100%."
  • +
  • Department IDs to import roster: Comma-separated department IDs.
  • +
+

Finally, click the "Test connection" button to test if you can connect to the Tim Enterprise server and that your configurations are correct.

+
+
+

Export

+

From the project window, under "General data," you can start exporting time sheets to the Tim Enterprise server.

+

Enter the "Tim product code" and click the "Export to Tim" button to start the export.

+

The Tim connector adds the following fields along with the product code:

+
    +
  • The worker/user's full name.
  • +
  • The date the worker worked on a task.
  • +
  • The effort, or hours worked on the task.
  • +
  • An option indicating whether Tim Enterprise should update the registration or insert a new one.
  • +
+

The Tim Enterprise response contains only a list of record IDs (integers). This makes it difficult to determine what went wrong, as the response list contains only numbers not related to the request fields. The export request (registration in Tim) is assumed to have succeeded if all the list entries do not contain "0" values. Otherwise, the export request has failed for those entries that contain "0" values. Therefore, you cannot see which request failed, as the list entries only contain the value "0." The only way to determine this is to examine the log file on the Tim Enterprise server.

+
+

Note

+

Upon successful exporting, the information will be written to the database, and the Tim screen will be updated with the last exported date and product code.

+
+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+
+
+

Scheduling Export

+

The export process can also be performed through the scheduler. Go to the "Job Scheduling" screen. In that screen, you can configure a Tim Export job. The job searches for the last exported time sheets in the database and re-exports them accordingly. See also the Scheduler manual.

+
+
+

Import

+

Importing rosters only works with the help of the scheduler. There is no user interface designed for this, as no input is needed from the user. Go to the "Job scheduling" screen and configure a Tim Import job. The job loops through all departments configured in the connector properties and imports all rosters for each department. See also the Scheduler Manual.

+

For import, the Tim connector adds the following fields in the request:

+
    +
  • Period: The period (date from - date to) for which you want to import the roster. This can be provided as a filter criterion.
  • +
  • Department: The department for which you want to import the roster. Departments are configurable.
  • +
  • The fields you are interested in (like Person info, RosterCategory, etc.) that the Tim server should include in its response.
  • +
+

The import response contains the following fields, which are sufficient to manage the exception days in TASKPM:

+
    +
  • Person info: Name and network name.
  • +
  • Department: The department the worker is working in.
  • +
  • Roster category: Information on the presence/absence (Aanwzig/afwezig) of the worker and the reason (TASKPM exception type) in case the worker is absent.
  • +
  • Date: The date the worker is present/absent.
  • +
  • Time: The start time of presence/absence, for example, 08:00.
  • +
  • Duration: The number of hours that the worker is present/absent.
  • +
+

By converting the import response to TASKPM's "Exception day," the following translations are taken into account:

+
    +
  • If the roster category contains the name "Vakantie," it will be translated to "RESOURCE HOLIDAY."
  • +
  • The roster category "Feestdag" will be translated to "BANK HOLIDAY."
  • +
  • All the rest, like "Jus uren," "PLB uren," etc., should be added to the "Calendar Exception Days" manually.
  • +
+

Moreover, in the import response, the roster is divided into two or three parts per day: for example, roster-morning, roster-afternoon, and roster-evening. However, TASKPM allows only one "Exception type" per day. The Tim connector is then responsible for merging these parts as one exception type. That is, the roster category with the highest duration is assumed to be a valid exception type, but the total duration is the sum of all durations of these category parts.

+

Contrary to TASKPM, in Tim Enterprise, the total duration in case the worker is on holiday means the worker is not available for that total duration. However, in TASKPM, if the worker is on holiday, the total duration should be zero. The Tim connector also handles this translation.

+
+
+
+

E-mail Connector

+

E-mail is a method of exchanging digital messages from an author to one or more recipients.

+

The E-mail connector can be used to set Simple Mail Transfer Protocol (SMTP) server connection properties.

+

The E-mail connector must be configured properly before it can be used.

+
+

Configuration

+

From the "Main Settings" screen, choose the "Connectors" tab. In the connectors screen, select the E-mail connector from the pull-down list. A property editor screen will then be displayed.

+

In this screen, you can configure the following property values:

+
    +
  • Activated: Y/N, indicating whether you want to use the E-mail connector. The default is "N."
  • +
  • Protocol: The type of SMTP protocol.
  • +
  • Host: The absolute path to the SMTP server.
  • +
  • Port: The port of the SMTP server.
  • +
  • From address: The e-mail address of the message sender.
  • +
  • Username: The username for the SMTP server.
  • +
  • Password: The password for the SMTP server.
  • +
+

Finally, click the "Test connection" button to test if you can connect to the SMTP server and that your configurations are correct.

+
+
+

Edit E-mail Template

+

From the project window, under "Configuration" and then "Edit E-mail Templates," you can modify the e-mail templates for messages.

+

You can choose:

+
    +
  • Template language:
  • +
  • Template type:
  • +
  • E-mail subject:
  • +
  • Template contents:
  • +
+

You need to specify the language because the web application will send e-mails to users in the language they have chosen in their preferences. You need to choose the template type. The type is the user role, meaning that this e-mail will be sent only to users who are in the selected role (type). You need to set the e-mail subject. The subject is a brief summary of the topic of the message. You need to set the e-mail contents. This is any information that you want to send to the user. There are also some keywords that you may use in the message; the web application will parse them and set a new value instead of the keyword.

+
+
+

Scheduling E-mails

+

Sending e-mails can only be performed through the scheduler. Go to "Configuration," then the "Job Scheduling" screen. In that screen, you can configure an e-mail sending job. The job takes a list of e-mail notifications, gathers data, and sends it to the user's e-mail. See also the Scheduler manual.

+
+

Note

+

The success or failure information will be displayed in a pop-up window.

+
+
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/19-scheduler.html b/libreplan-webapp/src/main/webapp/help/zh_CN/19-scheduler.html new file mode 100644 index 000000000..8379b5b4c --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/19-scheduler.html @@ -0,0 +1,107 @@ + + + + + + +Scheduler + + + +
+

Scheduler

+ + +

The scheduler is designed to schedule jobs dynamically. It is developed using the Spring Framework Quartz scheduler.

+

To use this scheduler effectively, the jobs (Quartz jobs) that should be scheduled must be created first. Then, these jobs can be added to the database, as all jobs to be scheduled are stored in the database.

+

When the scheduler starts, it reads the jobs to be scheduled or unscheduled from the database and schedules or removes them accordingly. Afterward, jobs can be added, updated, or removed dynamically using the Job scheduling user interface.

+
+

Note

+

The scheduler starts when the TASKPM web application starts and stops when the application stops.

+
+
+

Note

+

This scheduler supports only cron expressions to schedule jobs.

+
+

The criteria that the scheduler uses to schedule or remove jobs when it starts are as follows:

+

For all jobs:

+
    +
  • Schedule
      +
    • Job has a Connector, and the Connector is activated, and the job is allowed to be scheduled.
    • +
    • Job has no Connector and is allowed to be scheduled.
    • +
    +
  • +
  • Remove
      +
    • Job has a Connector, and the Connector is not activated.
    • +
    • Job has a Connector, and the Connector is activated, but the job is not allowed to be scheduled.
    • +
    • Job has no Connector and is not allowed to be scheduled.
    • +
    +
  • +
+
+

Note

+

Jobs cannot be rescheduled or unscheduled if they are currently running.

+
+
+

Job Scheduling List View

+

The Job scheduling list view allows users to:

+
    +
  • Add a new job.
  • +
  • Edit an existing job.
  • +
  • Remove a job.
  • +
  • Start a process manually.
  • +
+
+
+

Add or Edit Job

+

From the Job scheduling list view, click:

+
    +
  • Create to add a new job, or
  • +
  • Edit to modify the selected job.
  • +
+

Both actions will open a create/edit job form. The form displays the following properties:

+
    +
  • Fields:
      +
    • Job group: The name of the job group.
    • +
    • Job name: The name of the job.
    • +
    • Cron expression: A read-only field with an Edit button to open the cron expression input window.
    • +
    • Job class name: A pull-down list to select the job (an existing job).
    • +
    • Connector: A pull-down list to select a connector. This is not mandatory.
    • +
    • Schedule: A checkbox to indicate whether to schedule this job.
    • +
    +
  • +
  • Buttons:
      +
    • Save: To save or update a job in both the database and the scheduler. The user is then returned to the Job scheduling list view.
    • +
    • Save and continue: The same as "Save," but the user is not returned to the Job scheduling list view.
    • +
    • Cancel: Nothing is saved, and the user is returned to the Job scheduling list view.
    • +
    +
  • +
  • And a hint section about cron expression syntax.
  • +
+
+

Cron Expression Pop-up

+

To enter the cron expression correctly, a cron expression pop-up form is used. In this form, you can enter the desired cron expression. See also the hint about the cron expression. If you enter an invalid cron expression, you will be notified immediately.

+
+
+
+

Remove Job

+

Click the Remove button to delete the job from both the database and the scheduler. The success or failure of this action will be displayed.

+
+
+

Start Job Manually

+

As an alternative to waiting for the job to run as scheduled, you can click this button to start the process directly. Afterward, the success or failure information will be displayed in a pop-up window.

+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/20-acerca-de.html b/libreplan-webapp/src/main/webapp/help/zh_CN/20-acerca-de.html new file mode 100644 index 000000000..569e69e4d --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/20-acerca-de.html @@ -0,0 +1,155 @@ + + + + + + +About + + + +
+

About

+ + + +
+

License

+

This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version.

+

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/>.

+
+
+

Written by

+
+

TASKPM Team

+ +
+
+

Previous Team Members

+ +
+
+

Translators

+ +
+
+

Contributors

+ +
+
+
+

Public Funding

+

This project currently accepts donations through the Open Collective organization <https://opencollective.com/TASKPM>.

+

Within the global scope that TASKPM is designed for regarding planning management, a project was developed to solve some common planning problems.

+

This project was partially financed by Xunta de Galicia, Ministerio de Industria, Turismo e Comercio, and by the European Union, Fondo Europeo de Desenvolvemento Rexional.

+
+images/logos.png +
+ +++ + + + +
scale:100
+

This project was part of Plan Avanza:

+
+images/avanza.png +
+ +++ + + + +
scale:100
+
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/21-communications.html b/libreplan-webapp/src/main/webapp/help/zh_CN/21-communications.html new file mode 100644 index 000000000..e4f5ea081 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/21-communications.html @@ -0,0 +1,18 @@ + + + + + + +Subcontractor Work Description + + + +
+

Subcontractor Work Description

+ +

While it is possible to leave this field empty, doing so can lead to errors in communication functionality when multiple empty fields exist.

+

Therefore, we strongly recommend always using a unique work description.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/22-pert.html b/libreplan-webapp/src/main/webapp/help/zh_CN/22-pert.html new file mode 100644 index 000000000..c27af3c56 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/22-pert.html @@ -0,0 +1,17 @@ + + + + + + +PERT Chart + + + +
+

PERT Chart

+ +

Unlike Libreplan, which was focused on the GANNT chart and did not have a PERT chart, TASKPM does have a PERT chart and is more focused on it.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/23-subnets.html b/libreplan-webapp/src/main/webapp/help/zh_CN/23-subnets.html new file mode 100644 index 000000000..42cd9e634 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/23-subnets.html @@ -0,0 +1,17 @@ + + + + + + +Task Subnets + + + +
+

Task Subnets

+ +

Unlike Libreplan, which only had a single level of planning, the whole project, TASKPM has subnetworks of activities which can be embedded in a master project.

+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/advance-assignment.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/advance-assignment.png new file mode 100644 index 000000000..aeb55b2b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/advance-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/asignacion-especifica.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/asignacion-especifica.png new file mode 100644 index 000000000..9ee94d9c6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/asignacion-especifica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/asignacion-xenerica.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/asignacion-xenerica.png new file mode 100644 index 000000000..d2a16597f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/asignacion-xenerica.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/avance.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/avance.png new file mode 100644 index 000000000..ee289e19c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/avanza.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/avanza.png new file mode 100644 index 000000000..a51893f80 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/avanza.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/calendar-administration.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/calendar-administration.png new file mode 100644 index 000000000..bb4e17032 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/calendar-administration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/calendar-create-derived.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/calendar-create-derived.png new file mode 100644 index 000000000..9f01f2c33 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/calendar-create-derived.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/calendar-edition.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/calendar-edition.png new file mode 100644 index 000000000..a98cc4454 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/calendar-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/calendar-exceptions.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/calendar-exceptions.png new file mode 100644 index 000000000..c2a53a684 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/calendar-exceptions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/category-cost-edit.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/category-cost-edit.png new file mode 100644 index 000000000..1755ee79e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/category-cost-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/category-cost-list.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/category-cost-list.png new file mode 100644 index 000000000..1d7ff838c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/category-cost-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/company_view.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/company_view.png new file mode 100644 index 000000000..c3a7631e6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/company_view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/contraste-avance.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/contraste-avance.png new file mode 100644 index 000000000..831cceac3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/contraste-avance.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/default-calendar.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/default-calendar.png new file mode 100644 index 000000000..6fd379d08 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/default-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/edicion-criterio.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/edicion-criterio.png new file mode 100644 index 000000000..2b879ced5 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/edicion-criterio.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/hour-type-edit.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/hour-type-edit.png new file mode 100644 index 000000000..4917b08a8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/hour-type-edit.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/hour-type-list.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/hour-type-list.png new file mode 100644 index 000000000..1872eb4f7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/hour-type-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/lista-criterios.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/lista-criterios.png new file mode 100644 index 000000000..a2e7d03cb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/lista-criterios.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/logo.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/logo.png new file mode 100644 index 000000000..4e7d02651 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/logo.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/logos.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/logos.png new file mode 100644 index 000000000..7314a0759 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/logos.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/machine-calendar.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/machine-calendar.png new file mode 100644 index 000000000..a725f67a2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/machine-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/machine-configuration.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/machine-configuration.png new file mode 100644 index 000000000..0777473fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/machine-configuration.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/machine-costcategory.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/machine-costcategory.png new file mode 100644 index 000000000..b8414eac6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/machine-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/machine-criterions.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/machine-criterions.png new file mode 100644 index 000000000..7c270bf35 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/machine-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/machine-data.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/machine-data.png new file mode 100644 index 000000000..5edb47d12 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/machine-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/manage-user-profile.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/manage-user-profile.png new file mode 100644 index 000000000..6a86064e2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/manage-user-profile.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/manage-user.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/manage-user.png new file mode 100644 index 000000000..df59f1b7c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/manage-user.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/material.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/material.png new file mode 100644 index 000000000..a77b5aa41 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/menu.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/menu.png new file mode 100644 index 000000000..f4eec5250 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/menu.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/new-resource-calendar.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/new-resource-calendar.png new file mode 100644 index 000000000..9040e0bc0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/new-resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-assigned-hours.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-assigned-hours.png new file mode 100644 index 000000000..4fd629386 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-assigned-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-criterions.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-criterions.png new file mode 100644 index 000000000..e59bd833f Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-edition.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-edition.png new file mode 100644 index 000000000..ff67134db Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-element-criterion.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-element-criterion.png new file mode 100644 index 000000000..f167979b0 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-element-criterion.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-element-edition.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-element-edition.png new file mode 100644 index 000000000..66e5e8602 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-element-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-element-hours.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-element-hours.png new file mode 100644 index 000000000..06cc1dc37 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-element-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-element-material-assign.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-element-material-assign.png new file mode 100644 index 000000000..90f973766 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-element-material-assign.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-element-material-search.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-element-material-search.png new file mode 100644 index 000000000..550f1d7fa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-element-material-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-element-quality.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-element-quality.png new file mode 100644 index 000000000..3272ce70e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-element-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-element-tags.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-element-tags.png new file mode 100644 index 000000000..e43a7d795 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-element-tags.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-elements-list.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-elements-list.png new file mode 100644 index 000000000..271ac9bf6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-elements-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-labels.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-labels.png new file mode 100644 index 000000000..076e0a745 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-labels.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-material.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-material.png new file mode 100644 index 000000000..9197679e7 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-material.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-quality.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-quality.png new file mode 100644 index 000000000..ee9e9027e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order-quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/order_list.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order_list.png new file mode 100644 index 000000000..72e70f3b6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/order_list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/planning-view.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/planning-view.png new file mode 100644 index 000000000..de74811eb Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/planning-view.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/quality.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/quality.png new file mode 100644 index 000000000..1850f51b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/quality.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/resource-assignment-generic.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/resource-assignment-generic.png new file mode 100644 index 000000000..3519a5087 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/resource-assignment-generic.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/resource-assignment-planning.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/resource-assignment-planning.png new file mode 100644 index 000000000..c4233780d Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/resource-assignment-planning.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/resource-assignment-search.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/resource-assignment-search.png new file mode 100644 index 000000000..cae142d81 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/resource-assignment-search.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/resource-assignment-specific.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/resource-assignment-specific.png new file mode 100644 index 000000000..8f7b1cba2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/resource-assignment-specific.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/resource-assignment.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/resource-assignment.png new file mode 100644 index 000000000..427d25b79 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/resource-assignment.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/resource-calendar.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/resource-calendar.png new file mode 100644 index 000000000..749c7b829 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/resource-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/resource-load.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/resource-load.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/resource-load.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/resources_global.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/resources_global.png new file mode 100644 index 000000000..e2b15ceb4 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/resources_global.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/stretches.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/stretches.png new file mode 100644 index 000000000..d661a63f6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/stretches.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/tag-types-edition.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/tag-types-edition.png new file mode 100644 index 000000000..d366c09c2 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/tag-types-edition.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/tag-types-list.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/tag-types-list.png new file mode 100644 index 000000000..e7de5048c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/tag-types-list.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/tipos-avances.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/tipos-avances.png new file mode 100644 index 000000000..bb417f52c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/tipos-avances.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/virtual-resources.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/virtual-resources.png new file mode 100644 index 000000000..3a54f95d3 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/virtual-resources.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/work-report-hours.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/work-report-hours.png new file mode 100644 index 000000000..568e9fed6 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/work-report-hours.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/work-report-type.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/work-report-type.png new file mode 100644 index 000000000..2549d8b5e Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/work-report-type.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/work-report-types.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/work-report-types.png new file mode 100644 index 000000000..986f705aa Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/work-report-types.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/worker-calendar.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/worker-calendar.png new file mode 100644 index 000000000..1227969b9 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/worker-calendar.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/worker-costcategory.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/worker-costcategory.png new file mode 100644 index 000000000..f330db68c Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/worker-costcategory.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/worker-criterions.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/worker-criterions.png new file mode 100644 index 000000000..a131a29fc Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/worker-criterions.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/images/worker-personal-data.png b/libreplan-webapp/src/main/webapp/help/zh_CN/images/worker-personal-data.png new file mode 100644 index 000000000..6a5033ba8 Binary files /dev/null and b/libreplan-webapp/src/main/webapp/help/zh_CN/images/worker-personal-data.png differ diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/index.html b/libreplan-webapp/src/main/webapp/help/zh_CN/index.html new file mode 100644 index 000000000..7a9b74000 --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/index.html @@ -0,0 +1,47 @@ + + + + + + +LibrePlan: User documentation + + + +
+

LibrePlan: User documentation

+ +images/logo.png +

Following document contains necessary help for using LibrePlan, the opensource web application for project planning.

+

This document is divided in three main sections:

+

First, global goals and behaviour.

+

Second, basic entities to understand the minimum concepts to use LibrePlan.

+

Finally, complete processes description to create orders, projects, project planning, resources assignment, advance assignment and result extraction.

+
    +
  1. Introduction
  2. +
  3. Criteria
  4. +
  5. Calendars
  6. +
  7. Progress
  8. +
  9. Resource Management
  10. +
  11. Orders and Order Elements
  12. +
  13. Task Planning
  14. +
  15. Resource Assignment
  16. +
  17. Work Reports
  18. +
  19. Labels
  20. +
  21. Materials Management
  22. +
  23. Quality Forms
  24. +
  25. User Management
  26. +
  27. Cost management
  28. +
  29. Reports
  30. +
  31. LDAP Configuration
  32. +
  33. Dashboards
  34. +
  35. Connectors
  36. +
  37. Scheduler
  38. +
  39. About
  40. +
  41. Subcontractor Work Description
  42. +
  43. PERT Chart
  44. +
  45. Task Subnets
  46. +
+
+ + diff --git a/libreplan-webapp/src/main/webapp/help/zh_CN/lsr.css b/libreplan-webapp/src/main/webapp/help/zh_CN/lsr.css new file mode 100644 index 000000000..ced6c967a --- /dev/null +++ b/libreplan-webapp/src/main/webapp/help/zh_CN/lsr.css @@ -0,0 +1,250 @@ +/* +Author: Peter Parente +Date: 2008/01/22 +Version: 1.0 +Copyright: This stylesheet has been placed in the public domain - free to edit and use for all uses. +*/ + +body { + font: 0.8em Verdana, Tahoma, sans-serif; + background: #ffffff; + color: black; + margin: 2em; +} + +p.topic-title { + font-weight: bold; +} + +table.docinfo { + text-align: left; + margin: 2em 0; +} + +a[href] { + color: #436976; + background-color: transparent; +} + +a.toc-backref { + text-decoration: none; +} + +h1 a[href] { + color: #003a6b; + text-decoration: none; + background-color: transparent; +} + +a.strong { + font-weight: bold; +} + +img { + margin: 0; + border: 0; +} + +p { + margin: 0.5em 0 1em 0; + line-height: 1.5em; +} + +p a:visited { + color: purple; + background-color: transparent; +} + +p a:active { + color: red; + background-color: transparent; +} + +a:hover { + text-decoration: none; +} + +p img { + border: 0; + margin: 0; +} + +p.rubric { + font-weight: bold; + font-style: italic; +} + +h1.title { + color: #003a6b; + font-size: 250%; + margin-bottom: 0; +} + +h2.subtitle { + color: #003a6b; + border-bottom: 0; +} + +h1, h2, h3, h4, h5, h6 { + color: #555; + background-color: transparent; + margin: 0; + padding-top: 0.5em; +} + +h1 { + font-size: 160%; + margin-bottom: 0.5em; + border-bottom: 2px solid #aaa; +} + +h2 { + font-size: 140%; + margin-bottom: 0.5em; + border-bottom: 1px solid #aaa; +} + +h3 { + font-size: 130%; + margin-bottom: 0.5em; +} + +h4 { + font-size: 110%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h5 { + font-size: 105%; + font-weight: bold; + margin-bottom: 0.5em; +} + +h6 { + font-size: 100%; + font-weight: bold; + margin-bottom: 0.5em; +} + +dt { + font-style: italic; +} + +dd { + margin-bottom: 1.5em; +} + +div.admonition, div.note, div.tip, div.caution, div.important, div.warning { + margin: 2em 2em; + padding: 0 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +div.important { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +div.caution { + background: transparent url('../images/caution.png') 10px 2px no-repeat; +} + +div.note { + background: transparent url('../images/note.png') 10px 2px no-repeat; +} + +div.tip { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-example { + background: transparent url('../images/tip.png') 10px 2px no-repeat; +} + +div.admonition-critical-example { + background: transparent url('../images/important.png') 10px 2px no-repeat; +} + +p.admonition-title { + font-weight: bold; + border-bottom: 1px solid #aaa; + padding-left: 30px; +} + +table.docutils { + text-align: left; + border: 1px solid gray; + border-collapse: collapse; + width: 100%; + margin: 1.5em 0; +} + +table.docutils caption { + font-style: italic; +} + +table.docutils td, table.docutils th { + padding: 0.25em 0.5em; +} + +table.docutils th { + background-color: #dddddd; +} + +div.sidebar { + width: 33%; + float: right; + margin: 0 2em; + padding: 0 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; +} + +p.sidebar-title { + margin-bottom: 0; + color: #003a6b; + border-bottom: 1px solid #aaa; + font-weight: bold; +} + +p.sidebar-subtitle { + margin-top: 0; + font-style: italic; + color: #003a6b; +} + +div.figure { + text-align: center; +} + +div.figure img { + background: #f8f8f8; + padding: 0.25em; + border: 1px solid #888; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +div.figure img:hover { + background: #e0e0e0; +} + +div.figure p.caption { + text-align: center; + margin-top: 0.1em; + font-style: italic; + color: #444; +} + +pre.literal-block { + padding: 0.15em; + background: #f8f8f8; + border: 1px solid #dfdfdf; + border-left: 0.25em solid #dfdfdf +} diff --git a/libreplan-webapp/src/main/webapp/labels/labelTypes.zul b/libreplan-webapp/src/main/webapp/labels/labelTypes.zul index ec3d23ccd..e5d5bca1e 100644 --- a/libreplan-webapp/src/main/webapp/labels/labelTypes.zul +++ b/libreplan-webapp/src/main/webapp/labels/labelTypes.zul @@ -18,14 +18,14 @@ You should have received a copy of the GNU Affero General Public License along with this program. If not, see . --> - + - - + + diff --git a/libreplan-webapp/src/main/webapp/limitingresources/limitingResourcesLayout.zul b/libreplan-webapp/src/main/webapp/limitingresources/limitingResourcesLayout.zul index 6ed663b97..e3f52222c 100644 --- a/libreplan-webapp/src/main/webapp/limitingresources/limitingResourcesLayout.zul +++ b/libreplan-webapp/src/main/webapp/limitingresources/limitingResourcesLayout.zul @@ -19,8 +19,8 @@ along with this program. If not, see . --> - + @@ -54,13 +54,13 @@