[Python-checkins] r52847 - in tracker/instances/python-dev: detectors/nosyreaction.py detectors/statusauditor.py html/bug.index.html html/bug.item.html html/bug.search.html html/file.index.html html/home.html html/issue.index.html html/issue.item.html html/issue.search.html html/msg.index.html html/page.html html/user.forgotten.html initial_data.py schema.py
stefan.seefeld
python-checkins at python.org
Mon Nov 27 03:01:04 CET 2006
Author: stefan.seefeld
Date: Mon Nov 27 03:01:03 2006
New Revision: 52847
Added:
tracker/instances/python-dev/html/issue.index.html
- copied, changed from r52825, tracker/instances/python-dev/html/bug.index.html
tracker/instances/python-dev/html/issue.item.html
- copied, changed from r52825, tracker/instances/python-dev/html/bug.item.html
tracker/instances/python-dev/html/issue.search.html
- copied, changed from r52825, tracker/instances/python-dev/html/bug.search.html
Removed:
tracker/instances/python-dev/html/bug.index.html
tracker/instances/python-dev/html/bug.item.html
tracker/instances/python-dev/html/bug.search.html
Modified:
tracker/instances/python-dev/detectors/nosyreaction.py
tracker/instances/python-dev/detectors/statusauditor.py
tracker/instances/python-dev/html/file.index.html
tracker/instances/python-dev/html/home.html
tracker/instances/python-dev/html/msg.index.html
tracker/instances/python-dev/html/page.html
tracker/instances/python-dev/html/user.forgotten.html
tracker/instances/python-dev/initial_data.py
tracker/instances/python-dev/schema.py
Log:
switch 'bug' back to 'issue'
Modified: tracker/instances/python-dev/detectors/nosyreaction.py
==============================================================================
--- tracker/instances/python-dev/detectors/nosyreaction.py (original)
+++ tracker/instances/python-dev/detectors/nosyreaction.py Mon Nov 27 03:01:03 2006
@@ -6,7 +6,7 @@
"messages" property.
When a new message is added, the detector sends it to all the users on
- the "nosy" list for the bug that are not already on the "recipients"
+ the "nosy" list for the issue that are not already on the "recipients"
list of the message.
Those users are then appended to the "recipients" property on the
@@ -32,12 +32,12 @@
# the action was a create, so use all the messages in the create
messages = cl.get(nodeid, 'messages')
elif oldvalues.has_key('messages'):
- # the action was a set (so adding new messages to an existing bug)
+ # the action was a set (so adding new messages to an existing issue)
m = {}
for msgid in oldvalues['messages']:
m[msgid] = 1
messages = []
- # figure which of the messages now on the bug weren't there before
+ # figure which of the messages now on the issue weren't there before
for msgid in cl.get(nodeid, 'messages'):
if not m.has_key(msgid):
messages.append(msgid)
@@ -87,7 +87,7 @@
messages = newvalues['messages']
else:
ok = ('yes',)
- # figure which of the messages now on the bug weren't
+ # figure which of the messages now on the issue weren't
oldmessages = cl.get(nodeid, 'messages')
messages = []
for msgid in newvalues['messages']:
@@ -115,7 +115,7 @@
newvalues['nosy'] = list(new_nosy)
def init(db):
- db.bug.react('create', nosyreaction)
- db.bug.react('set', nosyreaction)
- db.bug.audit('create', updatenosy)
- db.bug.audit('set', updatenosy)
+ db.issue.react('create', nosyreaction)
+ db.issue.react('set', nosyreaction)
+ db.issue.audit('create', updatenosy)
+ db.issue.audit('set', updatenosy)
Modified: tracker/instances/python-dev/detectors/statusauditor.py
==============================================================================
--- tracker/instances/python-dev/detectors/statusauditor.py (original)
+++ tracker/instances/python-dev/detectors/statusauditor.py Mon Nov 27 03:01:03 2006
@@ -1,5 +1,5 @@
def init_status(db, cl, nodeid, newvalues):
- """ Make sure the status is set on new bugs"""
+ """ Make sure the status is set on new issues"""
if newvalues.has_key('status') and newvalues['status']:
return
@@ -24,15 +24,15 @@
# format the info
u = db.config.TRACKER_WEB
- s = ', '.join(['<a href="%sbug%s">%s</a>'%(u,id,id) for id in dependencies])
+ s = ', '.join(['<a href="%sissue%s">%s</a>'%(u,id,id) for id in dependencies])
if len(dependencies) == 1:
- s = 'bug %s is'%s
+ s = 'issue %s is'%s
else:
- s = 'bugs %s are'%s
+ s = 'issues %s are'%s
# ok, see if we're trying to resolve
if newvalues.get('status') and newvalues['status'] == db.status.lookup('closed'):
- raise ValueError, "This bug can't be closed until %s closed."%s
+ raise ValueError, "This issue can't be closed until %s closed."%s
def resolve(db, cl, nodeid, newvalues):
@@ -44,17 +44,17 @@
# Make sure resolution and superseder get only set when status->close
if not status_change or not status_close:
if newvalues.get('resolution') or newvalues.get('superseder'):
- raise ValueError, "resolution and superseder must only be set when a bug is closed"
+ raise ValueError, "resolution and superseder must only be set when a issue is closed"
# Make sure resolution is set when status->close
if status_close:
if not newvalues.get('resolution'):
- raise ValueError, "resolution must be set when a bug is closed"
+ raise ValueError, "resolution must be set when a issue is closed"
# Make sure superseder is set when resolution->duplicate
if newvalues['resolution'] == db.resolution.lookup('duplicate'):
if not newvalues.get('superseder'):
- raise ValueError, "please provide a superseder when closing a bug as 'duplicate'"
+ raise ValueError, "please provide a superseder when closing a issue as 'duplicate'"
@@ -76,20 +76,20 @@
# yes - find all the dependend issues, if any, and remove me from
# their dependency list
- bugs = cl.find(dependencies=nodeid)
- for bugid in bugs:
- dependencies = cl.get(bugid, 'dependencies')
+ issues = cl.find(dependencies=nodeid)
+ for issueid in issues:
+ dependencies = cl.get(issueid, 'dependencies')
if nodeid in dependencies:
dependencies.remove(nodeid)
- cl.set(bugid, dependencies=dependencies)
+ cl.set(issueid, dependencies=dependencies)
def init(db):
# fire before changes are made
- db.bug.audit('create', init_status)
- db.bug.audit('create', block_resolution)
- db.bug.audit('set', block_resolution)
- db.bug.audit('set', resolve)
+ db.issue.audit('create', init_status)
+ db.issue.audit('create', block_resolution)
+ db.issue.audit('set', block_resolution)
+ db.issue.audit('set', resolve)
# adjust after changes are committed
- db.bug.react('set', resolve_dependencies)
+ db.issue.react('set', resolve_dependencies)
Deleted: /tracker/instances/python-dev/html/bug.index.html
==============================================================================
--- /tracker/instances/python-dev/html/bug.index.html Mon Nov 27 03:01:03 2006
+++ (empty file)
@@ -1,159 +0,0 @@
-<tal:block metal:use-macro="templates/page/macros/icing">
-<title metal:fill-slot="head_title" >
- <span tal:omit-tag="true" i18n:translate="" >List of bugs</span>
- <span tal:condition="request/dispname"
- tal:replace="python:' - %s '%request.dispname"
- /> - <span tal:replace="config/TRACKER_NAME" />
-</title>
-<span metal:fill-slot="body_title" tal:omit-tag="true">
- <span tal:omit-tag="true" i18n:translate="" >List of bugs</span>
- <span tal:condition="request/dispname"
- tal:replace="python:' - %s' % request.dispname" />
-</span>
-<tal:block metal:fill-slot="content">
-
-<p tal:condition="python:not (context.is_view_ok()
- or request.user.hasRole('Anonymous'))" i18n:translate="">
- You are not allowed to view this page.</p>
-
-<p tal:condition="python:not context.is_view_ok()
- and request.user.hasRole('Anonymous')" i18n:translate="">
- Please login with your username and password.</p>
-
-<tal:block tal:define="batch request/batch" tal:condition="context/is_view_ok">
- <table class="list">
- <tr>
- <th tal:condition="request/show/severity" i18n:translate="">Severity</th>
- <th tal:condition="request/show/id" i18n:translate="">ID</th>
- <th tal:condition="request/show/creation" i18n:translate="">Creation</th>
- <th tal:condition="request/show/activity" i18n:translate="">Activity</th>
- <th tal:condition="request/show/actor" i18n:translate="">Actor</th>
- <th tal:condition="request/show/title" i18n:translate="">Title</th>
- <th tal:condition="request/show/status" i18n:translate="">Status</th>
- <th tal:condition="request/show/creator" i18n:translate="">Creator</th>
- <th tal:condition="request/show/assignee" i18n:translate="">Assigned To</th>
- </tr>
- <tal:block tal:repeat="i batch" condition=true>
- <tr tal:define="group python:[r[1] for r in request.group]"
- tal:condition="python:group and batch.propchanged(*group)">
- <th tal:attributes="colspan python:len(request.columns)" class="group">
- <tal:block tal:repeat="g group">
- <tal:block tal:content="python:str(i[g]) or '(no %s set)'%g"/>
- </tal:block>
- </th>
- </tr>
-
- <tr>
- <td tal:condition="request/show/severity"
- tal:content="python:i.severity.plain() or default"> </td>
- <td tal:condition="request/show/id" tal:content="i/id"> </td>
- <td class="date" tal:condition="request/show/creation"
- tal:content="i/creation/reldate"> </td>
- <td class="date" tal:condition="request/show/activity"
- tal:content="i/activity/reldate"> </td>
- <td class="date" tal:condition="request/show/actor"
- tal:content="python:i.actor.plain() or default"> </td>
- <td tal:condition="request/show/title">
- <a tal:attributes="href string:bug${i/id}"
- tal:content="python:str(i.title.plain(hyperlink=0)) or '[no title]'">title</a>
- </td>
- <td tal:condition="request/show/status"
- tal:content="python:i.status.plain() or default"> </td>
- <td tal:condition="request/show/creator"
- tal:content="python:i.creator.plain() or default"> </td>
- <td tal:condition="request/show/assignee"
- tal:content="python:i.assignee.plain() or default"> </td>
- </tr>
-
- </tal:block>
-
- <metal:index define-macro="batch-footer">
- <tr tal:condition="batch">
- <th tal:attributes="colspan python:len(request.columns)">
- <table width="100%">
- <tr class="navigation">
- <th>
- <a tal:define="prev batch/previous" tal:condition="prev"
- tal:attributes="href python:request.indexargs_url(request.classname,
- {'@startwith':prev.first, '@pagesize':prev.size})"
- i18n:translate=""><< previous</a>
-
- </th>
- <th i18n:translate=""><span tal:replace="batch/start" i18n:name="start"
- />..<span tal:replace="python: batch.start + batch.length -1" i18n:name="end"
- /> out of <span tal:replace="batch/sequence_length" i18n:name="total"
- /></th>
- <th>
- <a tal:define="next batch/next" tal:condition="next"
- tal:attributes="href python:request.indexargs_url(request.classname,
- {'@startwith':next.first, '@pagesize':next.size})"
- i18n:translate="">next >></a>
-
- </th>
- </tr>
- </table>
- </th>
- </tr>
- </metal:index>
-</table>
-
-<a tal:attributes="href python:request.indexargs_url('bug',
- {'@action':'export_csv'})" i18n:translate="">Download as CSV</a>
-
-<form method="get" class="index-controls"
- tal:attributes="action request/classname">
-
- <table class="form" tal:define="n_sort python:2">
- <tal:block tal:repeat="n python:range(n_sort)" tal:condition="batch">
- <tr tal:define="key python:len(request.sort)>n and request.sort[n]">
- <th>
- <tal:block tal:condition="not:n" i18n:translate="">Sort on:</tal:block>
- </th>
- <td>
- <select tal:attributes="name python:'@sort%d'%n">
- <option value="" i18n:translate="">- nothing -</option>
- <option tal:repeat="col context/properties"
- tal:attributes="value col/_name;
- selected python:key and col._name == key[1]"
- tal:content="col/_name"
- i18n:translate="">column</option>
- </select>
- </td>
- <th i18n:translate="">Descending:</th>
- <td><input type="checkbox" tal:attributes="name python:'@sortdir%d'%n;
- checked python:key and key[0] == '-'"/>
- </td>
- </tr>
- </tal:block>
- <tal:block tal:repeat="n python:range(n_sort)" tal:condition="batch">
- <tr tal:define="key python:len(request.group)>n and request.group[n]">
- <th>
- <tal:block tal:condition="not:n" i18n:translate="">Group on:</tal:block>
- </th>
- <td>
- <select tal:attributes="name python:'@group%d'%n">
- <option value="" i18n:translate="">- nothing -</option>
- <option tal:repeat="col context/properties"
- tal:attributes="value col/_name;
- selected python:key and col._name == key[1]"
- tal:content="col/_name"
- i18n:translate="">column</option>
- </select>
- </td>
- <th i18n:translate="">Descending:</th>
- <td><input type="checkbox" tal:attributes="name python:'@groupdir%d'%n;
- checked python:key and key[0] == '-'"/>
- </td>
- </tr>
- </tal:block>
- <tr><td colspan="4">
- <input type="submit" value="Redisplay" i18n:attributes="value"/>
- <tal:block tal:replace="structure
- python:request.indexargs_form(sort=0, group=0)" />
- </td></tr>
- </table>
-</form>
-
-</tal:block>
-</tal:block>
-</tal:block>
Deleted: /tracker/instances/python-dev/html/bug.item.html
==============================================================================
--- /tracker/instances/python-dev/html/bug.item.html Mon Nov 27 03:01:03 2006
+++ (empty file)
@@ -1,247 +0,0 @@
-<tal:block metal:use-macro="templates/page/macros/icing">
-<title metal:fill-slot="head_title">
-<tal:block condition="context/id" i18n:translate=""
- >Bug <span tal:replace="context/id" i18n:name="id"
- />: <span tal:replace="context/title" i18n:name="title"
- /> - <span tal:replace="config/TRACKER_NAME" i18n:name="tracker"
-/></tal:block>
-<tal:block condition="not:context/id" i18n:translate=""
- >New Bug - <span tal:replace="config/TRACKER_NAME" i18n:name="tracker"
-/></tal:block>
-</title>
-<tal:block metal:fill-slot="body_title">
- <span tal:condition="python: not (context.id or context.is_edit_ok())"
- tal:omit-tag="python:1" i18n:translate="">New Bug</span>
- <span tal:condition="python: not context.id and context.is_edit_ok()"
- tal:omit-tag="python:1" i18n:translate="">New Bug Editing</span>
- <span tal:condition="python: context.id and not context.is_edit_ok()"
- tal:omit-tag="python:1" i18n:translate="">Bug<tal:x
- replace="context/id" i18n:name="id" /></span>
- <span tal:condition="python: context.id and context.is_edit_ok()"
- tal:omit-tag="python:1" i18n:translate="">Bug<tal:x
- replace="context/id" i18n:name="id" /> Editing</span>
-</tal:block>
-
-<td class="content" metal:fill-slot="content">
-
-<p tal:condition="python:not (context.is_view_ok()
- or request.user.hasRole('Anonymous'))" i18n:translate="">
- You are not allowed to view this page.</p>
-
-<p tal:condition="python:not context.is_view_ok()
- and request.user.hasRole('Anonymous')" i18n:translate="">
- Please login with your username and password.</p>
-
-<div tal:condition="context/is_view_ok">
-
-<form method="POST" name="itemSynopsis"
- onSubmit="return submit_once()" enctype="multipart/form-data"
- tal:attributes="action context/designator">
-
-<fieldset><legend>classification</legend>
-<table class="form">
-<tr>
- <th class="required" i18n:translate="">Title:</th>
- <td colspan="5" tal:condition="context/title/is_edit_ok"
- tal:content="structure python:context.title.field(size=60)">title</td>
- <td colspan="5" tal:condition="not:context/title/is_edit_ok">
- <span tal:content="structure context/title/plain"/>
-<!-- <input type="hidden" name="title" tal:attributes="value context/title">-->
- </td>
-</tr>
-
-<tr>
- <th class="required" i18n:translate="">
- <span tal:replace="structure python:db.bug_type.classhelp('id,name,description',label='Type')" />:
- </th>
- <td tal:content="structure context/type/menu">type</td>
- <th i18n:translate="">
- <span tal:replace="structure python:db.severity.classhelp('id,name,description',label='Severity')" />:
- </th>
- <td tal:content="structure context/severity/menu">severity</td>
- <th></th><td></td>
-</tr>
-
-<tr>
- <th i18n:translate="">
- <span tal:replace="structure python:db.component.classhelp('id,name,description',label='Components')" />:
- </th>
- <td tal:content="structure context/components/menu">components</td>
- <th i18n:translate="">
- <span tal:replace="structure python:db.version.classhelp('id,name,description',label='Versions')" />:
- </th>
- <td tal:content="structure context/versions/menu">versions</td>
- <th i18n:translate="">
- <span tal:replace="structure python:db.platform.classhelp('id,name,description',label='Platforms')" />:
- </th>
- <td tal:content="structure context/platforms/menu">platform</td>
-</tr>
-</table>
-</fieldset>
-
-<fieldset><legend>process</legend>
-<table class="form">
-<tr tal:condition="context/id">
- <th i18n:translate="">
- <span tal:replace="structure python:db.status.classhelp('id,name,description',label='Status')" />:
- </th>
- <td tal:content="structure context/status/menu">status</td>
- <th i18n:translate="">Resolution:</th>
- <td tal:content="structure context/resolution/menu">resolution</td>
-</tr>
-
-<tr tal:condition="context/id">
- <th>
- <tal:block i18n:translate="">Dependencies</tal:block>:
- <span tal:condition="context/dependencies/is_edit_ok"
- tal:replace="structure python:db.bug.classhelp('id,title', filter='status=0,1', property='dependencies')" />
- </th>
- <td>
- <span tal:replace="structure python:context.dependencies.field(showid=1,size=20)" />
- <span tal:condition="context/dependencies" tal:repeat="d context/dependencies">
- <br/>View: <a tal:attributes="href string:bug${d/id}" tal:content="d/id"></a>
- </span>
- </td>
- <th i18n:translate="">
- <tal:block i18n:translate="">Superseder</tal:block>:
- <span tal:condition="context/superseder/is_edit_ok"
- tal:replace="structure python:db.bug.classhelp('id,title', filter='status=0,1', property='superseder')" />
- </th>
- <td>
- <span tal:replace="structure python:context.superseder.field(showid=1, size=20)" />
- <span tal:condition="context/superseder">
- <br><span i18n:translate="">View</span>:
- <a tal:repeat="sup context/superseder"
- tal:content="python:sup['id'] + ', '*(not repeat['sup'].end)"
- tal:attributes="href string:bug${sup/id}; title sup/title;"></a>
- </span>
- </td>
- </tr>
- <tr>
- <th><tal:block i18n:translate="">Assigned To</tal:block>:</th>
- <td tal:condition="context/status/is_edit_ok">
- <select name="assignee">
- <option value="-1">nobody</option>
- <tal:block tal:repeat="user db/user/list">
- <option tal:condition="python:user.hasPermission('Debugger', context._classname)"
- tal:attributes="value user/id; selected python:user.id == context.assignee"
- tal:content="user/username"></option>
- </tal:block>
- </select>
- </td>
- <td tal:condition="not:context/assignee/is_edit_ok">
- <span tal:replace="structure context/assignee/plain" />
- </td>
- <th><tal:block i18n:translate="">Nosy List</tal:block>:
- <span tal:condition="context/nosy/is_edit_ok"
- tal:replace="structure python:db.user.classhelp('username,realname,address', property='nosy')" />
- </th>
- <td>
- <span tal:replace="structure context/nosy/field" />
- </td>
-</tr>
-
-<tr tal:condition="context/is_edit_ok">
- <th><tal:block i18n:translate="">Change Note</tal:block>:</th>
- <td colspan="3">
- <textarea tal:content="request/form/@note/value | default"
- name="@note" wrap="hard" rows="5" cols="72"></textarea>
- </td>
-</tr>
-
-<tr tal:condition="context/is_edit_ok">
- <th><tal:block i18n:translate="">File</tal:block>:</th>
- <td colspan=3><input type="file" name="@file" size="40"></td>
-</tr>
-</table>
-</fieldset>
-<table class="form">
-<tr tal:condition="context/is_edit_ok">
- <td>
-
- <input type="hidden" name="@template" value="item">
- <input type="hidden" name="@required" value="title">
- </td>
- <td colspan=3>
- <span tal:replace="structure context/submit">submit button</span>
- <a tal:condition="context/id" tal:attributes="href context/copy_url"
- i18n:translate="">Make a copy</a>
- </td>
-</tr>
-</table>
-</form>
-
-<p tal:condition="context/id" i18n:translate="">
- Created on <b><tal:x replace="context/creation" i18n:name="creation" /></b>
- by <b><tal:x replace="context/creator" i18n:name="creator" /></b>,
- last changed <b><tal:x replace="context/activity" i18n:name="activity" /></b>
- by <b><tal:x replace="context/actor" i18n:name="actor" /></b>.
-</p>
-
-<table class="files" tal:condition="context/files">
- <tr><th colspan="5" class="header" i18n:translate="">Files</th></tr>
- <tr>
- <th i18n:translate="">File name</th>
- <th i18n:translate="">Uploaded</th>
- <th i18n:translate="">Type</th>
- <th i18n:translate="">Edit</th>
- <th i18n:translate="">Remove</th>
- </tr>
- <tr tal:repeat="file context/files">
- <td>
- <a tal:attributes="href file/download_url"
- tal:content="file/name">dld link</a>
- </td>
- <td>
- <span tal:content="file/creator">creator's name</span>,
- <span tal:content="file/creation">creation date</span>
- </td>
- <td tal:content="file/type" />
- <td><a tal:condition="file/is_edit_ok"
- tal:attributes="href string:file${file/id}">edit</a>
- </td>
- <td>
- <form style="padding:0" tal:condition="context/is_edit_ok"
- tal:attributes="action string:bug${context/id}">
- <input type="hidden" name="@remove at files" tal:attributes="value file/id">
- <input type="hidden" name="@action" value="edit">
- <input type="submit" value="remove" i18n:attributes="value">
- </form>
- </td>
- </tr>
-</table>
-
-<table class="messages" tal:condition="context/messages">
- <tr><th colspan="4" class="header" i18n:translate="">Messages</th></tr>
- <tal:block tal:repeat="msg context/messages">
- <tr>
- <th><a tal:attributes="href string:msg${msg/id}"
- i18n:translate="">msg<tal:x replace="msg/id" i18n:name="id" /> (view)</a></th>
- <th i18n:translate="">Author: <tal:x replace="msg/author"
- i18n:name="author" /></th>
- <th i18n:translate="">Date: <tal:x replace="msg/date"
- i18n:name="date" /></th>
- <th>
- <form style="padding:0" tal:condition="context/is_edit_ok"
- tal:attributes="action string:bug${context/id}">
- <input type="hidden" name="@remove at messages" tal:attributes="value msg/id">
- <input type="hidden" name="@action" value="edit">
- <input type="submit" value="remove" i18n:attributes="value">
- </form>
- </th>
- </tr>
- <tr>
- <td colspan="4" class="content">
- <pre tal:content="structure msg/content/hyperlinked">content</pre>
- </td>
- </tr>
- </tal:block>
-</table>
-
-<tal:block tal:condition="context/id" tal:replace="structure context/history" />
-
-</div>
-
-</td>
-
-</tal:block>
Deleted: /tracker/instances/python-dev/html/bug.search.html
==============================================================================
--- /tracker/instances/python-dev/html/bug.search.html Mon Nov 27 03:01:03 2006
+++ (empty file)
@@ -1,286 +0,0 @@
-<tal:block metal:use-macro="templates/page/macros/icing">
-<title metal:fill-slot="head_title" i18n:translate="">Issue searching - <span
- i18n:name="tracker" tal:replace="config/TRACKER_NAME" /></title>
-<span metal:fill-slot="body_title" tal:omit-tag="python:1"
- i18n:translate="">Issue searching</span>
-<td class="content" metal:fill-slot="content">
-
-<form method="get" name="itemSynopsis"
- tal:attributes="action request/classname">
-
-<table class="form" tal:define="
- cols python:request.columns or 'id activity title status assignedto'.split();
- sort_on python:request.sort and request.sort[0] or nothing;
- sort_desc python:sort_on and sort_on[0] == '-';
- sort_on python:(sort_on and sort_on[1]) or 'activity';
- group_on python:request.group and request.group[0] or nothing;
- group_desc python:group_on and group_on[0] == '-';
- group_on python:(group_on and group_on[1]) or 'priority';
-
- search_input templates/page/macros/search_input;
- search_date templates/page/macros/search_date;
- column_input templates/page/macros/column_input;
- sort_input templates/page/macros/sort_input;
- group_input templates/page/macros/group_input;
- search_select templates/page/macros/search_select;
- search_select_translated templates/page/macros/search_select_translated;
- search_multiselect templates/page/macros/search_multiselect;">
-
-<tr>
- <th class="header"> </th>
- <th class="header" i18n:translate="">Filter on</th>
- <th class="header" i18n:translate="">Display</th>
- <th class="header" i18n:translate="">Sort on</th>
- <th class="header" i18n:translate="">Group on</th>
-</tr>
-
-<tr tal:define="name string:@search_text">
- <th i18n:translate="">All text*:</th>
- <td metal:use-macro="search_input"></td>
- <td> </td>
- <td> </td>
- <td> </td>
-</tr>
-
-<tr tal:define="name string:title">
- <th i18n:translate="">Title:</th>
- <td metal:use-macro="search_input"></td>
- <td metal:use-macro="column_input"></td>
- <td metal:use-macro="sort_input"></td>
- <td> </td>
-</tr>
-
-<tr tal:define="name string:id">
- <th i18n:translate="">ID:</th>
- <td metal:use-macro="search_input"></td>
- <td metal:use-macro="column_input"></td>
- <td metal:use-macro="sort_input"></td>
- <td> </td>
-</tr>
-
-<tr tal:define="name string:creation">
- <th i18n:translate="">Creation Date:</th>
- <td metal:use-macro="search_date"></td>
- <td metal:use-macro="column_input"></td>
- <td metal:use-macro="sort_input"></td>
- <td metal:use-macro="group_input"></td>
-</tr>
-
-<tr tal:define="name string:creator;
- db_klass string:user;
- db_content string:username;"
- tal:condition="db/user/is_view_ok">
- <th i18n:translate="">Creator:</th>
- <td metal:use-macro="search_input">
- <option metal:fill-slot="extra_options" i18n:translate=""
- tal:attributes="value request/user/id">created by me</option>
- </td>
- <td metal:use-macro="column_input"></td>
- <td metal:use-macro="sort_input"></td>
- <td metal:use-macro="group_input"></td>
-</tr>
-
-<tr tal:define="name string:activity">
- <th i18n:translate="">Activity:</th>
- <td metal:use-macro="search_date"></td>
- <td metal:use-macro="column_input"></td>
- <td metal:use-macro="sort_input"></td>
- <td> </td>
-</tr>
-
-<tr tal:define="name string:actor;
- db_klass string:user;
- db_content string:username;"
- tal:condition="db/user/is_view_ok">
- <th i18n:translate="">Actor:</th>
- <td metal:use-macro="search_input">
- <option metal:fill-slot="extra_options" i18n:translate=""
- tal:attributes="value request/user/id">done by me</option>
- </td>
- <td metal:use-macro="column_input"></td>
- <td metal:use-macro="sort_input"></td>
- <td> </td>
-</tr>
-
-<tr tal:define="name string:type;
- db_klass string:bug_type;
- db_content string:name;">
- <th i18n:translate="">Type:</th>
- <td metal:use-macro="search_select_translated">
- <option metal:fill-slot="extra_options" value="-1" i18n:translate=""
- tal:attributes="selected python:value == '-1'">not selected</option>
- </td>
- <td metal:use-macro="column_input"></td>
- <td metal:use-macro="sort_input"></td>
- <td metal:use-macro="group_input"></td>
-</tr>
-
-<tr tal:define="name string:component;
- db_klass string:component;
- db_content string:name;">
- <th i18n:translate="">Components:</th>
- <td metal:use-macro="search_select_translated">
- <option metal:fill-slot="extra_options" value="-1" i18n:translate=""
- tal:attributes="selected python:value == '-1'">not selected</option>
- </td>
- <td metal:use-macro="column_input"></td>
- <td metal:use-macro="sort_input"></td>
- <td metal:use-macro="group_input"></td>
-</tr>
-
-<tr tal:define="name string:platform;
- db_klass string:platform;
- db_content string:name;">
- <th i18n:translate="">Platforms:</th>
- <td metal:use-macro="search_select_translated">
- <option metal:fill-slot="extra_options" value="-1" i18n:translate=""
- tal:attributes="selected python:value == '-1'">not selected</option>
- </td>
- <td metal:use-macro="column_input"></td>
- <td metal:use-macro="sort_input"></td>
- <td metal:use-macro="group_input"></td>
-</tr>
-
-<tr tal:define="name string:version;
- db_klass string:version;
- db_content string:name;">
- <th i18n:translate="">Versions:</th>
- <td metal:use-macro="search_select_translated">
- <option metal:fill-slot="extra_options" value="-1" i18n:translate=""
- tal:attributes="selected python:value == '-1'">not selected</option>
- </td>
- <td metal:use-macro="column_input"></td>
- <td metal:use-macro="sort_input"></td>
- <td metal:use-macro="group_input"></td>
-</tr>
-
-<tr tal:define="name string:severity;
- db_klass string:severity;
- db_content string:name;">
- <th i18n:translate="">Severity:</th>
- <td metal:use-macro="search_select_translated">
- <option metal:fill-slot="extra_options" value="-1" i18n:translate=""
- tal:attributes="selected python:value == '-1'">not selected</option>
- </td>
- <td metal:use-macro="column_input"></td>
- <td metal:use-macro="sort_input"></td>
- <td metal:use-macro="group_input"></td>
-</tr>
-
-<tr tal:define="name string:dependencies;
- db_klass string:bug;
- db_content string:id;">
- <th i18n:translate="">Depends on:</th>
- <td metal:use-macro="search_select_translated">
- <option metal:fill-slot="extra_options" value="-1" i18n:translate=""
- tal:attributes="selected python:value == '-1'">not selected</option>
- </td>
- <td metal:use-macro="column_input"></td>
- <td metal:use-macro="sort_input"></td>
- <td metal:use-macro="group_input"></td>
-</tr>
-
-<tr tal:define="name string:assignee;
- db_klass string:user;
- db_content string:username;"
- tal:condition="db/user/is_view_ok">
- <th i18n:translate="">Assigned to:</th>
- <td metal:use-macro="search_input">
- <tal:block metal:fill-slot="extra_options">
- <option tal:attributes="value request/user/id"
- i18n:translate="">assigned to me</option>
- <option value="-1" tal:attributes="selected python:value == '-1'"
- i18n:translate="">unassigned</option>
- </tal:block>
- </td>
- <td metal:use-macro="column_input"></td>
- <td metal:use-macro="sort_input"></td>
- <td metal:use-macro="group_input"></td>
-</tr>
-
-<tr tal:define="name string:status;
- db_klass string:status;
- db_content string:name;">
- <th i18n:translate="">Status:</th>
- <td metal:use-macro="search_select_translated">
- <tal:block metal:fill-slot="extra_options">
- <option value="-1,1,2" i18n:translate=""
- tal:attributes="selected python:value == '-1,1,2'">not closed</option>
- <option value="-1" i18n:translate=""
- tal:attributes="selected python:value == '-1'">not selected</option>
- </tal:block>
- </td>
- <td metal:use-macro="column_input"></td>
- <td metal:use-macro="sort_input"></td>
- <td metal:use-macro="group_input"></td>
-</tr>
-
-<tr>
- <th i18n:translate="">No Sort or group:</th>
- <td> </td>
- <td> </td>
- <td><input type="radio" name="@sort" value=""/></td>
- <td><input type="radio" name="@group" value=""/></td>
-</tr>
-
-<tr>
-<th i18n:translate="">Pagesize:</th>
-<td><input name="@pagesize" size="3" value="50"
- tal:attributes="value request/form/@pagesize/value | default"/></td>
-</tr>
-
-<tr>
-<th i18n:translate="">Start With:</th>
-<td><input name="@startwith" size="3" value="0"
- tal:attributes="value request/form/@startwith/value | default"/></td>
-</tr>
-
-<tr>
-<th i18n:translate="">Sort Descending:</th>
-<td><input type="checkbox" name="@sortdir"
- tal:attributes="checked sort_desc"/>
-</td>
-</tr>
-
-<tr>
-<th i18n:translate="">Group Descending:</th>
-<td><input type="checkbox" name="@groupdir"
- tal:attributes="checked group_desc"/>
-</td>
-</tr>
-
-<tr tal:condition="python:request.user.hasPermission('Edit', 'query')">
- <th i18n:translate="">Query name**:</th>
- <td tal:define="value request/form/@queryname/value | nothing">
- <input name="@queryname" tal:attributes="value value"/>
- <input type="hidden" name="@old-queryname" tal:attributes="value value"/>
- </td>
-</tr>
-
-<tr>
- <td>
-
- <input type="hidden" name="@action" value="search"/>
- </td>
- <td><input type="submit" value="Search" i18n:attributes="value"/></td>
-</tr>
-
-<tr><td> </td>
- <td colspan="4" class="help">
- <span i18n:translate="" tal:omit-tag="true">
- *: The "all text" field will look in message bodies and bug titles
- </span><br>
- <span tal:condition="python:request.user.hasPermission('Edit', 'query')"
- i18n:translate="" tal:omit-tag="true"
- >
- **: If you supply a name, the query will be saved off and available as a
- link in the sidebar
- </span>
- </td>
-</tr>
-</table>
-
-</form>
-</td>
-
-</tal:block>
Modified: tracker/instances/python-dev/html/file.index.html
==============================================================================
--- tracker/instances/python-dev/html/file.index.html (original)
+++ tracker/instances/python-dev/html/file.index.html Mon Nov 27 03:01:03 2006
@@ -21,7 +21,7 @@
<td tal:content="file/creation">creation date</td>
</tr>
- <metal:block use-macro="templates/bug.index/macros/batch-footer" />
+ <metal:block use-macro="templates/issue.index/macros/batch-footer" />
</table>
Modified: tracker/instances/python-dev/html/home.html
==============================================================================
--- tracker/instances/python-dev/html/home.html (original)
+++ tracker/instances/python-dev/html/home.html Mon Nov 27 03:01:03 2006
@@ -1,10 +1,10 @@
<!--
This is the default body that is displayed when people visit the
- tracker. The tag below lists the currently open bugs. You may
+ tracker. The tag below lists the currently open issues. You may
replace it with a greeting message, or a different list of issues or
whatever. It's a good idea to have the issues on the front page though
-->
-<span tal:replace="structure python:db.bug.renderWith('index',
+<span tal:replace="structure python:db.issue.renderWith('index',
sort=[('-', 'activity')], group=[('+', 'severity')], filter=['status'],
columns=['id','activity','title','creator','assignee', 'status'],
filterspec={'status':['1','2']})" />
Copied: tracker/instances/python-dev/html/issue.index.html (from r52825, tracker/instances/python-dev/html/bug.index.html)
==============================================================================
--- tracker/instances/python-dev/html/bug.index.html (original)
+++ tracker/instances/python-dev/html/issue.index.html Mon Nov 27 03:01:03 2006
@@ -1,12 +1,12 @@
<tal:block metal:use-macro="templates/page/macros/icing">
<title metal:fill-slot="head_title" >
- <span tal:omit-tag="true" i18n:translate="" >List of bugs</span>
+ <span tal:omit-tag="true" i18n:translate="" >List of issues</span>
<span tal:condition="request/dispname"
tal:replace="python:' - %s '%request.dispname"
/> - <span tal:replace="config/TRACKER_NAME" />
</title>
<span metal:fill-slot="body_title" tal:omit-tag="true">
- <span tal:omit-tag="true" i18n:translate="" >List of bugs</span>
+ <span tal:omit-tag="true" i18n:translate="" >List of issues</span>
<span tal:condition="request/dispname"
tal:replace="python:' - %s' % request.dispname" />
</span>
@@ -54,7 +54,7 @@
<td class="date" tal:condition="request/show/actor"
tal:content="python:i.actor.plain() or default"> </td>
<td tal:condition="request/show/title">
- <a tal:attributes="href string:bug${i/id}"
+ <a tal:attributes="href string:issue${i/id}"
tal:content="python:str(i.title.plain(hyperlink=0)) or '[no title]'">title</a>
</td>
<td tal:condition="request/show/status"
@@ -97,7 +97,7 @@
</metal:index>
</table>
-<a tal:attributes="href python:request.indexargs_url('bug',
+<a tal:attributes="href python:request.indexargs_url('issue',
{'@action':'export_csv'})" i18n:translate="">Download as CSV</a>
<form method="get" class="index-controls"
Copied: tracker/instances/python-dev/html/issue.item.html (from r52825, tracker/instances/python-dev/html/bug.item.html)
==============================================================================
--- tracker/instances/python-dev/html/bug.item.html (original)
+++ tracker/instances/python-dev/html/issue.item.html Mon Nov 27 03:01:03 2006
@@ -52,7 +52,7 @@
<tr>
<th class="required" i18n:translate="">
- <span tal:replace="structure python:db.bug_type.classhelp('id,name,description',label='Type')" />:
+ <span tal:replace="structure python:db.issue_type.classhelp('id,name,description',label='Type')" />:
</th>
<td tal:content="structure context/type/menu">type</td>
<th i18n:translate="">
@@ -94,18 +94,18 @@
<th>
<tal:block i18n:translate="">Dependencies</tal:block>:
<span tal:condition="context/dependencies/is_edit_ok"
- tal:replace="structure python:db.bug.classhelp('id,title', filter='status=0,1', property='dependencies')" />
+ tal:replace="structure python:db.issue.classhelp('id,title', filter='status=0,1', property='dependencies')" />
</th>
<td>
<span tal:replace="structure python:context.dependencies.field(showid=1,size=20)" />
<span tal:condition="context/dependencies" tal:repeat="d context/dependencies">
- <br/>View: <a tal:attributes="href string:bug${d/id}" tal:content="d/id"></a>
+ <br/>View: <a tal:attributes="href string:issue${d/id}" tal:content="d/id"></a>
</span>
</td>
<th i18n:translate="">
<tal:block i18n:translate="">Superseder</tal:block>:
<span tal:condition="context/superseder/is_edit_ok"
- tal:replace="structure python:db.bug.classhelp('id,title', filter='status=0,1', property='superseder')" />
+ tal:replace="structure python:db.issue.classhelp('id,title', filter='status=0,1', property='superseder')" />
</th>
<td>
<span tal:replace="structure python:context.superseder.field(showid=1, size=20)" />
@@ -113,7 +113,7 @@
<br><span i18n:translate="">View</span>:
<a tal:repeat="sup context/superseder"
tal:content="python:sup['id'] + ', '*(not repeat['sup'].end)"
- tal:attributes="href string:bug${sup/id}; title sup/title;"></a>
+ tal:attributes="href string:issue${sup/id}; title sup/title;"></a>
</span>
</td>
</tr>
@@ -202,7 +202,7 @@
</td>
<td>
<form style="padding:0" tal:condition="context/is_edit_ok"
- tal:attributes="action string:bug${context/id}">
+ tal:attributes="action string:issue${context/id}">
<input type="hidden" name="@remove at files" tal:attributes="value file/id">
<input type="hidden" name="@action" value="edit">
<input type="submit" value="remove" i18n:attributes="value">
@@ -223,7 +223,7 @@
i18n:name="date" /></th>
<th>
<form style="padding:0" tal:condition="context/is_edit_ok"
- tal:attributes="action string:bug${context/id}">
+ tal:attributes="action string:issue${context/id}">
<input type="hidden" name="@remove at messages" tal:attributes="value msg/id">
<input type="hidden" name="@action" value="edit">
<input type="submit" value="remove" i18n:attributes="value">
Copied: tracker/instances/python-dev/html/issue.search.html (from r52825, tracker/instances/python-dev/html/bug.search.html)
==============================================================================
--- tracker/instances/python-dev/html/bug.search.html (original)
+++ tracker/instances/python-dev/html/issue.search.html Mon Nov 27 03:01:03 2006
@@ -103,7 +103,7 @@
</tr>
<tr tal:define="name string:type;
- db_klass string:bug_type;
+ db_klass string:issue_type;
db_content string:name;">
<th i18n:translate="">Type:</th>
<td metal:use-macro="search_select_translated">
@@ -168,7 +168,7 @@
</tr>
<tr tal:define="name string:dependencies;
- db_klass string:bug;
+ db_klass string:issue;
db_content string:id;">
<th i18n:translate="">Depends on:</th>
<td metal:use-macro="search_select_translated">
@@ -268,7 +268,7 @@
<tr><td> </td>
<td colspan="4" class="help">
<span i18n:translate="" tal:omit-tag="true">
- *: The "all text" field will look in message bodies and bug titles
+ *: The "all text" field will look in message bodies and issue titles
</span><br>
<span tal:condition="python:request.user.hasPermission('Edit', 'query')"
i18n:translate="" tal:omit-tag="true"
Modified: tracker/instances/python-dev/html/msg.index.html
==============================================================================
--- tracker/instances/python-dev/html/msg.index.html (original)
+++ tracker/instances/python-dev/html/msg.index.html Mon Nov 27 03:01:03 2006
@@ -17,7 +17,7 @@
</tr>
</tal:block>
- <metal:block use-macro="templates/bug.index/macros/batch-footer" />
+ <metal:block use-macro="templates/issue.index/macros/batch-footer" />
</table>
</td>
Modified: tracker/instances/python-dev/html/page.html
==============================================================================
--- tracker/instances/python-dev/html/page.html (original)
+++ tracker/instances/python-dev/html/page.html Mon Nov 27 03:01:03 2006
@@ -43,15 +43,15 @@
<li class=""><a href="http://python.org/dev" class="" title="Python Core Language Development">Core Development</a></li>
<li class="selected"><a href="." class="selected" title="Python Bug Tracker">Bug Tracker</a>
<ul class="level-two">
- <li tal:condition="python:request.user.hasPermission('View', 'bug')">
- <b i18n:translate="">Bugs</b>
+ <li tal:condition="python:request.user.hasPermission('View', 'issue')">
+ <b i18n:translate="">Issues</b>
<ul class="level-three">
- <li tal:condition="python:request.user.hasPermission('Create', 'bug')">
- <a href="bug?@template=item" i18n:translate="">Create New</a>
+ <li tal:condition="python:request.user.hasPermission('Create', 'issue')">
+ <a href="issue?@template=item" i18n:translate="">Create New</a>
</li>
<li>
<li><a href="#"
- tal:attributes="href python:request.indexargs_url('bug', {
+ tal:attributes="href python:request.indexargs_url('issue', {
'@sort': '-activity',
'@group': 'severity',
'@filter': 'status,assignee',
@@ -63,7 +63,7 @@
})"
i18n:translate="">Show Unassigned</a></li>
<li><a href="#"
- tal:attributes="href python:request.indexargs_url('bug', {
+ tal:attributes="href python:request.indexargs_url('issue', {
'@sort': '-activity',
'@group': 'severity',
'@filter': 'status',
@@ -74,15 +74,15 @@
})"
i18n:translate="">Show All</a></li>
<li>
- <a href="bug?@template=search" i18n:translate="">Search</a>
+ <a href="issue?@template=search" i18n:translate="">Search</a>
</li>
<li>
<form method="post" tal:attributes="action request/base">
- <input type="submit" class="form-small" value="Show bug:"
+ <input type="submit" class="form-small" value="Show issue:"
i18n:attributes="value"/>
<input class="form-small" size="4"
type="text" name="@number"/>
- <input type="hidden" name="@type" value="bug"/>
+ <input type="hidden" name="@type" value="issue"/>
<input type="hidden" name="@action" value="show"/>
</form>
</li>
@@ -119,7 +119,7 @@
<ul class="level-three">
<li>
<a href="#"
- tal:attributes="href python:request.indexargs_url('bug', {
+ tal:attributes="href python:request.indexargs_url('issue', {
'@sort': '-activity',
'@group': 'severity',
'@filter': 'status,assignee',
@@ -127,9 +127,9 @@
'@search_text': '',
'status': status_notresolved,
'assignee': request.user.id,
- '@dispname': i18n.gettext('Your Bugs'),
+ '@dispname': i18n.gettext('Your Issues'),
})"
- i18n:translate="">Your Bugs</a>
+ i18n:translate="">Your Issues</a>
</li>
<li>
<a tal:attributes="href string:user${request/user/id}"
@@ -192,7 +192,7 @@
</div> <!-- body-main -->
</div> <!-- content -->
-<pre tal:condition="request/form/debug | nothing" tal:content="request">
+<pre tal:condition="request/form/deissue | nothing" tal:content="request">
</pre>
</body>
@@ -205,7 +205,7 @@
The invoking context must define a "name" variable which names the
property being searched.
-See bug.search.html in the classic template for examples.
+See issue.search.html in the classic template for examples.
-->
<!-- creates a th and a label: -->
@@ -227,7 +227,7 @@
name name;
id name"/>
<a class="classhelp"
- tal:attributes="href python:'''javascript:help_window('bug?@template=calendar&property=%s&form=itemSynopsis', 300, 200)'''%name">(cal)</a>
+ tal:attributes="href python:'''javascript:help_window('issue?@template=calendar&property=%s&form=itemSynopsis', 300, 200)'''%name">(cal)</a>
</td>
<td metal:define-macro="search_popup">
@@ -238,7 +238,7 @@
<input tal:attributes="value python:request.form.getvalue(name) or nothing;
name name;
id name"/>
- <span tal:replace="structure python:db.bug.classhelp(columns,
+ <span tal:replace="structure python:db.issue.classhelp(columns,
property=name)" />
</td>
Modified: tracker/instances/python-dev/html/user.forgotten.html
==============================================================================
--- tracker/instances/python-dev/html/user.forgotten.html (original)
+++ tracker/instances/python-dev/html/user.forgotten.html Mon Nov 27 03:01:03 2006
@@ -33,8 +33,8 @@
<p i18n:translate="">Or, if you know your username, then enter it below.</p>
-<p i18n:translate="">If you have previously created or modified bug
-reports in the sourceforge bug tracker, you have an account here with
+<p i18n:translate="">If you have previously created or modified issue
+reports in the sourceforge issue tracker, you have an account here with
the same username as your sourceforge username.</p>
<table class="form">
Modified: tracker/instances/python-dev/initial_data.py
==============================================================================
--- tracker/instances/python-dev/initial_data.py (original)
+++ tracker/instances/python-dev/initial_data.py Mon Nov 27 03:01:03 2006
@@ -4,13 +4,13 @@
# TRACKER INITIAL PRIORITY AND STATUS VALUES
#
-bug_type = db.getclass('bug_type')
-bug_type.create(name='crash', order='1')
-bug_type.create(name='compile error', order='2')
-bug_type.create(name='resource usage', order='3')
-bug_type.create(name='security', order='4')
-bug_type.create(name='behavior', order='5')
-bug_type.create(name='rfe', order='6')
+issue_type = db.getclass('issue_type')
+issue_type.create(name='crash', order='1')
+issue_type.create(name='compile error', order='2')
+issue_type.create(name='resource usage', order='3')
+issue_type.create(name='security', order='4')
+issue_type.create(name='behavior', order='5')
+issue_type.create(name='rfe', order='6')
component = db.getclass('component')
component.create(name='core', order='1')
Modified: tracker/instances/python-dev/schema.py
==============================================================================
--- tracker/instances/python-dev/schema.py (original)
+++ tracker/instances/python-dev/schema.py Mon Nov 27 03:01:03 2006
@@ -9,12 +9,12 @@
# creator = Link('user')
# actor = Link('user')
-# Bug Type
-bug_type = Class(db, 'bug_type',
- name=String(),
- description=String(),
- order=Number())
-bug_type.setkey('name')
+# Issue Type
+issue_type = Class(db, 'issue_type',
+ name=String(),
+ description=String(),
+ order=Number())
+issue_type.setkey('name')
# Component
component = Class(db, 'component',
@@ -100,18 +100,18 @@
# messages = Multilink("msg")
# files = Multilink("file")
# nosy = Multilink("user")
-# superseder = Multilink("bug")
-bug = IssueClass(db, "bug",
- type=Link('bug_type'),
- components=Multilink('component'),
- platforms=Multilink('platform'),
- versions=Multilink('version'),
- severity=Link('severity'),
- dependencies=Multilink('bug'),
- assignee=Link('user'),
- status=Link('status'),
- resolution=Link('resolution'),
- superseder=Link('bug'))
+# superseder = Multilink("issue")
+issue = IssueClass(db, "issue",
+ type=Link('issue_type'),
+ components=Multilink('component'),
+ platforms=Multilink('platform'),
+ versions=Multilink('version'),
+ severity=Link('severity'),
+ dependencies=Multilink('issue'),
+ assignee=Link('user'),
+ status=Link('status'),
+ resolution=Link('resolution'),
+ superseder=Link('issue'))
#
# TRACKER SECURITY SETTINGS
@@ -133,51 +133,51 @@
##########################
# User permissions
##########################
-for cl in ('bug_type', 'severity', 'component', 'platform',
- 'version', 'status', 'resolution', 'bug', 'file', 'msg'):
+for cl in ('issue_type', 'severity', 'component', 'platform',
+ 'version', 'status', 'resolution', 'issue', 'file', 'msg'):
db.security.addPermissionToRole('User', 'View', cl)
for cl in 'file', 'msg':
db.security.addPermissionToRole('User', 'Create', cl)
-p = db.security.addPermission(name='Create', klass='bug',
+p = db.security.addPermission(name='Create', klass='issue',
properties=('title', 'type',
'components', 'platforms', 'versions',
'severity',
'messages', 'files', 'nosy'),
- description='User can report and discuss bugs')
+ description='User can report and discuss issues')
db.security.addPermissionToRole('User', p)
-p = db.security.addPermission(name='Edit', klass='bug',
+p = db.security.addPermission(name='Edit', klass='issue',
properties=('type',
'components', 'platforms', 'versions',
'severity',
'messages', 'files', 'nosy'),
- description='User can report and discuss bugs')
+ description='User can report and discuss issues')
db.security.addPermissionToRole('User', p)
##########################
# Developer permissions
##########################
-for cl in ('bug_type', 'severity', 'component', 'platform',
- 'version', 'status', 'resolution', 'bug', 'file', 'msg'):
+for cl in ('issue_type', 'severity', 'component', 'platform',
+ 'version', 'status', 'resolution', 'issue', 'file', 'msg'):
db.security.addPermissionToRole('Developer', 'View', cl)
-for cl in ('bug', 'file', 'msg'):
+for cl in ('issue', 'file', 'msg'):
db.security.addPermissionToRole('Developer', 'Edit', cl)
db.security.addPermissionToRole('Developer', 'Create', cl)
-p = db.security.addPermission(name='Debugger', klass='bug',
- description='User can be assigned bugs')
+p = db.security.addPermission(name='Debugger', klass='issue',
+ description='User can be assigned issues')
db.security.addPermissionToRole('Developer', p)
##########################
# Coordinator permissions
##########################
-for cl in ('bug_type', 'severity', 'component', 'platform',
- 'version', 'status', 'resolution', 'bug', 'file', 'msg'):
+for cl in ('issue_type', 'severity', 'component', 'platform',
+ 'version', 'status', 'resolution', 'issue', 'file', 'msg'):
db.security.addPermissionToRole('Coordinator', 'View', cl)
db.security.addPermissionToRole('Coordinator', 'Edit', cl)
db.security.addPermissionToRole('Coordinator', 'Create', cl)
@@ -193,6 +193,7 @@
# limited to only the situation where the Viewed or Edited item is their own.
def own_record(db, userid, itemid):
'''Determine whether the userid matches the item being accessed.'''
+ print 'own record', userid, itemid
return userid == itemid
p = db.security.addPermission(name='View', klass='user', check=own_record,
description="User is allowed to view their own user details")
@@ -246,15 +247,15 @@
# - Allow anonymous users to register
db.security.addPermissionToRole('Anonymous', 'Create', 'user')
-# Allow anonymous users access to view bugs (and the related, linked
+# Allow anonymous users access to view issues (and the related, linked
# information)
-for cl in 'bug', 'file', 'msg', 'severity', 'status', 'resolution':
+for cl in 'issue', 'file', 'msg', 'severity', 'status', 'resolution':
db.security.addPermissionToRole('Anonymous', 'View', cl)
# [OPTIONAL]
-# Allow anonymous users access to create or edit "bug" items (and the
+# Allow anonymous users access to create or edit "issue" items (and the
# related file and message items)
-#for cl in 'bug', 'file', 'msg':
+#for cl in 'issue', 'file', 'msg':
# db.security.addPermissionToRole('Anonymous', 'Create', cl)
# db.security.addPermissionToRole('Anonymous', 'Edit', cl)
More information about the Python-checkins
mailing list