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
|
- added: FormField macro for rendering Form objects directly from templates
|
||||||
- fixed: Generic Tax driver does not like spaces around commas
|
- 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: 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
|
7.10.19
|
||||||
- fixed #12169: extras uploads symlink export
|
- fixed #12169: extras uploads symlink export
|
||||||
|
|
|
||||||
|
|
@ -1042,18 +1042,22 @@ sub getFieldValue {
|
||||||
my $dateFormat = shift || "%z";
|
my $dateFormat = shift || "%z";
|
||||||
my $dateTimeFormat = shift;
|
my $dateTimeFormat = shift;
|
||||||
my $processedValue = $value;
|
my $processedValue = $value;
|
||||||
my $dbh = $self->session->db->dbh;
|
my $session = $self->session;
|
||||||
|
my $dbh = $session->db->dbh;
|
||||||
|
|
||||||
if (lc $field->{fieldType} eq "date"){
|
my $fieldType = lc $field->{fieldType};
|
||||||
$processedValue = $self->session->datetime->epochToHuman($value,$dateFormat);
|
if ($fieldType eq "date"){
|
||||||
|
my $dt = WebGUI::DateTime->new($session, $value);
|
||||||
|
$processedValue = $dt->webguiDate($dateFormat);
|
||||||
}
|
}
|
||||||
elsif (lc $field->{fieldType} eq "datetime"){
|
elsif ($fieldType eq "datetime"){
|
||||||
$processedValue = $self->session->datetime->epochToHuman($value,$dateTimeFormat);
|
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
|
# 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
|
# safely removed. However, this requires more testing than I can provide right now, so for now this stays the
|
||||||
# way it was.
|
# way it was.
|
||||||
elsif ($field->{fieldType} =~ m/^otherThing/x) {
|
elsif ($field->{fieldType} =~ m/^otherthing/x) {
|
||||||
my $otherThingId = $field->{fieldType};
|
my $otherThingId = $field->{fieldType};
|
||||||
$otherThingId =~ s/^otherThing_//x;
|
$otherThingId =~ s/^otherThing_//x;
|
||||||
my $tableName = 'Thingy_'.$otherThingId;
|
my $tableName = 'Thingy_'.$otherThingId;
|
||||||
|
|
@ -2112,7 +2116,7 @@ sub www_editThing {
|
||||||
$self->session->style->setLink($self->session->url->extras('wobject/Thingy/thingy.css'), {type
|
$self->session->style->setLink($self->session->url->extras('wobject/Thingy/thingy.css'), {type
|
||||||
=>'text/css', rel=>'stylesheet'});
|
=>'text/css', rel=>'stylesheet'});
|
||||||
|
|
||||||
$tab = $tabForm->getTab('fields');
|
$session->log->warn("one");
|
||||||
foreach my $fieldType ( keys %{ WebGUI::Form::FieldType->new($session)->getTypes }) {
|
foreach my $fieldType ( keys %{ WebGUI::Form::FieldType->new($session)->getTypes }) {
|
||||||
my $form = eval { WebGUI::Pluggable::instanciate("WebGUI::Form::".$fieldType, "new", [$session]) };
|
my $form = eval { WebGUI::Pluggable::instanciate("WebGUI::Form::".$fieldType, "new", [$session]) };
|
||||||
if ($@) {
|
if ($@) {
|
||||||
|
|
|
||||||
|
|
@ -456,8 +456,8 @@ ipAddress etc?|,
|
||||||
|
|
||||||
'default value description' => {
|
'default value description' => {
|
||||||
message => q|Enter the default value (if any) for the field. If you have defined the possible values for
|
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".|,
|
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 => 1223372150,
|
lastUpdated => 1309814047,
|
||||||
},
|
},
|
||||||
|
|
||||||
'default value subtext' => {
|
'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