For all the dotProject newbies out there, this is the kind of thing I wish I’d had when I got started – it would have saved me a lot of time. I’m posting all the files for a dotproject site I manage, since it seems it may help people get started in customizing dotProject.

To find my changes, search across all the files for the phrases “ellen added” or “ellen changed” in various comments.

One note of caution! I am not an expert in php or dotproject so the fact that something has been done doesn’t necessarily mean it is done in the best way, nor even that works. But these files should help to get you going. This is presented “as is” and I will not fix things for you or document things beyond what is in the articles I post here (Browse all my dotProject posts)

One-page Project updating

A lot of functions can be done from the projects page, including changing project status, priority, “Team” (something we added, using sys_vals), and creating a new task on a given project. Eventually I’d like to make all project editing happen from this page.

Picture 24.jpg

You may want to import our sysvals data into your database to see how we use teams, statuses, colors, etc.

-- phpMyAdmin SQL Dump
  -- version
  -- Host: localhost
  -- Generation Time: Feb 16, 2009 at 09:52 AM
  -- Server version: 5.1.30
  -- PHP Version: 5.2.4
  -- Database: `complian_dprj4`
  -- --------------------------------------------------------
  -- Table structure for table `sysvals`
  `sysval_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `sysval_key_id` int(10) unsigned NOT NULL DEFAULT '0',
  `sysval_title` varchar(48) NOT NULL DEFAULT '',
  `sysval_value` text NOT NULL,
  PRIMARY KEY (`sysval_id`)
  -- Dumping data for table `sysvals`
  INSERT INTO `sysvals` (`sysval_id`, `sysval_key_id`, `sysval_title`, `sysval_value`) VALUES
  (1, 1, 'ProjectStatus', '0|Readyrn1|Nd. Resourcesrn2|Nd. Contentrn3|In Progressrn4|In Reviewrn5|Completern6|Cancelledrn7|Templatesrn8|Ongoingrn9|Hold'),
  (2, 1, 'CompanyType', '1|Client'),
  (3, 1, 'TaskDurationType', '1|hoursn24|days'),
  (4, 1, 'EventType', '0|Generaln1|Appointmentn2|Meetingn3|All Day Eventn4|Anniversaryn5|Reminder'),
  (5, 1, 'TaskStatus', '0|Activen-1|Inactive'),
  (6, 1, 'TaskType', '0|Unknownn1|Administrativen2|Operative'),
  (7, 2, 'ProjectType', '0| Allrn1| App Mgt - Bluern2| ROI - Greenrn3| Learn Net - Whitern4| Edu Tech - Lilacrn5| Online Edu - Orangern6| Office Mgmnt - Pinkrn7| Apps Training - Purplern8| Edu Programs - Yellowrn9| Strategic Plan - Turq'),
  (8, 3, 'ProjectColors', 'Web|FFE0AErnEngineering|AEFFB2rnHelpDesk|FFFCAErnSystem Administration|FFAEAE'),
  (9, 1, 'FileType', '0|Unknownn1|Documentn2|Application'),
  (10, 1, 'TaskPriority', '-1|lown0|normaln1|high'),
  (11, 1, 'ProjectPriority', '-1|3-LOWrn0|2-MEDIUMrn1|1-HIGHrn2|2-UNKNOWN'),
  (12, 1, 'ProjectPriorityColor', '-1|#D4E2F7rn0|#009999rn1|#EFA9A9'),
  (13, 1, 'TaskLogReference', '0|Not Definedn1|Emailn2|Helpdeskn3|Phone Calln4|Fax'),
  (14, 1, 'TaskLogReferenceImage', '0| 1|./images/obj/email.gif 2|./modules/helpdesk/images/helpdesk.png 3|./images/obj/phone.gif 4|./images/icons/stock_print-16.png'),
  (15, 1, 'BudgetCode', '0|UH 1|MedSchool 2|HMO'),
  (16, 3, 'ProjectStatusColor', '0|#D4E3F7rn1|#D8BFD8rn2|#F7F7D4rn3|#FFFFFFrn4|#F7E9D4rn5|#E9E9E9rn6|#E9E9E9rn7|#FFFFFFrn8|#D5F7D4'),
  (17, 1, 'ProjectRequiredFields', 'f.project_name.value.length|<3rnf.project_color_identifier.value.length|<3rnf.project_company.options[f.project_company.selectedIndex].value|<1'),
  (18, 1, 'UserType', '0|Default Userrn1|Administratorrn2|CEOrn3|Directorrn4|Branch Managerrn5|Managerrn6|Supervisorrn7|Employee'),
  (19, 1, 'TicketNotify', '0|admin@localhostn1|admin@localhostn2|admin@localhostrn3|admin@localhostrn4|admin@localhost'),
  (20, 1, 'TicketPriority', '0|Lown1|Normaln2|Highn3|Highestn4|911'),
  (21, 1, 'TicketStatus', '0|Openn1|Closedn2|Deleted'),
  (24, 4, 'HelpDeskPriority', '0|Not Specifiedn1|Lown2|Mediumn3|High'),
  (25, 4, 'HelpDeskSeverity', '0|Not Specifiedn1|No Impactn2|Lown3|Mediumn4|Highn5|Critical'),
  (26, 4, 'HelpDeskCallType', '0|Not Specifiedrn1|Activity still in progressrn2|Wrong activity on planrn3|Quiz didn''t scorern4|How to unenrollrn5|Unable to log inrn6|Delete activity from transcriptrn7|Manager - Staff listrn8|Learning module or SCORMrn9|Other'),
  (27, 4, 'HelpDeskSource', '0|Not Specifiedrn1|E-Mailrn2|Phonern3|In Personrn4|Fax'),
  (28, 4, 'HelpDeskOS', '0|End-Userrn1|Managerrn2|Facilitatorrn3|Other'),
  (29, 4, 'HelpDeskApplic', '0|Not Applicablern1|LMSrn2|Learning Module/Quiz'),
  (30, 4, 'HelpDeskStatus', '0|Unassignedn1|Openn2|Closedn3|On Holdn4|Testing'),
  (31, 4, 'HelpDeskAuditTrail', '0|Createdn1|Titlen2|Requestor Namen3|Requestor E-mailn4|Requestor Phonen5|Assigned Ton6|Notify by e-mailn7|Companyn8|Projectn9|Call Typen10|Call Sourcen11|Statusn12|Priorityn13|Severityn14|Operating Systemn15|Applicationn16|Summaryn17|Deleted'),
  (35, 3, 'ProjectTypeColor', '0|#CCCCCC;rn1|#6699ccrn2|#66cc99rn3|#FFFFFFrn4|#ccccffrn5|#ff9966rn6|#ff99ccrn7|#660099rn8|#ffffccrn9|#009999'),
  (32, 2, 'Complete?', '0|Yesrn1|No'),
  (36, 1, 'TicketSubject', '0| Otherrn1|activity still in progressrn2|wrong activity on planrn3|quiz didn''t scorern4|how to unenrollrn5|unable to log inrn6|delete activity from transcriptrn7|Unable to open modules or quizzesrn8|Facilitator accessrn9|How to Usern10|Fix Learning Activity or Portal'); 


Enhanced To-do list for each user

Reorder the tasks on your list: we very rarely share tasks, so each task basically has one assigned user. As a result, I was able to use a field in the main tasks table to keep track of a task-order value, so each person could order their tasks on a big list.

This should really be done with a separate table and some jquery-style drag-n-drop so you can move your tasks around in the list, but that's all for a future upgrade. This quick-and dirty-version works for small teams with minimal task sharing.

Picture 25.jpg

Help-call log based on ticket module

I modified the ticket system to create a sort of call log. We don't really need a real ticket system per se, but we do need a way to keep statistics on what kinds of requests for help come in. So I've started to work on making this a one-page module. Everything is entered and filtered on one page. A work in progress.

Picture 28.jpg