v2.0 Release Notes
Notice: This is no longer the latest information available. Please check the sidebar for more up to date information.
Release Date: 28 June 2010’
Downloading & Installing
The only official distribution site is Sourceforge. Check out the Installation page to get started.
Reporting Problems
For more information, support, or to discussion upcoming features, please visit our Support Forums.
Any and all issues discovered should be added to our our Issue Tracking System. Feature requests should be marked as such and not described as issues. Please remember to mark Feature Requests as requests and not bugs.
If you’re not familiar with submitting a bug, please read my post: How To Submit a Bug
New Features
- Added approximately 80 Unit Tests since the v1.3 release, 280+ since the v1.0 release one year ago
- Added an ‘update checker’ to determine when a new version of web2project is available
- Added a data collection mechanism to ‘phone home’ basic system information to web2project.net - no sensitive information is collected and this can be opted out of at any time via the System Configuration
- Implemented functionality to have subprojects automatically create token tasks in their parent projects, all information - percent complete, hours assigned, etc - automatically rolls up into parent project calculations, this is key to bugs 86 and 189 listed immediately below
- Implemented system timezone support to allow for a non-GMT/UTC server to use now() properly
- Updated the UpgradeManager to only allow for updates to be applied by admins via the System Admin
- Issue 63 - Calendar - User-based Timezones
- Issue 86 - Projects - Percent Calculation with Subprojects
- Issue 174 - System Admin - Logging System
- Issue 182 - Contacts - Refactor Contacts to support numerous email addresses, etc
- Issue 189 - Projects - Start/End Date Cascading with Subprojects
Fixes/Bugs Closed
- Applied the filterCurrency and currency formatting to everywhere money is used
- Cleaned up some screwy javascript in base.js in an attempt to debug other issues
- Locked down the Role add/edit screens to not allow granting Admin role unless they have Admin access
- Removed numerous $_REQUEST calls in favor of $_GET or $_POST appropriately
- Removed some hard-coded id’s to kill off Magic Numbers
- Issue 56 - Forums - Forum not assigned to a project
- Issue 290 - Forums - the icon “You have unread post in this topic” (light bulb) is always present
- Issue 300 - Gantt Chart Generation - German Umlaute äöü problem in gantt chart
- Issue 302 - Core Infrastructure - PNG icon files referenced in wrong directory.
- Issue 340 - Core Infrastructure - The date class throws logs
- Issue 360 - Project Designer - Collapse Project Details hides tasks
- Issue 392 - Tasks - The screen following an import operation remains blank.
- Issue 393 - Tasks - user specific priority not shown in taskss->tasks per user
- Issue 402 - Gantt Chart Generation - if no Gantt can be created due to missing data (e.g. no tasks from current filter), there is a red cross displayed
- Issue 403 - Tasks - tasks per user not shown
- Issue 404 - Project Designer - can’t update percent complete
- Issue 405 - Companies - ver 1.3 - Company URL crashes, the links are working properly
- Issue 406 - System Admin - dP conversion does not enter template id into sysadmin field
- Issue 408 - Companies - In the view see company still not working properly URL
- Issue 412 - Projects - Creating dependant projects fails
- Issue 414 - undefined method CustomField
- Issue 415 - Projects - Project count on tabs different (trevormorse)
- Issue 419 - After uploading the SVN 1064 fatal error - block
- Issue 420 - SVN classes/w2p folder made with duplicate names but different case
- Issue 424 - Departments - Changing Departement Name results in a DB Exception
- Issue 425 - Gantt Chart Generation - Gannt title squashed
- Issue 430 - Projects - Case sensitive CustomFieldCheckBox class
- Issue 434 - Forums - BBcode not rendered on forums
- Issue 435 - Projects - Filtered projects list tabs are missing elements
- Issue 437 - Projects - Subprojects cannot be displayed when Owner Filter is on
- Issue 439 - Expense Code Table
- Issue 440 - Projects - Various Bug’s
- Issue 444 - History - Changes in Departments lead to crash in history
- Issue 445 - Projects - Search results do not show subprojects
- Issue 447 - User Admin - User Log Date Time IN - Date Time OUT: swapped values
- Issue 448 - Departments - Error On Department Tab
- Issue 449 - Projects - budget field format
- Issue 454 - Tasks - can’t display user related task priority for single user, can’t reset the same to normal
- Issue 455 - Tasks - Task error
- Issue 457 - Core Infrastructure - Problem upgrading from V1.3
- Issue 461 - Core Infrastructure - Upgrade Problem - Custom fields not recognized
- Issue 462 - Tasks - no CustomOptionList class
- Issue 463 - Projects - Unknown column ‘contact_email’ in ‘field list’
- Issue 464 - Core Infrastructure - Recent cleanup of base.js broke the expansion of projects or tasks lists
- Issue 465 - Companies - module company-bookmark files error
- Issue 466 - SmartSearch - Reorg of contacts with contacts_methods broke smartsearch
- Issue 468 - Reports - Fatal Error
- Issue 473 - Core Infrastructure - Losing project contacts during migration 1.3 -> 2.0
- Issue 478 - Project Designer - projectdesigner does not ‘forward’ error messages
- Issue 485 - Core Infrastructure - new contacts_methods table and zero to many relationships
- Issue 486 - Tasks - Cannot add tasks to projects
- Issue 489 - Departments - Problems adding departments
- Issue 491 - Forums - update Watches
- Issue 496 - Files - Not possible to attach a file to task/project
Misc Changes/Improvements
- Added a patch from dotProject to add organization headers in email confirmations
- Added MIN_PHP_VERSION constant to more easily specify supported versions
- Implemented an HTML Helper to simplify the Contact List view on Tasks & Project screens
- Major cleanup to convert to the PEAR coding standard
- Minor cleanup to the css to remove duplication
- Moved all images for themes/styles to subdirectories to keep things better organized
- Moved around some commonly used functions from their subclasses to main_functions for better access
- Moved the Helpdesk search functionality into the Helpdesk module
- Re-applied some of Trevor’s changes because ninjas were trying to kill Keith
- Refactored all the List pages to prepare for later user-configurable screens
- Removed deprecated functions including references to clone() and checking if we’re using PHP5 or above
- Removed dead/old/commented out code
- Renamed/simplified the permissions checking to clarify usage - eg converted from “getDenyEdit” and “getDenyAdd” to “canEdit” and “canAdd” respectively
- Removed the url validation from the check() methods.. it was wrong and needs reworking
- Separated the Authenticators classes to clearly identify what goes where
- Updated the /classes folder to use a namespace-friendly class structure
- Updated the autoloader to reflect the new class structure and converted to spl_autoload_register to allow for multiple autoloaders
- Updated the last few php4-style constructors to use the php5 style __construct()
- Updated the last of the core objects to have uniform store(), delete(), and check() method signatures
- Issue 221 - Core Infrastructure - PHP5.3 Deprecation Testing
- Issue 231 - Contacts - Displaying “displayed name” ;)
- Issue 328 - Tasks - Disable finish date for milestone tasks
- Issue 441 - Tasks - Add Time Task Log Was Updated For Auditing
- Issue 450 - Projects - Fields to Translation
- Issue 459 - Project Designer - budget field format
- Issue 475 - Companies - budget field format
- Issue 476 - Project Designer - Actions Panel
- Issue 487 - Projects - Project list: should display subprojects
Open/Known Issues
- The cascading dependencies are still not 100% but very close. Although long chains (A->B-C->D->E) work fine and tasks with multiple dependencies work fine, there are a limited number of scenarios where dependencies do not behave as expected.
- One such scenario is when you have a Dynamic Task A with children chain (B->C-D->E) and Task F which is dependent on Task A. If B, C, D or E shift, they shift the rest of the chain as expected and the Dynamic Task (A) as expected but unfortunately F does not get updated.
- If you upgrade from dotProject, you may have an oddity with your default theme/display as the name has changed. If this happens, edit your preferences, change to one of the existing themes, and save.
System Metrics
Here are some core metrics that may be of interest to the geekier among us.
By running these commands, we get the metrics below:
# Assuming web2project is the your base directory
php phploc.php --count-tests --exclude=../web2project/lib ../web2project/
php phpcpd.php --exclude=../web2project/lib/ --exclude=../web2project/unit_tests/ ../web2project/
- Lines of Code: 63691 (9981 of comments, 53710 of code)
- Overall Cyclomatic Complexity/LoC: 0.1
- Classes: 78 (78 Concrete, 0 Abstract)
- Lines of Code/Class: 816
- Class Constants: 6
- Methods: 749 (41 static, 708 non-static)
- Lines of Code/Method: 85
- Cyclomatic Complexity/Number of Methods: 8.11
- Functions: 211
- Constants: 57
- Test Classes: 11
- Test Methods: 284
- 2.12% duplicated lines of code (~1138)
Notice: This is no longer the latest information available. Please check the sidebar for more up to date information.