Bug 70605 - Fix timestamp columns format, fix buglist field of Fields
git-svn-id: svn://svn.office.custis.ru/3rdparty/bugzilla.org/trunk@1317 6955db30-a419-402b-8a0d-67ecbb4d7f56master
parent
72f080bffc
commit
495919229f
|
@ -163,45 +163,28 @@ use constant SQL_DEFINITIONS => {
|
|||
# These are used by populate_field_definitions to populate
|
||||
# the fielddefs table.
|
||||
use constant DEFAULT_FIELDS => (
|
||||
{name => 'bug_id', desc => 'Bug #', in_new_bugmail => 1,
|
||||
buglist => 1},
|
||||
{name => 'short_desc', desc => 'Summary', in_new_bugmail => 1,
|
||||
buglist => 1},
|
||||
{name => 'classification', desc => 'Classification', in_new_bugmail => 1,
|
||||
buglist => 1},
|
||||
{name => 'product', desc => 'Product', in_new_bugmail => 1,
|
||||
type => FIELD_TYPE_SINGLE_SELECT, buglist => 1},
|
||||
{name => 'version', desc => 'Version', in_new_bugmail => 1,
|
||||
buglist => 1},
|
||||
{name => 'rep_platform', desc => 'Platform', in_new_bugmail => 1,
|
||||
type => FIELD_TYPE_SINGLE_SELECT, buglist => 1},
|
||||
{name => 'bug_file_loc', desc => 'URL', in_new_bugmail => 1},
|
||||
{name => 'op_sys', desc => 'OS/Version', in_new_bugmail => 1,
|
||||
type => FIELD_TYPE_SINGLE_SELECT, buglist => 1},
|
||||
{name => 'bug_status', desc => 'Status', in_new_bugmail => 1,
|
||||
type => FIELD_TYPE_SINGLE_SELECT, buglist => 1},
|
||||
{name => 'status_whiteboard', desc => 'Status Whiteboard',
|
||||
in_new_bugmail => 1, buglist => 1},
|
||||
{name => 'keywords', desc => 'Keywords', in_new_bugmail => 1,
|
||||
buglist => 1},
|
||||
{name => 'resolution', desc => 'Resolution',
|
||||
type => FIELD_TYPE_SINGLE_SELECT, buglist => 1},
|
||||
{name => 'bug_severity', desc => 'Severity', in_new_bugmail => 1,
|
||||
type => FIELD_TYPE_SINGLE_SELECT, buglist => 1},
|
||||
{name => 'priority', desc => 'Priority', in_new_bugmail => 1,
|
||||
type => FIELD_TYPE_SINGLE_SELECT, buglist => 1},
|
||||
{name => 'component', desc => 'Component', in_new_bugmail => 1,
|
||||
buglist => 1},
|
||||
{name => 'assigned_to', desc => 'Assignee', in_new_bugmail => 1,
|
||||
buglist => 1},
|
||||
{name => 'reporter', desc => 'Reporter', in_new_bugmail => 1,
|
||||
buglist => 1},
|
||||
{name => 'bug_id', desc => 'Bug #', buglist => 1, in_new_bugmail => 1},
|
||||
{name => 'short_desc', desc => 'Summary', buglist => 1, in_new_bugmail => 1},
|
||||
{name => 'classification', desc => 'Classification', buglist => 1, in_new_bugmail => 1},
|
||||
{name => 'product', desc => 'Product', buglist => 1, in_new_bugmail => 1, type => FIELD_TYPE_SINGLE_SELECT},
|
||||
{name => 'version', desc => 'Version', buglist => 1, in_new_bugmail => 1},
|
||||
{name => 'rep_platform', desc => 'Platform', buglist => 1, in_new_bugmail => 1, type => FIELD_TYPE_SINGLE_SELECT},
|
||||
{name => 'bug_file_loc', desc => 'URL', buglist => 1, in_new_bugmail => 1},
|
||||
{name => 'op_sys', desc => 'OS/Version', buglist => 1, in_new_bugmail => 1, type => FIELD_TYPE_SINGLE_SELECT},
|
||||
{name => 'bug_status', desc => 'Status', buglist => 1, in_new_bugmail => 1, type => FIELD_TYPE_SINGLE_SELECT},
|
||||
{name => 'status_whiteboard', desc => 'Status Whiteboard', buglist => 1, in_new_bugmail => 1},
|
||||
{name => 'keywords', desc => 'Keywords', buglist => 1, in_new_bugmail => 1},
|
||||
{name => 'resolution', desc => 'Resolution', buglist => 1, type => FIELD_TYPE_SINGLE_SELECT},
|
||||
{name => 'bug_severity', desc => 'Severity', buglist => 1, in_new_bugmail => 1, type => FIELD_TYPE_SINGLE_SELECT},
|
||||
{name => 'priority', desc => 'Priority', buglist => 1, in_new_bugmail => 1, type => FIELD_TYPE_SINGLE_SELECT},
|
||||
{name => 'component', desc => 'Component', buglist => 1, in_new_bugmail => 1},
|
||||
{name => 'assigned_to', desc => 'Assignee', buglist => 1, in_new_bugmail => 1},
|
||||
{name => 'reporter', desc => 'Reporter', buglist => 1, in_new_bugmail => 1},
|
||||
{name => 'votes', desc => 'Votes', buglist => 1},
|
||||
{name => 'qa_contact', desc => 'QA Contact', in_new_bugmail => 1,
|
||||
buglist => 1},
|
||||
{name => 'cc', desc => 'CC', in_new_bugmail => 1},
|
||||
{name => 'dependson', desc => 'Depends on', in_new_bugmail => 1},
|
||||
{name => 'blocked', desc => 'Blocks', in_new_bugmail => 1},
|
||||
{name => 'qa_contact', desc => 'QA Contact', buglist => 1, in_new_bugmail => 1},
|
||||
{name => 'cc', desc => 'CC', buglist => 1, in_new_bugmail => 1},
|
||||
{name => 'dependson', desc => 'Depends on', buglist => 1, in_new_bugmail => 1},
|
||||
{name => 'blocked', desc => 'Blocks', buglist => 1, in_new_bugmail => 1},
|
||||
|
||||
{name => 'attachments.description', desc => 'Attachment description'},
|
||||
{name => 'attachments.filename', desc => 'Attachment filename'},
|
||||
|
@ -211,37 +194,30 @@ use constant DEFAULT_FIELDS => (
|
|||
{name => 'attachments.isprivate', desc => 'Attachment is private'},
|
||||
{name => 'attachments.submitter', desc => 'Attachment creator'},
|
||||
|
||||
{name => 'target_milestone', desc => 'Target Milestone',
|
||||
buglist => 1},
|
||||
{name => 'creation_ts', desc => 'Creation date',
|
||||
in_new_bugmail => 1, buglist => 1},
|
||||
{name => 'delta_ts', desc => 'Last changed date',
|
||||
in_new_bugmail => 1, buglist => 1},
|
||||
{name => 'target_milestone', desc => 'Target Milestone', buglist => 1},
|
||||
{name => 'creation_ts', desc => 'Creation time', buglist => 1, in_new_bugmail => 1},
|
||||
{name => 'delta_ts', desc => 'Last changed time', buglist => 1, in_new_bugmail => 1},
|
||||
{name => 'longdesc', desc => 'Comment'},
|
||||
{name => 'longdescs.isprivate', desc => 'Comment is private'},
|
||||
{name => 'alias', desc => 'Alias', buglist => 1},
|
||||
{name => 'alias', desc => 'Alias', buglist => 1},
|
||||
{name => 'everconfirmed', desc => 'Ever Confirmed'},
|
||||
{name => 'reporter_accessible', desc => 'Reporter Accessible'},
|
||||
{name => 'cclist_accessible', desc => 'CC Accessible'},
|
||||
{name => 'bug_group', desc => 'Group', in_new_bugmail => 1},
|
||||
{name => 'estimated_time', desc => 'Estimated Hours',
|
||||
in_new_bugmail => 1, buglist => 1},
|
||||
{name => 'remaining_time', desc => 'Remaining Hours', buglist => 1},
|
||||
{name => 'deadline', desc => 'Deadline',
|
||||
in_new_bugmail => 1, buglist => 1},
|
||||
{name => 'bug_group', desc => 'Group', in_new_bugmail => 1},
|
||||
{name => 'estimated_time', desc => 'Estimated Hours', buglist => 1, in_new_bugmail => 1},
|
||||
{name => 'remaining_time', desc => 'Remaining Hours', buglist => 1},
|
||||
{name => 'deadline', desc => 'Deadline', buglist => 1, in_new_bugmail => 1},
|
||||
{name => 'commenter', desc => 'Commenter'},
|
||||
{name => 'flagtypes.name', desc => 'Flag Types', buglist => 1},
|
||||
{name => 'flagtypes.name', desc => 'Flag Types', buglist => 1},
|
||||
{name => 'requestees.login_name', desc => 'Flag Requestee'},
|
||||
{name => 'setters.login_name', desc => 'Flag Setter'},
|
||||
{name => 'work_time', desc => 'Hours Worked', buglist => 1},
|
||||
{name => 'percentage_complete', desc => 'Percentage Complete',
|
||||
buglist => 1},
|
||||
{name => 'work_time', desc => 'Hours Worked', buglist => 1},
|
||||
{name => 'percentage_complete', desc => 'Percentage Complete', buglist => 1},
|
||||
{name => 'content', desc => 'Content'},
|
||||
{name => 'attach_data.thedata', desc => 'Attachment data'},
|
||||
{name => 'attachments.isurl', desc => 'Attachment is a URL'},
|
||||
{name => 'owner_idle_time', desc => 'Time Since Assignee Touched'},
|
||||
{name => 'see_also', desc => 'See Also',
|
||||
type => FIELD_TYPE_BUG_URLS},
|
||||
{name => 'see_also', desc => 'See Also', buglist => 1, type => FIELD_TYPE_BUG_URLS},
|
||||
);
|
||||
|
||||
################
|
||||
|
|
|
@ -506,6 +506,12 @@ sub STATIC_COLUMNS
|
|||
" WHERE col_f.bug_id=bugs.bug_id AND col_ft.is_requesteeble=1 AND col_ft.is_requestable=1)",
|
||||
title => "Requests",
|
||||
},
|
||||
cc => {
|
||||
name => "(SELECT ".$dbh->sql_group_concat((Bugzilla->user->id
|
||||
? 'profiles.login_name'
|
||||
: $dbh->sql_string_until('profiles.login_name', $dbh->quote('@'))), "','").
|
||||
" FROM cc, profiles WHERE cc.bug_id=bugs.bug_id AND cc.who=profiles.userid)",
|
||||
},
|
||||
dependson => {
|
||||
name => "(SELECT ".$dbh->sql_group_concat('bugblockers.dependson', "','")." FROM dependencies bugblockers WHERE bugblockers.blocked=bugs.bug_id)",
|
||||
title => "Bug dependencies",
|
||||
|
@ -514,14 +520,11 @@ sub STATIC_COLUMNS
|
|||
name => "(SELECT ".$dbh->sql_group_concat('bugblocked.blocked', "','")." FROM dependencies bugblocked WHERE bugblocked.dependson=bugs.bug_id)",
|
||||
title => "Bugs blocked",
|
||||
},
|
||||
deadline => {
|
||||
name => $dbh->sql_date_format('bugs.deadline', '%Y-%m-%d'),
|
||||
},
|
||||
};
|
||||
|
||||
# MySQL and PostgreSQL use YYYY-MM-DD format themselves
|
||||
if ($dbh->isa('Bugzilla::DB::Oracle'))
|
||||
{
|
||||
$columns->{deadline}->{name} = $dbh->sql_date_format('bugs.deadline', '%Y-%m-%d');
|
||||
}
|
||||
|
||||
# Fields that are email addresses
|
||||
foreach my $col (qw(assigned_to reporter qa_contact))
|
||||
{
|
||||
|
@ -2007,15 +2010,13 @@ sub _timestamp_compare
|
|||
{
|
||||
my $self = shift;
|
||||
my $dbh = Bugzilla->dbh;
|
||||
$self->{fieldsql} = 'bugs.'.$self->{field};
|
||||
if ($self->{value} =~ /^[+-]?\d+:[dwmy]$/is)
|
||||
{
|
||||
$self->{value} = SqlifyDate($self->{value});
|
||||
$self->{quoted} = $dbh->quote($self->{value});
|
||||
}
|
||||
else
|
||||
{
|
||||
$self->call_op;
|
||||
}
|
||||
$self->call_op;
|
||||
}
|
||||
|
||||
sub _commenter
|
||||
|
|
|
@ -20,11 +20,16 @@ sub buglist_static_columns
|
|||
$columns->{lastcommenter} = {
|
||||
title => "Last Commenter",
|
||||
};
|
||||
$columns->{creation_ts_date} = {
|
||||
nocharts => 1,
|
||||
title => "Creation Date",
|
||||
name => $dbh->sql_date_format('bugs.creation_ts', '%Y-%m-%d'),
|
||||
};
|
||||
|
||||
### Testopia ###
|
||||
$columns->{test_cases} = {
|
||||
title => "Test cases",
|
||||
name => "(SELECT ".$dbh->sql_group_concat("case_id", "', '")." FROM (SELECT DISTINCT tcb.case_id FROM test_case_bugs tcb WHERE tcb.bug_id=bugs.bug_id) t)",
|
||||
name => "(SELECT ".$dbh->sql_group_concat("DISTINCT case_id", "', '")." FROM test_case_bugs tcb WHERE tcb.bug_id=bugs.bug_id)",
|
||||
};
|
||||
### end Testopia ###
|
||||
|
||||
|
|
|
@ -386,6 +386,12 @@ sub install_update_fielddefs
|
|||
$dbh->bz_alter_column('checkers', message => {TYPE => 'LONGTEXT', NOTNULL => 1});
|
||||
}
|
||||
|
||||
# Устанавливаем значение buglist в правильное
|
||||
my @yes = map { $_->{name} } grep { $_->{buglist} } Bugzilla::Field::DEFAULT_FIELDS;
|
||||
my @no = map { $_->{name} } grep { !$_->{buglist} } Bugzilla::Field::DEFAULT_FIELDS;
|
||||
$dbh->do('UPDATE fielddefs SET buglist=1 WHERE name IN (\''.join("','", @yes).'\')');
|
||||
$dbh->do('UPDATE fielddefs SET buglist=0 WHERE name IN (\''.join("','", @no).'\')');
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue