diff -r 6f8292651be4 etc/opt/kanon/trac-template/agile/trac-init-mysql.sql --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/opt/kanon/trac-template/agile/trac-init-mysql.sql Sun Nov 24 00:00:48 2013 +0900 @@ -0,0 +1,277 @@ +UPDATE enum SET name = '対応済' WHERE type ='resolution' AND value = '1'; +UPDATE enum SET name = '不正' WHERE type ='resolution' AND value = '2'; +UPDATE enum SET name = '対応しない' WHERE type ='resolution' AND value = '3'; +UPDATE enum SET name = '重複' WHERE type ='resolution' AND value = '4'; +UPDATE enum SET name = '再現しない' WHERE type ='resolution' AND value = '5'; +UPDATE enum SET name = '最重要' WHERE type ='priority' AND value = '1'; +UPDATE enum SET name = '重要' WHERE type ='priority' AND value = '2'; +UPDATE enum SET name = '普通' WHERE type ='priority' AND value = '3'; +UPDATE enum SET name = '低い' WHERE type ='priority' AND value = '4'; +UPDATE enum SET name = '最低' WHERE type ='priority' AND value = '5'; +UPDATE component SET name='チームA' WHERE name = 'component1'; +UPDATE component SET name='チームB' WHERE name = 'component2'; +UPDATE milestone SET name ='スプリント0(準備)', description='[/burndown?selected_milestone=スプリント0(準備) バーンダウンチャートへのリンク][[BR]]開発の準備の スプリント。開発環境の準備、全体のアーキテクチャデザイン、プロトタイプ検証などを実施' WHERE name = 'milestone1'; +UPDATE milestone SET name ='スプリント1', description='[/burndown?selected_milestone=スプリント1 バーンダウンチャートへのリンク][[BR]]スプリント1' WHERE name = 'milestone2'; +UPDATE milestone SET name ='スプリント3', description='[/burndown?selected_milestone=スプリント2 バーンダウンチャートへのリンク][[BR]]スプリント2' WHERE name = 'milestone3'; +UPDATE milestone SET name ='スプリント4(リリース準備)', description='[/burndown?selected_milestone=スプリント4(リリース準備) バーンダウンチャートへのリンク][[BR]]リリース準備のためのスプリント' WHERE name = 'milestone4'; +DELETE FROM version WHERE name = '1.0'; +DELETE FROM version WHERE name = '2.0'; +UPDATE enum SET name = 'ストーリー' WHERE type ='ticket_type' AND value = '1'; +UPDATE enum SET name = 'タスク' WHERE type ='ticket_type' AND value = '2'; +UPDATE enum SET name = 'バグ' WHERE type ='ticket_type' AND value = '3'; +INSERT INTO enum VALUES('ticket_type', '課題', '4'); + +INSERT INTO session_attribute values ('admin', '1','name','管理太郎'); +INSERT INTO session_attribute values ('admin', '1','enabled','1'); +INSERT INTO session_attribute values ('guest', '1','name','客人開発者'); +INSERT INTO session_attribute values ('guest', '1','enabled','1'); +INSERT INTO session_attribute values ('leader', '1','name','頭春蔵'); +INSERT INTO session_attribute values ('leader', '1','enabled','1'); +INSERT INTO attachment values ('wiki', 'UserManagerPluginPictures', 'admin-penguin.png',0,0,'admin', 'Avatar','127.0.0.1'); +INSERT INTO attachment values ('wiki', 'UserManagerPluginPictures', 'guest-hamster.png',0,0,'guest', 'Avatar','127.0.0.1'); +INSERT INTO attachment values ('wiki', 'UserManagerPluginPictures', 'leader-cat.png',0,0,'leader', 'Avatar','127.0.0.1'); + + +INSERT INTO report VALUES(18,'trac',"バックログの確認", +"SELECT + CASE tt.status WHEN 'closed' THEN 5 WHEN 'new' THEN 3 ELSE 1 END AS __color__, + (CASE tt.status + WHEN 'closed' THEN 'color: #777; background: #ddd; border-color: #ccc;' + ELSE + (CASE tt.owner WHEN $USER THEN 'font-weight: bold' END) + END) AS __style__, + tt.milestone AS __group__, + t.id AS ticket, + '' AS 'ストーリー', + '[/ticket/'||tt.id||' #'||tt.id||']' AS description, + tt.summary AS 'タスク', + tt.owner AS '担当者', + tt.status AS '状態', + CASE WHEN st.child IS NULL THEN peh.value ELSE eh.value END AS '見積', + CASE WHEN st.child IS NULL THEN pth.value ELSE th.value END AS '作業時間', + '' AS 説明, + t.id AS _id +FROM ticket t + LEFT JOIN subtickets st ON st.parent =t.id AND t.type='ストーリー' + LEFT JOIN ticket tt ON tt.id=st.child + LEFT JOIN milestone m ON t.milestone = m.name + LEFT JOIN ticket_custom eh ON eh.ticket = tt.id AND eh.name = 'estimatedhours' + LEFT JOIN ticket_custom th ON th.ticket = tt.id AND th.name = 'totalhours' + LEFT JOIN ticket_custom peh ON peh.ticket = t.id AND peh.name = 'estimatedhours' + LEFT JOIN ticket_custom pth ON pth.ticket = t.id AND pth.name = 'totalhours' +WHERE t.type='ストーリー' AND st.child IS NOT NULL AND t.status <> 'closed' + +UNION + +SELECT + 4 AS __color__, + 'color: black; font-weight: bold;' AS __style__, + t.milestone AS __group__, + t.id AS ticket, + t.summary AS 'ストーリー', + '', + '', + '', + '', + '', + '', + '[/newticket?type=タスク&parents='||t.id||'&milestone='||t.milestone||' タス ク作成]' AS 説明, + t.id AS _id +FROM ticket t +WHERE t.type='ストーリー' AND t.status<>'closed' + +UNION + +SELECT + CASE t.status WHEN 'closed' THEN 5 WHEN 'new' THEN 3 ELSE 1 END AS __color__, + (CASE t.status + WHEN 'closed' THEN 'color: #777; background: #ddd; border-color: #ccc;' + ELSE + (CASE t.owner WHEN $USER THEN 'font-weight: bold' END) + END) AS __style__, + t.milestone AS __group__, + '-' AS ticket, + 'その他:' ||t.type AS 'ストーリー', + '[/ticket/'||t.id||' #'||t.id||']' AS description, + t.summary as 'タスク', + t.owner AS '担当者', + t.status AS '状態', + eh.value AS '見積', + th.value AS '作業時間', + '', + NULL AS _id +FROM ticket as t + LEFT JOIN ticket_custom eh ON eh.ticket = t.id AND eh.name = 'estimatedhours' + LEFT JOIN ticket_custom th ON th.ticket = t.id AND th.name = 'totalhours' +WHERE NOT t.type IN ('ストーリー') AND + NOT EXISTS (SELECT * from subtickets WHERE subtickets.child = t.id) + +ORDER BY __group__ DESC, ticket, description"," + * スプリント毎のストーリー(プロダクトバックログ)とタスク(スプリントバックログ)を確認することができます。 + * 各スプリントのスプリントバックログ(タスク)の一覧を表示します。スプリントバックログはプロダクトバックログ(ストーリー)に紐づいている必要があります。 + * 一番右のタスク作成をクリックすると、ストーリーに対応したタスクを作成することができます。 + * クローズされたチケットはグレーで表示されます。 +"); + + +INSERT INTO report VALUES(19,'trac',"バックログの確認(チーム別)", +"SELECT + CASE tt.status WHEN 'closed' THEN 5 WHEN 'new' THEN 3 ELSE 1 END AS __color__, + (CASE tt.status + WHEN 'closed' THEN 'color: #777; background: #ddd; border-color: #ccc;' + ELSE + (CASE tt.owner WHEN $USER THEN 'font-weight: bold' END) + END) AS __style__, + tt.milestone AS __group__, + t.id AS id, + '' AS 'ストーリー', + tt.id AS ticket, + tt.summary AS 'タスク', + tt.owner AS '担当者', + tt.status AS '状態', + CASE WHEN st.child IS NULL THEN peh.value ELSE eh.value END AS '見積', + CASE WHEN st.child IS NULL THEN pth.value ELSE th.value END AS '作業時間', + '' AS description +FROM ticket t + LEFT JOIN subtickets st ON st.parent =t.id AND t.type='ストーリー' + LEFT JOIN ticket tt ON tt.id=st.child + LEFT JOIN milestone m ON t.milestone = m.name + LEFT JOIN ticket_custom eh ON eh.ticket = tt.id AND eh.name = 'estimatedhours' + LEFT JOIN ticket_custom th ON th.ticket = tt.id AND th.name = 'totalhours' + LEFT JOIN ticket_custom peh ON peh.ticket = t.id AND peh.name = 'estimatedhours' + LEFT JOIN ticket_custom pth ON pth.ticket = t.id AND pth.name = 'totalhours' +WHERE t.component=$TEAM AND t.type='ストーリー' AND st.child IS NOT NULL AND t.status <> 'closed' + +UNION + +SELECT + 4 AS __color__, + 'color: black; font-weight: bold;' AS __style__, + t.milestone AS __group__, + t.id AS id, + t.summary AS 'ストーリー', + '', + '', + '', + '', + '', + '', + '[/newticket?type=タスク&parents='||t.id||'&milestone='||t.milestone||' タス ク作成]' AS description +FROM ticket t +WHERE t.component=$TEAM AND t.type='ストーリー' AND t.status<>'closed' + +UNION + +SELECT + CASE t.status WHEN 'closed' THEN 5 WHEN 'new' THEN 3 ELSE 1 END AS __color__, + (CASE t.status + WHEN 'closed' THEN 'color: #777; background: #ddd; border-color: #ccc;' + ELSE + (CASE t.owner WHEN $USER THEN 'font-weight: bold' END) + END) AS __style__, + t.milestone AS __group__, + '-' AS id, + 'その他:' ||t.type AS 'ストーリー', + t.id AS ticket, + t.summary as 'タスク', + t.owner AS '担当者', + t.status AS '状態', + eh.value AS '見積', + th.value AS '作業時間', + '' +FROM ticket as t + LEFT JOIN ticket_custom eh ON eh.ticket = t.id AND eh.name = 'estimatedhours' + LEFT JOIN ticket_custom th ON th.ticket = t.id AND th.name = 'totalhours' +WHERE t.component=$TEAM AND NOT t.type IN ('ストーリー') AND + NOT EXISTS (SELECT * from subtickets WHERE subtickets.child = t.id) + +ORDER BY __group__ DESC, id,ticket DESC"," + * チーム別のスプリントのストーリー(プロダクトバックログ)とタスク(スプリントバ ックログ)を確認することができます。 + * {{{[report:19?TEAM=チームA チームAのバックログ]}}}のように、レポートのリンク、もしくはURLの最後にTEAM変数でチーム名を指定して利用します。 + * 各スプリントのスプリントバックログ(タスク)の一覧を表示します。スプリントバックログはプロダクトバックログ(ストーリー)に紐づいている必要があります。 + * 一番右のタスク作成をクリックすると、ストーリーに対応したタスクを作成することができます。 + * クローズされたチケットはグレーで表示されます。 +"); + + + +INSERT INTO report VALUES(20,'trac',"スプリント計画・担当者割り当て"," +query:?status=accepted +& +status=assigned +& +status=new +& +status=reopened +& +type=タスク +& +group=milestone +& +col=id +& +col=parents +& +col=summary +& +col=type +& +col=priority +& +col=owner +& +col=estimatedhours +& +col=billable +& +col=status +& +order=priority,parents +"," +このレポートはスプリント計画、担当者割り当てなどに利用します。 + +バッチ編集機能により、'''チェックしたチケットを一括して'''スプリントに割り当て たり、担当者を割り当てることができます。 + + * プロダクトバックログは「集計に含める」をFalseに設定してください。 + * スプリントバックログは「集計に含める」をTrueにしてバーンダウンチャートの工数に含めるようにします。 + * スプリントバックログに対して見積時間を入力してください。 +"); + +INSERT INTO report VALUES(21,'trac',"スプリント計画・プロダクトバックログの整理"," +query:?status=accepted +& +status=assigned +& +status=new +& +status=reopened +& +type=ストーリー゙ +& +group=milestone +& +col=id +& +col=summary +& +col=status +& +col=type +& +col=owner +& +col=priority +& +col=estimatedhours +& +col=billable +& +order=priority +"," +このレポートはスプリント計画時にスプリントで実行するプロダクトバックログを選択 するときに利用します。 + * 次のスプリントで実施するチケットにチェックを入れて、バッチ編集でマイルストーンを設定してください。 + * プロダクトバックログは「集計に含める」をFalseに設定してください。 +"); + + + diff -r 6f8292651be4 etc/opt/kanon/trac-template/common/trac-1.0.ini --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/opt/kanon/trac-template/common/trac-1.0.ini Sun Nov 24 00:00:48 2013 +0900 @@ -0,0 +1,214 @@ +# -*- coding: utf-8 -*- + +[attachment] +max_size = 262144 +render_unsafe_content = false + +[browser] +downloadable_paths = * +hide_properties = svk:merge + +[changeset] +max_diff_bytes = 10000000 +max_diff_files = 0 +wiki_format_messages = true + +[header_logo] +alt = +height = -1 +link = /trac +src=site/logo.png +width = -1 + +[logging] +log_file = trac.log +log_level = INFO +log_type = file + +[mimeviewer] +enscript_modes = text/x-dylan:dylan:4 +enscript_path = enscript +max_preview_size = 262144 +mime_map = text/x-trac-wiki:wiki +php_path = php +silvercity_modes = +tab_width = 8 + +[notification] +always_notify_owner = false +always_notify_reporter = false +always_notify_updater = true +ambiguous_char_width = double +mime_encoding = base64 +smtp_always_bcc = +smtp_always_cc = +smtp_default_domain = +smtp_enabled = false +smtp_from = trac@localhost +smtp_password = +smtp_port = 25 +smtp_replyto = trac@localhost +smtp_server = localhost +smtp_subject_prefix = __default__ +smtp_user = +use_public_cc = false +use_short_addr = false +use_tls = false + +[search] +min_query_length = 2 + +[ticket] +default_component = +default_milestone = +default_priority = 通常 +default_type = タスク +default_version = +restrict_owner = false + +[timeline] +changeset_long_messages = false +changeset_show_files = 0 +default_daysback = 30 +ticket_show_details = true + +[trac] +authz_file = /etc/opt/kanon/svnauthz +nbase_url = +check_auth_ip = true +database = sqlite:db/trac.db +default_charset = cp932 +#default_handler = TagsWikiModule +htdocs_location = +ignore_auth_case = false +mainnav = wiki,timeline,roadmap,browser,tickets,newticket,search +metanav = login,logout,settings,help,about +permission_store = DefaultPermissionStore +permission_policies = PrivateWikiSystem, DefaultPermissionPolicy, LegacyAttachmentPolicy +repository_type = svn +request_filters = PageQueryModule +templates_dir = /etc/opt/kanon/trac-template/default +timeout = 20 + + +[wiki] +ignore_missing_pages = true +split_page_names = false + +[account-manager] +htdigest_realm = kanon +password_format = htdigest +password_store = HtDigestStore +password_file = /etc/opt/kanon/kanon_users.htdigest + +[components] +tracext.git.* = enabled +tracbzr.* = enabled +tracext.hg.backend.csetpropertyrenderer = enabled +tracext.hg.backend.hgdefaultpropertyrenderer = enabled +tracext.hg.backend.hgextpropertyrenderer = enabled +tracext.hg.backend.mercurialconnector = enabled +datefield.filter.customfieldadmintweak = enabled +datefield.filter.datefieldmodule = enabled +iniadmin.iniadmin.iniadminplugin = enabled +acct_mgr.* = enabled +acct_mgr.admin.accountmanageradminpage = disabled +addcomment.macro.addcommentmacro = enabled +ganttcalendar.ticketgantt.* = enabled +ganttcalendar.ticketcalendar.* = enabled +ganttcalendar.complete_by_close.completeticketobserver = enabled +ganttcalendar.ticketvalidator.ticketvalidator = enabled +ganttcalendar.admin.* = enabled +tracjsgantt.tracjsgantt.taacjsganttsupport = enabled +tracjsgantt.tracjsgantt.tracjsganttchart = enabled +tracjsgantt.tracjsgantt.tracjsganttsupport = enabled +tracusermanager.* = enabled +completeuser.web_ui.completeuserweb = enabled +tracwysiwyg.* = enabled +#hudsontracplus.* = enabled +svnauthz.admin_ui.* = enabled +advancedworkflow.controller.* = enabled +# batchmod.web_ui.* = enabled +tracmsofficexml.* = enabled +querychart.admin.adminpanel = enabled +querychart.macro.macro = enabled +querychart.model.ticketstatuslogmodelprovider = enabled +reportinclude.macro.reportincludemacro = enabled +reportinclude.web_ui.reportincludemodule = enabled +xdocview.xdocview.xdocrenderer = enabled +talm_importer.importer.importmodule = enabled +tracautowikify.autowikify.autowikify = enabled +graphviz.graphviz.graphviz = enabled +tracsectionedit.web_ui.wikisectioneditmodule = enabled +privatewiki.api.privatewikisystem = enabled +newwikipagebutton.newwikipagebutton.newwikipagebuttonplugin = enabled +workfloweditor.workfloweditor_admin.workflowchangehandler = enabled +workfloweditor.workfloweditor_admin.workfloweditoradmin = enabled +# ticket_clone.simpleticketclonebutton = enabled +tracdragdrop.* = enabled +tracopt.ticket.commit_updater.committicketreferencemacro = enabled +tracopt.ticket.commit_updater.committicketupdater = enabled +tracopt.ticket.deleter.ticketdeleter = enabled +tracdiscussion.api.discussionapi = enabled +tracdiscussion.init.discussioninit = enabled +themeengine.* = enabled +kanontheme.theme.kanontheme = enabled +kanontheme.themewater.kanonwatertheme = enabled +tracrpc.api.xmlrpcsystem = enabled +tracrpc.json_rpc.jsonrpcprotocol = enabled +tracrpc.search.searchrpc = enabled +tracrpc.ticket.* = enabled +tracrpc.web_ui.rpcweb = enabled +tracrpc.wiki.wikirpc = enabled +tracrpc.xml_rpc.xmlrpcprotocol = enabled +customfieldadmin.api.customfields = enabled +customfieldadmin.customfieldadmin.customfieldadminpage = enabled +tracopt.mimeview.enscript.enscriptrenderer = enabled +tracopt.mimeview.php.phprenderer = enabled +tracopt.perm.authz_policy.authzpolicy = enabled +tracopt.perm.config_perm_provider.extrapermissionsprovider = enabled +tracopt.ticket.clone.ticketclonebutton = enabled +tracopt.versioncontrol.git.git_fs.csetpropertyrenderer = enabled +tracopt.versioncontrol.git.git_fs.gitconnector = enabled +tracopt.versioncontrol.git.git_fs.gitwebprojectsrepositoryprovider = enabled +tracopt.versioncontrol.svn.svn_fs.subversionconnector = enabled +tracopt.versioncontrol.svn.svn_prop.subversionmergepropertydiffrenderer = enabled +tracopt.versioncontrol.svn.svn_prop.subversionmergepropertyrenderer = enabled +tracopt.versioncontrol.svn.svn_prop.subversionpropertyrenderer = enabled + +[datefield] +format = ymd + +[hudson] +display_subprojects = true +feed_url = http://localhost/hudson/rssAll +main_page = http://localhost/hudson/ + +[discussion] +title=フォーラム + +[project] +footer=Powerd by
Kanon
Ver 0.1 + +[theme] +enable_css = enabled + +[notification] +#TracLightningのパッチを当てないとchange.authorは有効にならない +#ticket_subject_template = $prefix #$ticket.id: [$change.author] $summary +ticket_subject_template = $prefix #$ticket.id: $summary + +[importer] +datetime_format = %Y/%m/%d + +[trac-jsgantt] +date_format = %Y/%m/%d +fields.finish = due_close +fields.parent = parents +fields.percent = complete +fields.start = due_assign + +[hudsonplus] +display_in_new_tab = true +hudson_url = http://localhost:8080/jenkins/ +navigation_label = ビルド diff -r 6f8292651be4 etc/opt/kanon/trac-template/default/trac-init-mysql.sql --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/opt/kanon/trac-template/default/trac-init-mysql.sql Sun Nov 24 00:00:48 2013 +0900 @@ -0,0 +1,65 @@ +UPDATE enum SET name = '対応済' WHERE type ='resolution' AND value = '1'; +UPDATE enum SET name = '不正' WHERE type ='resolution' AND value = '2'; +UPDATE enum SET name = '対応しない' WHERE type ='resolution' AND value = '3'; +UPDATE enum SET name = '重複' WHERE type ='resolution' AND value = '4'; +UPDATE enum SET name = '再現しない' WHERE type ='resolution' AND value = '5'; +UPDATE enum SET name = '今すぐ' WHERE type ='priority' AND value = '1'; +UPDATE enum SET name = '急いで' WHERE type ='priority' AND value = '2'; +UPDATE enum SET name = '高め' WHERE type ='priority' AND value = '3'; +UPDATE enum SET name = '通常' WHERE type ='priority' AND value = '4'; +UPDATE enum SET name = '低め' WHERE type ='priority' AND value = '5'; +UPDATE enum SET name = 'バグ' WHERE type ='ticket_type' AND value = '1'; +UPDATE enum SET name = '機能追加' WHERE type ='ticket_type' AND value = '2'; +UPDATE enum SET name = '仕様変更' WHERE type ='ticket_type' AND value = '3'; +UPDATE component SET name ='その他' WHERE name = 'component1'; +UPDATE component SET name ='ユーザ管理機能' WHERE name = 'component2'; +INSERT INTO component VALUES('検索機能', 'somebody', ''); +UPDATE milestone SET name ='要件定義完了', description='要件定義の完了' WHERE name = 'milestone1'; +UPDATE milestone SET name ='1.0αリリース', description='お客様の要件確認用のプロトタイプリリース。[[BR]][[QueryChart(query:?type=タスク,col:due_close,width:800)]]' WHERE name = 'milestone2'; +UPDATE milestone SET name ='1.0βリリース', description='機能試験終了後のお客様受け入れ試験用のリリース' WHERE name = 'milestone3'; +UPDATE milestone SET name ='1.0リリース', description='正式版リリース' WHERE name = 'milestone4'; +UPDATE version SET name ='1.0α' WHERE name = '1.0'; +UPDATE version SET name ='1.0β' WHERE name = '2.0'; + +INSERT INTO enum VALUES('ticket_type', 'タスク', '4'); +INSERT INTO enum VALUES('ticket_type', '課題', '5'); +INSERT INTO enum VALUES('ticket_type', '連絡', '6'); + +INSERT INTO session_attribute values ('admin', '1','name','管理太郎'); +INSERT INTO session_attribute values ('admin', '1','enabled','1'); +INSERT INTO session_attribute values ('guest', '1','name','客人開発者'); +INSERT INTO session_attribute values ('guest', '1','enabled','1'); +INSERT INTO session_attribute values ('leader', '1','name','頭春蔵'); +INSERT INTO session_attribute values ('leader', '1','enabled','1'); +INSERT INTO attachment values ('wiki', 'UserManagerPluginPictures', 'admin-penguin.png',0,0,'admin', 'Avatar','127.0.0.1'); +INSERT INTO attachment values ('wiki', 'UserManagerPluginPictures', 'guest-hamster.png',0,0,'guest', 'Avatar','127.0.0.1'); +INSERT INTO attachment values ('wiki', 'UserManagerPluginPictures', 'leader-cat.png',0,0,'leader', 'Avatar','127.0.0.1'); + +INSERT INTO report VALUES('9','','未解決チケット(進捗確認用)', + +"SELECT owner AS __group__, + id AS ticket, + summary as '概要    ', + a.value as '開始日', + c.value as '終了日', + (CASE status WHEN 'assigned' THEN d.value||' *' ELSE d.value END) AS '達成率', + t.type AS 'タイプ ', + t.priority as '優先度', + changetime AS _changetime, description AS _description, + reporter AS _reporter, + (CASE WHEN c.value ='' THEN 5 + WHEN c.value < DATE_FORMAT(NOW(),'%Y/%m/%d') THEN 1 + WHEN c.value < DATE_FORMAT(DATE_ADD(NOW(),interval 1 week),'%Y/%m/%d') THEN 2 + ELSE 3 END) AS __color__ + FROM ticket t + LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority' + LEFT JOIN ticket_custom a ON a.ticket = t.id AND a.name = 'due_assign' + LEFT JOIN ticket_custom c ON c.ticket = t.id AND c.name = 'due_close' + LEFT JOIN ticket_custom d ON d.ticket = t.id AND d.name = 'complete' + WHERE status IN ('new', 'assigned', 'reopened') + ORDER BY owner, a.value, p.value, milestone, t.type, time"," + * 担当者別に未解決チケットを表示します。 + * 終了日順に表示し、終了日を過ぎたものは、赤で、終了日が1週間以内のものは黄色 で表示します。 + * チケットに着手済みであれば、達成率に '*' が付与されます。 + * 終了日が設定されていないものについては、青で表示します。 +"); diff -r 6f8292651be4 kanon-setup --- a/kanon-setup Tue Sep 03 02:25:18 2013 +0900 +++ b/kanon-setup Sun Nov 24 00:00:48 2013 +0900 @@ -4,6 +4,7 @@ export KANON_OPT=/opt/kanon export KANON_VAR=/var/opt/kanon +export TRAC_VER=1.0 probe_debian() { if [ -f /etc/debian_version ]; then @@ -103,6 +104,8 @@ if [ "$YN" = "y" ] then JENKINS=y +else + JENKINS=n fi @@ -226,7 +229,7 @@ else cp -frn etc/* /etc fi - +cp etc/opt/kanon/trac-template/common/trac-1.0.ini /etc/opt/kanon/trac-template/common/trac.ini ### setup configuration "$python" resource/virtualenv.py --distribute "$KANON_OPT" @@ -272,19 +275,42 @@ try_easy_install pygments fi -try_easy_install 'Genshi>=0.6,<0.7dev' -try_easy_install 'Babel>=0.9.5,<1.0' -try_easy_install 'Trac' http://www.i-act.co.jp/project/products/downloads/Trac-0.12.4.ja1.zip -try_easy_install 'xlrd' -try_easy_install 'xlwt' -try_easy_install 'TracGit' https://github.com/hvr/trac-git-plugin/zipball/v0.12.0.5 -try_easy_install 'TracBzr' -try_easy_install 'TracMercurial' http://svn.edgewall.org/repos/trac/plugins/0.12/mercurial-plugin +if [ "$TRAC_VER" = "1.0" ]; then + try_easy_install 'Genshi' + try_easy_install 'Babel' +# try_easy_install 'Trac' http://www.i-act.co.jp/project/products/downloads/Trac-1.0.ja1.zip + try_easy_install 'Trac' http://download.edgewall.org/trac/Trac-1.0.1.zip + try_easy_install 'xlrd' + try_easy_install 'xlwt' +# try_easy_install 'TracGit' GitはTrac標準になった + try_easy_install 'TracBzr' +# try_easy_install 'TracMercurial' HGのpackageからインストールする +else + try_easy_install 'Genshi>=0.6,<0.7dev' + try_easy_install 'Babel>=0.9.5,<1.0' + try_easy_install 'Trac' http://www.i-act.co.jp/project/products/downloads/Trac-0.12.4.ja1.zip + try_easy_install 'xlrd' + try_easy_install 'xlwt' + try_easy_install 'TracGit' https://github.com/hvr/trac-git-plugin/zipball/v0.12.0.5 + try_easy_install 'TracBzr' + try_easy_install 'TracMercurial' http://svn.edgewall.org/repos/trac/plugins/0.12/mercurial-plugin +fi #resource/pluginsディレクトリのプラグインをインストール pushd . +if [ "$TRAC_VER" = "1.0" ]; then + RESOURCE_LIST=resource/trac-plugin-1.0 + PLUGIN_LIST=pluginlist-1.0 + PLUGIN_LIST_HG=pluginlist_hg-1.0 + PLUGIN_LIST_GIT=pluginlist_git-1.0 +else + RESOURCE_LIST=resource/trac-plugin-0.12 + PLUGIN_LIST=pluginlist + PLUGIN_LIST_HG= + PLUGIN_LIST_GIT= +fi -for i in `ls -1 resource/trac-plugins`; do +for i in `cat $RESOURCE_LIST`; do rm -rf "resource/trac-plugins/$i/build" "resource/trac-plugins/$i/dist" if ! "$KANON_OPT/bin/easy_install" -Z --no-deps "resource/trac-plugins/$i"; then echo "*** STOP *** インストールに失敗しました: resource/trac-plugins/$i" @@ -293,7 +319,7 @@ done # install plugins from web site -for i in `cat pluginlist`; do +for i in `cat $PLUGIN_LIST`; do workdir=`mktemp -d /tmp/kanon_build.XXXXXXXX` || exit 1 svn co -q $i $workdir if ! "$KANON_OPT/bin/easy_install" -Z $workdir; then @@ -302,6 +328,30 @@ fi rm -fr "$workdir" done +if [ "$PLUGIN_LIST_HG" != "" ] +then + for i in `cat $PLUGIN_LIST_HG`; do + workdir=`mktemp -d /tmp/kanon_build.XXXXXXXX` || exit 1 + hg clone $i $workdir + if ! "$KANON_OPT/bin/easy_install" -Z $workdir; then + echo "*** STOP *** インストールに失敗しました: $i" + exit 1 + fi + rm -fr "$workdir" + done +fi +if [ "$PLUGIN_LIST_GIT" != "" ] +then + for i in `cat $PLUGIN_LIST_GIT`; do + workdir=`mktemp -d /tmp/kanon_build.XXXXXXXX` || exit 1 + git clone $i $workdir + if ! "$KANON_OPT/bin/easy_install" -Z $workdir; then + echo "*** STOP *** インストールに失敗しました: $i" + exit 1 + fi + rm -fr "$workdir" + done +fi popd @@ -363,7 +413,7 @@ # setup SampleProject if [ ! -d "$KANON_VAR/trac/SampleProject" ] then - "$KANON_OPT/bin/kanon-create-project" SampleProject svn default y + "$KANON_OPT/bin/kanon-create-project" SampleProject svn default $JENKINS svn import SampleProject file://$KANON_VAR/svn/SampleProject/ -m "initial import." chown $APACHE_USER.$APACHE_USER -R $KANON_VAR/svn/SampleProject fi diff -r 6f8292651be4 opt/kanon/bin/kanon-create-project --- a/opt/kanon/bin/kanon-create-project Tue Sep 03 02:25:18 2013 +0900 +++ b/opt/kanon/bin/kanon-create-project Sun Nov 24 00:00:48 2013 +0900 @@ -10,6 +10,12 @@ REPO_TYPE=$2 TEMPLATE=$3 JENKINS=$4 +MYSQL=$5 +DBROOTUSER=root +DBROOTPW=$6 +DBNAME=trac_$1 +DBUSERNAME=user_$1 +DBUSERPW=`mkpasswd -s 0` export PYTHONPATH=$KANON_HOME/lib/python2.6:$KANON_HOME/lib/python2.6/site-packages export PATH=$KANON_HOME/bin:$PATH @@ -201,14 +207,26 @@ exit fi +# DATABASE作成 +if [ "$MYSQL" = 'y' ] +then + mysql -u $DBROOTUSER --password=$DBROOTPW -e "DROP DATABASE IF EXISTS $DBNAME;" + mysql -u $DBROOTUSER --password=$DBROOTPW -e "create database $DBNAME DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;" + mysql -u $DBROOTUSER --password=$DBROOTPW -e "create user $DBUSERNAME IDENTIFIED BY '$DBUSERPW';" + mysql -u $DBROOTUSER --password=$DBROOTPW -e "GRANT ALL ON $DBNAME.* TO $DBUSERNAME@localhost IDENTIFIED BY '$DBUSERPW';" + mysql -u $DBROOTUSER --password=$DBROOTPW -e "GRANT ALL ON $DBNAME.* TO $DBUSERNAME@'%' IDENTIFIED BY '$DBUSERPW';" + DB_CONNECT_STR="mysql://$DBUSERNAME:$DBUSERPW@localhost/$DBNAME" +else + DB_CONNECT_STR=sqlite:db/trac.db +fi # trac作成 TRAC_PROJECT_PATH=$KANON_VAR/trac/$PROJECT_NAME if [ "$REPO_TYPE" != '' ] then - trac-admin $TRAC_PROJECT_PATH initenv $PROJECT_NAME sqlite:db/trac.db $REPO_TYPE /var/opt/kanon/$REPO_TYPE/$PROJECT_NAME + trac-admin $TRAC_PROJECT_PATH initenv $PROJECT_NAME $DB_CONNECT_STR $REPO_TYPE /var/opt/kanon/$REPO_TYPE/$PROJECT_NAME else - trac-admin $TRAC_PROJECT_PATH initenv $PROJECT_NAME sqlite:db/trac.db + trac-admin $TRAC_PROJECT_PATH initenv $PROJECT_NAME $DB_CONNECT_STR fi cat "$KANON_CONFIG"/trac-template/"$TEMPLATE"/trac-ticketcustom.ini >> \ @@ -223,7 +241,12 @@ if [ -f "$KANON_CONFIG/trac-template/$TEMPLATE/trac-init.sql" ] then # setup database - sqlite3 -init $KANON_CONFIG/trac-template/$TEMPLATE/trac-init.sql $KANON_VAR/trac/$PROJECT_NAME/db/trac.db .quit + if [ "$MYSQL" = 'y' ] + then + mysql -u $DBUSERNAME --password=$DBUSERPW $DBNAME < $KANON_CONFIG/trac-template/$TEMPLATE/trac-init-mysql.sql + else + sqlite3 -init $KANON_CONFIG/trac-template/$TEMPLATE/trac-init.sql $KANON_VAR/trac/$PROJECT_NAME/db/trac.db .quit + fi fi if [ -d "$KANON_CONFIG/trac-template/$TEMPLATE/trac-site" ] @@ -309,10 +332,17 @@ trac-admin $TRAC_PROJECT_PATH permission add leader MILESTONE_CREATE MILESTONE_MODIFY TICKET_ADMIN trac-admin $TRAC_PROJECT_PATH permission add guest developer -sqlite3 $TRAC_PROJECT_PATH/db/trac.db "INSERT INTO session_attribute values ('admin', '1','picture_href','/trac/"$PROJECT_NAME"/raw-attachment/wiki/UserManagerPluginPictures/admin-penguin.png');" -sqlite3 $TRAC_PROJECT_PATH/db/trac.db "INSERT INTO session_attribute values ('guest', '1','picture_href','/trac/"$PROJECT_NAME"/raw-attachment/wiki/UserManagerPluginPictures/guest-hamster.png');" -sqlite3 $TRAC_PROJECT_PATH/db/trac.db "INSERT INTO session_attribute values ('leader', '1','picture_href','/trac/"$PROJECT_NAME"/raw-attachment/wiki/UserManagerPluginPictures/leader-cat.png');" +if [ "$MYSQL" = 'y' ] +then + mysql -u $DBUSERNAME --password=$DBUSERPW $DBNAME -e"INSERT INTO session_attribute values ('admin', '1','picture_href','/trac/"$PROJECT_NAME"/raw-attachment/wiki/UserManagerPluginPictures/admin-penguin.png');" + mysql -u $DBUSERNAME --password=$DBUSERPW $DBNAME -e"INSERT INTO session_attribute values ('guest', '1','picture_href','/trac/"$PROJECT_NAME"/raw-attachment/wiki/UserManagerPluginPictures/guest-hamster.png');" + mysql -u $DBUSERNAME --password=$DBUSERPW $DBNAME -e"INSERT INTO session_attribute values ('leader', '1','picture_href','/trac/"$PROJECT_NAME"/raw-attachment/wiki/UserManagerPluginPictures/leader-cat.png');" +else + sqlite3 $TRAC_PROJECT_PATH/db/trac.db "INSERT INTO session_attribute values ('admin', '1','picture_href','/trac/"$PROJECT_NAME"/raw-attachment/wiki/UserManagerPluginPictures/admin-penguin.png');" + sqlite3 $TRAC_PROJECT_PATH/db/trac.db "INSERT INTO session_attribute values ('guest', '1','picture_href','/trac/"$PROJECT_NAME"/raw-attachment/wiki/UserManagerPluginPictures/guest-hamster.png');" + sqlite3 $TRAC_PROJECT_PATH/db/trac.db "INSERT INTO session_attribute values ('leader', '1','picture_href','/trac/"$PROJECT_NAME"/raw-attachment/wiki/UserManagerPluginPictures/leader-cat.png');" +fi chown $APACHE_USER.$APACHE_USER -R $TRAC_PROJECT_PATH echo " diff -r 6f8292651be4 pkglist.rhel6 --- a/pkglist.rhel6 Tue Sep 03 02:25:18 2013 +0900 +++ b/pkglist.rhel6 Sun Nov 24 00:00:48 2013 +0900 @@ -9,3 +9,6 @@ bzr gcc git +mysql-server +MySQL-python +expect diff -r 6f8292651be4 pluginlist-1.0 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pluginlist-1.0 Sun Nov 24 00:00:48 2013 +0900 @@ -0,0 +1,17 @@ +http://svn.sourceforge.jp/svnroot/shibuya-trac/sandbox/okamototk/tracsubticketsplugin +http://trac-hacks.org/svn/iniadminplugin/0.11 +http://trac-hacks.org/svn/xmlrpcplugin/trunk +http://trac-hacks.org/svn/customfieldadminplugin/0.11 +http://trac-hacks.org/svn/tracdragdropplugin/0.12 +http://trac-hacks.org/svn/tracwysiwygplugin/0.12 +http://trac-hacks.org/svn/exceldownloadplugin/0.12 +http://trac-hacks.org/svn/tocmacro/0.11 +http://trac-hacks.org/svn/macropostplugin/0.11 +http://trac-hacks.org/svn/addcommentmacro/0.11 +http://svn.sourceforge.jp/svnroot/shibuya-trac/plugins/ganttcalendarplugin/trunk +http://svn.sourceforge.jp/svnroot/shibuya-trac/plugins/completeuserplugin/trunk +http://svn.sourceforge.jp/svnroot/shibuya-trac/plugins/reportincludeplugin/trunk/0.12 +http://svn.sourceforge.jp/svnroot/shibuya-trac/plugins/trackanontheme/trunk +http://svn.sourceforge.jp/svnroot/shibuya-trac/plugins/hudsontracplus/0.11 +http://svn.sourceforge.jp/svnroot/shibuya-trac/plugins/tracavatarplugin/branches/0.12-kanon +http://trac-hacks.org/svn/themeengineplugin/trunk/ diff -r 6f8292651be4 pluginlist_hg-1.0 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pluginlist_hg-1.0 Sun Nov 24 00:00:48 2013 +0900 @@ -0,0 +1,1 @@ +http://hg.edgewall.org/trac/mercurial-plugin#1.0 diff -r 6f8292651be4 resource/trac-plugin-0.12 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/resource/trac-plugin-0.12 Sun Nov 24 00:00:48 2013 +0900 @@ -0,0 +1,27 @@ +TracMacOSTheme +acct_mgr +advancedticketworkflow +autowikifyplugin +batchmodify +datefield +discussion +hudsontracplus +lightningtheme +macropost +mailarchiveplugin +masterticketsplugin +privatewikiplugin +querychart +searchhyperestraier +sectioneditplugin +svnauthzadminplugin +themeengineplugin +ticketclone +ticketimportplugin +timingandestimationplugin +tracjsganttplugin +tracnav +tractags +usermanager +workfloweditorplugin +xdocview diff -r 6f8292651be4 resource/trac-plugin-1.0 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/resource/trac-plugin-1.0 Sun Nov 24 00:00:48 2013 +0900 @@ -0,0 +1,23 @@ +TracMacOSTheme +acct_mgr +advancedticketworkflow +autowikifyplugin +datefield +discussion +hudsontracplus +lightningtheme +mailarchiveplugin +masterticketsplugin +privatewikiplugin +querychart +searchhyperestraier +sectioneditplugin +svnauthzadminplugin +ticketimportplugin +timingandestimationplugin +tracjsganttplugin +tracnav +tractags +usermanager +workfloweditorplugin +xdocview