Allow reasonable default dates in ISO 9601 format. Fixes bug #12165.
This commit is contained in:
parent
7e8ae8fe9a
commit
e3a4afe5c3
4 changed files with 98 additions and 9 deletions
|
|
@ -5,6 +5,7 @@
|
|||
- added: FormField macro for rendering Form objects directly from templates
|
||||
- fixed: Generic Tax driver does not like spaces around commas
|
||||
- fixed: Date formatting with WebGUI::DateTime has extra spaces for single digit months and days.
|
||||
- fixed #12165: Default date in Thingy doesn't work
|
||||
|
||||
7.10.19
|
||||
- fixed #12169: extras uploads symlink export
|
||||
|
|
|
|||
|
|
@ -1042,18 +1042,22 @@ sub getFieldValue {
|
|||
my $dateFormat = shift || "%z";
|
||||
my $dateTimeFormat = shift;
|
||||
my $processedValue = $value;
|
||||
my $dbh = $self->session->db->dbh;
|
||||
my $session = $self->session;
|
||||
my $dbh = $session->db->dbh;
|
||||
|
||||
if (lc $field->{fieldType} eq "date"){
|
||||
$processedValue = $self->session->datetime->epochToHuman($value,$dateFormat);
|
||||
my $fieldType = lc $field->{fieldType};
|
||||
if ($fieldType eq "date"){
|
||||
my $dt = WebGUI::DateTime->new($session, $value);
|
||||
$processedValue = $dt->webguiDate($dateFormat);
|
||||
}
|
||||
elsif (lc $field->{fieldType} eq "datetime"){
|
||||
$processedValue = $self->session->datetime->epochToHuman($value,$dateTimeFormat);
|
||||
elsif ($fieldType eq "datetime"){
|
||||
my $dt = WebGUI::DateTime->new($session, $value);
|
||||
$processedValue = $dt->webguiDate($dateTimeFormat);
|
||||
}
|
||||
# TODO: The otherThing field type is probably also handled by getFormPlugin, so the elsif below can probably be
|
||||
# safely removed. However, this requires more testing than I can provide right now, so for now this stays the
|
||||
# way it was.
|
||||
elsif ($field->{fieldType} =~ m/^otherThing/x) {
|
||||
elsif ($field->{fieldType} =~ m/^otherthing/x) {
|
||||
my $otherThingId = $field->{fieldType};
|
||||
$otherThingId =~ s/^otherThing_//x;
|
||||
my $tableName = 'Thingy_'.$otherThingId;
|
||||
|
|
@ -2112,7 +2116,7 @@ sub www_editThing {
|
|||
$self->session->style->setLink($self->session->url->extras('wobject/Thingy/thingy.css'), {type
|
||||
=>'text/css', rel=>'stylesheet'});
|
||||
|
||||
$tab = $tabForm->getTab('fields');
|
||||
$session->log->warn("one");
|
||||
foreach my $fieldType ( keys %{ WebGUI::Form::FieldType->new($session)->getTypes }) {
|
||||
my $form = eval { WebGUI::Pluggable::instanciate("WebGUI::Form::".$fieldType, "new", [$session]) };
|
||||
if ($@) {
|
||||
|
|
|
|||
|
|
@ -456,8 +456,8 @@ ipAddress etc?|,
|
|||
|
||||
'default value description' => {
|
||||
message => q|Enter the default value (if any) for the field. If you have defined the possible values for
|
||||
this field using a hash, then the default value has to be a key in that hash, and not a value. For Yes/No fields, enter "yes" to select "Yes" and "no" to select "No".|,
|
||||
lastUpdated => 1223372150,
|
||||
this field using a hash, then the default value has to be a key in that hash, and not a value. For Yes/No fields, enter "yes" to select "Yes" and "no" to select "No". For Date and Date/Time fields, enter an epoch date, or a date in YYYY-MM-DD HH:MM:SS, the ISO 9601 format with optional time|,
|
||||
lastUpdated => 1309814047,
|
||||
},
|
||||
|
||||
'default value subtext' => {
|
||||
|
|
|
|||
84
t/Asset/Wobject/Thingy/getFieldValue.t
Normal file
84
t/Asset/Wobject/Thingy/getFieldValue.t
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
use FindBin;
|
||||
use strict;
|
||||
use lib "$FindBin::Bin/../../../lib";
|
||||
|
||||
##The goal of this test is to test editThingDataSave, particularly those things not tested in Thingy.t
|
||||
|
||||
use WebGUI::Test;
|
||||
use WebGUI::Session;
|
||||
use Test::More tests => 2; # increment this value for each test you create
|
||||
use Test::Deep;
|
||||
use JSON;
|
||||
use WebGUI::Asset::Wobject::Thingy;
|
||||
use WebGUI::Search;
|
||||
use WebGUI::Search::Index;
|
||||
use Data::Dumper;
|
||||
|
||||
my $session = WebGUI::Test->session;
|
||||
|
||||
# Do our work in the import node
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Thingy Test"});
|
||||
WebGUI::Test->addToCleanup($versionTag);
|
||||
my $thingy = $node->addChild({
|
||||
className => 'WebGUI::Asset::Wobject::Thingy',
|
||||
groupIdView => 7,
|
||||
url => 'some_thing',
|
||||
});
|
||||
$versionTag->commit;
|
||||
$thingy = $thingy->cloneFromDb;
|
||||
|
||||
# Test indexThing, without needing a real thing
|
||||
my $groupIdEdit = $thingy->get("groupIdEdit");
|
||||
my %thingProperties = (
|
||||
thingId => "THING_RECORD",
|
||||
label => 'Label',
|
||||
editScreenTitle => 'Edit',
|
||||
editInstructions => 'instruction_edit',
|
||||
groupIdAdd => $groupIdEdit,
|
||||
groupIdEdit => $groupIdEdit,
|
||||
saveButtonLabel => 'save',
|
||||
afterSave => 'searchThisThing',
|
||||
editTemplateId => "ThingyTmpl000000000003",
|
||||
groupIdView => '2',
|
||||
viewTemplateId => "ThingyTmpl000000000002",
|
||||
defaultView => 'searchThing',
|
||||
searchScreenTitle => 'Search',
|
||||
searchDescription => 'description_search',
|
||||
groupIdSearch => $groupIdEdit,
|
||||
groupIdExport => $groupIdEdit,
|
||||
groupIdImport => $groupIdEdit,
|
||||
searchTemplateId => "ThingyTmpl000000000004",
|
||||
thingsPerPage => 25,
|
||||
);
|
||||
my $thingId = $thingy->addThing(\%thingProperties);
|
||||
%thingProperties = %{ $thingy->getThing($thingId) };
|
||||
|
||||
my $field1Id = $thingy->addField({
|
||||
thingId => $thingId,
|
||||
fieldId => "new",
|
||||
label => "dated",
|
||||
dateCreated => time(),
|
||||
fieldType => "Date",
|
||||
defaultValue => '2011-07-04',
|
||||
status => "editable",
|
||||
display => 1,
|
||||
}, 0);
|
||||
|
||||
my $field1 = $thingy->getFields($thingId)->hashRef;
|
||||
|
||||
note 'getFieldValue';
|
||||
is $thingy->getFieldValue(WebGUI::Test->webguiBirthday, $field1), '8/16/2001', 'with epoch as default';
|
||||
is $thingy->getFieldValue('2011-07-04', $field1), '7/4/2011', 'with mysql date as default';
|
||||
Loading…
Add table
Add a link
Reference in a new issue