DEPRECATION WARNING
This documentation is not using the current rendering mechanism and is probably outdated. The extension maintainer should switch to the new system. Details on how to use the rendering mechanism can be found here.
EXT: PAE Project Management¶
Author: | Kasper Skårhøj |
---|---|
Created: | 2002-11-01T00:32:00 |
Changed by: | Alban Cousinié |
Changed: | 2009-02-16T11:34:02.650000000 |
Author: | Communauté d'Agglomération du Pays d'Aubagne et de l'Etoile / Mind2Machine |
Email: | extensions@mind2machine.com |
Info 3: | |
Info 4: |
EXT: PAE Project Management
EXT: PAE Project Management¶
Extension Key: pae_project
Copyright 2000-2008, Communauté d'Agglomération du Pays d'Aubagne et de l'Etoile / Mind2Machine, <extensions@mind2machine.com>
This document is published under the Open Content License
available from http://www.opencontent.org/opl.shtml
The content of this document is related to TYPO3
- a GNU/GPL CMS/Framework available from www.typo3.org
Table of Contents¶
`Introduction 3 <#1.1.Introduction|outline>`_
`Users manual 8 <#1.2.Users%20manual|outline>`_
User roles in PAE project management 16
Setting parent to child project relationships 18
`Configuration 21 <#1.3.Configuration|outline>`_
`Localisation 25 <#1.4.Localisation|outline>`_
`Known problems 26 <#1.5.Known%20problems|outline>`_
`To-Do list 27 <#1.6.To-Do%20list|outline>`_
`ChangeLog 28 <#1.7.ChangeLog|outline>`_
Introduction¶
What does it do?¶
This extension permits to include a project management application on your website where multiple project administrators and workers can collaborate on updating project informations.
The extension is capable of compiling the information from several sub-projects for displaying a synthetic view in the parent project display : it will compute the global cost, the global worked days count, the project start and end dates, and the global progress of the project. Thus, each parent task displays a synthesis of its child tasks up to the root project.
The extension allows the definition of exceptions and worked days : exceptions are exceptional periods which are not worked, such as holidays. You can define an exception and attach it to some project. Thus some projects which have manpower can still be worked while some others affected by exceptions are suspended for a fixed period of time. Worked days allow specifying days of the week which have workers present. If only 3 days are worked per week and a project requires 9 days of working, the extension will automatically spread the duration of the project on 3 weeks.
Last but not least, the extension displays the tasks as bars on a Gantt style graph. The Gantt graph applet is programmed in Flash (using Actionscript 3.0) and the full source code and Flash project files can be found in the /res/ directory of the extension and can be used under the terms of the GNU/GPL Licence.
The development of this extension has been funded and sponsored by the Communauté d'Agglomération du Pays d'Aubagne et de l'Etoile ( http://www.agglo-paysdaubagne.com/ ), a public group of cities located in the south of France.
Beside the fact they needed such an extension, they have been using successfully Typo3 for 3 years on their web site and they were desirous to provide the Typo3 community something useful and valuable in return.
The programming has been done by Mind2Machine ( http://www.mind2machine.com ). All the code of this extension, included the Actionscript code of the Flash applet is available under GPL Licence. Please send us any improvements you may achieve.
Screenshots¶
This is the projects list
Display of a child project (leaf project in the project tree)
Same project in edit mode
Exception editing
The Gantt graph detailed
Users manual¶
Extension installation¶
In the extension manager look for extension key “pae_project” and install it the regular way. Once installed, you may alter the default extension options :
For most users, basic settings should apply and you can skip to the next section “Extension usage”.
More detail on these settings follow :
The “TypeNum” setting gives the page type value for accessing the XML description of projects managed by the extension. This XML data is read by the Flash applet for displaying the project summary. But you could also use the XML project descriptions in order to have them displayed by a third party application, such as a program located on a distant server. Notice however that in the current version of the extension, only the relevant display information is published, not the full project properties.
The XML data can be viewed using an URL of the following format :
http://www.yoursite.com/index.php?id=page_uid_where_the_plugin_i s_inserted&type=TypeNum
A real world example would be :
http://www.mysite.com/index.php?id=245&type=9003
You may want to alter the TypeNum value if some extension already installed in your Typo3 setup already uses the default page type.
The “date format” setting specifies how dates show be displayed. The default setting is the French setting. You may want to specify another format related to your locale as specified in the php date() function documentation :
Extension usage¶
Using PAE Project management requires users to be identified so the extension can perform rights check upon the current user profile. If the user is not identified, the extension will display projects in read only mode.
Let's go for a basic setup in read only mode first. We will add user authentication after.
Create a regular Typo3 page (we will name it “PAE project test page”) and a sysfolder named “projects”. It may be a good idea to put the sysfolder right below the page in order to group your project stuff, but you may also put the sysfolder anywhere you like.
The “Projects” folder will be used to store our project records.
Edit “PAE project test page” page in Page mode and insert the plugin “PAE project manager” in it :
Then you can edit the plugin properties :
For now, just add the “Projects” sysfolder as a startingpoint . Save the form .
Switch to list mode and get into your projects sysfolder .
Create a new record of type “Project element”.
Notice just below the “Project element” record type there is another record type belonging to this extension : “Worked days exception”. This record type will allow specifying days that are exceptionally not worked on certain projects.
You may now type a project title such as “My first project” here and you add a description.
By default, projects are created with the current day specified as start and end dates with a project duration of 1 day.
You may also attach some documents to the project so they can be downloaded by people looking at the project record in frontend.
Now you can preview your Typo3 page holding the project plugin :
As you can see, your first project appears in the Gantt graph. It is very small because it lasts only one day.
You can also see a warning because we have not defined a global administrator. We will do this in the next section.
Right under the warning goes the list of current projects. You can see “My first project listed” with its description (cropped to the first 300 characters).
Hit the “view” button to access the project file :
¶
There you can see your first project file. Estimated information appears in grey, real information in orange.
Now we can add roles to our projects, but it requires user authentication to be enabled.
Adding user authentication¶
In order to manage user roles, they have to be identified. The PAE project management relies on Typo3 generic user system so you can use you favorite login box and put it anywhere you like in your page template. Our preference goes for Macmade's loginbox (ext key : loginbox_macmade ) because it allows specifying the sysfolder used for storing your user profiles and features high customization possibilities. Therefore we will use the macmade loginbox in this example, but any other loginbox should work.
Create a sysfolder where to store your frontend users if you don't have any yet. You may also use the GRSP (General Record Storage Path)
Install extension loginbox_macmade
Insert the loginbox before the PAE project management extension in your page :
Adjust the loginbox settings. Set the startingpoint parameter with the folder where your user profiles are due to be stored. Save and close the loginbox extension properties.
Switch to List mode . Get into your users sysfolder and create a record of type “website usergroup”. Let's name it “PAE project user profiles”. This step is required because you can't create a frontend user if it doesn't belong to any group.
Now create a record of type “website user” in the same folder, and set “superadmin” as a username. This will be our global administrator profile. You may add some additional information, but username and password are the only required informations.
Also create 2 other frontend user profiles for testing with the following usernames : “admin” and “worker”. Read next section to know more about the usage of those profiles.
Preview your PAE Project test page in the browser. The authentication form should now properly show up.
User roles in PAE project management¶
In PAE project management, there are 3 types of user roles : Global administrator, project administrator, project worker.
The Global Administrator(s) is specified in the plugin settings. He has access to any editing feature of any project and exceptions in the frontend view.
The project Administrator has the capacity to modify any fields of a project where he is defined as an administrator and the same goes also for all of its children projects (user rights are inherited automatically between parent and child projects).
The worker has the capacity to modify the fields of a project related to real world data (estimated data can only be set by the administrator) where he is defined as a worker. The same goes also for all of its children projects. Thus a worker can not specify a project, but as he is working on the project he can update its progress data so other frontend users and administrators can be informed of the progress of his work.
Setting the Global administrator¶
In page mode, edit the plugin settings were your inserted it on the page. Add the “superadmin” user previously created to the plugin, the save the form.
Now you can login in the frontend with the superadmin user :
Notice there are now new buttons on top of the project list : you can now create a new project, list and create new exceptions. You can also edit and delete an existing project.
Setting the project administrator and the workers¶
Edit the project record of your interest in frontend or backend mode. You can add any existing FE user on the system in the “Administrators” and “Workers” fields :
Frontend editing for administrators and workers
Backend editing for administrators and workers
Setting parent to child project relationships¶
In order to set a project as a child of another project, you must, when you create or edit your child project, set the “parent” field with the parent project of your choice. As all editing operations, this can be done with frontend project editing form of with the backend form :
Frontend parent field
Backend parent field
Parent to child relationships are reflected in the project display
Important notice : an important thing to understandwhen working with parent / child relationships is that when a child is assigned to a project, this parent project then acts as a container : its own cost, duration, start and end dates become ignored because they get replaced at display by the synthetic information aggregated from its child projects. This is because a parent project can also be defined as the sum of the sub-projects / sub-tasks that compose it. Thus, in a project tree, the time and cost settings that count are the values located in “leaf” projects, a “leaf” project being located at the very end of a branch.
The aggregated data can be consulted when looking at a parent project file in “view” mode. It can only be seen in frontend.
FAQ¶
Why is it mandatory to have real start date specified, even though working for real on my project hasn't started ?
This has been forced in order to fix a problem : When no start date is specified, Typo3 sets the date value at 0 which is the basic value of Unix time. This value translate to date 01/01/1970 which causes problems for displaying the Gantt graph as the way from 1970 to 2008 is a looooooong way. We may code a more stylish solution to this problem in the future, but for now this is the quick and dirty solution.
Send your questions to extensions@mind2machine.com
Configuration¶
This extension can be configured using the plugin flexform as well as with Typoscript. For now the flexform and typoscript settings are complementary and do not redefine each other, so you will find different settings in both of these.
Plugin flexform settings¶
Global administrators : List of users with full frontend management capability over this extension
Gantt graph display order : Specifies if the Gantt graph should be shown before or after the project text content
Show Gantt graph policy : Allows to set the Gantt graph display to occur only in project listing mode or to completely get rid of it.
List mode display :Allows choosing between displaying all projects or root projects only in the projects list. In root projects only mode, children projects can still be accessed either by their parent project file display or by clicking their title in the Gantt graph which continues to display all projects.
Typoscript settings¶
projectDisplayFields¶
Property
projectDisplayFields
Data type
text
Description
Lists the fields to be displayed in Frontend. You can filter some fields that have no interest for your users by redefining the list of fields and removing field labels / block labels you are not interested in.
Default value is :
projectDisplayFields = title, description, documents, worked_days, estimated_data, estimated_start_date, estimated_end_date, estimated_duration, estimated_days_project_duration, estimated_cost_per_day, estimated_cost, real_data, real_start_date, real_end_date, real_duration, cost_per_day, real_cost, real_cost_per_day, computed_estimated_data, computed_real_data, real_days_project_duration, progress, parent, children, dependencies, exceptions, administrators, workers
Default
defaultValues¶
Property
defaultValues
Data type
object
Description
Lists the values to be set automatically when creating a new project.
This is especially useful when hiding some fields using projectDisplayFields: this will warranty you some values are set at the value you want by default even if you don't have access to edit these.
Default values for defaultValues are :
defaultValues {
title = New project
description = type description here
worked_days = 1,2,3,4,5
estimated_start_date = now
estimated_duration = 1
estimated_cost = 0
estimated_cost_per_day = 0
real_start_date = now
real_duration = 0
cost_per_day = 0
progress = 0
parent =
dependencies =
administrators =
workers =
}
worked_days is a coma separated list of days worked during the week. Valid values range from 1 to 7.
estimated_start_date and real_start_date specify a date in the GNU date input format ( http://www.gnu.org/software/tar/manual/html_node/Date-input- formats.html )
estimated_duration and real_duration specify a duration in days. Float values such as 0.3 are accepted.
estimated_cost, estimated_cost_per_day, cost_per_day are currency free int values. Just put 400 if your daily cost is 400$ or 400€ or £400.
progress : set a value from 0 to 100
parent : set with the parent project record uid int value. Only one value / parent is allowed.
dependencies : coma separated list of project record uid int values.
administrators, workers : coma separated list of fe_user record uid int values. Will be inherited by all children projects.
Default
adminButtonsOverride¶
Property
adminButtonsOverride
Data type
Description
You may want to alter the labels or the shape of the admin buttons (admin buttons are “List all projects”, “New project”, “List all exceptions”, “New exception”). This typoscript setting allows you to alter the text of label or even to specify an image to replace it.
When using an image, you'll want to get rid of the borders around. You can do so by redefining the adminBtnLink class in your custom CSS stylesheet. To do so, have a look at the cssStylesheet typoscript setting below.
Example usage :
adminButtonsOverride{
listAllProjects = List all tasks
createProject = New task
listAllExceptions = <img src="/fileadmin/new-ex.gif" />
createException = <img src="/fileadmin/crea-ex.gif" />
}
Default
editButtonsOverride¶
Property
editButtonsOverride
Data type
Description
You may want to alter the labels or the shape of the edit buttons (edit buttons are “View”, “Edit”, “Delete”). This typoscript setting allows you to alter the text of label or even to specify an image to replace it.
When using an image, you'll want to get rid of the borders around. You can do so by redefining the btnLink class in your custom CSS stylesheet. To do so, have a look at the cssStylesheet typoscript setting below.
Example usage :
editButtonsOverride{
view = Project sum-up
edit = Edition
delete = <img src = "/fileadmin/templates/imgproject/res/del.gif" />
}
Default
useExceptions¶
Property
useExceptions
Data type
Int
Description
Set to 0 if you want to disable the display of exceptions in frontend. If exceptions exist and are attached to projects, they will still be computed though.
Default
cssStylesheet¶
Property
cssStylesheet
Data type
text
Description
Absolute path to your custom CSS stylesheet.
You may copy and customize the extension stylesheet located in /typo3conf/ext/pae_project/res/pae_project.css
Example :
cssStylesheet = /fileadmin/templates/css/custom_pae_project.css
Default
[tsref:plugin.tx_paeproject_pi1]
((generated))¶
Default setup¶
These are the Typoscript values applied to the extension by default. Redefine any of these according to your need on your page template / setup field:
plugin.tx_paeproject_pi1 {
projectDisplayFields = title, description, documents, worked_days, estimated_data, estimated_start_date, estimated_end_date, estimated_duration, estimated_days_project_duration, estimated_cost_per_day, estimated_cost, real_data, real_start_date, real_end_date, real_duration, cost_per_day, real_cost, real_cost_per_day, computed_estimated_data, computed_real_data, real_days_project_duration, progress, parent, children, dependencies, exceptions, administrators, workers
defaultValues{
title = New project
description = type description here
worked_days = 1,2,3,4,5
estimated_start_date = now
estimated_duration = 1
estimated_cost = 0
estimated_cost_per_day = 0
real_start_date = now
real_duration = 0
cost_per_day = 0
progress = 0
parent =
dependencies =
administrators =
workers =
}
adminButtonsOverride{
listAllProjects =
createProject =
listAllExceptions =
createException =
}
editButtonsOverride{
view =
edit =
delete =
}
useExceptions = 1
cssStylesheet =
}
Localisation¶
This extension is localisation enabled. Even the Gantt graph flash applet is localized. In the initial release, only French and English localizations are available.
You can easily add your own language by editing the two XML language definition files locallang_db.xml and pi1/locallang.xml located in the directory /typo3conf/ext/pae_project/
In each file, simply add another <languageKey> tag with you country's ISO2 code as value in the “index” parameter of the tag. Then copy all label values and translate the text located between the <label></label> tags. DO NOT alter the value of the “index” parameter inside the <label> tag.
Since the extension has been initially written on your web server's disk by Typo3 and not by you using an FTP client, these files will likely be owned by your webserver's unix user/group (usually named “apache” or “www”). Thus you'll likely be forbidden to overwrite the genuine files.
In order to circumvent this problem, there are 2 solutions :
- If you have a root access to the server, log in as root and set the permissions 777 on these files.
- If you do not have root access to the server, try to alter the permissions on this file to 777 using your FTP client
- If the previous method fail, you can upload the script PHP File Manager ( http://phpfm.sf.net ) on your server using FTP, then run this script by connecting to its URL in your web browser. As the script is run by your webserver, it will use your webserver's unix user/group and will be authorized to change rights on files owned by this user. Use the script to chmod the 2 files to 777, then you'll be able to overwrite the localization files using an FTP upload. When you are done, don't forget to delete the PHP file manager script as it puts your webserver security at risk.
Please send us any localization you have done with us ( `extensions@mind2machine.com <mailto:extensions@mind2machine.com>`_ ) so we can supply it to all users in next versions of this extension.
Known problems¶
Project titles may be incorrectly positioned in the Gantt graph
To-Do list¶
Here are some features we thought would usefully enhance this extension :
- Provide control over Flash applet display settings such as :
- width and height of the flash movie
- transparency
- background color
- ...
- Improve Gantt Flash applet ergonomics (possibly using Flash 10 3D
functions):
- intuitive, fluid and interactive zooming / panning
- showing day marks within week marks when zoom level is sufficient
- Fullscreen mode
- Allow lower zoom levels
- Add a project page browser / selection filter, as dealing with projects may become tricky when their number gets high
- Handle caching : projects are being computed at every page display. Computing calculations are speedy yet complicate. Computation overhead could appear with many projects and high trafic.
- Email notification of all people having a role in the project when some field gets updated in the project file.
- Dependencies management : Issue warning when a dependent task starts at a date where master task is not completed. Dependencies are currently displayed only for informational purpose and have no functionalities associated.
- Let's dream a bit : sliding a project bar using the mouse in the flash applet could update the start date in the project properties in Typo3. Also we could drag the end of the bar for adjusting the project's duration.
- Manage workforce for a given project (this one is complicate to code,
trust me...):
- Adding or removing users would increase / decrease the workforce and the duration of the project would adjust automagically.
- Exceptions could also be defined per user, so inputing a worker's holidays would update the completion delay of all the projects he is participating.
ChangeLog¶
09-02-16 Alban Cousinié, Mind2Machine <extensions@mind2machine.com>
version 0.9.5
* Added german translations to locallang_db.xml and pi1/locallang.xml supplied by Till Conzelmann, ConfidIT (Thanks !!!)
* Added wmode=transparent to flashvars by default
08-10-24 Alban Cousinié, Mind2Machine <extensions@mind2machine.com>
version 0.9.4
* fixed workers/ administrators Typoscript values being ignored
07-12-18 Communauté d'agglomération du pays d'Aubagne et de l'Etoile, Mind2Machine <extensions@mind2machine.com>
version 0.9.0
* Initial release
28