almost done

This commit is contained in:
David Delikat 2009-03-24 04:49:06 +00:00
parent b35848179c
commit efbe79e365
3 changed files with 72 additions and 29 deletions

View file

@ -81,8 +81,13 @@ Deletes this ad.
sub delete { sub delete {
my $self = shift; my $self = shift;
my $iterator = WebGUI::AssetCollateral::Sku::Ad::Ad->getAllIterator($session,{
constraints => [ { "adSkuPurchase.adId = ?" => $self->getId } ],
});
while( my $object = $iterator->() ) {
$object->update('isDeleted' => 1);
}
my $storage = WebGUI::Storage->get($self->session, $self->get("storageId")); my $storage = WebGUI::Storage->get($self->session, $self->get("storageId"));
# dav TODO update WebGUI::AssetColateral::Sku::Ad::Ad set delete flag for this AdId
$storage->delete if defined $storage; $storage->delete if defined $storage;
$self->session->db->deleteRow("advertisement","adId",$self->getId); $self->session->db->deleteRow("advertisement","adId",$self->getId);
$self = undef; $self = undef;

View file

@ -273,17 +273,25 @@ sub manage {
}); });
my %ads; my %ads;
while( my $object = $iterator->() ) { while( my $object = $iterator->() ) {
next if $object->get('isDeleted'); # because the ad is deleted... all we could show is the 'deleted' text...
next if exists $ads{$object->get('adId')}; next if exists $ads{$object->get('adId')};
my $ad = $ads{$object->get('adId')} = WebGUI::AdSpace::Ad->new($session,$object->get('adId')); my $ad = $ads{$object->get('adId')} = WebGUI::AdSpace::Ad->new($session,$object->get('adId'));
next if undef $ad; # TODO not sure why we get here... if( $object->get('isDeleted') ) {
push @{$var{myAds}}, { push @{$var{myAds}}, {
rowTitle => '',
rowClicks => '0/0',
rowImpressions => '0/0',
rowDeleted => 1,
rowRenewLink => '',
};
} else {
push @{$var{myAds}}, {
rowTitle => $ad->get('title'), rowTitle => $ad->get('title'),
rowClicks => $ad->get('clicks') . '/' . $ad->get('clicksBought'), rowClicks => $ad->get('clicks') . '/' . $ad->get('clicksBought'),
rowImpressions => $ad->get('impressions') . '/' . $ad->get('impressionsBought'), rowImpressions => $ad->get('impressions') . '/' . $ad->get('impressionsBought'),
rowDeleted => $object->get('isDeleted'), rowDeleted => 0,
rowRenewLink => $self->getUrl('func=renew;adId=' . $object->get('adId') ), rowRenewLink => $self->getUrl('func=renew;Id=' . $object->get('adSkuPurchaseId') ),
}; };
}
} }
return $self->processTemplate(\%var,undef,$self->{_viewTemplate}); return $self->processTemplate(\%var,undef,$self->{_viewTemplate});
} }
@ -292,7 +300,7 @@ sub manage {
=head2 onCompletePurchase =head2 onCompletePurchase
inserts the ad intothe adspace... inserts the ad into the adspace...
=cut =cut
@ -300,21 +308,35 @@ sub onCompletePurchase {
my $self = shift; my $self = shift;
my $item = shift; my $item = shift;
my $options = $self->getOptions; my $options = $self->getOptions;
my $ad;
# LATER: if we use Temp Storage for the image we need to move it to perm storage # LATER: if we use Temp Storage for the image we need to move it to perm storage
my $ad = WebGUI::AdSpace::Ad->create($self->session,$self->get('adSpace'),{ if( $options->{adId} ne '' ) {
title => $options->{'adtitle'}, $ad = WebGUI::AdSpace::Ad->new($self->session,$options->{adId});
clicksBought => $options->{'clicks'}, my $clicks = $options->{clicks} + $ad->get('clicksBought');
impressionsBought => $options->{'impressions'}, my $impressions = $options->{impressions} + $ad->get('impressionsBought');
url => $options->{'link'}, $ad->set({
storageId => $options->{'image'}, title => $options->{'adtitle'},
ownerUserId => $self->session->user->userId, clicksBought => $clicks,
isActive => 1, impressionsBought => $impressions,
type => 'image', url => $options->{'link'},
priority => $self->get('priority'), storageId => $options->{'image'},
adSpace => $self->get('adSpace'), });
}); } else {
$ad = WebGUI::AdSpace::Ad->create($self->session,$self->get('adSpace'),{
title => $options->{'adtitle'},
clicksBought => $options->{'clicks'},
impressionsBought => $options->{'impressions'},
url => $options->{'link'},
storageId => $options->{'image'},
ownerUserId => $self->session->user->userId,
isActive => 1,
type => 'image',
priority => $self->get('priority'),
adSpace => $self->get('adSpace'),
});
}
WebGUI::AssetCollateral::Sku::Ad::Ad->create($self->session,{ WebGUI::AssetCollateral::Sku::Ad::Ad->create($self->session,{
userId => $item->transaction->get('userId'), userId => $item->transaction->get('userId'),
@ -343,7 +365,7 @@ sub onRemoveFromCart {
my $self = shift; my $self = shift;
my $item = shift; my $item = shift;
my $options = $self->getOptions; my $options = $self->getOptions;
WebGUI::Storage->new($self->session,$options->{'image'})->delete; # TODO figure this out WebGUI::Storage->new($self->session,$options->{'image'})->delete;
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------
@ -426,7 +448,7 @@ Displays the purchase adspace form
sub view { sub view {
my ($self) = @_; my ($self) = @_;
my $session = $self->session; my $session = $self->session;
my $options = $self->getOptions(); my $options = $self->getOptions();
my $i18n = WebGUI::International->new($session, "Asset_AdSku"); my $i18n = WebGUI::International->new($session, "Asset_AdSku");
my %var = ( my %var = (
@ -469,6 +491,10 @@ my $options = $self->getOptions();
-size=>40 -size=>40
-required=>1, -required=>1,
}), }),
formAdId => WebGUI::Form::Hidden($session, {
-name=>"formAdId",
-value=>$options->{adId} || '',
}),
clickPrice => $self->get('pricePerClick'), clickPrice => $self->get('pricePerClick'),
impressionPrice => $self->get('pricePerImpression'), impressionPrice => $self->get('pricePerImpression'),
clickDiscount => $self->getClickDiscountText, clickDiscount => $self->getClickDiscountText,
@ -504,6 +530,7 @@ dav::log 'addToCart:data:',
link => $form->process('formLink','url'), link => $form->process('formLink','url'),
clicks => $form->process('formClicks','integer'), clicks => $form->process('formClicks','integer'),
impressions => $form->process('formImpressions','integer'), impressions => $form->process('formImpressions','integer'),
adId => $form->process('formAdId'),
image => $imageStorageId, image => $imageStorageId,
}); });
} }
@ -543,9 +570,19 @@ renew an ad
sub www_renew { sub www_renew {
my $self = shift; my $self = shift;
my $adPurchaseId = ''; # TODO get the adPurchaseId param my $session = $self->session;
my $crud = WebGUI::AssetCollateral::Sku::Ad::Ad->new($self->session,$adPurchaseId); my $id = $session->form->get('Id');
# TODO assign params for purchase form dav::log 'id=',$id;
my $crud = WebGUI::AssetCollateral::Sku::Ad::Ad->new($session,$id);
my $ad = WebGUI::AdSpace::Ad->new($session,$crud->get('adId'));
$self->applyOptions({
adtitle => $ad->get('title'),
clicks => $crud->get('clicksPurchased'),
impressions => $crud->get('impressionsPurchased'),
link => $ad->get('url'),
image => $ad->get('storageId'),
adId => $crud->get('adId'),
});
return $self->www_view; return $self->www_view;
} }

View file

@ -77,9 +77,6 @@ sub definition {
size=>{ size=>{
defaultValue=>1 defaultValue=>1
}, },
defaultValue=>{
defaultValue=>[]
},
}); });
return $class->SUPER::definition($session, $definition); return $class->SUPER::definition($session, $definition);
} }
@ -149,7 +146,9 @@ Returns a group pull-down field. A group pull down provides a select list that p
sub toHtml { sub toHtml {
my $self = shift; my $self = shift;
$self->set('options', { map { $_->getId => $_->get('name') } ( @{ WebGUI::AdSpace->getAdSpaces($self->session) } ) } ); my $options = { map { $_->getId => $_->get('name') } ( @{ WebGUI::AdSpace->getAdSpaces($self->session) } ) };
$self->set('defaultValue', ( keys %{$options} )[0] );
$self->set('options', $options );
return $self->SUPER::toHtml(); return $self->SUPER::toHtml();
} }
@ -163,7 +162,9 @@ Creates a series of hidden fields representing the data in the list.
sub toHtmlAsHidden { sub toHtmlAsHidden {
my $self = shift; my $self = shift;
$self->set('options', { map { $_->getId => $_->getName } ( WebGUI::AdSpace->getAdSpaces() ) } ); my $options = { map { $_->getId => $_->get('name') } ( @{ WebGUI::AdSpace->getAdSpaces($self->session) } ) };
$self->set('defaultValue', ( keys %{$options} )[0] );
$self->set('options', $options );
return $self->SUPER::toHtmlAsHidden(); return $self->SUPER::toHtmlAsHidden();
} }