Forum OpenACS Development: Project Manager Todo List

Collapse
Posted by Alex Kroman on
The purpose of this thread will be to coordinate development of Project Manager. Feel free to post any ideas you have for new features. If you are a developer, please post your todo list to ensure there is no duplicated work.
Collapse
Posted by Alex Kroman on
My current to do list is:

- Implement Gantt Charts for Project and Task Views. Still investigating how I will do this, but it's looking like it will probably just be straight HTML (for now)

- We will start using 'milestones' at IBR which will probably entail UI changes in subprojects or in task dependencies. I will write more about our requirements tomorrow and see if we can reach a consensus on the best way to implement this in project manager.

- Malte talked about ongoing UI improvements which I definintely would like to participate in.

Collapse
Posted by Malte Sussdorff on
Changes done on HEAD:

- Moved bits and pieces into /lib so the could be used by the new
- Portlets for .LRN
- Possibility to extend projects and tasks with dynamic type elements
- Many minor issues

We are working on:
- Change deadlines to timestamp instead of simple date
- Create a project deadline calendar view just as the task calendar view, make both a portlet.

Collapse
Posted by Alex Kroman on
Malte,

I'm still working off of the oacs-5-1 branch. When would be a good time to merge the two branches? We are still running 5.1 here and since we have a ton of custom packages I'm not sure how long it will take us to get upgraded.

Collapse
Posted by Malte Sussdorff on
I'd merge once you are ready for the upgrade, but not before middle of September, as we will continue with heavy development until then for sure.
Collapse
Posted by Alex Kroman on
Are you planning on overhauling the UI before September or after?
Collapse
Posted by Alex Kroman on
Other things I've been working on

- Percentage Complete for each project. (This is done but I'm still testing to make sure it doesn't increase the execution time too much)

- Revamp the task-revisions and project-revisions pages so that you can quickly see every field that was modified. I am going to implement this by looping over existing fields in the tables so it will show modified fields that you have added manually. For every field that changed I will write a line like:

Project Code: 1234 Changed to: 12345
Work Estimate: 4 hours Changed to: 6 hours

Collapse
Posted by Alex Kroman on
Malte,

I tried checking out all of the new changes to project manager but I am having some problems getting it working (I'm sure I'm doing something wrong). Are you working against OACS HEAD or the OACS 5.2 branch?

When I take the HEAD project-manager and try to run it against the 5.2 branch I get this errror:

Error in include template "/home/ibr-dev/oacs-5-2/packages/project-manager/templates/project-ae": Invalid switch: "-exclude_static"

Against OACS HEAD I get this error:

Error in include template "/home/ibr-dev/oacs-HEAD/packages/project-manager/lib/projects": could not read "/home/ibr-dev/oacs-HEAD/packages/acs-templating/resources/lists/select-menu.adp": no such file or directory

Am I working off the wrong code base?

Collapse
Posted by Malte Sussdorff on
we work against the 5-2 branch. Dynamic Types had been missing some functionality, which I added last night, so you might have to do a fresh checkout of dynamic types again. Project Manager itself is the version in HEAD
Collapse
Posted by Alex Kroman on
I looked over project manager. The work you all have been doing is fantastic!

I ran into two bugs that I can't quite figure out. During the process of adding a task the proc pm::project::compute_status_mins is called. There are 3 instances of the block that starts out with

while { $mins_to_complete > [expr $hours_day * 60]} {

....

Each of these blocks causes an infinite loop. I can't really tell what that code is doing or how it would reach a condition that would exit the loop. I fixed it on my local copy by just removing it completely.

---

There seems to be another bug where tasks are not being displayed withing the projects. To fix this on my local copy I reverted lib/tasks-postgresql.xql from version 1.7 to 1.1.

---

Collapse
Posted by Malte Sussdorff on
The first thing should compute the minutes left to finish the task. I think you could fix it by using while {$t_total_mins ..., but this is a rough guess from briefly looking at the code.

Can you be a little bit specific on tasks not showing up? The tasks-postgresl.xql has been significantly tuned for performance and if we lost some tasks on the way it is mandatory for us to find out where.

Collapse
Posted by Alex Kroman on
That query is huge and I'm having a hard time tracking down exactly where the problem is with it. I think it has something to do with the join between acs_rels and acs_objects. The query that is being used for task pagination is working fine.
Collapse
Posted by Alex Kroman on
Disregard that last post. The problem is that the database creation scripts are out of sync with the upgrade scripts. I'm working on making them consistent and should have that comitted later today.
Collapse
Posted by Alex Kroman on
When you try to add 2 or more tasks (and you get the old multiple edit page) it will give you this error when you try to create your tasks:

Database operation "0or1row" failed (exception NSDB, "Query was not a statement returning rows.")

ERROR: null value in column "name" violates not-null constraint
CONTEXT: PL/pgSQL function "content_item__new" line 103 at SQL statement
PL/pgSQL function "pm_task__new_task_item" line 35 at assignment

OK, so it looks like content_item__new is not getting it's name passed to it.

In the database script we have:

   -- create the task_number
        if p_task_id is null then
           select
        else
           v_id := p_task_id;
        end if;

        v_item_id := content_item__new (
                v_id::varchar,          -- name

I changed the v_id to p_task_id and everything seems to work fine.

Obviously my change will break something else since timoh created this v_id variable in upgrade-3.0d7-3.0d8.sql

Any ideas on a fix?

Collapse
Posted by Malte Sussdorff on
I changed the task-info-portlet as it contained date information, which are in the task-dates-portlet and should stay there (this is why they had been split up into seperate portlets). Furthermore I removed the task-date-portlet as it was redundant with the task-dates-portlet.

The reasoning for this is due to the fact that timing(date) information can be six or seven rows large. Having this in the "-info" portlet does not make sense for me. I'd actually get even more information out of the -info portlet (e.g. the dynamic attributes) but for the moment that should be fine.

Take a look at it. I think this makes most sense for multiple sites (at least we have it this way in three sites at the moment). If you want to run a custom version of the portlet, write it and put it into a custom package. Then copy task-one.* from /project-manager/templates to your custom package, change the include for the task-info-portlet and let it point to your custom task-info-portlet

Collapse
Posted by Richard Hamilton on
Malte,

Been out of action for a while. Great to see everything still hot!

One thing while I remember. In the code I originally sent you when we were merging the project and task level permissions support with your changes I had added a little padlock icon and link to the project and task view pages that linked to the acs_permissions setting page. This made it easy and convenient to set permissions on any object from the object view page.

I noticed when I last checked out a copy (a while ago now) that it was not there any more - probably got lost in the merge. I was going to fix it myself but have not yet done so and now I think I don't have access to the new cvs.

Also, thanks for the email re: handling incoming email. I will reply asap.

R.

Collapse
Posted by Malte Sussdorff on
Hi Richard, good to see you back. I'm not sure which version you are using, but I do see the padlock Icon on my HEAD checkout and it works just as advertised. Though now we have support to assign groups to tasks and projects, it will be interesting to see how we can handle this with the permissions.

Oh yeah, one more thing I added. If you are assigned as a LEAD role, you get admin permissions on the task/project, if you get watcher you have read and all others get write. I think this makes sense, please object otherwise.