@@ -0,0 +1,37 | |||||
|
1 | # Redmine - project management software | |||
|
2 | # Copyright (C) 2006-2008 Jean-Philippe Lang | |||
|
3 | # | |||
|
4 | # This program is free software; you can redistribute it and/or | |||
|
5 | # modify it under the terms of the GNU General Public License | |||
|
6 | # as published by the Free Software Foundation; either version 2 | |||
|
7 | # of the License, or (at your option) any later version. | |||
|
8 | # | |||
|
9 | # This program is distributed in the hope that it will be useful, | |||
|
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
12 | # GNU General Public License for more details. | |||
|
13 | # | |||
|
14 | # You should have received a copy of the GNU General Public License | |||
|
15 | # along with this program; if not, write to the Free Software | |||
|
16 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
|
17 | ||||
|
18 | require File.dirname(__FILE__) + '/../test_helper' | |||
|
19 | ||||
|
20 | class DocumentTest < Test::Unit::TestCase | |||
|
21 | fixtures :projects, :enumerations, :documents | |||
|
22 | ||||
|
23 | def test_create | |||
|
24 | doc = Document.new(:project => Project.find(1), :title => 'New document', :category => Enumeration.find_by_name('User documentation')) | |||
|
25 | assert doc.save | |||
|
26 | end | |||
|
27 | ||||
|
28 | def test_create_with_default_category | |||
|
29 | # Sets a default category | |||
|
30 | e = Enumeration.find_by_name('Technical documentation') | |||
|
31 | e.update_attributes(:is_default => true) | |||
|
32 | ||||
|
33 | doc = Document.new(:project => Project.find(1), :title => 'New document') | |||
|
34 | assert_equal e, doc.category | |||
|
35 | assert doc.save | |||
|
36 | end | |||
|
37 | end |
@@ -126,10 +126,14 class ApplicationController < ActionController::Base | |||||
126 | def redirect_back_or_default(default) |
|
126 | def redirect_back_or_default(default) | |
127 | back_url = CGI.unescape(params[:back_url].to_s) |
|
127 | back_url = CGI.unescape(params[:back_url].to_s) | |
128 | if !back_url.blank? |
|
128 | if !back_url.blank? | |
129 | uri = URI.parse(back_url) |
|
129 | begin | |
130 | # do not redirect user to another host or to the login or register page |
|
130 | uri = URI.parse(back_url) | |
131 | if (uri.relative? || (uri.host == request.host)) && !uri.path.match(%r{/(login|account/register)}) |
|
131 | # do not redirect user to another host or to the login or register page | |
132 | redirect_to(back_url) and return |
|
132 | if (uri.relative? || (uri.host == request.host)) && !uri.path.match(%r{/(login|account/register)}) | |
|
133 | redirect_to(back_url) and return | |||
|
134 | end | |||
|
135 | rescue URI::InvalidURIError | |||
|
136 | # redirect to default | |||
133 | end |
|
137 | end | |
134 | end |
|
138 | end | |
135 | redirect_to default |
|
139 | redirect_to default |
@@ -35,6 +35,7 class DocumentsController < ApplicationController | |||||
35 | else |
|
35 | else | |
36 | @grouped = documents.group_by(&:category) |
|
36 | @grouped = documents.group_by(&:category) | |
37 | end |
|
37 | end | |
|
38 | @document = @project.documents.build | |||
38 | render :layout => false if request.xhr? |
|
39 | render :layout => false if request.xhr? | |
39 | end |
|
40 | end | |
40 |
|
41 |
@@ -22,6 +22,7 class JournalsController < ApplicationController | |||||
22 | if request.post? |
|
22 | if request.post? | |
23 | @journal.update_attributes(:notes => params[:notes]) if params[:notes] |
|
23 | @journal.update_attributes(:notes => params[:notes]) if params[:notes] | |
24 | @journal.destroy if @journal.details.empty? && @journal.notes.blank? |
|
24 | @journal.destroy if @journal.details.empty? && @journal.notes.blank? | |
|
25 | call_hook(:controller_journals_edit_post, { :journal => @journal, :params => params}) | |||
25 | respond_to do |format| |
|
26 | respond_to do |format| | |
26 | format.html { redirect_to :controller => 'issues', :action => 'show', :id => @journal.journalized_id } |
|
27 | format.html { redirect_to :controller => 'issues', :action => 'show', :id => @journal.journalized_id } | |
27 | format.js { render :action => 'update' } |
|
28 | format.js { render :action => 'update' } |
@@ -18,6 +18,7 | |||||
18 | require 'coderay' |
|
18 | require 'coderay' | |
19 | require 'coderay/helpers/file_type' |
|
19 | require 'coderay/helpers/file_type' | |
20 | require 'forwardable' |
|
20 | require 'forwardable' | |
|
21 | require 'cgi' | |||
21 |
|
22 | |||
22 | module ApplicationHelper |
|
23 | module ApplicationHelper | |
23 | include Redmine::WikiFormatting::Macros::Definitions |
|
24 | include Redmine::WikiFormatting::Macros::Definitions | |
@@ -525,7 +526,7 module ApplicationHelper | |||||
525 |
|
526 | |||
526 | def back_url_hidden_field_tag |
|
527 | def back_url_hidden_field_tag | |
527 | back_url = params[:back_url] || request.env['HTTP_REFERER'] |
|
528 | back_url = params[:back_url] || request.env['HTTP_REFERER'] | |
528 | hidden_field_tag('back_url', back_url) unless back_url.blank? |
|
529 | hidden_field_tag('back_url', CGI.escape(back_url)) unless back_url.blank? | |
529 | end |
|
530 | end | |
530 |
|
531 | |||
531 | def check_all_links(form_name) |
|
532 | def check_all_links(form_name) |
@@ -28,4 +28,10 class Document < ActiveRecord::Base | |||||
28 |
|
28 | |||
29 | validates_presence_of :project, :title, :category |
|
29 | validates_presence_of :project, :title, :category | |
30 | validates_length_of :title, :maximum => 60 |
|
30 | validates_length_of :title, :maximum => 60 | |
|
31 | ||||
|
32 | def after_initialize | |||
|
33 | if new_record? | |||
|
34 | self.category ||= Enumeration.default('DCAT') | |||
|
35 | end | |||
|
36 | end | |||
31 | end |
|
37 | end |
@@ -44,7 +44,9 class Enumeration < ActiveRecord::Base | |||||
44 | end |
|
44 | end | |
45 |
|
45 | |||
46 | def before_save |
|
46 | def before_save | |
47 | Enumeration.update_all("is_default = #{connection.quoted_false}", {:opt => opt}) if is_default? |
|
47 | if is_default? && is_default_changed? | |
|
48 | Enumeration.update_all("is_default = #{connection.quoted_false}", {:opt => opt}) | |||
|
49 | end | |||
48 | end |
|
50 | end | |
49 |
|
51 | |||
50 | def objects_count |
|
52 | def objects_count |
@@ -178,6 +178,11 class User < ActiveRecord::Base | |||||
178 | token = Token.find_by_action_and_value('autologin', key) |
|
178 | token = Token.find_by_action_and_value('autologin', key) | |
179 | token && (token.created_on > Setting.autologin.to_i.day.ago) && token.user.active? ? token.user : nil |
|
179 | token && (token.created_on > Setting.autologin.to_i.day.ago) && token.user.active? ? token.user : nil | |
180 | end |
|
180 | end | |
|
181 | ||||
|
182 | # Makes find_by_mail case-insensitive | |||
|
183 | def self.find_by_mail(mail) | |||
|
184 | find(:first, :conditions => ["LOWER(mail) = ?", mail.to_s.downcase]) | |||
|
185 | end | |||
181 |
|
186 | |||
182 | # Sort users by their display names |
|
187 | # Sort users by their display names | |
183 | def <=>(user) |
|
188 | def <=>(user) |
@@ -1,6 +1,7 | |||||
1 | <% form_remote_tag(:url => {}, :html => { :id => "journal-#{@journal.id}-form" }) do %> |
|
1 | <% form_remote_tag(:url => {}, :html => { :id => "journal-#{@journal.id}-form" }) do %> | |
2 | <%= text_area_tag :notes, @journal.notes, :class => 'wiki-edit', |
|
2 | <%= text_area_tag :notes, @journal.notes, :class => 'wiki-edit', | |
3 | :rows => (@journal.notes.blank? ? 10 : [[10, @journal.notes.length / 50].max, 100].min) %> |
|
3 | :rows => (@journal.notes.blank? ? 10 : [[10, @journal.notes.length / 50].max, 100].min) %> | |
|
4 | <%= call_hook(:view_journals_notes_form_after_notes, { :journal => @journal}) %> | |||
4 | <p><%= submit_tag l(:button_save) %> |
|
5 | <p><%= submit_tag l(:button_save) %> | |
5 | <%= link_to l(:button_cancel), '#', :onclick => "Element.remove('journal-#{@journal.id}-form'); " + |
|
6 | <%= link_to l(:button_cancel), '#', :onclick => "Element.remove('journal-#{@journal.id}-form'); " + | |
6 | "Element.show('journal-#{@journal.id}-notes'); return false;" %></p> |
|
7 | "Element.show('journal-#{@journal.id}-notes'); return false;" %></p> |
@@ -6,3 +6,5 else | |||||
6 | page.show "journal-#{@journal.id}-notes" |
|
6 | page.show "journal-#{@journal.id}-notes" | |
7 | page.remove "journal-#{@journal.id}-form" |
|
7 | page.remove "journal-#{@journal.id}-form" | |
8 | end |
|
8 | end | |
|
9 | ||||
|
10 | call_hook(:view_journals_update_rjs_bottom, { :page => page, :journal => @journal }) |
@@ -344,6 +344,7 label_last_updates_plural: %d zuletzt aktualisierten | |||||
344 | label_registered_on: Angemeldet am |
|
344 | label_registered_on: Angemeldet am | |
345 | label_activity: Aktivität |
|
345 | label_activity: Aktivität | |
346 | label_overall_activity: Aktivität aller Projekte anzeigen |
|
346 | label_overall_activity: Aktivität aller Projekte anzeigen | |
|
347 | label_user_activity: "Aktivität von %s" | |||
347 | label_new: Neu |
|
348 | label_new: Neu | |
348 | label_logged_as: Angemeldet als |
|
349 | label_logged_as: Angemeldet als | |
349 | label_environment: Environment |
|
350 | label_environment: Environment | |
@@ -543,6 +544,7 label_send_test_email: Test-E-Mail senden | |||||
543 | label_feeds_access_key_created_on: Atom-Zugriffsschlüssel vor %s erstellt |
|
544 | label_feeds_access_key_created_on: Atom-Zugriffsschlüssel vor %s erstellt | |
544 | label_module_plural: Module |
|
545 | label_module_plural: Module | |
545 | label_added_time_by: Von %s vor %s hinzugefügt |
|
546 | label_added_time_by: Von %s vor %s hinzugefügt | |
|
547 | label_updated_time_by: Von %s vor %s aktualisiert | |||
546 | label_updated_time: Vor %s aktualisiert |
|
548 | label_updated_time: Vor %s aktualisiert | |
547 | label_jump_to_a_project: Zu einem Projekt springen... |
|
549 | label_jump_to_a_project: Zu einem Projekt springen... | |
548 | label_file_plural: Dateien |
|
550 | label_file_plural: Dateien | |
@@ -694,7 +696,5 default_activity_development: Entwicklung | |||||
694 | enumeration_issue_priorities: Ticket-Prioritäten |
|
696 | enumeration_issue_priorities: Ticket-Prioritäten | |
695 | enumeration_doc_categories: Dokumentenkategorien |
|
697 | enumeration_doc_categories: Dokumentenkategorien | |
696 | enumeration_activities: Aktivitäten (Zeiterfassung) |
|
698 | enumeration_activities: Aktivitäten (Zeiterfassung) | |
697 | label_user_activity: "%s's activity" |
|
|||
698 | label_updated_time_by: Updated by %s %s ago |
|
|||
699 | text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.' |
|
699 | text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.' | |
700 | setting_diff_max_lines_displayed: Max number of diff lines displayed |
|
700 | setting_diff_max_lines_displayed: Max number of diff lines displayed |
@@ -19,11 +19,11 actionview_datehelper_time_in_words_second_less_than_plural: menos de %d segundo | |||||
19 | actionview_instancetag_blank_option: Por favor seleccione |
|
19 | actionview_instancetag_blank_option: Por favor seleccione | |
20 | activerecord_error_accepted: debe ser aceptado |
|
20 | activerecord_error_accepted: debe ser aceptado | |
21 | activerecord_error_blank: no puede estar en blanco |
|
21 | activerecord_error_blank: no puede estar en blanco | |
22 |
activerecord_error_circular_dependency: Esta relación podría crear una dependencia |
|
22 | activerecord_error_circular_dependency: Esta relación podría crear una dependencia circular | |
23 | activerecord_error_confirmation: la confirmación no coincide |
|
23 | activerecord_error_confirmation: la confirmación no coincide | |
24 | activerecord_error_empty: no puede estar vacío |
|
24 | activerecord_error_empty: no puede estar vacío | |
25 | activerecord_error_exclusion: está reservado |
|
25 | activerecord_error_exclusion: está reservado | |
26 |
activerecord_error_greater_than_start_date: debe ser la fecha |
|
26 | activerecord_error_greater_than_start_date: debe ser posterior a la fecha de comienzo | |
27 | activerecord_error_inclusion: no está incluído en la lista |
|
27 | activerecord_error_inclusion: no está incluído en la lista | |
28 | activerecord_error_invalid: no es válido |
|
28 | activerecord_error_invalid: no es válido | |
29 | activerecord_error_not_a_date: no es una fecha válida |
|
29 | activerecord_error_not_a_date: no es una fecha válida | |
@@ -140,11 +140,11 field_is_default: Estado por defecto | |||||
140 | field_is_filter: Usado como filtro |
|
140 | field_is_filter: Usado como filtro | |
141 | field_is_for_all: Para todos los proyectos |
|
141 | field_is_for_all: Para todos los proyectos | |
142 | field_is_in_chlog: Consultar las peticiones en el histórico |
|
142 | field_is_in_chlog: Consultar las peticiones en el histórico | |
143 |
field_is_in_roadmap: Consultar las peticiones en |
|
143 | field_is_in_roadmap: Consultar las peticiones en la planificación | |
144 | field_is_public: Público |
|
144 | field_is_public: Público | |
145 | field_is_required: Obligatorio |
|
145 | field_is_required: Obligatorio | |
146 | field_issue: Petición |
|
146 | field_issue: Petición | |
147 |
field_issue_to_id: Petición |
|
147 | field_issue_to_id: Petición relacionada | |
148 | field_language: Idioma |
|
148 | field_language: Idioma | |
149 | field_last_login_on: Última conexión |
|
149 | field_last_login_on: Última conexión | |
150 | field_lastname: Apellido |
|
150 | field_lastname: Apellido | |
@@ -178,7 +178,7 field_subproject: Proyecto secundario | |||||
178 | field_summary: Resumen |
|
178 | field_summary: Resumen | |
179 | field_time_zone: Zona horaria |
|
179 | field_time_zone: Zona horaria | |
180 | field_title: Título |
|
180 | field_title: Título | |
181 |
field_tracker: T |
|
181 | field_tracker: Tipo | |
182 | field_type: Tipo |
|
182 | field_type: Tipo | |
183 | field_updated_on: Actualizado |
|
183 | field_updated_on: Actualizado | |
184 | field_url: URL |
|
184 | field_url: URL | |
@@ -215,7 +215,7 label_ago: hace | |||||
215 | label_all: todos |
|
215 | label_all: todos | |
216 | label_all_time: todo el tiempo |
|
216 | label_all_time: todo el tiempo | |
217 | label_all_words: Todas las palabras |
|
217 | label_all_words: Todas las palabras | |
218 |
label_and_its_subprojects: %s y |
|
218 | label_and_its_subprojects: %s y proyectos secundarios | |
219 | label_applied_status: Aplicar estado |
|
219 | label_applied_status: Aplicar estado | |
220 | label_assigned_to_me_issues: Peticiones que me están asignadas |
|
220 | label_assigned_to_me_issues: Peticiones que me están asignadas | |
221 | label_associated_revisions: Revisiones asociadas |
|
221 | label_associated_revisions: Revisiones asociadas | |
@@ -234,7 +234,7 label_blocks: bloquea a | |||||
234 | label_board: Foro |
|
234 | label_board: Foro | |
235 | label_board_new: Nuevo foro |
|
235 | label_board_new: Nuevo foro | |
236 | label_board_plural: Foros |
|
236 | label_board_plural: Foros | |
237 | label_boolean: Boleano |
|
237 | label_boolean: Booleano | |
238 | label_browse: Hojear |
|
238 | label_browse: Hojear | |
239 | label_bulk_edit_selected_issues: Editar las peticiones seleccionadas |
|
239 | label_bulk_edit_selected_issues: Editar las peticiones seleccionadas | |
240 | label_calendar: Calendario |
|
240 | label_calendar: Calendario | |
@@ -293,7 +293,7 label_enumerations: Listas de valores | |||||
293 | label_environment: Entorno |
|
293 | label_environment: Entorno | |
294 | label_equals: igual |
|
294 | label_equals: igual | |
295 | label_example: Ejemplo |
|
295 | label_example: Ejemplo | |
296 | label_export_to: Exportar a |
|
296 | label_export_to: 'Exportar a:' | |
297 | label_f_hour: %.2f hora |
|
297 | label_f_hour: %.2f hora | |
298 | label_f_hour_plural: %.2f horas |
|
298 | label_f_hour_plural: %.2f horas | |
299 | label_feed_plural: Feeds |
|
299 | label_feed_plural: Feeds | |
@@ -327,7 +327,7 label_issue_category_new: Nueva categoría | |||||
327 | label_issue_category_plural: Categorías de las peticiones |
|
327 | label_issue_category_plural: Categorías de las peticiones | |
328 | label_issue_new: Nueva petición |
|
328 | label_issue_new: Nueva petición | |
329 | label_issue_plural: Peticiones |
|
329 | label_issue_plural: Peticiones | |
330 | label_issue_status: Estado de petición |
|
330 | label_issue_status: Estado de la petición | |
331 | label_issue_status_new: Nuevo estado |
|
331 | label_issue_status_new: Nuevo estado | |
332 | label_issue_status_plural: Estados de las peticiones |
|
332 | label_issue_status_plural: Estados de las peticiones | |
333 | label_issue_tracking: Peticiones |
|
333 | label_issue_tracking: Peticiones | |
@@ -337,7 +337,7 label_issue_watchers: Seguidores | |||||
337 | label_issues_by: Peticiones por %s |
|
337 | label_issues_by: Peticiones por %s | |
338 | label_jump_to_a_project: Ir al proyecto... |
|
338 | label_jump_to_a_project: Ir al proyecto... | |
339 | label_language_based: Basado en el idioma |
|
339 | label_language_based: Basado en el idioma | |
340 |
label_last_changes: %d cambios |
|
340 | label_last_changes: últimos %d cambios | |
341 | label_last_login: Última conexión |
|
341 | label_last_login: Última conexión | |
342 | label_last_month: último mes |
|
342 | label_last_month: último mes | |
343 | label_last_n_days: últimos %d días |
|
343 | label_last_n_days: últimos %d días | |
@@ -384,7 +384,7 label_news_plural: Noticias | |||||
384 | label_news_view_all: Ver todas las noticias |
|
384 | label_news_view_all: Ver todas las noticias | |
385 | label_next: Siguiente |
|
385 | label_next: Siguiente | |
386 | label_no_change_option: (Sin cambios) |
|
386 | label_no_change_option: (Sin cambios) | |
387 |
label_no_data: Ning |
|
387 | label_no_data: Ningún dato a mostrar | |
388 | label_nobody: nadie |
|
388 | label_nobody: nadie | |
389 | label_none: ninguno |
|
389 | label_none: ninguno | |
390 | label_not_contains: no contiene |
|
390 | label_not_contains: no contiene | |
@@ -397,7 +397,7 label_options: Opciones | |||||
397 | label_overall_activity: Actividad global |
|
397 | label_overall_activity: Actividad global | |
398 | label_overview: Vistazo |
|
398 | label_overview: Vistazo | |
399 | label_password_lost: ¿Olvidaste la contraseña? |
|
399 | label_password_lost: ¿Olvidaste la contraseña? | |
400 |
label_per_page: Por |
|
400 | label_per_page: Por página | |
401 | label_permissions: Permisos |
|
401 | label_permissions: Permisos | |
402 | label_permissions_report: Informe de permisos |
|
402 | label_permissions_report: Informe de permisos | |
403 | label_personalize_page: Personalizar esta página |
|
403 | label_personalize_page: Personalizar esta página | |
@@ -438,7 +438,7 label_result_plural: Resultados | |||||
438 | label_reverse_chronological_order: En orden cronológico inverso |
|
438 | label_reverse_chronological_order: En orden cronológico inverso | |
439 | label_revision: Revisión |
|
439 | label_revision: Revisión | |
440 | label_revision_plural: Revisiones |
|
440 | label_revision_plural: Revisiones | |
441 |
label_roadmap: |
|
441 | label_roadmap: Planificación | |
442 | label_roadmap_due_in: Finaliza en %s |
|
442 | label_roadmap_due_in: Finaliza en %s | |
443 | label_roadmap_no_issues: No hay peticiones para esta versión |
|
443 | label_roadmap_no_issues: No hay peticiones para esta versión | |
444 | label_roadmap_overdue: %s tarde |
|
444 | label_roadmap_overdue: %s tarde | |
@@ -452,7 +452,7 label_search_titles_only: Buscar sólo en títulos | |||||
452 | label_send_information: Enviar información de la cuenta al usuario |
|
452 | label_send_information: Enviar información de la cuenta al usuario | |
453 | label_send_test_email: Enviar un correo de prueba |
|
453 | label_send_test_email: Enviar un correo de prueba | |
454 | label_settings: Configuración |
|
454 | label_settings: Configuración | |
455 |
label_show_completed_versions: Muestra las versiones |
|
455 | label_show_completed_versions: Muestra las versiones terminadas | |
456 | label_sort_by: Ordenar por %s |
|
456 | label_sort_by: Ordenar por %s | |
457 | label_sort_higher: Subir |
|
457 | label_sort_higher: Subir | |
458 | label_sort_highest: Primero |
|
458 | label_sort_highest: Primero | |
@@ -474,16 +474,18 label_time_tracking: Control de tiempo | |||||
474 | label_today: hoy |
|
474 | label_today: hoy | |
475 | label_topic_plural: Temas |
|
475 | label_topic_plural: Temas | |
476 | label_total: Total |
|
476 | label_total: Total | |
477 |
label_tracker: T |
|
477 | label_tracker: Tipo | |
478 |
label_tracker_new: Nuevo t |
|
478 | label_tracker_new: Nuevo tipo | |
479 |
label_tracker_plural: T |
|
479 | label_tracker_plural: Tipos de peticiones | |
480 | label_updated_time: Actualizado hace %s |
|
480 | label_updated_time: Actualizado hace %s | |
|
481 | label_updated_time_by: Actualizado por %s hace %s | |||
481 | label_used_by: Utilizado por |
|
482 | label_used_by: Utilizado por | |
482 | label_user: Usuario |
|
483 | label_user: Usuario | |
|
484 | label_user_activity: "Actividad de %s" | |||
483 | label_user_mail_no_self_notified: "No quiero ser avisado de cambios hechos por mí" |
|
485 | label_user_mail_no_self_notified: "No quiero ser avisado de cambios hechos por mí" | |
484 | label_user_mail_option_all: "Para cualquier evento en todos mis proyectos" |
|
486 | label_user_mail_option_all: "Para cualquier evento en todos mis proyectos" | |
485 | label_user_mail_option_none: "Sólo para elementos monitorizados o relacionados conmigo" |
|
487 | label_user_mail_option_none: "Sólo para elementos monitorizados o relacionados conmigo" | |
486 |
label_user_mail_option_selected: "Para cualquier evento de |
|
488 | label_user_mail_option_selected: "Para cualquier evento de los proyectos seleccionados..." | |
487 | label_user_new: Nuevo usuario |
|
489 | label_user_new: Nuevo usuario | |
488 | label_user_plural: Usuarios |
|
490 | label_user_plural: Usuarios | |
489 | label_version: Versión |
|
491 | label_version: Versión | |
@@ -501,22 +503,22 label_wiki_page_plural: Wiki páginas | |||||
501 | label_workflow: Flujo de trabajo |
|
503 | label_workflow: Flujo de trabajo | |
502 | label_year: Año |
|
504 | label_year: Año | |
503 | label_yesterday: ayer |
|
505 | label_yesterday: ayer | |
504 |
mail_body_account_activation_request: |
|
506 | mail_body_account_activation_request: 'Se ha inscrito un nuevo usuario (%s). La cuenta está pendiende de aprobación:' | |
505 | mail_body_account_information: Información sobre su cuenta |
|
507 | mail_body_account_information: Información sobre su cuenta | |
506 | mail_body_account_information_external: Puede usar su cuenta "%s" para conectarse. |
|
508 | mail_body_account_information_external: Puede usar su cuenta "%s" para conectarse. | |
507 |
mail_body_lost_password: 'Para cambiar su contraseña, haga clic |
|
509 | mail_body_lost_password: 'Para cambiar su contraseña, haga clic en el siguiente enlace:' | |
508 |
mail_body_register: 'Para activar su cuenta, haga clic |
|
510 | mail_body_register: 'Para activar su cuenta, haga clic en el siguiente enlace:' | |
509 | mail_body_reminder: "%d peticion(es) asignadas a tí finalizan en los próximos %d días:" |
|
511 | mail_body_reminder: "%d peticion(es) asignadas a tí finalizan en los próximos %d días:" | |
510 | mail_subject_account_activation_request: Petición de activación de cuenta %s |
|
512 | mail_subject_account_activation_request: Petición de activación de cuenta %s | |
511 | mail_subject_lost_password: Tu contraseña del %s |
|
513 | mail_subject_lost_password: Tu contraseña del %s | |
512 | mail_subject_register: Activación de la cuenta del %s |
|
514 | mail_subject_register: Activación de la cuenta del %s | |
513 | mail_subject_reminder: "%d peticion(es) finalizan en los próximos días" |
|
515 | mail_subject_reminder: "%d peticion(es) finalizan en los próximos días" | |
514 |
notice_account_activated: Su cuenta ha sido activada. |
|
516 | notice_account_activated: Su cuenta ha sido activada. Ya puede conectarse. | |
515 | notice_account_invalid_creditentials: Usuario o contraseña inválido. |
|
517 | notice_account_invalid_creditentials: Usuario o contraseña inválido. | |
516 | notice_account_lost_email_sent: Se le ha enviado un correo con instrucciones para elegir una nueva contraseña. |
|
518 | notice_account_lost_email_sent: Se le ha enviado un correo con instrucciones para elegir una nueva contraseña. | |
517 | notice_account_password_updated: Contraseña modificada correctamente. |
|
519 | notice_account_password_updated: Contraseña modificada correctamente. | |
518 | notice_account_pending: "Su cuenta ha sido creada y está pendiende de la aprobación por parte de administrador" |
|
520 | notice_account_pending: "Su cuenta ha sido creada y está pendiende de la aprobación por parte del administrador." | |
519 | notice_account_register_done: Cuenta creada correctamente. |
|
521 | notice_account_register_done: Cuenta creada correctamente. Para activarla, haga clic sobre el enlace que le ha sido enviado por correo. | |
520 | notice_account_unknown_email: Usuario desconocido. |
|
522 | notice_account_unknown_email: Usuario desconocido. | |
521 | notice_account_updated: Cuenta actualizada correctamente. |
|
523 | notice_account_updated: Cuenta actualizada correctamente. | |
522 | notice_account_wrong_password: Contraseña incorrecta. |
|
524 | notice_account_wrong_password: Contraseña incorrecta. | |
@@ -524,9 +526,9 notice_can_t_change_password: Esta cuenta utiliza una fuente de autenticación e | |||||
524 | notice_default_data_loaded: Configuración por defecto cargada correctamente. |
|
526 | notice_default_data_loaded: Configuración por defecto cargada correctamente. | |
525 | notice_email_error: Ha ocurrido un error mientras enviando el correo (%s) |
|
527 | notice_email_error: Ha ocurrido un error mientras enviando el correo (%s) | |
526 | notice_email_sent: Se ha enviado un correo a %s |
|
528 | notice_email_sent: Se ha enviado un correo a %s | |
527 |
notice_failed_to_save_issues: "Imposible |
|
529 | notice_failed_to_save_issues: "Imposible grabar %s peticion(es) en %d seleccionado: %s." | |
528 | notice_feeds_access_key_reseted: Su clave de acceso para RSS ha sido reiniciada |
|
530 | notice_feeds_access_key_reseted: Su clave de acceso para RSS ha sido reiniciada. | |
529 |
notice_file_not_found: La página a la que intenta |
|
531 | notice_file_not_found: La página a la que intenta acceder no existe. | |
530 | notice_locking_conflict: Los datos han sido modificados por otro usuario. |
|
532 | notice_locking_conflict: Los datos han sido modificados por otro usuario. | |
531 | notice_no_issue_selected: "Ninguna petición seleccionada. Por favor, compruebe la petición que quiere modificar" |
|
533 | notice_no_issue_selected: "Ninguna petición seleccionada. Por favor, compruebe la petición que quiere modificar" | |
532 | notice_not_authorized: No tiene autorización para acceder a esta página. |
|
534 | notice_not_authorized: No tiene autorización para acceder a esta página. | |
@@ -544,9 +546,9 permission_comment_news: Comentar noticias | |||||
544 | permission_commit_access: Acceso de escritura |
|
546 | permission_commit_access: Acceso de escritura | |
545 | permission_delete_issues: Borrar peticiones |
|
547 | permission_delete_issues: Borrar peticiones | |
546 | permission_delete_messages: Borrar mensajes |
|
548 | permission_delete_messages: Borrar mensajes | |
|
549 | permission_delete_own_messages: Borrar mensajes propios | |||
547 | permission_delete_wiki_pages: Borrar páginas wiki |
|
550 | permission_delete_wiki_pages: Borrar páginas wiki | |
548 | permission_delete_wiki_pages_attachments: Borrar ficheros |
|
551 | permission_delete_wiki_pages_attachments: Borrar ficheros | |
549 | permission_delete_own_messages: Borrar mensajes propios |
|
|||
550 | permission_edit_issue_notes: Modificar notas |
|
552 | permission_edit_issue_notes: Modificar notas | |
551 | permission_edit_issues: Modificar peticiones |
|
553 | permission_edit_issues: Modificar peticiones | |
552 | permission_edit_messages: Modificar mensajes |
|
554 | permission_edit_messages: Modificar mensajes | |
@@ -602,15 +604,16 setting_commit_fix_keywords: Palabras clave para la corrección | |||||
602 | setting_commit_logs_encoding: Codificación de los mensajes de commit |
|
604 | setting_commit_logs_encoding: Codificación de los mensajes de commit | |
603 | setting_commit_ref_keywords: Palabras clave para la referencia |
|
605 | setting_commit_ref_keywords: Palabras clave para la referencia | |
604 | setting_cross_project_issue_relations: Permitir relacionar peticiones de distintos proyectos |
|
606 | setting_cross_project_issue_relations: Permitir relacionar peticiones de distintos proyectos | |
605 |
setting_date_format: Formato de |
|
607 | setting_date_format: Formato de fecha | |
606 | setting_default_language: Idioma por defecto |
|
608 | setting_default_language: Idioma por defecto | |
607 | setting_default_projects_public: Los proyectos nuevos son públicos por defecto |
|
609 | setting_default_projects_public: Los proyectos nuevos son públicos por defecto | |
608 | setting_display_subprojects_issues: Mostrar peticiones de un subproyecto en el proyecto padre por defecto |
|
610 | setting_diff_max_lines_displayed: Número máximo de diferencias mostradas | |
|
611 | setting_display_subprojects_issues: Mostrar por defecto peticiones de proy. secundarios en el principal | |||
609 | setting_emails_footer: Pie de mensajes |
|
612 | setting_emails_footer: Pie de mensajes | |
610 | setting_enabled_scm: Activar SCM |
|
613 | setting_enabled_scm: Activar SCM | |
611 | setting_feeds_limit: Límite de contenido para sindicación |
|
614 | setting_feeds_limit: Límite de contenido para sindicación | |
612 | setting_gravatar_enabled: Usar iconos de usuario (Gravatar) |
|
615 | setting_gravatar_enabled: Usar iconos de usuario (Gravatar) | |
613 |
setting_host_name: Nombre |
|
616 | setting_host_name: Nombre y ruta del servidor | |
614 | setting_issue_list_default_columns: Columnas por defecto para la lista de peticiones |
|
617 | setting_issue_list_default_columns: Columnas por defecto para la lista de peticiones | |
615 | setting_issues_export_limit: Límite de exportación de peticiones |
|
618 | setting_issues_export_limit: Límite de exportación de peticiones | |
616 | setting_login_required: Se requiere identificación |
|
619 | setting_login_required: Se requiere identificación | |
@@ -632,7 +635,7 setting_wiki_compression: Compresión del historial del Wiki | |||||
632 | status_active: activo |
|
635 | status_active: activo | |
633 | status_locked: bloqueado |
|
636 | status_locked: bloqueado | |
634 | status_registered: registrado |
|
637 | status_registered: registrado | |
635 |
text_are_you_sure: ¿ |
|
638 | text_are_you_sure: ¿Está seguro? | |
636 | text_assign_time_entries_to_project: Asignar las horas al proyecto |
|
639 | text_assign_time_entries_to_project: Asignar las horas al proyecto | |
637 | text_caracters_maximum: %d caracteres como máximo. |
|
640 | text_caracters_maximum: %d caracteres como máximo. | |
638 | text_caracters_minimum: %d caracteres como mínimo |
|
641 | text_caracters_minimum: %d caracteres como mínimo | |
@@ -640,11 +643,12 text_comma_separated: Múltiples valores permitidos (separados por coma). | |||||
640 | text_default_administrator_account_changed: Cuenta de administrador por defecto modificada |
|
643 | text_default_administrator_account_changed: Cuenta de administrador por defecto modificada | |
641 | text_destroy_time_entries: Borrar las horas |
|
644 | text_destroy_time_entries: Borrar las horas | |
642 | text_destroy_time_entries_question: Existen %.02f horas asignadas a la petición que quiere borrar. ¿Qué quiere hacer ? |
|
645 | text_destroy_time_entries_question: Existen %.02f horas asignadas a la petición que quiere borrar. ¿Qué quiere hacer ? | |
|
646 | text_diff_truncated: '... Diferencia truncada por exceder el máximo tamaño visualizable.' | |||
643 | text_email_delivery_not_configured: "El envío de correos no está configurado, y las notificaciones se han desactivado. \n Configure el servidor de SMTP en config/email.yml y reinicie la aplicación para activar los cambios." |
|
647 | text_email_delivery_not_configured: "El envío de correos no está configurado, y las notificaciones se han desactivado. \n Configure el servidor de SMTP en config/email.yml y reinicie la aplicación para activar los cambios." | |
644 | text_enumeration_category_reassign_to: 'Reasignar al siguiente valor:' |
|
648 | text_enumeration_category_reassign_to: 'Reasignar al siguiente valor:' | |
645 | text_enumeration_destroy_question: '%d objetos con este valor asignado.' |
|
649 | text_enumeration_destroy_question: '%d objetos con este valor asignado.' | |
646 | text_file_repository_writable: Se puede escribir en el repositorio |
|
650 | text_file_repository_writable: Se puede escribir en el repositorio | |
647 | text_issue_added: Petición añadida por %s. |
|
651 | text_issue_added: Petición %s añadida por %s. | |
648 | text_issue_category_destroy_assignments: Dejar las peticiones sin categoría |
|
652 | text_issue_category_destroy_assignments: Dejar las peticiones sin categoría | |
649 | text_issue_category_destroy_question: Algunas peticiones (%d) están asignadas a esta categoría. ¿Qué desea hacer? |
|
653 | text_issue_category_destroy_question: Algunas peticiones (%d) están asignadas a esta categoría. ¿Qué desea hacer? | |
650 | text_issue_category_reassign_to: Reasignar las peticiones a la categoría |
|
654 | text_issue_category_reassign_to: Reasignar las peticiones a la categoría | |
@@ -657,27 +661,23 text_journal_set_to: fijado a %s | |||||
657 | text_length_between: Longitud entre %d y %d caracteres. |
|
661 | text_length_between: Longitud entre %d y %d caracteres. | |
658 | text_load_default_configuration: Cargar la configuración por defecto |
|
662 | text_load_default_configuration: Cargar la configuración por defecto | |
659 | text_min_max_length_info: 0 para ninguna restricción |
|
663 | text_min_max_length_info: 0 para ninguna restricción | |
660 |
text_no_configuration_data: "Todavía no se han configurado |
|
664 | text_no_configuration_data: "Todavía no se han configurado perfiles, ni tipos, estados y flujo de trabajo asociado a peticiones. Se recomiendo encarecidamente cargar la configuración por defecto. Una vez cargada, podrá modificarla." | |
661 | text_project_destroy_confirmation: ¿Estás seguro de querer eliminar el proyecto? |
|
665 | text_project_destroy_confirmation: ¿Estás seguro de querer eliminar el proyecto? | |
662 | text_project_identifier_info: 'Letras minúsculas (a-z), números y signos de puntuación permitidos.<br />Una vez guardado, el identificador no puede modificarse.' |
|
666 | text_project_identifier_info: 'Letras minúsculas (a-z), números y signos de puntuación permitidos.<br />Una vez guardado, el identificador no puede modificarse.' | |
663 | text_reassign_time_entries: 'Reasignar las horas a esta petición:' |
|
667 | text_reassign_time_entries: 'Reasignar las horas a esta petición:' | |
664 | text_regexp_info: ej. ^[A-Z0-9]+$ |
|
668 | text_regexp_info: ej. ^[A-Z0-9]+$ | |
665 | text_repository_usernames_mapping: "Select or update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped." |
|
669 | text_repository_usernames_mapping: "Establezca la correspondencia entre los usuarios de Redmine y los presentes en el log del repositorio.\nLos usuarios con el mismo nombre o correo en Redmine y en el repositorio serán asociados automáticamente." | |
666 | text_rmagick_available: RMagick disponible (opcional) |
|
670 | text_rmagick_available: RMagick disponible (opcional) | |
667 | text_select_mail_notifications: Seleccionar los eventos a notificar |
|
671 | text_select_mail_notifications: Seleccionar los eventos a notificar | |
668 | text_select_project_modules: 'Seleccione los módulos a activar para este proyecto:' |
|
672 | text_select_project_modules: 'Seleccione los módulos a activar para este proyecto:' | |
669 | text_status_changed_by_changeset: Aplicado en los cambios %s |
|
673 | text_status_changed_by_changeset: Aplicado en los cambios %s | |
670 |
text_subprojects_destroy_warning: 'Los |
|
674 | text_subprojects_destroy_warning: 'Los proyectos secundarios: %s también se eliminarán' | |
671 | text_tip_task_begin_day: tarea que comienza este día |
|
675 | text_tip_task_begin_day: tarea que comienza este día | |
672 | text_tip_task_begin_end_day: tarea que comienza y termina este día |
|
676 | text_tip_task_begin_end_day: tarea que comienza y termina este día | |
673 | text_tip_task_end_day: tarea que termina este día |
|
677 | text_tip_task_end_day: tarea que termina este día | |
674 |
text_tracker_no_workflow: No hay ningún flujo de trabajo definido para este t |
|
678 | text_tracker_no_workflow: No hay ningún flujo de trabajo definido para este tipo de petición | |
675 | text_unallowed_characters: Caracteres no permitidos |
|
679 | text_unallowed_characters: Caracteres no permitidos | |
676 |
text_user_mail_option: " |
|
680 | text_user_mail_option: "De los proyectos no seleccionados, sólo recibirá notificaciones sobre elementos monitorizados o elementos en los que esté involucrado (por ejemplo, peticiones de las que usted sea autor o asignadas a usted)." | |
677 | text_user_wrote: '%s escribió:' |
|
681 | text_user_wrote: '%s escribió:' | |
678 | text_wiki_destroy_confirmation: ¿Seguro que quiere borrar el wiki y todo su contenido? |
|
682 | text_wiki_destroy_confirmation: ¿Seguro que quiere borrar el wiki y todo su contenido? | |
679 | text_workflow_edit: Seleccionar un flujo de trabajo para actualizar |
|
683 | text_workflow_edit: Seleccionar un flujo de trabajo para actualizar | |
680 | label_user_activity: "%s's activity" |
|
|||
681 | label_updated_time_by: Updated by %s %s ago |
|
|||
682 | text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.' |
|
|||
683 | setting_diff_max_lines_displayed: Max number of diff lines displayed |
|
@@ -694,6 +694,6 text_repository_usernames_mapping: "Állítsd be a felhasználó összerendelés | |||||
694 | permission_edit_own_messages: Saját üzenetek szerkesztése |
|
694 | permission_edit_own_messages: Saját üzenetek szerkesztése | |
695 | permission_delete_own_messages: Saját üzenetek törlése |
|
695 | permission_delete_own_messages: Saját üzenetek törlése | |
696 | label_user_activity: "%s tevékenységei" |
|
696 | label_user_activity: "%s tevékenységei" | |
697 |
label_updated_time_by: |
|
697 | label_updated_time_by: "Módosította %s ennyivel ezelőtt: %s" | |
698 | text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.' |
|
698 | text_diff_truncated: '... A diff fájl vége nem jelenik meg, mert hosszab, mint a megjeleníthető sorok száma.' | |
699 |
setting_diff_max_lines_displayed: |
|
699 | setting_diff_max_lines_displayed: A megjelenítendő sorok száma (maximum) a diff fájloknál |
@@ -120,18 +120,18 field_subject: 제목 | |||||
120 | field_due_date: 완료 기한 |
|
120 | field_due_date: 완료 기한 | |
121 | field_assigned_to: 담당자 |
|
121 | field_assigned_to: 담당자 | |
122 | field_priority: 우선순위 |
|
122 | field_priority: 우선순위 | |
123 |
field_fixed_version: 목표 |
|
123 | field_fixed_version: 목표버전 | |
124 | field_user: 사용자 |
|
124 | field_user: 사용자 | |
125 | field_role: 역할 |
|
125 | field_role: 역할 | |
126 | field_homepage: 홈페이지 |
|
126 | field_homepage: 홈페이지 | |
127 | field_is_public: 공개 |
|
127 | field_is_public: 공개 | |
128 | field_parent: 상위 프로젝트 |
|
128 | field_parent: 상위 프로젝트 | |
129 |
field_is_in_chlog: 변경이력(changelog)에서 |
|
129 | field_is_in_chlog: 변경이력(changelog)에서 표시할 일감들 | |
130 |
field_is_in_roadmap: 로드맵에서 |
|
130 | field_is_in_roadmap: 로드맵에서표시할 일감들 | |
131 | field_login: 로그인 |
|
131 | field_login: 로그인 | |
132 | field_mail_notification: 메일 알림 |
|
132 | field_mail_notification: 메일 알림 | |
133 | field_admin: 관리자 |
|
133 | field_admin: 관리자 | |
134 |
field_last_login_on: |
|
134 | field_last_login_on: 마지막 로그인 | |
135 | field_language: 언어 |
|
135 | field_language: 언어 | |
136 | field_effective_date: 일자 |
|
136 | field_effective_date: 일자 | |
137 | field_password: 비밀번호 |
|
137 | field_password: 비밀번호 | |
@@ -188,7 +188,7 setting_commit_ref_keywords: 일감 참조에 사용할 키워드들 | |||||
188 | setting_commit_fix_keywords: 일감 해결에 사용할 키워드들 |
|
188 | setting_commit_fix_keywords: 일감 해결에 사용할 키워드들 | |
189 | setting_autologin: 자동 로그인 |
|
189 | setting_autologin: 자동 로그인 | |
190 | setting_date_format: 날짜 형식 |
|
190 | setting_date_format: 날짜 형식 | |
191 |
setting_cross_project_issue_relations: 프로젝트간 일감에 관 |
|
191 | setting_cross_project_issue_relations: 프로젝트간 일감에 관계을 맺는 것을 허용 | |
192 | setting_issue_list_default_columns: 일감 목록에 보여줄 기본 컬럼들 |
|
192 | setting_issue_list_default_columns: 일감 목록에 보여줄 기본 컬럼들 | |
193 | setting_repositories_encodings: 저장소 인코딩 |
|
193 | setting_repositories_encodings: 저장소 인코딩 | |
194 | setting_emails_footer: 메일 꼬리 |
|
194 | setting_emails_footer: 메일 꼬리 | |
@@ -201,7 +201,7 label_project_new: 새 프로젝트 | |||||
201 | label_project_plural: 프로젝트 |
|
201 | label_project_plural: 프로젝트 | |
202 | label_project_all: 모든 프로젝트 |
|
202 | label_project_all: 모든 프로젝트 | |
203 | label_project_latest: 최근 프로젝트 |
|
203 | label_project_latest: 최근 프로젝트 | |
204 |
label_issue: 일감 |
|
204 | label_issue: 일감 | |
205 | label_issue_new: 새 일감만들기 |
|
205 | label_issue_new: 새 일감만들기 | |
206 | label_issue_plural: 일감 보기 |
|
206 | label_issue_plural: 일감 보기 | |
207 | label_issue_view_all: 모든 일감 보기 |
|
207 | label_issue_view_all: 모든 일감 보기 | |
@@ -249,9 +249,9 label_last_login: 최종 접속 | |||||
249 | label_last_updates: 최종 변경 내역 |
|
249 | label_last_updates: 최종 변경 내역 | |
250 | label_last_updates_plural: 최종변경 %d |
|
250 | label_last_updates_plural: 최종변경 %d | |
251 | label_registered_on: 등록시각 |
|
251 | label_registered_on: 등록시각 | |
252 |
label_activity: |
|
252 | label_activity: 작업내역 | |
253 |
label_new: |
|
253 | label_new: 새로 만들기 | |
254 |
label_logged_as: |
|
254 | label_logged_as: '로그인계정:' | |
255 | label_environment: 환경 |
|
255 | label_environment: 환경 | |
256 | label_authentication: 인증설정 |
|
256 | label_authentication: 인증설정 | |
257 | label_auth_source: 인증 모드 |
|
257 | label_auth_source: 인증 모드 | |
@@ -280,7 +280,7 label_attachment_plural: 관련파일 | |||||
280 | label_report: 보고서 |
|
280 | label_report: 보고서 | |
281 | label_report_plural: 보고서 |
|
281 | label_report_plural: 보고서 | |
282 | label_news: 뉴스 |
|
282 | label_news: 뉴스 | |
283 |
label_news_new: 뉴스 |
|
283 | label_news_new: 새 뉴스 | |
284 | label_news_plural: 뉴스 |
|
284 | label_news_plural: 뉴스 | |
285 | label_news_latest: 최근 뉴스 |
|
285 | label_news_latest: 최근 뉴스 | |
286 | label_news_view_all: 모든 뉴스 |
|
286 | label_news_view_all: 모든 뉴스 | |
@@ -298,7 +298,7 label_open_issues: 진행중 | |||||
298 | label_open_issues_plural: 진행중 |
|
298 | label_open_issues_plural: 진행중 | |
299 | label_closed_issues: 완료됨 |
|
299 | label_closed_issues: 완료됨 | |
300 | label_closed_issues_plural: 완료됨 |
|
300 | label_closed_issues_plural: 완료됨 | |
301 |
label_total: |
|
301 | label_total: 합계 | |
302 | label_permissions: 허가권한 |
|
302 | label_permissions: 허가권한 | |
303 | label_current_status: 일감 상태 |
|
303 | label_current_status: 일감 상태 | |
304 | label_new_statuses_allowed: 허용되는 일감 상태 |
|
304 | label_new_statuses_allowed: 허용되는 일감 상태 | |
@@ -316,7 +316,7 label_gantt: Gantt 챠트 | |||||
316 | label_internal: 내부 |
|
316 | label_internal: 내부 | |
317 | label_last_changes: 지난 변경사항 %d 건 |
|
317 | label_last_changes: 지난 변경사항 %d 건 | |
318 | label_change_view_all: 모든 변경 내역 보기 |
|
318 | label_change_view_all: 모든 변경 내역 보기 | |
319 |
label_personalize_page: 입맛대로 구성하기 |
|
319 | label_personalize_page: 입맛대로 구성하기 | |
320 | label_comment: 댓글 |
|
320 | label_comment: 댓글 | |
321 | label_comment_plural: 댓글 |
|
321 | label_comment_plural: 댓글 | |
322 | label_comment_add: 댓글 추가 |
|
322 | label_comment_add: 댓글 추가 | |
@@ -353,7 +353,7 label_latest_revision: 최근 개정판 | |||||
353 | label_latest_revision_plural: 최근 개정판 |
|
353 | label_latest_revision_plural: 최근 개정판 | |
354 | label_view_revisions: 개정판 보기 |
|
354 | label_view_revisions: 개정판 보기 | |
355 | label_max_size: 최대 크기 |
|
355 | label_max_size: 최대 크기 | |
356 |
label_on: ' |
|
356 | label_on: '전체: ' | |
357 | label_sort_highest: 최상단으로 |
|
357 | label_sort_highest: 최상단으로 | |
358 | label_sort_higher: 위로 |
|
358 | label_sort_higher: 위로 | |
359 | label_sort_lower: 아래로 |
|
359 | label_sort_lower: 아래로 | |
@@ -361,7 +361,7 label_sort_lowest: 최하단으로 | |||||
361 | label_roadmap: 로드맵 |
|
361 | label_roadmap: 로드맵 | |
362 | label_roadmap_due_in: 기한 %s |
|
362 | label_roadmap_due_in: 기한 %s | |
363 | label_roadmap_overdue: %s 지연 |
|
363 | label_roadmap_overdue: %s 지연 | |
364 | label_roadmap_no_issues: 이버전에 해당하는 일감 없음 |
|
364 | label_roadmap_no_issues: 이 버전에 해당하는 일감 없음 | |
365 | label_search: 검색 |
|
365 | label_search: 검색 | |
366 | label_result_plural: 결과 |
|
366 | label_result_plural: 결과 | |
367 | label_all_words: 모든 단어 |
|
367 | label_all_words: 모든 단어 | |
@@ -412,19 +412,19 label_disabled: 비활성화 | |||||
412 | label_show_completed_versions: 완료된 버전 보기 |
|
412 | label_show_completed_versions: 완료된 버전 보기 | |
413 | label_me: 나 |
|
413 | label_me: 나 | |
414 | label_board: 게시판 |
|
414 | label_board: 게시판 | |
415 |
label_board_new: |
|
415 | label_board_new: 새 게시판 | |
416 | label_board_plural: 게시판 |
|
416 | label_board_plural: 게시판 | |
417 | label_topic_plural: 주제 |
|
417 | label_topic_plural: 주제 | |
418 | label_message_plural: 관련글 |
|
418 | label_message_plural: 관련글 | |
419 |
label_message_last: |
|
419 | label_message_last: 마지막 글 | |
420 | label_message_new: 새글쓰기 |
|
420 | label_message_new: 새글쓰기 | |
421 | label_reply_plural: 답글 |
|
421 | label_reply_plural: 답글 | |
422 | label_send_information: 사용자에게 계정정보를 보냄 |
|
422 | label_send_information: 사용자에게 계정정보를 보냄 | |
423 | label_year: 년 |
|
423 | label_year: 년 | |
424 | label_month: 월 |
|
424 | label_month: 월 | |
425 | label_week: 주 |
|
425 | label_week: 주 | |
426 |
label_date_from: |
|
426 | label_date_from: '기간:' | |
427 |
label_date_to: |
|
427 | label_date_to: ' ~ ' | |
428 | label_language_based: 언어설정에 따름 |
|
428 | label_language_based: 언어설정에 따름 | |
429 | label_sort_by: 정렬방법(%s) |
|
429 | label_sort_by: 정렬방법(%s) | |
430 | label_send_test_email: 테스트 메일 보내기 |
|
430 | label_send_test_email: 테스트 메일 보내기 | |
@@ -533,7 +533,7 default_activity_development: 개발 | |||||
533 |
|
533 | |||
534 | enumeration_issue_priorities: 일감 우선순위 |
|
534 | enumeration_issue_priorities: 일감 우선순위 | |
535 | enumeration_doc_categories: 문서 카테고리 |
|
535 | enumeration_doc_categories: 문서 카테고리 | |
536 |
enumeration_activities: |
|
536 | enumeration_activities: 작업분류(시간추적) | |
537 | button_copy: 복사 |
|
537 | button_copy: 복사 | |
538 | mail_body_account_information_external: 레드마인에 로그인할 때 "%s" 계정을 사용하실 수 있습니다. |
|
538 | mail_body_account_information_external: 레드마인에 로그인할 때 "%s" 계정을 사용하실 수 있습니다. | |
539 | button_change_password: 비밀번호 변경 |
|
539 | button_change_password: 비밀번호 변경 | |
@@ -555,7 +555,7 button_annotate: 주석달기(annotate) | |||||
555 | label_issues_by: 일감분류 방식 %s |
|
555 | label_issues_by: 일감분류 방식 %s | |
556 | field_searchable: 검색가능 |
|
556 | field_searchable: 검색가능 | |
557 | label_display_per_page: '페이지당: %s' |
|
557 | label_display_per_page: '페이지당: %s' | |
558 |
setting_per_page_options: 페이지당 표시할 객 |
|
558 | setting_per_page_options: 페이지당 표시할 객체 수 | |
559 | label_age: 마지막 수정일 |
|
559 | label_age: 마지막 수정일 | |
560 | notice_default_data_loaded: 기본 설정을 성공적으로 로드하였습니다. |
|
560 | notice_default_data_loaded: 기본 설정을 성공적으로 로드하였습니다. | |
561 | text_load_default_configuration: 기본 설정을 로딩하기 |
|
561 | text_load_default_configuration: 기본 설정을 로딩하기 | |
@@ -585,20 +585,20 project_module_files: 관련파일 | |||||
585 | project_module_documents: 문서 |
|
585 | project_module_documents: 문서 | |
586 | project_module_repository: 저장소 |
|
586 | project_module_repository: 저장소 | |
587 | project_module_news: 뉴스 |
|
587 | project_module_news: 뉴스 | |
588 |
project_module_time_tracking: |
|
588 | project_module_time_tracking: 시간추적 | |
589 | text_file_repository_writable: 파일 저장소 쓰기 가능 |
|
589 | text_file_repository_writable: 파일 저장소 쓰기 가능 | |
590 | text_default_administrator_account_changed: 기본 관리자 계정이 변경되었습니다. |
|
590 | text_default_administrator_account_changed: 기본 관리자 계정이 변경되었습니다. | |
591 |
text_rmagick_available: RMagick |
|
591 | text_rmagick_available: RMagick 사용가능(옵션) | |
592 | button_configure: 설정 |
|
592 | button_configure: 설정 | |
593 | label_plugins: 플러그인 |
|
593 | label_plugins: 플러그인 | |
594 | label_ldap_authentication: LDAP 인증 |
|
594 | label_ldap_authentication: LDAP 인증 | |
595 | label_downloads_abbr: D/L |
|
595 | label_downloads_abbr: D/L | |
596 | label_add_another_file: 다른 파일 추가 |
|
596 | label_add_another_file: 다른 파일 추가 | |
597 | label_this_month: 이번 달 |
|
597 | label_this_month: 이번 달 | |
598 | text_destroy_time_entries_question: %.02f hours were reported on the issues you are about to delete. What do you want to do ? |
|
598 | text_destroy_time_entries_question: 삭제하려는 일감에 %.02f 시간이 보고되어 있습니다. 어떻게 하시겠습니까? | |
599 | label_last_n_days: 지난 %d 일 |
|
599 | label_last_n_days: 지난 %d 일 | |
600 | label_all_time: 모든 시간 |
|
600 | label_all_time: 모든 시간 | |
601 | error_issue_not_found_in_project: 'The issue was not found or does not belong to this project' |
|
601 | error_issue_not_found_in_project: '일감이 없거나 이 프로젝트의 것이 아닙니다.' | |
602 | label_this_year: 올해 |
|
602 | label_this_year: 올해 | |
603 | text_assign_time_entries_to_project: 보고된 시간을 프로젝트에 할당하기 |
|
603 | text_assign_time_entries_to_project: 보고된 시간을 프로젝트에 할당하기 | |
604 | label_date_range: 날짜 범위 |
|
604 | label_date_range: 날짜 범위 | |
@@ -608,15 +608,15 label_optional_description: 부가적인 설명 | |||||
608 | label_last_month: 지난 달 |
|
608 | label_last_month: 지난 달 | |
609 | text_destroy_time_entries: 보고된 시간을 삭제하기 |
|
609 | text_destroy_time_entries: 보고된 시간을 삭제하기 | |
610 | text_reassign_time_entries: '이 알림에 보고된 시간을 재할당하기:' |
|
610 | text_reassign_time_entries: '이 알림에 보고된 시간을 재할당하기:' | |
611 |
setting_activity_days_default: 프로젝트 |
|
611 | setting_activity_days_default: 프로젝트 작업내역에 보여줄 날수 | |
612 | label_chronological_order: 시간 순으로 정렬 |
|
612 | label_chronological_order: 시간 순으로 정렬 | |
613 | field_comments_sorting: 히스토리 정렬 설정 |
|
613 | field_comments_sorting: 히스토리 정렬 설정 | |
614 | label_reverse_chronological_order: 시간 역순으로 정렬 |
|
614 | label_reverse_chronological_order: 시간 역순으로 정렬 | |
615 |
label_preferences: |
|
615 | label_preferences: 설정 | |
616 | setting_display_subprojects_issues: 하위 프로젝트의 일감을 최상위 프로젝트에서 표시 |
|
616 | setting_display_subprojects_issues: 하위 프로젝트의 일감을 최상위 프로젝트에서 표시 | |
617 |
label_overall_activity: 전체 |
|
617 | label_overall_activity: 전체 작업내역 | |
618 | setting_default_projects_public: 새 프로젝트를 공개로 설정 |
|
618 | setting_default_projects_public: 새 프로젝트를 공개로 설정 | |
619 | error_scm_annotate: "The entry does not exist or can not be annotated." |
|
619 | error_scm_annotate: "항목이 없거나 주석을 달 수 없습니다." | |
620 | label_planning: 프로젝트계획(Planning) |
|
620 | label_planning: 프로젝트계획(Planning) | |
621 | text_subprojects_destroy_warning: '서브프로젝트(%s)가 자동으로 지워질 것입니다.' |
|
621 | text_subprojects_destroy_warning: '서브프로젝트(%s)가 자동으로 지워질 것입니다.' | |
622 | label_and_its_subprojects: %s와 서브프로젝트들 |
|
622 | label_and_its_subprojects: %s와 서브프로젝트들 | |
@@ -692,7 +692,7 label_example: 예 | |||||
692 | text_repository_usernames_mapping: "저장소 로그에서 발견된 각 사용자에 레드마인 사용자를 업데이트할때 선택합니다.\n레드마인과 저장소의 이름이나 이메일이 같은 사용자가 자동으로 연결됩니다." |
|
692 | text_repository_usernames_mapping: "저장소 로그에서 발견된 각 사용자에 레드마인 사용자를 업데이트할때 선택합니다.\n레드마인과 저장소의 이름이나 이메일이 같은 사용자가 자동으로 연결됩니다." | |
693 | permission_edit_own_messages: 자기 메시지 편집 |
|
693 | permission_edit_own_messages: 자기 메시지 편집 | |
694 | permission_delete_own_messages: 자기 메시지 삭제 |
|
694 | permission_delete_own_messages: 자기 메시지 삭제 | |
695 |
label_user_activity: "%s의 |
|
695 | label_user_activity: "%s의 작업내역" | |
696 |
label_updated_time_by: |
|
696 | label_updated_time_by: %s가 %s 전에 변경 | |
697 | text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.' |
|
697 | text_diff_truncated: '... 이 차이점은 표시할 수 있는 최대 줄수를 초과해서 이 차이점은 잘렸습니다.' | |
698 |
setting_diff_max_lines_displayed: |
|
698 | setting_diff_max_lines_displayed: 차이점보기에 표시할 최대 줄수 |
@@ -518,7 +518,8 label_total: Всего | |||||
518 | label_tracker_new: Новый трекер |
|
518 | label_tracker_new: Новый трекер | |
519 | label_tracker_plural: Трекеры |
|
519 | label_tracker_plural: Трекеры | |
520 | label_tracker: Трекер |
|
520 | label_tracker: Трекер | |
521 | label_updated_time: Обновлен %s назад |
|
521 | label_updated_time: Обновлено %s назад | |
|
522 | label_updated_time_by: Обновлено %s %s назад | |||
522 | label_used_by: Используется |
|
523 | label_used_by: Используется | |
523 | label_user_activity: "Активность пользователя %s" |
|
524 | label_user_activity: "Активность пользователя %s" | |
524 | label_user_mail_no_self_notified: "Не извещать об изменениях, которые я сделал сам" |
|
525 | label_user_mail_no_self_notified: "Не извещать об изменениях, которые я сделал сам" | |
@@ -652,6 +653,7 setting_cross_project_issue_relations: Разрешить пересечение | |||||
652 | setting_date_format: Формат даты |
|
653 | setting_date_format: Формат даты | |
653 | setting_default_language: Язык по умолчанию |
|
654 | setting_default_language: Язык по умолчанию | |
654 | setting_default_projects_public: Новые проекты являются общедоступными |
|
655 | setting_default_projects_public: Новые проекты являются общедоступными | |
|
656 | setting_diff_max_lines_displayed: Максимальное число строк для diff | |||
655 | setting_display_subprojects_issues: Отображение подпроектов по умолчанию |
|
657 | setting_display_subprojects_issues: Отображение подпроектов по умолчанию | |
656 | setting_emails_footer: Подстрочные примечания Email |
|
658 | setting_emails_footer: Подстрочные примечания Email | |
657 | setting_enabled_scm: Разрешенные SCM |
|
659 | setting_enabled_scm: Разрешенные SCM | |
@@ -689,6 +691,7 text_comma_separated: Допустимы несколько значений (ч | |||||
689 | text_default_administrator_account_changed: Учетная запись администратора по умолчанию изменена |
|
691 | text_default_administrator_account_changed: Учетная запись администратора по умолчанию изменена | |
690 | text_destroy_time_entries_question: Вы собираетесь удалить %.02f часа(ов) прикрепленных за этой задачей. |
|
692 | text_destroy_time_entries_question: Вы собираетесь удалить %.02f часа(ов) прикрепленных за этой задачей. | |
691 | text_destroy_time_entries: Удалить зарегистрированное время |
|
693 | text_destroy_time_entries: Удалить зарегистрированное время | |
|
694 | text_diff_truncated: '... Этот diff ограничен, так как превышает максимальный отображаемый размер.' | |||
692 | text_email_delivery_not_configured: "Параметры работы с почтовым сервером не настроены и функция уведомления по email не активна.\nНастроить параметры для Вашего SMTP-сервера Вы можете в файле config/email.yml. Для применения изменений перезапустите приложение." |
|
695 | text_email_delivery_not_configured: "Параметры работы с почтовым сервером не настроены и функция уведомления по email не активна.\nНастроить параметры для Вашего SMTP-сервера Вы можете в файле config/email.yml. Для применения изменений перезапустите приложение." | |
693 | text_enumeration_category_reassign_to: 'Назначить им следующее значение:' |
|
696 | text_enumeration_category_reassign_to: 'Назначить им следующее значение:' | |
694 | text_enumeration_destroy_question: '%d объект(а,ов) связаны с этим значением.' |
|
697 | text_enumeration_destroy_question: '%d объект(а,ов) связаны с этим значением.' | |
@@ -727,6 +730,3 text_user_wrote: '%s написал(а):' | |||||
727 | text_wiki_destroy_confirmation: Вы уверены, что хотите удалить данную Wiki и все ее содержимое? |
|
730 | text_wiki_destroy_confirmation: Вы уверены, что хотите удалить данную Wiki и все ее содержимое? | |
728 | text_workflow_edit: Выберите роль и трекер для редактирования последовательности состояний |
|
731 | text_workflow_edit: Выберите роль и трекер для редактирования последовательности состояний | |
729 |
|
732 | |||
730 | label_updated_time_by: Updated by %s %s ago |
|
|||
731 | text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.' |
|
|||
732 | setting_diff_max_lines_displayed: Max number of diff lines displayed |
|
@@ -223,6 +223,7 setting_mail_handler_api_enabled: 啟用處理傳入電子郵件的服務 | |||||
223 | setting_mail_handler_api_key: API 金鑰 |
|
223 | setting_mail_handler_api_key: API 金鑰 | |
224 | setting_sequential_project_identifiers: 循序產生專案識別碼 |
|
224 | setting_sequential_project_identifiers: 循序產生專案識別碼 | |
225 | setting_gravatar_enabled: 啟用 Gravatar 全球認證大頭像 |
|
225 | setting_gravatar_enabled: 啟用 Gravatar 全球認證大頭像 | |
|
226 | setting_diff_max_lines_displayed: 差異顯示行數之最大值 | |||
226 |
|
227 | |||
227 | permission_edit_project: 編輯專案 |
|
228 | permission_edit_project: 編輯專案 | |
228 | permission_select_project_modules: 選擇專案模組 |
|
229 | permission_select_project_modules: 選擇專案模組 | |
@@ -670,6 +671,7 text_enumeration_destroy_question: '目前有 %d 個物件使用此列舉值。' | |||||
670 | text_enumeration_category_reassign_to: '重新設定其列舉值為:' |
|
671 | text_enumeration_category_reassign_to: '重新設定其列舉值為:' | |
671 | text_email_delivery_not_configured: "您尚未設定電子郵件傳送方式,因此提醒選項已被停用。\n請在 config/email.yml 中設定 SMTP 之後,重新啟動 Redmine,以啟用電子郵件提醒選項。" |
|
672 | text_email_delivery_not_configured: "您尚未設定電子郵件傳送方式,因此提醒選項已被停用。\n請在 config/email.yml 中設定 SMTP 之後,重新啟動 Redmine,以啟用電子郵件提醒選項。" | |
672 | text_repository_usernames_mapping: "選擇或更新 Redmine 使用者與版本庫使用者之對應關係。\n版本庫中之使用者帳號或電子郵件信箱,與 Redmine 設定相同者,將自動產生對應關係。" |
|
673 | text_repository_usernames_mapping: "選擇或更新 Redmine 使用者與版本庫使用者之對應關係。\n版本庫中之使用者帳號或電子郵件信箱,與 Redmine 設定相同者,將自動產生對應關係。" | |
|
674 | text_diff_truncated: '... 這份差異已被截短以符合顯示行數之最大值' | |||
673 |
|
675 | |||
674 | default_role_manager: 管理人員 |
|
676 | default_role_manager: 管理人員 | |
675 | default_role_developper: 開發人員 |
|
677 | default_role_developper: 開發人員 | |
@@ -696,5 +698,3 default_activity_development: 開發 | |||||
696 | enumeration_issue_priorities: 項目優先權 |
|
698 | enumeration_issue_priorities: 項目優先權 | |
697 | enumeration_doc_categories: 文件分類 |
|
699 | enumeration_doc_categories: 文件分類 | |
698 | enumeration_activities: 活動 (時間追蹤) |
|
700 | enumeration_activities: 活動 (時間追蹤) | |
699 | text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.' |
|
|||
700 | setting_diff_max_lines_displayed: Max number of diff lines displayed |
|
@@ -223,6 +223,7 setting_mail_handler_api_enabled: 启用用于接收邮件的服务 | |||||
223 | setting_mail_handler_api_key: API key |
|
223 | setting_mail_handler_api_key: API key | |
224 | setting_sequential_project_identifiers: 顺序产生项目标识 |
|
224 | setting_sequential_project_identifiers: 顺序产生项目标识 | |
225 | setting_gravatar_enabled: 使用Gravatar用户头像 |
|
225 | setting_gravatar_enabled: 使用Gravatar用户头像 | |
|
226 | setting_diff_max_lines_displayed: 查看差别页面上显示的最大行数 | |||
226 |
|
227 | |||
227 | permission_edit_project: 编辑项目 |
|
228 | permission_edit_project: 编辑项目 | |
228 | permission_select_project_modules: 选择项目模块 |
|
229 | permission_select_project_modules: 选择项目模块 | |
@@ -544,7 +545,8 label_send_test_email: 发送测试邮件 | |||||
544 | label_feeds_access_key_created_on: RSS 存取键是在 %s 之前建立的 |
|
545 | label_feeds_access_key_created_on: RSS 存取键是在 %s 之前建立的 | |
545 | label_module_plural: 模块 |
|
546 | label_module_plural: 模块 | |
546 | label_added_time_by: 由 %s 在 %s 之前添加 |
|
547 | label_added_time_by: 由 %s 在 %s 之前添加 | |
547 | label_updated_time: 更新于 %s 前 |
|
548 | label_updated_time: 更新于 %s 之前 | |
|
549 | label_updated_time_by: 由 %s 更新于 %s 之前 | |||
548 | label_jump_to_a_project: 选择一个项目... |
|
550 | label_jump_to_a_project: 选择一个项目... | |
549 | label_file_plural: 文件 |
|
551 | label_file_plural: 文件 | |
550 | label_changeset_plural: 变更 |
|
552 | label_changeset_plural: 变更 | |
@@ -669,6 +671,7 text_enumeration_category_reassign_to: '将它们关联到新的枚举值:' | |||||
669 | text_enumeration_destroy_question: '%d 个对象被关联到了这个枚举值。' |
|
671 | text_enumeration_destroy_question: '%d 个对象被关联到了这个枚举值。' | |
670 | text_email_delivery_not_configured: "邮件参数尚未配置,因此邮件通知功能已被禁用。\n请在config/email.yml中配置您的SMTP服务器信息并重新启动以使其生效。" |
|
672 | text_email_delivery_not_configured: "邮件参数尚未配置,因此邮件通知功能已被禁用。\n请在config/email.yml中配置您的SMTP服务器信息并重新启动以使其生效。" | |
671 | text_repository_usernames_mapping: "选择或更新与版本库中的用户名对应的Redmine用户。\n版本库中与Redmine中的同名用户将被自动对应。" |
|
673 | text_repository_usernames_mapping: "选择或更新与版本库中的用户名对应的Redmine用户。\n版本库中与Redmine中的同名用户将被自动对应。" | |
|
674 | text_diff_truncated: '... 差别内容超过了可显示的最大行数并已被截断' | |||
672 |
|
675 | |||
673 | default_role_manager: 管理人员 |
|
676 | default_role_manager: 管理人员 | |
674 | default_role_developper: 开发人员 |
|
677 | default_role_developper: 开发人员 | |
@@ -695,6 +698,3 default_activity_development: 开发 | |||||
695 | enumeration_issue_priorities: 问题优先级 |
|
698 | enumeration_issue_priorities: 问题优先级 | |
696 | enumeration_doc_categories: 文档类别 |
|
699 | enumeration_doc_categories: 文档类别 | |
697 | enumeration_activities: 活动(时间跟踪) |
|
700 | enumeration_activities: 活动(时间跟踪) | |
698 | label_updated_time_by: Updated by %s %s ago |
|
|||
699 | text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.' |
|
|||
700 | setting_diff_max_lines_displayed: Max number of diff lines displayed |
|
@@ -32,10 +32,19 class DocumentsControllerTest < Test::Unit::TestCase | |||||
32 | end |
|
32 | end | |
33 |
|
33 | |||
34 | def test_index |
|
34 | def test_index | |
|
35 | # Sets a default category | |||
|
36 | e = Enumeration.find_by_name('Technical documentation') | |||
|
37 | e.update_attributes(:is_default => true) | |||
|
38 | ||||
35 | get :index, :project_id => 'ecookbook' |
|
39 | get :index, :project_id => 'ecookbook' | |
36 | assert_response :success |
|
40 | assert_response :success | |
37 | assert_template 'index' |
|
41 | assert_template 'index' | |
38 | assert_not_nil assigns(:grouped) |
|
42 | assert_not_nil assigns(:grouped) | |
|
43 | ||||
|
44 | # Default category selected in the new document form | |||
|
45 | assert_tag :select, :attributes => {:name => 'document[category_id]'}, | |||
|
46 | :child => {:tag => 'option', :attributes => {:selected => 'selected'}, | |||
|
47 | :content => 'Technical documentation'} | |||
39 | end |
|
48 | end | |
40 |
|
49 | |||
41 | def test_new_with_one_attachment |
|
50 | def test_new_with_one_attachment |
@@ -44,7 +44,7 class AccountTest < ActionController::IntegrationTest | |||||
44 | assert_response :success |
|
44 | assert_response :success | |
45 | assert_template "account/lost_password" |
|
45 | assert_template "account/lost_password" | |
46 |
|
46 | |||
47 |
post "account/lost_password", :mail => 'j |
|
47 | post "account/lost_password", :mail => 'jSmith@somenet.foo' | |
48 | assert_redirected_to "account/login" |
|
48 | assert_redirected_to "account/login" | |
49 |
|
49 | |||
50 | token = Token.find(:first) |
|
50 | token = Token.find(:first) |
@@ -37,6 +37,43 class EnumerationTest < Test::Unit::TestCase | |||||
37 | assert !Enumeration.find(7).in_use? |
|
37 | assert !Enumeration.find(7).in_use? | |
38 | end |
|
38 | end | |
39 |
|
39 | |||
|
40 | def test_default | |||
|
41 | e = Enumeration.default('IPRI') | |||
|
42 | assert e.is_a?(Enumeration) | |||
|
43 | assert e.is_default? | |||
|
44 | assert_equal 'Normal', e.name | |||
|
45 | end | |||
|
46 | ||||
|
47 | def test_create | |||
|
48 | e = Enumeration.new(:opt => 'IPRI', :name => 'Very urgent', :is_default => false) | |||
|
49 | assert e.save | |||
|
50 | assert_equal 'Normal', Enumeration.default('IPRI').name | |||
|
51 | end | |||
|
52 | ||||
|
53 | def test_create_as_default | |||
|
54 | e = Enumeration.new(:opt => 'IPRI', :name => 'Very urgent', :is_default => true) | |||
|
55 | assert e.save | |||
|
56 | assert_equal e, Enumeration.default('IPRI') | |||
|
57 | end | |||
|
58 | ||||
|
59 | def test_update_default | |||
|
60 | e = Enumeration.default('IPRI') | |||
|
61 | e.update_attributes(:name => 'Changed', :is_default => true) | |||
|
62 | assert_equal e, Enumeration.default('IPRI') | |||
|
63 | end | |||
|
64 | ||||
|
65 | def test_update_default_to_non_default | |||
|
66 | e = Enumeration.default('IPRI') | |||
|
67 | e.update_attributes(:name => 'Changed', :is_default => false) | |||
|
68 | assert_nil Enumeration.default('IPRI') | |||
|
69 | end | |||
|
70 | ||||
|
71 | def test_change_default | |||
|
72 | e = Enumeration.find_by_name('Urgent') | |||
|
73 | e.update_attributes(:name => 'Urgent', :is_default => true) | |||
|
74 | assert_equal e, Enumeration.default('IPRI') | |||
|
75 | end | |||
|
76 | ||||
40 | def test_destroy_with_reassign |
|
77 | def test_destroy_with_reassign | |
41 | Enumeration.find(4).destroy(Enumeration.find(6)) |
|
78 | Enumeration.find(4).destroy(Enumeration.find(6)) | |
42 | assert_nil Issue.find(:first, :conditions => {:priority_id => 4}) |
|
79 | assert_nil Issue.find(:first, :conditions => {:priority_id => 4}) |
@@ -158,4 +158,10 class UserTest < Test::Unit::TestCase | |||||
158 | @jsmith.pref.comments_sorting = 'desc' |
|
158 | @jsmith.pref.comments_sorting = 'desc' | |
159 | assert @jsmith.wants_comments_in_reverse_order? |
|
159 | assert @jsmith.wants_comments_in_reverse_order? | |
160 | end |
|
160 | end | |
|
161 | ||||
|
162 | def test_find_by_mail_should_be_case_insensitive | |||
|
163 | u = User.find_by_mail('JSmith@somenet.foo') | |||
|
164 | assert_not_nil u | |||
|
165 | assert_equal 'jsmith@somenet.foo', u.mail | |||
|
166 | end | |||
161 | end |
|
167 | end |
General Comments 0
You need to be logged in to leave comments.
Login now