From b48587cc061bbcb9914fe1a1e5e42e0feefcc1d9 Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Mon, 15 Feb 2010 11:14:35 -0800 Subject: [PATCH] Update EMSBadge for Moose. Still needs a customDrawMethod replacement. --- asset_status.ods | Bin 17010 -> 17026 bytes lib/WebGUI/Asset/Sku/EMSBadge.pm | 168 ++++++++++++++----------------- 2 files changed, 73 insertions(+), 95 deletions(-) diff --git a/asset_status.ods b/asset_status.ods index 6150c3b68d54ad97446c69d45fe0a34f550e2e55..0d87f9710d250ac509ac4145d4123b8c61aaa05c 100644 GIT binary patch delta 5064 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 diff --git a/lib/WebGUI/Asset/Sku/EMSBadge.pm b/lib/WebGUI/Asset/Sku/EMSBadge.pm index bb196c730..981c8336a 100644 --- a/lib/WebGUI/Asset/Sku/EMSBadge.pm +++ b/lib/WebGUI/Asset/Sku/EMSBadge.pm @@ -15,8 +15,71 @@ package WebGUI::Asset::Sku::EMSBadge; =cut use strict; -use Tie::IxHash; -use base 'WebGUI::Asset::Sku'; +use WebGUI::Definition::Asset; +extends 'WebGUI::Asset::Sku'; +aspect assetName => ['ems badge', 'Asset_EMSBadge']; +aspect icon => 'EMSBadge.gif'; +aspect tableName => 'EMSBadge'; +property price => ( + tab => "shop", + fieldType => "float", + default => 0.00, + label => ["price", 'Asset_EMSBadge'], + hoverHelp => ["price help", 'Asset_EMSBadge'], + ); +property earlyBirdPrice => ( + tab => "shop", + fieldType => "float", + default => 0.00, + label => ["early bird price", 'Asset_EMSBadge'], + hoverHelp => ["early bird price help", 'Asset_EMSBadge'], + ); +property earlyBirdPriceEndDate => ( + tab => "shop", + fieldType => "date", + default => undef, + label => ["early bird price end date", 'Asset_EMSBadge'], + hoverHelp => ["early bird price end date help", 'Asset_EMSBadge'], + ); +property preRegistrationPrice => ( + tab => "shop", + fieldType => "float", + default => 0.00, + label => ["pre registration price", 'Asset_EMSBadge'], + hoverHelp => ["pre registration price help", 'Asset_EMSBadge'], + ); +property preRegistrationPriceEndDate => ( + tab => "shop", + fieldType => "date", + default => undef, + label => ["pre registration price end date", 'Asset_EMSBadge'], + hoverHelp => ["pre registration price end date help", 'Asset_EMSBadge'], + ); +property seatsAvailable => ( + tab => "shop", + fieldType => "integer", + default => 100, + label => ["seats available", 'Asset_EMSBadge'], + hoverHelp => ["seats available help", 'Asset_EMSBadge'], + ); +property relatedBadgeGroups => ( + tab => "properties", + fieldType => "checkList", + customDrawMethod=> 'drawRelatedBadgeGroupsField', + label => ["related badge groups", 'Asset_EMSBadge'], + hoverHelp => ["related badge groups badge help", 'Asset_EMSBadge'], + ); +property templateId => ( + tab => "display", + fieldType => "template", + label => ["view badge template", 'Asset_EMSBadge'], + hoverHelp => ["view badge template help", 'Asset_EMSBadge'], + default => 'PBEmsBadgeTemplate0000', + namespace => 'EMSBadge', + ); + + + use JSON; use WebGUI::HTMLForm; use WebGUI::International; @@ -63,91 +126,6 @@ sub addToCart { #------------------------------------------------------------------- -=head2 definition - -Adds price, seatsAvailable fields. - -=cut - -sub definition { - my $class = shift; - my $session = shift; - my $definition = shift; - my %properties; - tie %properties, 'Tie::IxHash'; - my $i18n = WebGUI::International->new($session, "Asset_EventManagementSystem"); - %properties = ( - price => { - tab => "shop", - fieldType => "float", - defaultValue => 0.00, - label => $i18n->get("price"), - hoverHelp => $i18n->get("price help"), - }, - earlyBirdPrice => { - tab => "shop", - fieldType => "float", - defaultValue => 0.00, - label => $i18n->get("early bird price"), - hoverHelp => $i18n->get("early bird price help"), - }, - earlyBirdPriceEndDate => { - tab => "shop", - fieldType => "date", - defaultValue => undef, - label => $i18n->get("early bird price end date"), - hoverHelp => $i18n->get("early bird price end date help"), - }, - preRegistrationPrice => { - tab => "shop", - fieldType => "float", - defaultValue => 0.00, - label => $i18n->get("pre registration price"), - hoverHelp => $i18n->get("pre registration price help"), - }, - preRegistrationPriceEndDate => { - tab => "shop", - fieldType => "date", - defaultValue => undef, - label => $i18n->get("pre registration price end date"), - hoverHelp => $i18n->get("pre registration price end date help"), - }, - seatsAvailable => { - tab => "shop", - fieldType => "integer", - defaultValue => 100, - label => $i18n->get("seats available"), - hoverHelp => $i18n->get("seats available help"), - }, - relatedBadgeGroups => { - tab => "properties", - fieldType => "checkList", - customDrawMethod=> 'drawRelatedBadgeGroupsField', - label => $i18n->get("related badge groups"), - hoverHelp => $i18n->get("related badge groups badge help"), - }, - templateId => { - tab => "display", - fieldType => "template", - label => $i18n->get("view badge template"), - hoverHelp => $i18n->get("view badge template help"), - defaultValue => 'PBEmsBadgeTemplate0000', - namespace => 'EMSBadge', - }, - ); - push(@{$definition}, { - assetName => $i18n->get('ems badge'), - icon => 'EMSBadge.gif', - autoGenerateForms => 1, - tableName => 'EMSBadge', - className => 'WebGUI::Asset::Sku::EMSBadge', - properties => \%properties - }); - return $class->SUPER::definition($session, $definition); -} - -#------------------------------------------------------------------- - =head2 drawRelatedBadgeGroupsField () Draws the field for the relatedBadgeGroups property. @@ -222,13 +200,13 @@ Returns the price field value. sub getPrice { my $self = shift; - if ($self->get('earlyBirdPriceEndDate') < time) { - return $self->get('price'); + if ($self->earlyBirdPriceEndDate < time) { + return $self->price; } - elsif ($self->get('preRegistrationPriceEndDate') < time) { - return $self->get('earlyBirdPrice'); + elsif ($self->preRegistrationPriceEndDate < time) { + return $self->earlyBirdPrice; } - return $self->get('preRegistrationPrice'); + return $self->preRegistrationPrice; } #------------------------------------------------------------------- @@ -242,7 +220,7 @@ Returns seatsAvailable - the count from the EMSRegistrant table. sub getQuantityAvailable { my $self = shift; my $seatsTaken = $self->session->db->quickScalar("select count(*) from EMSRegistrant where badgeAssetId=?",[$self->getId]); - return $self->get("seatsAvailable") - $seatsTaken; + return $self->seatsAvailable - $seatsTaken; } #------------------------------------------------------------------- @@ -350,7 +328,7 @@ See WebGUI::Asset, prepareView for details. sub prepareView { my $self = shift; $self->SUPER::prepareView(); - my $templateId = $self->get('templateId'); + my $templateId = $self->templateId; my $template = WebGUI::Asset::Template->new($self->session, $templateId); $self->{_viewTemplate} = $template; } @@ -458,7 +436,7 @@ sub view { $vars{submitAddress} = WebGUI::Form::submit($session, {value => $i18n->get('add to cart'),}); } $vars{title} = $self->getTitle; - $vars{description} = $self->get('description'); + $vars{description} = $self->description; # render the page; return $self->processTemplate(\%vars, undef, $self->{_viewTemplate});