From 18140e6a3e5b801b08fa15f6cba15c118e385b9a Mon Sep 17 00:00:00 2001
From: Pasqualino Ferrentino
Date: Tue, 4 Sep 2007 11:49:01 +0200
Subject: [PATCH] I can view the list of ads for a particular activity
---
src/lib/Bcd/Commands/GetAdsCommand.pm | 14 +++--
.../lib/breadcrumbs/Controller/AnPages.pm | 63 +++++++++++++++++++---
.../breadcrumbs/lib/breadcrumbs/Model/BcdModel.pm | 7 +++
.../breadcrumbs/root/src/an_pages_summary_tree.tt | 2 +-
.../breadcrumbs/root/src/an_pages_view_ads_list.tt | 2 +
5 files changed, 78 insertions(+), 10 deletions(-)
create mode 100644 web-site/breadcrumbs/root/src/an_pages_view_ads_list.tt
diff --git a/src/lib/Bcd/Commands/GetAdsCommand.pm b/src/lib/Bcd/Commands/GetAdsCommand.pm
index f4e1978..d6f3de6 100644
--- a/src/lib/Bcd/Commands/GetAdsCommand.pm
+++ b/src/lib/Bcd/Commands/GetAdsCommand.pm
@@ -65,7 +65,7 @@ sub _exec{
#ok, now I should make a cycle...
my @dataset;
- my @fields = ('id_ad', 'id_user', 'created_on', 'ad_text', 'id_site',
+ my @fields = ('id_ad', 'id_user', 'nick', 'created_on', 'ad_text', 'id_site',
'id_special_site', 'site_name', 'on_request', 'presence',
'p_min', 'p_max', 'pay_credit');
@@ -78,13 +78,21 @@ sub _exec{
#I should get all the presences of this ad...
my $locs = Bcd::Data::Ads->get_all_localities_for_ad_arr($stash, $_->[0]);
my $current_user = $_->[1];
+ my $nick = Bcd::Data::Users->get_nick_from_id($stash, $_->[1]);
my $current_ad = $_;
+
+ my $my_own_ad = 0;
+ if ($my_id == $current_user){
+ $my_own_ad = 1;
+ }
+
foreach(@{$locs}){
#ok, I have this locality... is the user able to see it?
my $incoming_trust = $net->{$current_user}->[1];
- if ($incoming_trust < $_->[3]){
+ #of course I can see my own ads.
+ if ($incoming_trust < $_->[3] and !$my_own_ad){
#nope, next please
next;
}
@@ -101,7 +109,7 @@ sub _exec{
}
#and I can fill the record!!!!
- my @record = ($current_ad->[0], $current_user, $current_ad->[2], $current_ad->[3],
+ my @record = ($current_ad->[0], $current_user, $nick, $current_ad->[2], $current_ad->[3],
$presence->[1], $presence->[2], $site_name, $presence->[4], $presence->[5],
$_->[1], $_->[2], $incoming_trust < $_->[4] ? 0 : 1);
diff --git a/web-site/breadcrumbs/lib/breadcrumbs/Controller/AnPages.pm b/web-site/breadcrumbs/lib/breadcrumbs/Controller/AnPages.pm
index f4e6c9b..b0a2126 100644
--- a/web-site/breadcrumbs/lib/breadcrumbs/Controller/AnPages.pm
+++ b/web-site/breadcrumbs/lib/breadcrumbs/Controller/AnPages.pm
@@ -63,8 +63,12 @@ sub view_services : Local {
$c->stash->{act_summary_tree} = $res->{act_summary_tree};
$c->stash->{page_title} = "Vista di tutti i servizi per il formicaio";
- $c->stash->{template} = "an_pages_summary_tree.tt";
+ $c->session->{sack}->{ads_branch} = "services";
+ $c->session->{hold_the_sack} = 1;
+ delete $c->session->{sack}->{act_to_serve};
+ $self->_add_trails($c);
+ $c->stash->{template} = "an_pages_summary_tree.tt";
}
sub view_homemade_products : Local {
@@ -74,6 +78,10 @@ sub view_homemade_products : Local {
$c->stash->{act_summary_tree} = $res->{act_summary_tree};
$c->stash->{page_title} = "Vista di tutti gli oggetti prodotti dal formicaio";
+ $c->session->{sack}->{ads_branch} = "homemade";
+ $c->session->{hold_the_sack} = 1;
+ delete $c->session->{sack}->{act_to_serve};
+ $self->_add_trails($c);
$c->stash->{template} = "an_pages_summary_tree.tt";
}
@@ -84,17 +92,60 @@ sub view_used_products : Local {
$c->stash->{act_summary_tree} = $res->{act_summary_tree};
$c->stash->{page_title} = "Vista di tutti gli oggetti usati venduti nel formicaio";
+ $c->session->{sack}->{ads_branch} = "objects";
+ $c->session->{hold_the_sack} = 1;
+ delete $c->session->{sack}->{act_to_serve};
+ $self->_add_trails($c);
$c->stash->{template} = "an_pages_summary_tree.tt";
}
-sub auto : Private {
- my ( $self, $c) = @_;
+sub _add_trails{
+ my ($self, $c) = @_;
- my $id = $c->request->captures->[0];
+ my $trails = $c->stash->{"trails"};
+ if ($c->session->{sack}->{ads_branch} eq "services"){
+ breadcrumbs::util::MenuUtils->add_trail("/anpages/view_services", "Servizi", $trails, $c);
+ } elsif ($c->session->{sack}->{ads_branch} eq "homemade"){
+ breadcrumbs::util::MenuUtils->add_trail("/anpages/view_homemade_products", "Artigianato", $trails, $c);
+ } else {
+ breadcrumbs::util::MenuUtils->add_trail("/anpages/view_used_products", "Commercio", $trails, $c);
+ }
- if (!defined($id) or $id eq "") {
- $id = $c->session->{current_ant_nest_id};
+ if (defined($c->session->{sack}->{act_to_serve})){
+ my $id = $c->session->{sack}->{act_to_serve};
+ my $name = $c->session->{sack}->{act_name};
+ breadcrumbs::util::MenuUtils->add_trail("/anpages/view_act_ads_${id}_${name}", "$name", $trails, $c);
}
+}
+
+sub view_act_ads : LocalRegex('^view_act_ads_(\d+)$') {
+ my ( $self, $c) = @_;
+
+ $c->session->{hold_the_sack} = 1;
+
+ my $act_to_serve = $c->req->captures->[0];
+ my $act_name = $c->req->param("act_name");
+
+ $c->session->{sack}->{act_name} = $act_name;
+ $c->session->{sack}->{act_to_serve} = $act_to_serve;
+
+ $self->_add_trails($c);
+
+ #ok, now let's ask to the model the ads for this activity
+ my $res = $c->model("BcdModel")->get_ads_for_this_activity($c, $act_to_serve);
+
+ #ok, now I put the ads in the stash
+ $c->stash->{ads} = $res->{ads};
+
+ $c->stash->{template} = "an_pages_view_ads_list.tt";
+
+}
+
+sub auto : Private {
+ my ( $self, $c) = @_;
+
+
+ my $id = $c->session->{current_ant_nest_id};
my $trails = $c->stash->{"trails"};
breadcrumbs::util::MenuUtils->add_trail("/antnestscontroller", "I Formicai", $trails, $c);
diff --git a/web-site/breadcrumbs/lib/breadcrumbs/Model/BcdModel.pm b/web-site/breadcrumbs/lib/breadcrumbs/Model/BcdModel.pm
index 176fe48..5a3afc9 100644
--- a/web-site/breadcrumbs/lib/breadcrumbs/Model/BcdModel.pm
+++ b/web-site/breadcrumbs/lib/breadcrumbs/Model/BcdModel.pm
@@ -649,6 +649,13 @@ sub get_homemade_tree_with_summary{
Bcd::Constants::ActivitiesConstants::PARENT_HOMEMADE);
}
+sub get_ads_for_this_activity{
+ my ($self, $c, $act_id) = @_;
+
+ my $session = $c->user->{server_session};
+ return $self->_issue_command_to_daemon("ws.get_ads", $session, $act_id);
+}
+
sub _dead_socket{
my $self = shift;
diff --git a/web-site/breadcrumbs/root/src/an_pages_summary_tree.tt b/web-site/breadcrumbs/root/src/an_pages_summary_tree.tt
index aa3431e..a48ee82 100644
--- a/web-site/breadcrumbs/root/src/an_pages_summary_tree.tt
+++ b/web-site/breadcrumbs/root/src/an_pages_summary_tree.tt
@@ -20,7 +20,7 @@ categoria:
[% END %]
[% sec.0 %]
[% FOREACH act IN sec.1 %]
- [% act.0 _ ' (' _ act.2 _ ')' %]
+ [% act.0 _ ' (' _ act.2 _ ')' %]
[% END %]
[% END %]
diff --git a/web-site/breadcrumbs/root/src/an_pages_view_ads_list.tt b/web-site/breadcrumbs/root/src/an_pages_view_ads_list.tt
new file mode 100644
index 0000000..f4a25dd
--- /dev/null
+++ b/web-site/breadcrumbs/root/src/an_pages_view_ads_list.tt
@@ -0,0 +1,2 @@
+
+bene ecco qui la lista degli annunci per questa attività .
\ No newline at end of file
--
2.11.4.GIT