Update ProjectManager for Moose.
This commit is contained in:
parent
5259184c16
commit
54fa46ad11
1 changed files with 72 additions and 96 deletions
|
|
@ -19,7 +19,66 @@ use WebGUI::International;
|
|||
use WebGUI::Utility;
|
||||
use WebGUI::HTML;
|
||||
use POSIX qw(ceil floor);
|
||||
use base 'WebGUI::Asset::Wobject';
|
||||
use WebGUI::Definition::Asset;
|
||||
extends 'WebGUI::Asset::Wobject';
|
||||
aspect assetName => ['assetName', 'Asset_ProjectManager'],
|
||||
aspect icon => 'projManagement.gif',
|
||||
aspect tableName => 'PM_wobject',
|
||||
property projectDashboardTemplateId => (
|
||||
fieldType => "template",
|
||||
default => 'ProjectManagerTMPL0001',
|
||||
tab => "display",
|
||||
namespace => "ProjectManager_dashboard",
|
||||
hoverHelp => ['projectDashboardTemplate hoverhelp', 'Asset_ProjectManager'],
|
||||
label => ['projectDashboardTemplate label', 'Asset_ProjectManager'],
|
||||
);
|
||||
property projectDisplayTemplateId => (
|
||||
fieldType => "template",
|
||||
default => 'ProjectManagerTMPL0002',
|
||||
tab => "display",
|
||||
namespace => "ProjectManager_project",
|
||||
hoverHelp => ['projectDisplayTemplate hoverhelp', 'Asset_ProjectManager'],
|
||||
label => ['projectDisplayTemplate label', 'Asset_ProjectManager'],
|
||||
);
|
||||
property ganttChartTemplateId => (
|
||||
fieldType => "template",
|
||||
default => 'ProjectManagerTMPL0003',
|
||||
tab => "display",
|
||||
namespace => "ProjectManager_gantt",
|
||||
hoverHelp => ['ganttChartTemplate hoverhelp', 'Asset_ProjectManager'],
|
||||
label => ['ganttChartTemplate label', 'Asset_ProjectManager'],
|
||||
);
|
||||
property editTaskTemplateId => (
|
||||
fieldType => "template",
|
||||
default => 'ProjectManagerTMPL0004',
|
||||
tab => "display",
|
||||
namespace => "ProjectManager_editTask",
|
||||
hoverHelp => ['editTaskTemplate hoverhelp', 'Asset_ProjectManager'],
|
||||
label => ['editTaskTemplate label', 'Asset_ProjectManager'],
|
||||
);
|
||||
property resourcePopupTemplateId => (
|
||||
fieldType => "template",
|
||||
default => 'ProjectManagerTMPL0005',
|
||||
tab => "display",
|
||||
namespace => "ProjectManager_resourcePopup",
|
||||
hoverHelp => ['resourcePopupTemplate hoverhelp', 'Asset_ProjectManager'],
|
||||
label => ['resourcePopupTemplate label', 'Asset_ProjectManager'],
|
||||
);
|
||||
property resourceListTemplateId => (
|
||||
fieldType => "template",
|
||||
default => 'ProjectManagerTMPL0006',
|
||||
tab => "display",
|
||||
namespace => "ProjectManager_resourceList",
|
||||
hoverHelp => ['resourceListTemplate hoverhelp', 'Asset_ProjectManager'],
|
||||
label => ['resourceListTemplate label', 'Asset_ProjectManager'],
|
||||
);
|
||||
property groupToAdd => (
|
||||
fieldType => "group",
|
||||
default => 3,
|
||||
tab => "security",
|
||||
hoverHelp => ['groupToAdd hoverhelp', 'Asset_ProjectManager'],
|
||||
label => ['groupToAdd label', 'Asset_ProjectManager'],
|
||||
);
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
|
|
@ -219,7 +278,7 @@ sub _htmlOfResourceList {
|
|||
push @{$var->{resourceLoop}}, $subvar;
|
||||
}
|
||||
|
||||
return $self->processTemplate($var, $self->getValue('resourceListTemplateId'));
|
||||
return $self->processTemplate($var, $self->resourceListTemplateId);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -306,7 +365,7 @@ sub _resourceSearchPopup {
|
|||
$var->{doingSearch} = 0;
|
||||
}
|
||||
|
||||
return $self->processTemplate($var, $self->getValue('resourcePopupTemplateId'));
|
||||
return $self->processTemplate($var, $self->resourcePopupTemplateId);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -405,7 +464,7 @@ sub _userCanManageProject {
|
|||
my $user = shift;
|
||||
my $projectId = shift;
|
||||
my ($managerGroup) = $self->session->db->quickArray("select projectManager from PM_project where projectId = ?", [$projectId]);
|
||||
return $self->canView($user->userId) && ($user->isInGroup($managerGroup) || $user->isInGroup($self->get('groupToAdd')));
|
||||
return $self->canView($user->userId) && ($user->isInGroup($managerGroup) || $user->isInGroup($self->groupToAdd));
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -417,7 +476,7 @@ sub _userCanManageProject {
|
|||
sub _userCanManageProjectList {
|
||||
my $self = shift;
|
||||
my $user = shift;
|
||||
return $self->canView($user->userId) && $user->isInGroup($self->get('groupToAdd'));
|
||||
return $self->canView($user->userId) && $user->isInGroup($self->groupToAdd);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -431,92 +490,9 @@ sub _userCanObserveProject {
|
|||
my $user = shift;
|
||||
my $projectId = shift;
|
||||
my ($managerGroup, $observerGroup) = $self->session->db->quickArray("select projectManager, projectObserver from PM_project where projectId = ?", [$projectId]);
|
||||
return $self->canView($user->userId) && ($user->isInGroup($managerGroup) || $user->isInGroup($observerGroup) || $user->isInGroup($self->get('groupToAdd')));
|
||||
return $self->canView($user->userId) && ($user->isInGroup($managerGroup) || $user->isInGroup($observerGroup) || $user->isInGroup($self->groupToAdd));
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 definition
|
||||
|
||||
=cut
|
||||
|
||||
sub definition {
|
||||
my $class = shift;
|
||||
my $session = shift;
|
||||
my $definition = shift;
|
||||
my $i18n = WebGUI::International->new($session,'Asset_ProjectManager');
|
||||
my $db = $session->db;
|
||||
my %properties;
|
||||
tie %properties, 'Tie::IxHash';
|
||||
%properties = (
|
||||
projectDashboardTemplateId =>{
|
||||
fieldType=>"template",
|
||||
defaultValue=>'ProjectManagerTMPL0001',
|
||||
tab=>"display",
|
||||
namespace=>"ProjectManager_dashboard",
|
||||
hoverHelp=>$i18n->get('projectDashboardTemplate hoverhelp'),
|
||||
label=>$i18n->get('projectDashboardTemplate label')
|
||||
},
|
||||
projectDisplayTemplateId => {
|
||||
fieldType=>"template",
|
||||
defaultValue=>'ProjectManagerTMPL0002',
|
||||
tab=>"display",
|
||||
namespace=>"ProjectManager_project",
|
||||
hoverHelp=>$i18n->get('projectDisplayTemplate hoverhelp'),
|
||||
label=>$i18n->get('projectDisplayTemplate label')
|
||||
},
|
||||
ganttChartTemplateId => {
|
||||
fieldType=>"template",
|
||||
defaultValue=>'ProjectManagerTMPL0003',
|
||||
tab=>"display",
|
||||
namespace=>"ProjectManager_gantt",
|
||||
hoverHelp=>$i18n->get('ganttChartTemplate hoverhelp'),
|
||||
label=>$i18n->get('ganttChartTemplate label')
|
||||
},
|
||||
editTaskTemplateId =>{
|
||||
fieldType=>"template",
|
||||
defaultValue=>'ProjectManagerTMPL0004',
|
||||
tab=>"display",
|
||||
namespace=>"ProjectManager_editTask",
|
||||
hoverHelp=>$i18n->get('editTaskTemplate hoverhelp'),
|
||||
label=>$i18n->get('editTaskTemplate label')
|
||||
},
|
||||
resourcePopupTemplateId =>{
|
||||
fieldType=>"template",
|
||||
defaultValue=>'ProjectManagerTMPL0005',
|
||||
tab=>"display",
|
||||
namespace=>"ProjectManager_resourcePopup",
|
||||
hoverHelp=>$i18n->get('resourcePopupTemplate hoverhelp'),
|
||||
label=>$i18n->get('resourcePopupTemplate label')
|
||||
},
|
||||
resourceListTemplateId =>{
|
||||
fieldType=>"template",
|
||||
defaultValue=>'ProjectManagerTMPL0006',
|
||||
tab=>"display",
|
||||
namespace=>"ProjectManager_resourceList",
|
||||
hoverHelp=>$i18n->get('resourceListTemplate hoverhelp'),
|
||||
label=>$i18n->get('resourceListTemplate label')
|
||||
},
|
||||
groupToAdd => {
|
||||
fieldType=>"group",
|
||||
defaultValue=>3,
|
||||
tab=>"security",
|
||||
hoverHelp=>$i18n->get('groupToAdd hoverhelp'),
|
||||
label=>$i18n->get('groupToAdd label')
|
||||
}
|
||||
);
|
||||
push(@{$definition}, {
|
||||
assetName=>$i18n->get('assetName'),
|
||||
icon=>'projManagement.gif',
|
||||
autoGenerateForms=>1,
|
||||
tableName=>'PM_wobject',
|
||||
className=>'WebGUI::Asset::Wobject::ProjectManager',
|
||||
properties=>\%properties
|
||||
});
|
||||
return $class->SUPER::definition($session, $definition);
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
#API method called by Time Tracker to return the instance of the PM wobject which this project blongs
|
||||
|
||||
|
|
@ -615,11 +591,11 @@ sub i18n {
|
|||
sub prepareView {
|
||||
my $self = shift;
|
||||
$self->SUPER::prepareView();
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get("projectDashboardTemplateId"));
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->projectDashboardTemplateId);
|
||||
if (!$template) {
|
||||
WebGUI::Error::ObjectNotFound::Template->throw(
|
||||
error => qq{Template not found},
|
||||
templateId => $self->get("projectDashboardTemplateId"),
|
||||
templateId => $self->projectDashboardTemplateId,
|
||||
assetId => $self->getId,
|
||||
);
|
||||
}
|
||||
|
|
@ -785,7 +761,7 @@ sub view {
|
|||
|
||||
#Project Data
|
||||
my @projects = ();
|
||||
my $sth = $db->read("select * from PM_project where assetId=".$db->quote($self->get("assetId")));
|
||||
my $sth = $db->read("select * from PM_project where assetId=".$db->quote($self->assetId));
|
||||
while (my $project = $sth->hashRef) {
|
||||
my $hash = {};
|
||||
my $projectId = $project->{projectId};
|
||||
|
|
@ -1141,7 +1117,7 @@ sub www_drawGanttChart {
|
|||
my $scrollWidth = (1- (560 / $projVar->{'project.table.width'})) * 100;
|
||||
$var->{'project.scroll.percentWidth'} = $projVar->{'project.scroll.percentWidth'} = sprintf("%2.2f",$scrollWidth);
|
||||
|
||||
return $self->processTemplate($var,$self->getValue("ganttChartTemplateId"));
|
||||
return $self->processTemplate($var,$self->ganttChartTemplateId);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -1192,7 +1168,7 @@ sub www_editProject {
|
|||
);
|
||||
$f->group(
|
||||
-name=> "projectManager",
|
||||
-value=> $form->get("projectManager") || $project->{projectManager} || $self->get("groupToAdd"),
|
||||
-value=> $form->get("projectManager") || $project->{projectManager} || $self->groupToAdd,
|
||||
-hoverHelp=> $i18n->get('project manager hoverhelp'),
|
||||
-label => $i18n->get('project manager label')
|
||||
);
|
||||
|
|
@ -1530,7 +1506,7 @@ sub www_editTask {
|
|||
$var->{'task_resource_label'} = $i18n->get('task resource label');
|
||||
$var->{'task_save_label'} = $i18n->get('task save label');
|
||||
|
||||
return $self->processTemplate($var,$self->getValue("editTaskTemplateId"));
|
||||
return $self->processTemplate($var,$self->editTaskTemplateId);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -2018,7 +1994,7 @@ sub www_viewProject {
|
|||
$var->{'task.back.label'} = $i18n->get("task back label");
|
||||
$var->{'task.back.url'} = $self->getUrl;
|
||||
|
||||
return $self->processStyle($self->processTemplate($var,$self->getValue("projectDisplayTemplateId")));
|
||||
return $self->processStyle($self->processTemplate($var,$self->projectDisplayTemplateId));
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue