@@ -0,0 +1,12 | |||||
|
1 | <% form_tag({:action => 'edit', :tab => 'projects'}) do %> | |||
|
2 | ||||
|
3 | <div class="box tabular settings"> | |||
|
4 | <p><label><%= l(:setting_default_projects_public) %></label> | |||
|
5 | <%= check_box_tag 'settings[default_projects_public]', 1, Setting.default_projects_public? %><%= hidden_field_tag 'settings[default_projects_public]', 0 %></p> | |||
|
6 | ||||
|
7 | <p><label><%= l(:setting_sequential_project_identifiers) %></label> | |||
|
8 | <%= check_box_tag 'settings[sequential_project_identifiers]', 1, Setting.sequential_project_identifiers? %><%= hidden_field_tag 'settings[sequential_project_identifiers]', 0 %></p> | |||
|
9 | </div> | |||
|
10 | ||||
|
11 | <%= submit_tag l(:button_save) %> | |||
|
12 | <% end %> |
@@ -69,6 +69,7 class ProjectsController < ApplicationController | |||||
69 | :order => 'name') |
|
69 | :order => 'name') | |
70 | @project = Project.new(params[:project]) |
|
70 | @project = Project.new(params[:project]) | |
71 | if request.get? |
|
71 | if request.get? | |
|
72 | @project.identifier = Project.next_identifier if Setting.sequential_project_identifiers? | |||
72 | @project.trackers = Tracker.all |
|
73 | @project.trackers = Tracker.all | |
73 | @project.is_public = Setting.default_projects_public? |
|
74 | @project.is_public = Setting.default_projects_public? | |
74 | @project.enabled_module_names = Redmine::AccessControl.available_project_modules |
|
75 | @project.enabled_module_names = Redmine::AccessControl.available_project_modules |
@@ -19,6 +19,7 module SettingsHelper | |||||
19 | def administration_settings_tabs |
|
19 | def administration_settings_tabs | |
20 | tabs = [{:name => 'general', :partial => 'settings/general', :label => :label_general}, |
|
20 | tabs = [{:name => 'general', :partial => 'settings/general', :label => :label_general}, | |
21 | {:name => 'authentication', :partial => 'settings/authentication', :label => :label_authentication}, |
|
21 | {:name => 'authentication', :partial => 'settings/authentication', :label => :label_authentication}, | |
|
22 | {:name => 'projects', :partial => 'settings/projects', :label => :label_project_plural}, | |||
22 | {:name => 'issues', :partial => 'settings/issues', :label => :label_issue_tracking}, |
|
23 | {:name => 'issues', :partial => 'settings/issues', :label => :label_issue_tracking}, | |
23 | {:name => 'notifications', :partial => 'settings/notifications', :label => l(:field_mail_notification)}, |
|
24 | {:name => 'notifications', :partial => 'settings/notifications', :label => l(:field_mail_notification)}, | |
24 | {:name => 'mail_handler', :partial => 'settings/mail_handler', :label => l(:label_incoming_emails)}, |
|
25 | {:name => 'mail_handler', :partial => 'settings/mail_handler', :label => l(:label_incoming_emails)}, |
@@ -238,6 +238,12 class Project < ActiveRecord::Base | |||||
238 | enabled_modules << EnabledModule.new(:name => name.to_s) |
|
238 | enabled_modules << EnabledModule.new(:name => name.to_s) | |
239 | end |
|
239 | end | |
240 | end |
|
240 | end | |
|
241 | ||||
|
242 | # Returns an auto-generated project identifier based on the last identifier used | |||
|
243 | def self.next_identifier | |||
|
244 | p = Project.find(:first, :order => 'created_on DESC') | |||
|
245 | p.nil? ? nil : p.identifier.to_s.succ | |||
|
246 | end | |||
241 |
|
247 | |||
242 | protected |
|
248 | protected | |
243 | def validate |
|
249 | def validate |
@@ -46,9 +46,6 | |||||
46 |
|
46 | |||
47 | <p><label><%= l(:setting_feeds_limit) %></label> |
|
47 | <p><label><%= l(:setting_feeds_limit) %></label> | |
48 | <%= text_field_tag 'settings[feeds_limit]', Setting.feeds_limit, :size => 6 %></p> |
|
48 | <%= text_field_tag 'settings[feeds_limit]', Setting.feeds_limit, :size => 6 %></p> | |
49 |
|
||||
50 | <p><label><%= l(:setting_default_projects_public) %></label> |
|
|||
51 | <%= check_box_tag 'settings[default_projects_public]', 1, Setting.default_projects_public? %><%= hidden_field_tag 'settings[default_projects_public]', 0 %></p> |
|
|||
52 | </div> |
|
49 | </div> | |
53 |
|
50 | |||
54 | <%= submit_tag l(:button_save) %> |
|
51 | <%= submit_tag l(:button_save) %> |
@@ -118,6 +118,8 display_subprojects_issues: | |||||
118 | default: 1 |
|
118 | default: 1 | |
119 | default_projects_public: |
|
119 | default_projects_public: | |
120 | default: 1 |
|
120 | default: 1 | |
|
121 | sequential_project_identifiers: | |||
|
122 | default: 0 | |||
121 | # encodings used to convert repository files content to UTF-8 |
|
123 | # encodings used to convert repository files content to UTF-8 | |
122 | # multiple values accepted, comma separated |
|
124 | # multiple values accepted, comma separated | |
123 | repositories_encodings: |
|
125 | repositories_encodings: |
@@ -636,3 +636,4 field_parent_title: Parent page | |||||
636 | label_issue_watchers: Watchers |
|
636 | label_issue_watchers: Watchers | |
637 | setting_commit_logs_encoding: Commit messages encoding |
|
637 | setting_commit_logs_encoding: Commit messages encoding | |
638 | button_quote: Quote |
|
638 | button_quote: Quote | |
|
639 | setting_sequential_project_identifiers: Generate sequential project identifiers |
@@ -641,3 +641,4 field_parent_title: Parent page | |||||
641 | label_issue_watchers: Watchers |
|
641 | label_issue_watchers: Watchers | |
642 | setting_commit_logs_encoding: Commit messages encoding |
|
642 | setting_commit_logs_encoding: Commit messages encoding | |
643 | button_quote: Quote |
|
643 | button_quote: Quote | |
|
644 | setting_sequential_project_identifiers: Generate sequential project identifiers |
@@ -638,3 +638,4 field_parent_title: Parent page | |||||
638 | label_issue_watchers: Watchers |
|
638 | label_issue_watchers: Watchers | |
639 | setting_commit_logs_encoding: Commit messages encoding |
|
639 | setting_commit_logs_encoding: Commit messages encoding | |
640 | button_quote: Quote |
|
640 | button_quote: Quote | |
|
641 | setting_sequential_project_identifiers: Generate sequential project identifiers |
@@ -637,3 +637,4 field_parent_title: Parent page | |||||
637 | label_issue_watchers: Watchers |
|
637 | label_issue_watchers: Watchers | |
638 | setting_commit_logs_encoding: Commit messages encoding |
|
638 | setting_commit_logs_encoding: Commit messages encoding | |
639 | button_quote: Quote |
|
639 | button_quote: Quote | |
|
640 | setting_sequential_project_identifiers: Generate sequential project identifiers |
@@ -219,6 +219,7 setting_display_subprojects_issues: Display subprojects issues on main projects | |||||
219 | setting_enabled_scm: Enabled SCM |
|
219 | setting_enabled_scm: Enabled SCM | |
220 | setting_mail_handler_api_enabled: Enable WS for incoming emails |
|
220 | setting_mail_handler_api_enabled: Enable WS for incoming emails | |
221 | setting_mail_handler_api_key: API key |
|
221 | setting_mail_handler_api_key: API key | |
|
222 | setting_sequential_project_identifiers: Generate sequential project identifiers | |||
222 |
|
223 | |||
223 | project_module_issue_tracking: Issue tracking |
|
224 | project_module_issue_tracking: Issue tracking | |
224 | project_module_time_tracking: Time tracking |
|
225 | project_module_time_tracking: Time tracking |
@@ -639,3 +639,4 field_parent_title: Parent page | |||||
639 | label_issue_watchers: Watchers |
|
639 | label_issue_watchers: Watchers | |
640 | setting_commit_logs_encoding: Commit messages encoding |
|
640 | setting_commit_logs_encoding: Commit messages encoding | |
641 | button_quote: Quote |
|
641 | button_quote: Quote | |
|
642 | setting_sequential_project_identifiers: Generate sequential project identifiers |
@@ -636,3 +636,4 field_parent_title: Parent page | |||||
636 | label_issue_watchers: Watchers |
|
636 | label_issue_watchers: Watchers | |
637 | setting_commit_logs_encoding: Commit messages encoding |
|
637 | setting_commit_logs_encoding: Commit messages encoding | |
638 | button_quote: Quote |
|
638 | button_quote: Quote | |
|
639 | setting_sequential_project_identifiers: Generate sequential project identifiers |
@@ -220,6 +220,7 setting_display_subprojects_issues: Afficher par défaut les demandes des sous-p | |||||
220 | setting_enabled_scm: SCM activés |
|
220 | setting_enabled_scm: SCM activés | |
221 | setting_mail_handler_api_enabled: "Activer le WS pour la réception d'emails" |
|
221 | setting_mail_handler_api_enabled: "Activer le WS pour la réception d'emails" | |
222 | setting_mail_handler_api_key: Clé de protection de l'API |
|
222 | setting_mail_handler_api_key: Clé de protection de l'API | |
|
223 | setting_sequential_project_identifiers: Générer des identifiants de projet séquentiels | |||
223 |
|
224 | |||
224 | project_module_issue_tracking: Suivi des demandes |
|
225 | project_module_issue_tracking: Suivi des demandes | |
225 | project_module_time_tracking: Suivi du temps passé |
|
226 | project_module_time_tracking: Suivi du temps passé |
@@ -636,3 +636,4 field_parent_title: Parent page | |||||
636 | label_issue_watchers: Watchers |
|
636 | label_issue_watchers: Watchers | |
637 | setting_commit_logs_encoding: Commit messages encoding |
|
637 | setting_commit_logs_encoding: Commit messages encoding | |
638 | button_quote: Quote |
|
638 | button_quote: Quote | |
|
639 | setting_sequential_project_identifiers: Generate sequential project identifiers |
@@ -637,3 +637,4 field_parent_title: Parent page | |||||
637 | label_issue_watchers: Watchers |
|
637 | label_issue_watchers: Watchers | |
638 | setting_commit_logs_encoding: Commit messages encoding |
|
638 | setting_commit_logs_encoding: Commit messages encoding | |
639 | button_quote: Quote |
|
639 | button_quote: Quote | |
|
640 | setting_sequential_project_identifiers: Generate sequential project identifiers |
@@ -636,3 +636,4 field_parent_title: Parent page | |||||
636 | label_issue_watchers: Watchers |
|
636 | label_issue_watchers: Watchers | |
637 | setting_commit_logs_encoding: Commit messages encoding |
|
637 | setting_commit_logs_encoding: Commit messages encoding | |
638 | button_quote: Quote |
|
638 | button_quote: Quote | |
|
639 | setting_sequential_project_identifiers: Generate sequential project identifiers |
@@ -637,3 +637,4 field_parent_title: Parent page | |||||
637 | label_issue_watchers: Watchers |
|
637 | label_issue_watchers: Watchers | |
638 | setting_commit_logs_encoding: Commit messages encoding |
|
638 | setting_commit_logs_encoding: Commit messages encoding | |
639 | button_quote: Quote |
|
639 | button_quote: Quote | |
|
640 | setting_sequential_project_identifiers: Generate sequential project identifiers |
@@ -636,3 +636,4 field_parent_title: Parent page | |||||
636 | label_issue_watchers: Watchers |
|
636 | label_issue_watchers: Watchers | |
637 | setting_commit_logs_encoding: Commit messages encoding |
|
637 | setting_commit_logs_encoding: Commit messages encoding | |
638 | button_quote: Quote |
|
638 | button_quote: Quote | |
|
639 | setting_sequential_project_identifiers: Generate sequential project identifiers |
@@ -639,3 +639,4 field_parent_title: Parent page | |||||
639 | label_issue_watchers: Watchers |
|
639 | label_issue_watchers: Watchers | |
640 | setting_commit_logs_encoding: Commit messages encoding |
|
640 | setting_commit_logs_encoding: Commit messages encoding | |
641 | button_quote: Quote |
|
641 | button_quote: Quote | |
|
642 | setting_sequential_project_identifiers: Generate sequential project identifiers |
@@ -637,3 +637,4 field_parent_title: Parent page | |||||
637 | label_issue_watchers: Watchers |
|
637 | label_issue_watchers: Watchers | |
638 | setting_commit_logs_encoding: Commit messages encoding |
|
638 | setting_commit_logs_encoding: Commit messages encoding | |
639 | button_quote: Quote |
|
639 | button_quote: Quote | |
|
640 | setting_sequential_project_identifiers: Generate sequential project identifiers |
@@ -637,3 +637,4 field_parent_title: Parent page | |||||
637 | label_issue_watchers: Watchers |
|
637 | label_issue_watchers: Watchers | |
638 | setting_commit_logs_encoding: Commit messages encoding |
|
638 | setting_commit_logs_encoding: Commit messages encoding | |
639 | button_quote: Quote |
|
639 | button_quote: Quote | |
|
640 | setting_sequential_project_identifiers: Generate sequential project identifiers |
@@ -636,3 +636,4 field_parent_title: Parent page | |||||
636 | label_issue_watchers: Watchers |
|
636 | label_issue_watchers: Watchers | |
637 | setting_commit_logs_encoding: Commit messages encoding |
|
637 | setting_commit_logs_encoding: Commit messages encoding | |
638 | button_quote: Quote |
|
638 | button_quote: Quote | |
|
639 | setting_sequential_project_identifiers: Generate sequential project identifiers |
@@ -636,3 +636,4 field_parent_title: Parent page | |||||
636 | label_issue_watchers: Watchers |
|
636 | label_issue_watchers: Watchers | |
637 | setting_commit_logs_encoding: Commit messages encoding |
|
637 | setting_commit_logs_encoding: Commit messages encoding | |
638 | button_quote: Quote |
|
638 | button_quote: Quote | |
|
639 | setting_sequential_project_identifiers: Generate sequential project identifiers |
@@ -636,3 +636,4 field_parent_title: Parent page | |||||
636 | label_issue_watchers: Watchers |
|
636 | label_issue_watchers: Watchers | |
637 | setting_commit_logs_encoding: Commit messages encoding |
|
637 | setting_commit_logs_encoding: Commit messages encoding | |
638 | button_quote: Quote |
|
638 | button_quote: Quote | |
|
639 | setting_sequential_project_identifiers: Generate sequential project identifiers |
@@ -636,3 +636,4 field_parent_title: Parent page | |||||
636 | label_issue_watchers: Watchers |
|
636 | label_issue_watchers: Watchers | |
637 | setting_commit_logs_encoding: Commit messages encoding |
|
637 | setting_commit_logs_encoding: Commit messages encoding | |
638 | button_quote: Quote |
|
638 | button_quote: Quote | |
|
639 | setting_sequential_project_identifiers: Generate sequential project identifiers |
@@ -640,3 +640,4 field_parent_title: Parent page | |||||
640 | label_issue_watchers: Watchers |
|
640 | label_issue_watchers: Watchers | |
641 | setting_commit_logs_encoding: Commit messages encoding |
|
641 | setting_commit_logs_encoding: Commit messages encoding | |
642 | button_quote: Quote |
|
642 | button_quote: Quote | |
|
643 | setting_sequential_project_identifiers: Generate sequential project identifiers |
@@ -637,3 +637,4 field_parent_title: Parent page | |||||
637 | label_issue_watchers: Watchers |
|
637 | label_issue_watchers: Watchers | |
638 | setting_commit_logs_encoding: Commit messages encoding |
|
638 | setting_commit_logs_encoding: Commit messages encoding | |
639 | button_quote: Quote |
|
639 | button_quote: Quote | |
|
640 | setting_sequential_project_identifiers: Generate sequential project identifiers |
@@ -637,3 +637,4 field_parent_title: Parent page | |||||
637 | label_issue_watchers: Watchers |
|
637 | label_issue_watchers: Watchers | |
638 | setting_commit_logs_encoding: Commit messages encoding |
|
638 | setting_commit_logs_encoding: Commit messages encoding | |
639 | button_quote: Quote |
|
639 | button_quote: Quote | |
|
640 | setting_sequential_project_identifiers: Generate sequential project identifiers |
@@ -639,3 +639,4 field_parent_title: Parent page | |||||
639 | label_issue_watchers: Watchers |
|
639 | label_issue_watchers: Watchers | |
640 | setting_commit_logs_encoding: Commit messages encoding |
|
640 | setting_commit_logs_encoding: Commit messages encoding | |
641 | button_quote: Quote |
|
641 | button_quote: Quote | |
|
642 | setting_sequential_project_identifiers: Generate sequential project identifiers |
@@ -638,3 +638,4 field_parent_title: Parent page | |||||
638 | label_issue_watchers: Watchers |
|
638 | label_issue_watchers: Watchers | |
639 | setting_commit_logs_encoding: Commit messages encoding |
|
639 | setting_commit_logs_encoding: Commit messages encoding | |
640 | button_quote: Quote |
|
640 | button_quote: Quote | |
|
641 | setting_sequential_project_identifiers: Generate sequential project identifiers |
@@ -637,3 +637,4 field_parent_title: Parent page | |||||
637 | label_issue_watchers: Watchers |
|
637 | label_issue_watchers: Watchers | |
638 | setting_commit_logs_encoding: Commit messages encoding |
|
638 | setting_commit_logs_encoding: Commit messages encoding | |
639 | button_quote: Quote |
|
639 | button_quote: Quote | |
|
640 | setting_sequential_project_identifiers: Generate sequential project identifiers |
@@ -637,3 +637,4 enumeration_issue_priorities: 问题优先级 | |||||
637 | enumeration_doc_categories: 文档类别 |
|
637 | enumeration_doc_categories: 文档类别 | |
638 | enumeration_activities: 活动(时间跟踪) |
|
638 | enumeration_activities: 活动(时间跟踪) | |
639 | button_quote: Quote |
|
639 | button_quote: Quote | |
|
640 | setting_sequential_project_identifiers: Generate sequential project identifiers |
@@ -130,4 +130,15 class ProjectTest < Test::Unit::TestCase | |||||
130 | assert_equal [1, 2, 3], parent.rolled_up_trackers.collect(&:id) |
|
130 | assert_equal [1, 2, 3], parent.rolled_up_trackers.collect(&:id) | |
131 | assert_equal [2, 3], child.rolled_up_trackers.collect(&:id) |
|
131 | assert_equal [2, 3], child.rolled_up_trackers.collect(&:id) | |
132 | end |
|
132 | end | |
|
133 | ||||
|
134 | def test_next_identifier | |||
|
135 | ProjectCustomField.delete_all | |||
|
136 | Project.create!(:name => 'last', :identifier => 'p2008040') | |||
|
137 | assert_equal 'p2008041', Project.next_identifier | |||
|
138 | end | |||
|
139 | ||||
|
140 | def test_next_identifier_first_project | |||
|
141 | Project.delete_all | |||
|
142 | assert_nil Project.next_identifier | |||
|
143 | end | |||
133 | end |
|
144 | end |
General Comments 0
You need to be logged in to leave comments.
Login now