Portal Engine Questions on portal engine and web parts.
Version 5.x > Portal Engine > Best way to modify the Project managment module View modes: 
User avatar
Member
Member
bill.crowe-shawinc - 2/10/2011 2:29:47 PM
   
Best way to modify the Project managment module
I would like to make some changes to the project management module and I am not sure the best path to take.

The first change I would like to do is add a priority field to the project list web part, much like the order by works on the project task list. Would it be better to add a new column to the PM_Project table. Copy the project list web part, modify it to show the priority column and do the reordering based on the priority column?

or

Duplicate all the project management controls and DB tables and change them to suit our needs? I would like to avoid problems with future upgrades if that is possible.

User avatar
Kentico Support
Kentico Support
kentico_zdenekc - 3/16/2011 12:07:08 AM
   
RE:Best way to modify the Project managment module
Hi Bill,

The approaches you're comparing are generally:

- extend the current functionality, modify just the DB table, keep the original controls intact and use the amended ones along.

and

- make a clone of the whole module.

The second approach, although looking cleaner, would be very difficult, may require source code usage (since some parts of code in DLLs will use default structure names) and creates quite big redundancy in site backend code.

Therefore we would recommend rather the first approach, since the change is quite little.

The safest option probably is to create custom table to map the Projects with priorities / ordering and use it just in your modified project list webpart.
Slightly less upgrade-safe (we cannot guarantee the priorities won't be added by default in future), but quite fine approach would be to mark the PM_Project table as system table by changing the "ClassShowAsSystemTable" flag for PM.Project record in CMS_Class table to "1". Then you will be allowed to add new field into the table in Site manager -> Development -> System tables. Please follow the recommendation from this DevGuide article

Hope this will help.

Regards,
Zdenek