Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
bugzilla
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
etersoft
bugzilla
Commits
1f361a67
Commit
1f361a67
authored
Aug 03, 2006
by
mkanat%bugzilla.org
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bug 289357: Move AddFDef from checksetup into Field.pm
Patch By Max Kanat-Alexander <mkanat@bugzilla.org> r=bkor, a=myk
parent
b06a56e9
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
174 additions
and
134 deletions
+174
-134
Field.pm
Bugzilla/Field.pm
+50
-26
checksetup.pl
checksetup.pl
+122
-107
customfield.pl
customfield.pl
+2
-1
No files found.
Bugzilla/Field.pm
View file @
1f361a67
...
@@ -42,9 +42,9 @@ Bugzilla::Field - a particular piece of information about bugs
...
@@ -42,9 +42,9 @@ Bugzilla::Field - a particular piece of information about bugs
# so both methods take the same arguments.
# so both methods take the same arguments.
print Dumper(Bugzilla::Field->match({ obsolete => 1, custom => 1 }));
print Dumper(Bugzilla::Field->match({ obsolete => 1, custom => 1 }));
# Create
a custom field
.
# Create
or update a custom field or field definition
.
my $field = Bugzilla::Field::create
("hilarity", "Hilarity");
my $field = Bugzilla::Field::create
_or_update(
print $field->description . " is a custom field\n"
;
{name => 'hilarity', desc => 'Hilarity', custom => 1})
;
# Instantiate a Field object for an existing field.
# Instantiate a Field object for an existing field.
my $field = new Bugzilla::Field({name => 'qacontact_accessible'});
my $field = new Bugzilla::Field({name => 'qacontact_accessible'});
...
@@ -93,6 +93,13 @@ use constant DB_COLUMNS => (
...
@@ -93,6 +93,13 @@ use constant DB_COLUMNS => (
'enter_bug'
,
'enter_bug'
,
);
);
# How various field types translate into SQL data definitions.
use
constant
SQL_DEFINITIONS
=>
{
# Using commas because these are constants and they shouldn't
# be auto-quoted by the "=>" operator.
FIELD_TYPE_FREETEXT
,
{
TYPE
=>
'varchar(255)'
},
};
=pod
=pod
=head2 Instance Properties
=head2 Instance Properties
...
@@ -176,44 +183,61 @@ sub enter_bug { return $_[0]->{enter_bug} }
...
@@ -176,44 +183,61 @@ sub enter_bug { return $_[0]->{enter_bug} }
=over
=over
=item C<create
($name, $desc
)>
=item C<create
_or_update({name => $name, desc => $desc, in_new_bugmail => 0, custom => 0}
)>
Description: creates a new custom field.
Description: Creates a new field, or updates one that
already exists with the same name.
Params: C<$name> - string - the name of the field;
Params: This function takes named parameters in a hashref:
C<$desc> - string - the field label to display in the UI.
C<name> - string - The name of the field.
C<desc> - string - The field label to display in the UI.
C<in_new_bugmail> - boolean - Whether this field appears at the
top of the bugmail for a newly-filed bug.
C<custom> - boolean - True if this is a Custom Field. The field
will be added to the C<bugs> table if it does not exist.
Returns: a
field
object.
Returns: a
C<Bugzilla::Field>
object.
=back
=back
=cut
=cut
sub
create
{
sub
create_or_update
{
my
(
$name
,
$desc
,
$custom
)
=
@_
;
my
(
$params
)
=
@_
;
# Convert the $custom argument into a DB-compatible value.
$custom
=
$custom
?
1
:
0
;
my
$dbh
=
Bugzilla
->
dbh
;
my
$custom
=
$params
->
{
custom
}
?
1
:
0
;
my
$name
=
$params
->
{
name
};
my
$in_new_bugmail
=
$params
->
{
in_new_bugmail
}
?
1
:
0
;
# Some day we'll allow invocants to specify the sort key.
# Some day we'll allow invocants to specify the field type.
my
(
$sortkey
)
=
my
$type
=
$custom
?
FIELD_TYPE_FREETEXT
:
FIELD_TYPE_UNKNOWN
;
$dbh
->
selectrow_array
(
"SELECT MAX(sortkey) + 1 FROM fielddefs"
);
# Some day we'll require invocants to specify the field type.
my
$field
=
new
Bugzilla::
Field
({
name
=>
$name
});
my
$type
=
FIELD_TYPE_FREETEXT
;
# Create the database column that stores the data for this field.
my
$dbh
=
Bugzilla
->
dbh
;
$dbh
->
bz_add_column
(
"bugs"
,
$name
,
{
TYPE
=>
'varchar(255)'
});
if
(
$field
)
{
# Update the already-existing definition.
$dbh
->
do
(
"UPDATE fielddefs SET description = ?, mailhead = ?
WHERE id = ?"
,
undef
,
$params
->
{
desc
},
$in_new_bugmail
,
$field
->
id
);
}
else
{
# Some day we'll allow invocants to specify the sort key.
my
(
$sortkey
)
=
$dbh
->
selectrow_array
(
"SELECT MAX(sortkey) + 100 FROM fielddefs"
)
||
100
;
# Add the field to the list of fields at this Bugzilla installation.
# Add the field to the list of fields at this Bugzilla installation.
my
$sth
=
$dbh
->
prepare
(
$dbh
->
do
(
"INSERT INTO fielddefs (name, description, sortkey, type,
"INSERT INTO fielddefs (name, description, sortkey, type,
custom, mailhead)
custom, mailhead)
VALUES (?, ?, ?, ?, ?, 1)"
VALUES (?, ?, ?, ?, ?, ?)"
,
undef
,
);
$name
,
$params
->
{
desc
},
$sortkey
,
$type
,
$custom
,
$sth
->
execute
(
$name
,
$desc
,
$sortkey
,
$type
,
$custom
);
$in_new_bugmail
);
}
if
(
!
$dbh
->
bz_column_info
(
'bugs'
,
$name
)
&&
$custom
)
{
# Create the database column that stores the data for this field.
$dbh
->
bz_add_column
(
'bugs'
,
$name
,
SQL_DEFINITIONS
->
{
$type
});
}
return
new
Bugzilla::
Field
({
name
=>
$name
});
return
new
Bugzilla::
Field
({
name
=>
$name
});
}
}
...
...
checksetup.pl
View file @
1f361a67
...
@@ -329,6 +329,7 @@ import Bugzilla::Install::Filesystem qw(update_filesystem create_htaccess
...
@@ -329,6 +329,7 @@ import Bugzilla::Install::Filesystem qw(update_filesystem create_htaccess
require
Bugzilla::
DB
;
require
Bugzilla::
DB
;
require
Bugzilla::
Template
;
require
Bugzilla::
Template
;
require
Bugzilla::
Field
;
require
Bugzilla::
Install
;
require
Bugzilla::
Install
;
###########################################################################
###########################################################################
...
@@ -444,101 +445,138 @@ sub AddGroup {
...
@@ -444,101 +445,138 @@ sub AddGroup {
###########################################################################
###########################################################################
#
Populate t
he list of fields.
#
T
he list of fields.
###########################################################################
###########################################################################
my
$headernum
=
1
;
# NOTE: All of these entries are unconditional, from when get_field_id
# used to create an entry if it wasn't found. New fielddef columns should
# be created with their associated schema change.
use
constant
OLD_FIELD_DEFS
=>
(
{
name
=>
'bug_id'
,
desc
=>
'Bug #'
,
in_new_bugmail
=>
1
},
{
name
=>
'short_desc'
,
desc
=>
'Summary'
,
in_new_bugmail
=>
1
},
{
name
=>
'classification'
,
desc
=>
'Classification'
,
in_new_bugmail
=>
1
},
{
name
=>
'product'
,
desc
=>
'Product'
,
in_new_bugmail
=>
1
},
{
name
=>
'version'
,
desc
=>
'Version'
,
in_new_bugmail
=>
1
},
{
name
=>
'rep_platform'
,
desc
=>
'Platform'
,
in_new_bugmail
=>
1
},
{
name
=>
'bug_file_loc'
,
desc
=>
'URL'
,
in_new_bugmail
=>
1
},
{
name
=>
'op_sys'
,
desc
=>
'OS/Version'
,
in_new_bugmail
=>
1
},
{
name
=>
'bug_status'
,
desc
=>
'Status'
,
in_new_bugmail
=>
1
},
{
name
=>
'status_whiteboard'
,
desc
=>
'Status Whiteboard'
,
in_new_bugmail
=>
1
},
{
name
=>
'keywords'
,
desc
=>
'Keywords'
,
in_new_bugmail
=>
1
},
{
name
=>
'resolution'
,
desc
=>
'Resolution'
},
{
name
=>
'bug_severity'
,
desc
=>
'Severity'
,
in_new_bugmail
=>
1
},
{
name
=>
'priority'
,
desc
=>
'Priority'
,
in_new_bugmail
=>
1
},
{
name
=>
'component'
,
desc
=>
'Component'
,
in_new_bugmail
=>
1
},
{
name
=>
'assigned_to'
,
desc
=>
'AssignedTo'
,
in_new_bugmail
=>
1
},
{
name
=>
'reporter'
,
desc
=>
'ReportedBy'
,
in_new_bugmail
=>
1
},
{
name
=>
'votes'
,
desc
=>
'Votes'
},
{
name
=>
'qa_contact'
,
desc
=>
'QAContact'
,
in_new_bugmail
=>
1
},
{
name
=>
'cc'
,
desc
=>
'CC'
,
in_new_bugmail
=>
1
},
{
name
=>
'dependson'
,
desc
=>
'BugsThisDependsOn'
,
in_new_bugmail
=>
1
},
{
name
=>
'blocked'
,
desc
=>
'OtherBugsDependingOnThis'
,
in_new_bugmail
=>
1
},
{
name
=>
'attachments.description'
,
desc
=>
'Attachment description'
},
{
name
=>
'attachments.filename'
,
desc
=>
'Attachment filename'
},
{
name
=>
'attachments.mimetype'
,
desc
=>
'Attachment mime type'
},
{
name
=>
'attachments.ispatch'
,
desc
=>
'Attachment is patch'
},
{
name
=>
'attachments.isobsolete'
,
desc
=>
'Attachment is obsolete'
},
{
name
=>
'attachments.isprivate'
,
desc
=>
'Attachment is private'
},
{
name
=>
'target_milestone'
,
desc
=>
'Target Milestone'
},
{
name
=>
'creation_ts'
,
desc
=>
'Creation date'
,
in_new_bugmail
=>
1
},
{
name
=>
'delta_ts'
,
desc
=>
'Last changed date'
,
in_new_bugmail
=>
1
},
{
name
=>
'longdesc'
,
desc
=>
'Comment'
},
{
name
=>
'alias'
,
desc
=>
'Alias'
},
{
name
=>
'everconfirmed'
,
desc
=>
'Ever Confirmed'
},
{
name
=>
'reporter_accessible'
,
desc
=>
'Reporter Accessible'
},
{
name
=>
'cclist_accessible'
,
desc
=>
'CC Accessible'
},
{
name
=>
'bug_group'
,
desc
=>
'Group'
},
{
name
=>
'estimated_time'
,
desc
=>
'Estimated Hours'
,
in_new_bugmail
=>
1
},
{
name
=>
'remaining_time'
,
desc
=>
'Remaining Hours'
},
{
name
=>
'deadline'
,
desc
=>
'Deadline'
,
in_new_bugmail
=>
1
},
{
name
=>
'commenter'
,
desc
=>
'Commenter'
},
{
name
=>
'flagtypes.name'
,
desc
=>
'Flag'
},
{
name
=>
'requestees.login_name'
,
desc
=>
'Flag Requestee'
},
{
name
=>
'setters.login_name'
,
desc
=>
'Flag Setter'
},
{
name
=>
'work_time'
,
desc
=>
'Hours Worked'
},
{
name
=>
'percentage_complete'
,
desc
=>
'Percentage Complete'
},
{
name
=>
'content'
,
desc
=>
'Content'
},
{
name
=>
'attach_data.thedata'
,
desc
=>
'Attachment data'
},
{
name
=>
'attachments.isurl'
,
desc
=>
'Attachment is a URL'
}
);
# Please see comment above before adding any new values to this constant.
sub
AddFDef
{
###########################################################################
my
(
$name
,
$description
,
$mailhead
)
=
(
@_
);
# Changes to the fielddefs --TABLE--
###########################################################################
my
$sth
=
$dbh
->
prepare
(
"SELECT id FROM fielddefs "
.
# Calling Bugzilla::Field::create_or_update depends on the
"WHERE name = ?"
);
# fielddefs table having a modern definition. So, we have to make
$sth
->
execute
(
$name
);
# these particular schema changes before we make any other schema changes.
my
(
$fieldid
)
=
(
$sth
->
fetchrow_array
());
if
(
!
$fieldid
)
{
# 2005-02-21 - LpSolit@gmail.com - Bug 279910
$dbh
->
do
(
q{INSERT INTO fielddefs
# qacontact_accessible and assignee_accessible field names no longer exist
(name, description, mailhead, sortkey)
# in the 'bugs' table. Their corresponding entries in the 'bugs_activity'
VALUES (?, ?, ?, ?)}
,
# table should therefore be marked as obsolete, meaning that they cannot
undef
,
(
$name
,
$description
,
$mailhead
,
$headernum
));
# be used anymore when querying the database - they are not deleted in
}
else
{
# order to keep track of these fields in the activity table.
$dbh
->
do
(
q{UPDATE fielddefs
if
(
!
$dbh
->
bz_column_info
(
'fielddefs'
,
'obsolete'
))
{
SET name = ?, description = ?,
$dbh
->
bz_add_column
(
'fielddefs'
,
'obsolete'
,
mailhead = ?, sortkey = ?
{
TYPE
=>
'BOOLEAN'
,
NOTNULL
=>
1
,
DEFAULT
=>
'FALSE'
});
WHERE id = ?}
,
undef
,
print
"Marking qacontact_accessible and assignee_accessible as obsolete"
,
$name
,
$description
,
$mailhead
,
$headernum
,
$fieldid
);
" fields...\n"
;
}
$dbh
->
do
(
"UPDATE fielddefs SET obsolete = 1
$headernum
++
;
WHERE name = 'qacontact_accessible'
OR name = 'assignee_accessible'"
);
}
}
# 2005-08-10 Myk Melez <myk@mozilla.org> bug 287325
# Record each field's type and whether or not it's a custom field in fielddefs.
$dbh
->
bz_add_column
(
'fielddefs'
,
'type'
,
{
TYPE
=>
'INT2'
,
NOTNULL
=>
1
,
DEFAULT
=>
0
});
$dbh
->
bz_add_column
(
'fielddefs'
,
'custom'
,
{
TYPE
=>
'BOOLEAN'
,
NOTNULL
=>
1
,
DEFAULT
=>
'FALSE'
});
$dbh
->
bz_add_column
(
'fielddefs'
,
'enter_bug'
,
{
TYPE
=>
'BOOLEAN'
,
NOTNULL
=>
1
,
DEFAULT
=>
'FALSE'
});
# Change the name of the fieldid column to id, so that fielddefs
# Change the name of the fieldid column to id, so that fielddefs
# can use Bugzilla::Object easily. We have to do this up here, because
# can use Bugzilla::Object easily. We have to do this up here, because
# otherwise adding these field definitions will fail.
# otherwise adding these field definitions will fail.
$dbh
->
bz_rename_column
(
'fielddefs'
,
'fieldid'
,
'id'
);
$dbh
->
bz_rename_column
(
'fielddefs'
,
'fieldid'
,
'id'
);
# Note that all of these entries are unconditional, from when get_field_id
# If the largest fielddefs sortkey is less than 100, then
# used to create an entry if it wasn't found. New fielddef columns should
# we're using the old sorting system, and we should convert
# be created with their associated schema change.
# it to the new one before adding any new definitions.
AddFDef
(
"bug_id"
,
"Bug \#"
,
1
);
if
(
!
$dbh
->
selectrow_arrayref
(
AddFDef
(
"short_desc"
,
"Summary"
,
1
);
'SELECT COUNT(id) FROM fielddefs WHERE sortkey >= 100'
))
AddFDef
(
"classification"
,
"Classification"
,
1
);
{
AddFDef
(
"product"
,
"Product"
,
1
);
print
"Updating the sortkeys for the fielddefs table...\n"
;
AddFDef
(
"version"
,
"Version"
,
1
);
my
$field_ids
=
$dbh
->
selectcol_arrayref
(
AddFDef
(
"rep_platform"
,
"Platform"
,
1
);
'SELECT id FROM fielddefs ORDER BY sortkey'
);
AddFDef
(
"bug_file_loc"
,
"URL"
,
1
);
my
$sortkey
=
100
;
AddFDef
(
"op_sys"
,
"OS/Version"
,
1
);
foreach
my
$field_id
(
@$field_ids
)
{
AddFDef
(
"bug_status"
,
"Status"
,
1
);
$dbh
->
do
(
'UPDATE fielddefs SET sortkey = ? WHERE id = ?'
,
AddFDef
(
"status_whiteboard"
,
"Status Whiteboard"
,
0
);
undef
,
$sortkey
,
$field_id
);
AddFDef
(
"keywords"
,
"Keywords"
,
1
);
$sortkey
+=
100
;
AddFDef
(
"resolution"
,
"Resolution"
,
0
);
}
AddFDef
(
"bug_severity"
,
"Severity"
,
1
);
}
AddFDef
(
"priority"
,
"Priority"
,
1
);
AddFDef
(
"component"
,
"Component"
,
1
);
# Create field definitions
AddFDef
(
"assigned_to"
,
"AssignedTo"
,
1
);
foreach
my
$definition
(
OLD_FIELD_DEFS
)
{
AddFDef
(
"reporter"
,
"ReportedBy"
,
1
);
Bugzilla::Field::
create_or_update
(
$definition
);
AddFDef
(
"votes"
,
"Votes"
,
0
);
}
AddFDef
(
"qa_contact"
,
"QAContact"
,
1
);
AddFDef
(
"cc"
,
"CC"
,
1
);
# Delete or adjust old field definitions.
AddFDef
(
"dependson"
,
"BugsThisDependsOn"
,
1
);
AddFDef
(
"blocked"
,
"OtherBugsDependingOnThis"
,
1
);
AddFDef
(
"attachments.description"
,
"Attachment description"
,
0
);
AddFDef
(
"attachments.filename"
,
"Attachment filename"
,
0
);
AddFDef
(
"attachments.mimetype"
,
"Attachment mime type"
,
0
);
AddFDef
(
"attachments.ispatch"
,
"Attachment is patch"
,
0
);
AddFDef
(
"attachments.isobsolete"
,
"Attachment is obsolete"
,
0
);
AddFDef
(
"attachments.isprivate"
,
"Attachment is private"
,
0
);
AddFDef
(
"target_milestone"
,
"Target Milestone"
,
0
);
AddFDef
(
"creation_ts"
,
"Creation date"
,
0
);
AddFDef
(
"delta_ts"
,
"Last changed date"
,
0
);
AddFDef
(
"longdesc"
,
"Comment"
,
0
);
AddFDef
(
"alias"
,
"Alias"
,
0
);
AddFDef
(
"everconfirmed"
,
"Ever Confirmed"
,
0
);
AddFDef
(
"reporter_accessible"
,
"Reporter Accessible"
,
0
);
AddFDef
(
"cclist_accessible"
,
"CC Accessible"
,
0
);
AddFDef
(
"bug_group"
,
"Group"
,
0
);
AddFDef
(
"estimated_time"
,
"Estimated Hours"
,
1
);
AddFDef
(
"remaining_time"
,
"Remaining Hours"
,
0
);
AddFDef
(
"deadline"
,
"Deadline"
,
1
);
AddFDef
(
"commenter"
,
"Commenter"
,
0
);
# Oops. Bug 163299
# Oops. Bug 163299
$dbh
->
do
(
"DELETE FROM fielddefs WHERE name='cc_accessible'"
);
$dbh
->
do
(
"DELETE FROM fielddefs WHERE name='cc_accessible'"
);
# Oops. Bug 215319
# Oops. Bug 215319
$dbh
->
do
(
"DELETE FROM fielddefs WHERE name='requesters.login_name'"
);
$dbh
->
do
(
"DELETE FROM fielddefs WHERE name='requesters.login_name'"
);
# This field was never tracked in bugs_activity, so it's safe to delete.
AddFDef
(
"flagtypes.name"
,
"Flag"
,
0
);
AddFDef
(
"requestees.login_name"
,
"Flag Requestee"
,
0
);
AddFDef
(
"setters.login_name"
,
"Flag Setter"
,
0
);
AddFDef
(
"work_time"
,
"Hours Worked"
,
0
);
AddFDef
(
"percentage_complete"
,
"Percentage Complete"
,
0
);
AddFDef
(
"content"
,
"Content"
,
0
);
$dbh
->
do
(
"DELETE FROM fielddefs WHERE name='attachments.thedata'"
);
$dbh
->
do
(
"DELETE FROM fielddefs WHERE name='attachments.thedata'"
);
AddFDef
(
"attach_data.thedata"
,
"Attachment data"
,
0
);
AddFDef
(
"attachments.isurl"
,
"Attachment is a URL"
,
0
);
# 2005-11-13 LpSolit@gmail.com - Bug 302599
# 2005-11-13 LpSolit@gmail.com - Bug 302599
# One of the field names was a fragment of SQL code, which is DB dependent.
# One of the field names was a fragment of SQL code, which is DB dependent.
...
@@ -597,7 +635,10 @@ if ($old_field_id && ($old_field_name ne $new_field_name)) {
...
@@ -597,7 +635,10 @@ if ($old_field_id && ($old_field_name ne $new_field_name)) {
$dbh
->
do
(
'UPDATE fielddefs SET name = ? WHERE id = ?'
,
$dbh
->
do
(
'UPDATE fielddefs SET name = ? WHERE id = ?'
,
undef
,
(
$new_field_name
,
$old_field_id
));
undef
,
(
$new_field_name
,
$old_field_id
));
}
}
AddFDef
(
$new_field_name
,
$field_description
,
0
);
Bugzilla::Field::
create_or_update
(
{
name
=>
$new_field_name
,
desc
=>
$field_description
});
###########################################################################
###########################################################################
# Create initial test product if there are no products present.
# Create initial test product if there are no products present.
...
@@ -1778,8 +1819,6 @@ if ($dbh->bz_column_info("profiles", "groupset")) {
...
@@ -1778,8 +1819,6 @@ if ($dbh->bz_column_info("profiles", "groupset")) {
}
}
}
}
# Replace old activity log groupset records with lists of names of groups.
# Replace old activity log groupset records with lists of names of groups.
# Start by defining the bug_group field and getting its id.
AddFDef
(
"bug_group"
,
"Group"
,
0
);
$sth
=
$dbh
->
prepare
(
"SELECT id "
.
$sth
=
$dbh
->
prepare
(
"SELECT id "
.
"FROM fielddefs "
.
"FROM fielddefs "
.
"WHERE name = "
.
$dbh
->
quote
(
'bug_group'
));
"WHERE name = "
.
$dbh
->
quote
(
'bug_group'
));
...
@@ -2322,7 +2361,8 @@ if (!$series_exists) {
...
@@ -2322,7 +2361,8 @@ if (!$series_exists) {
}
}
}
}
AddFDef
(
"owner_idle_time"
,
"Time Since Assignee Touched"
,
0
);
Bugzilla::Field::
create_or_update
(
{
name
=>
"owner_idle_time"
,
desc
=>
"Time Since Assignee Touched"
});
# 2004-04-12 - Keep regexp-based group permissions up-to-date - Bug 240325
# 2004-04-12 - Keep regexp-based group permissions up-to-date - Bug 240325
if
(
$dbh
->
bz_column_info
(
"user_group_map"
,
"isderived"
))
{
if
(
$dbh
->
bz_column_info
(
"user_group_map"
,
"isderived"
))
{
...
@@ -2413,21 +2453,6 @@ if ($dbh->bz_column_info('quips', 'userid')->{NOTNULL}) {
...
@@ -2413,21 +2453,6 @@ if ($dbh->bz_column_info('quips', 'userid')->{NOTNULL}) {
$dbh
->
do
(
'UPDATE quips SET userid = NULL WHERE userid = 0'
);
$dbh
->
do
(
'UPDATE quips SET userid = NULL WHERE userid = 0'
);
}
}
# 2005-02-21 - LpSolit@gmail.com - Bug 279910
# qacontact_accessible and assignee_accessible field names no longer exist
# in the 'bugs' table. Their corresponding entries in the 'bugs_activity'
# table should therefore be marked as obsolete, meaning that they cannot
# be used anymore when querying the database - they are not deleted in
# order to keep track of these fields in the activity table.
if
(
!
$dbh
->
bz_column_info
(
'fielddefs'
,
'obsolete'
))
{
$dbh
->
bz_add_column
(
'fielddefs'
,
'obsolete'
,
{
TYPE
=>
'BOOLEAN'
,
NOTNULL
=>
1
,
DEFAULT
=>
'FALSE'
});
print
"Marking qacontact_accessible and assignee_accessible as obsolete fields...\n"
;
$dbh
->
do
(
"UPDATE fielddefs SET obsolete = 1
WHERE name = 'qacontact_accessible'
OR name = 'assignee_accessible'"
);
}
# Add fulltext indexes for bug summaries and descriptions/comments.
# Add fulltext indexes for bug summaries and descriptions/comments.
if
(
!
$dbh
->
bz_index_info
(
'bugs'
,
'bugs_short_desc_idx'
))
{
if
(
!
$dbh
->
bz_index_info
(
'bugs'
,
'bugs_short_desc_idx'
))
{
print
"Adding full-text index for short_desc column in bugs table...\n"
;
print
"Adding full-text index for short_desc column in bugs table...\n"
;
...
@@ -2986,13 +3011,6 @@ if (scalar(@$controlchar_bugs))
...
@@ -2986,13 +3011,6 @@ if (scalar(@$controlchar_bugs))
print
" done.\n"
if
$found
;
print
" done.\n"
if
$found
;
}
}
# 2005-08-10 Myk Melez <myk@mozilla.org> bug 287325
# Record each field's type and whether or not it's a custom field in fielddefs.
$dbh
->
bz_add_column
(
'fielddefs'
,
'type'
,
{
TYPE
=>
'INT2'
,
NOTNULL
=>
1
,
DEFAULT
=>
0
});
$dbh
->
bz_add_column
(
'fielddefs'
,
'custom'
,
{
TYPE
=>
'BOOLEAN'
,
NOTNULL
=>
1
,
DEFAULT
=>
'FALSE'
});
# 2005-12-07 altlst@sonic.net -- Bug 225221
# 2005-12-07 altlst@sonic.net -- Bug 225221
$dbh
->
bz_add_column
(
'longdescs'
,
'comment_id'
,
$dbh
->
bz_add_column
(
'longdescs'
,
'comment_id'
,
{
TYPE
=>
'MEDIUMSERIAL'
,
NOTNULL
=>
1
,
PRIMARYKEY
=>
1
});
{
TYPE
=>
'MEDIUMSERIAL'
,
NOTNULL
=>
1
,
PRIMARYKEY
=>
1
});
...
@@ -3091,9 +3109,6 @@ if (!$dbh->bz_column_info('classifications', 'sortkey')) {
...
@@ -3091,9 +3109,6 @@ if (!$dbh->bz_column_info('classifications', 'sortkey')) {
}
}
}
}
$dbh
->
bz_add_column
(
'fielddefs'
,
'enter_bug'
,
{
TYPE
=>
'BOOLEAN'
,
NOTNULL
=>
1
,
DEFAULT
=>
'FALSE'
});
# 2006-07-14 karl@kornel.name - Bug 100953
# 2006-07-14 karl@kornel.name - Bug 100953
# If a nomail file exists, move its contents into the DB
# If a nomail file exists, move its contents into the DB
$dbh
->
bz_add_column
(
'profiles'
,
'disable_mail'
,
$dbh
->
bz_add_column
(
'profiles'
,
'disable_mail'
,
...
...
customfield.pl
View file @
1f361a67
...
@@ -84,5 +84,6 @@ if ( new Bugzilla::Field({name => $name}) ) {
...
@@ -84,5 +84,6 @@ if ( new Bugzilla::Field({name => $name}) ) {
# Create the field.
# Create the field.
print
"Creating custom field $name ...\n"
;
print
"Creating custom field $name ...\n"
;
my
$field
=
Bugzilla::Field::
create
(
$name
,
$desc
,
1
);
Bugzilla::Field::
create_or_update
(
{
name
=>
$name
,
desc
=>
$desc
,
custom
=>
1
});
print
"Custom field $name created.\n"
;
print
"Custom field $name created.\n"
;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment