summaryrefslogtreecommitdiff
path: root/GroLUG/lib
diff options
context:
space:
mode:
Diffstat (limited to 'GroLUG/lib')
-rw-r--r--GroLUG/lib/GroLUG/C/Iscritto.pm8
-rw-r--r--GroLUG/lib/HTML/Widget/Constraint/ISODate.pm11
2 files changed, 13 insertions, 6 deletions
diff --git a/GroLUG/lib/GroLUG/C/Iscritto.pm b/GroLUG/lib/GroLUG/C/Iscritto.pm
index b2a9609..b47dfce 100644
--- a/GroLUG/lib/GroLUG/C/Iscritto.pm
+++ b/GroLUG/lib/GroLUG/C/Iscritto.pm
@@ -132,9 +132,9 @@ sub widget_for_pag {
my $widget=$c->widget('pagamento');
$widget->method('post');
- $widget->element('Textfield','data_pagamento')->label('Data del pagamento')->value($self->strdate($pagamento->data_pagamento));
- $widget->element('Textfield','data_iscrizione')->label('Data di iscrizione')->value($self->strdate($pagamento->data_iscrizione));
- $widget->element('Textfield','data_scadenza')->label('Data di scadenza')->value($self->strdate($pagamento->data_scadenza));
+ $widget->element('Textfield','data_pagamento')->label('Data del pagamento')->value($c->strdate($pagamento->data_pagamento));
+ $widget->element('Textfield','data_iscrizione')->label('Data di iscrizione')->value($c->strdate($pagamento->data_iscrizione));
+ $widget->element('Textfield','data_scadenza')->label('Data di scadenza')->value($c->strdate($pagamento->data_scadenza));
$widget->element('Textfield','prezzo')->label('Importo pagato')->value($pagamento->prezzo);
$widget->element('Hidden','iscr_id')->value($iscr_id || (defined $pag ? $pagamento->iscritto->id : ''));
@@ -142,7 +142,7 @@ sub widget_for_pag {
$widget->filter('TrimEdges','data_scadenza','data_pagamento','data_iscrizione','prezzo');
- $widget->constraint('All','data_scadenza','data_pagamento','data_iscrizione','prezzo')->messagge('Campo obbligatorio');
+ $widget->constraint('All','data_scadenza','data_pagamento','data_iscrizione','prezzo')->message('Campo obbligatorio');
$widget->constraint('ISODate','data_scadenza','data_pagamento','data_iscrizione')->message('Data non valida');
$widget->constraint('EuroAmount','prezzo')->message('Prezzo non valido');
diff --git a/GroLUG/lib/HTML/Widget/Constraint/ISODate.pm b/GroLUG/lib/HTML/Widget/Constraint/ISODate.pm
index f5680d2..9712d3b 100644
--- a/GroLUG/lib/HTML/Widget/Constraint/ISODate.pm
+++ b/GroLUG/lib/HTML/Widget/Constraint/ISODate.pm
@@ -10,9 +10,16 @@ my $format=DateTime::Format::Strptime->new(pattern=>'%F');
sub validate {
my ($self,$value)=@_;
- my $val=$format->parse_datetime($value);
+ my $ret=eval {
+ my $val=$format->parse_datetime($value);
+ return unless defined($val);
- return defined($val);
+ my $round_tripped=$val->strftime('%F');
+
+ return ($value eq $round_tripped);
+ };
+ return if $@;
+ return $ret;
}
1;