tr8n 3.2.1 → 3.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. data/Gemfile.lock +1 -1
  2. data/README.rdoc +19 -13
  3. data/app/controllers/tr8n/base_controller.rb +5 -1
  4. data/app/controllers/tr8n/language_controller.rb +2 -2
  5. data/app/models/tr8n/base_filter.rb +21 -0
  6. data/app/models/tr8n/daily_language_metric.rb +46 -22
  7. data/app/models/tr8n/date_rule.rb +41 -22
  8. data/app/models/tr8n/gender_list_rule.rb +41 -22
  9. data/app/models/tr8n/gender_rule.rb +41 -22
  10. data/app/models/tr8n/glossary.rb +44 -27
  11. data/app/models/tr8n/glossary_filter.rb +56 -33
  12. data/app/models/tr8n/ip_location.rb +23 -0
  13. data/app/models/tr8n/ip_location_filter.rb +57 -34
  14. data/app/models/tr8n/language.rb +28 -0
  15. data/app/models/tr8n/language_case.rb +27 -0
  16. data/app/models/tr8n/language_case_filter.rb +53 -30
  17. data/app/models/tr8n/language_case_rule.rb +24 -0
  18. data/app/models/tr8n/language_case_rule_filter.rb +53 -30
  19. data/app/models/tr8n/language_case_value_map.rb +24 -0
  20. data/app/models/tr8n/language_case_value_map_filter.rb +68 -45
  21. data/app/models/tr8n/language_filter.rb +23 -0
  22. data/app/models/tr8n/language_forum_abuse_report.rb +56 -33
  23. data/app/models/tr8n/language_forum_abuse_report_filter.rb +57 -34
  24. data/app/models/tr8n/language_forum_message.rb +69 -46
  25. data/app/models/tr8n/language_forum_message_filter.rb +61 -38
  26. data/app/models/tr8n/language_forum_topic.rb +62 -41
  27. data/app/models/tr8n/language_forum_topic_filter.rb +61 -38
  28. data/app/models/tr8n/language_metric.rb +28 -1
  29. data/app/models/tr8n/language_metric_filter.rb +23 -0
  30. data/app/models/tr8n/language_rule.rb +23 -0
  31. data/app/models/tr8n/language_rule_filter.rb +72 -49
  32. data/app/models/tr8n/language_user.rb +86 -61
  33. data/app/models/tr8n/language_user_filter.rb +57 -34
  34. data/app/models/tr8n/list_rule.rb +41 -22
  35. data/app/models/tr8n/monthly_language_metric.rb +46 -22
  36. data/app/models/tr8n/numeric_rule.rb +41 -22
  37. data/app/models/tr8n/sync_log.rb +21 -0
  38. data/app/models/tr8n/sync_log_filter.rb +48 -27
  39. data/app/models/tr8n/total_language_metric.rb +46 -22
  40. data/app/models/tr8n/translation.rb +28 -0
  41. data/app/models/tr8n/translation_domain.rb +76 -56
  42. data/app/models/tr8n/translation_domain_filter.rb +49 -26
  43. data/app/models/tr8n/translation_filter.rb +57 -34
  44. data/app/models/tr8n/translation_key.rb +44 -8
  45. data/app/models/tr8n/translation_key_comment.rb +60 -37
  46. data/app/models/tr8n/translation_key_comment_filter.rb +53 -30
  47. data/app/models/tr8n/translation_key_filter.rb +68 -45
  48. data/app/models/tr8n/translation_key_lock.rb +81 -59
  49. data/app/models/tr8n/translation_key_lock_filter.rb +53 -30
  50. data/app/models/tr8n/translation_key_source.rb +22 -0
  51. data/app/models/tr8n/translation_key_source_filter.rb +53 -30
  52. data/app/models/tr8n/translation_source.rb +20 -0
  53. data/app/models/tr8n/translation_source_filter.rb +53 -30
  54. data/app/models/tr8n/translation_source_language.rb +58 -39
  55. data/app/models/tr8n/translation_vote.rb +56 -35
  56. data/app/models/tr8n/translation_vote_filter.rb +57 -34
  57. data/app/models/tr8n/translator.rb +38 -0
  58. data/app/models/tr8n/translator_filter.rb +73 -50
  59. data/app/models/tr8n/translator_following.rb +58 -38
  60. data/app/models/tr8n/translator_following_filter.rb +57 -34
  61. data/app/models/tr8n/translator_log.rb +25 -0
  62. data/app/models/tr8n/translator_log_filter.rb +72 -49
  63. data/app/models/tr8n/translator_metric.rb +27 -0
  64. data/app/models/tr8n/translator_metric_filter.rb +61 -38
  65. data/app/models/tr8n/translator_report.rb +23 -0
  66. data/app/models/tr8n/translator_report_filter.rb +53 -30
  67. data/app/models/tr8n/value_rule.rb +41 -22
  68. data/bin/{tr8n.rb → tr8n} +0 -0
  69. data/file +94 -0
  70. data/lib/tasks/dev.rake +162 -0
  71. data/lib/tr8n/config.rb +5 -1
  72. data/lib/tr8n/version.rb +1 -1
  73. data/local/tr8n_server/config/tr8n/config.yml +2 -1
  74. data/local/tr8n_server/db/schema.rb +0 -2
  75. metadata +45 -43
@@ -1,30 +1,53 @@
1
- #--
2
- # Copyright (c) 2010-2012 Michael Berkovich, tr8n.net
3
- #
4
- # Permission is hereby granted, free of charge, to any person obtaining
5
- # a copy of this software and associated documentation files (the
6
- # "Software"), to deal in the Software without restriction, including
7
- # without limitation the rights to use, copy, modify, merge, publish,
8
- # distribute, sublicense, and/or sell copies of the Software, and to
9
- # permit persons to whom the Software is furnished to do so, subject to
10
- # the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be
13
- # included in all copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
- # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
- # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
- # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
- # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
- # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
- # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
- #++
23
-
24
- class Tr8n::TranslationKeyLockFilter < Tr8n::BaseFilter
25
-
26
- def inner_joins
27
- [:language, :translation_key, :translator]
28
- end
29
-
30
- end
1
+ #--
2
+ # Copyright (c) 2010-2012 Michael Berkovich, tr8n.net
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining
5
+ # a copy of this software and associated documentation files (the
6
+ # "Software"), to deal in the Software without restriction, including
7
+ # without limitation the rights to use, copy, modify, merge, publish,
8
+ # distribute, sublicense, and/or sell copies of the Software, and to
9
+ # permit persons to whom the Software is furnished to do so, subject to
10
+ # the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be
13
+ # included in all copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
+ #++
23
+ #
24
+ #-- Tr8n::TranslationKeyLockFilter Schema Information
25
+ #
26
+ # Table name: will_filter_filters
27
+ #
28
+ # id INTEGER not null, primary key
29
+ # type varchar(255)
30
+ # name varchar(255)
31
+ # data text
32
+ # user_id integer
33
+ # model_class_name varchar(255)
34
+ # created_at datetime
35
+ # updated_at datetime
36
+ #
37
+ # Indexes
38
+ #
39
+ # index_will_filter_filters_on_user_id (user_id)
40
+ #
41
+ #++
42
+
43
+ class Tr8n::TranslationKeyLockFilter < Tr8n::BaseFilter
44
+
45
+ def model_class
46
+ Tr8n::TranslationKeyLock
47
+ end
48
+
49
+ def inner_joins
50
+ [:language, :translation_key, :translator]
51
+ end
52
+
53
+ end
@@ -20,9 +20,31 @@
20
20
  # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
21
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
22
  #++
23
+ #
24
+ #-- Tr8n::TranslationKeySource Schema Information
25
+ #
26
+ # Table name: tr8n_translation_key_sources
27
+ #
28
+ # id INTEGER not null, primary key
29
+ # translation_key_id integer not null
30
+ # translation_source_id integer not null
31
+ # details text
32
+ # created_at datetime
33
+ # updated_at datetime
34
+ #
35
+ # Indexes
36
+ #
37
+ # tr8n_trans_keys_source_id (translation_source_id)
38
+ # tr8n_trans_keys_key_id (translation_key_id)
39
+ #
40
+ #++
23
41
 
24
42
  class Tr8n::TranslationKeySource < ActiveRecord::Base
25
43
  set_table_name :tr8n_translation_key_sources
44
+
45
+ attr_accessible :translation_key_id, :translation_source_id, :details
46
+ attr_accessible :translation_source, :translation_key
47
+
26
48
  after_destroy :clear_cache
27
49
 
28
50
  belongs_to :translation_source, :class_name => "Tr8n::TranslationSource"
@@ -1,30 +1,53 @@
1
- #--
2
- # Copyright (c) 2010-2012 Michael Berkovich, tr8n.net
3
- #
4
- # Permission is hereby granted, free of charge, to any person obtaining
5
- # a copy of this software and associated documentation files (the
6
- # "Software"), to deal in the Software without restriction, including
7
- # without limitation the rights to use, copy, modify, merge, publish,
8
- # distribute, sublicense, and/or sell copies of the Software, and to
9
- # permit persons to whom the Software is furnished to do so, subject to
10
- # the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be
13
- # included in all copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
- # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
- # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
- # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
- # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
- # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
- # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
- #++
23
-
24
- class Tr8n::TranslationKeySourceFilter < Tr8n::BaseFilter
25
-
26
- def inner_joins
27
- [:translation_key, :translation_source]
28
- end
29
-
30
- end
1
+ #--
2
+ # Copyright (c) 2010-2012 Michael Berkovich, tr8n.net
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining
5
+ # a copy of this software and associated documentation files (the
6
+ # "Software"), to deal in the Software without restriction, including
7
+ # without limitation the rights to use, copy, modify, merge, publish,
8
+ # distribute, sublicense, and/or sell copies of the Software, and to
9
+ # permit persons to whom the Software is furnished to do so, subject to
10
+ # the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be
13
+ # included in all copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
+ #++
23
+ #
24
+ #-- Tr8n::TranslationKeySourceFilter Schema Information
25
+ #
26
+ # Table name: will_filter_filters
27
+ #
28
+ # id INTEGER not null, primary key
29
+ # type varchar(255)
30
+ # name varchar(255)
31
+ # data text
32
+ # user_id integer
33
+ # model_class_name varchar(255)
34
+ # created_at datetime
35
+ # updated_at datetime
36
+ #
37
+ # Indexes
38
+ #
39
+ # index_will_filter_filters_on_user_id (user_id)
40
+ #
41
+ #++
42
+
43
+ class Tr8n::TranslationKeySourceFilter < Tr8n::BaseFilter
44
+
45
+ def model_class
46
+ Tr8n::TranslationKeySource
47
+ end
48
+
49
+ def inner_joins
50
+ [:translation_key, :translation_source]
51
+ end
52
+
53
+ end
@@ -20,9 +20,29 @@
20
20
  # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
21
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
22
  #++
23
+ #
24
+ #-- Tr8n::TranslationSource Schema Information
25
+ #
26
+ # Table name: tr8n_translation_sources
27
+ #
28
+ # id INTEGER not null, primary key
29
+ # source varchar(255)
30
+ # translation_domain_id integer
31
+ # created_at datetime
32
+ # updated_at datetime
33
+ #
34
+ # Indexes
35
+ #
36
+ # tr8n_sources_source (source)
37
+ #
38
+ #++
23
39
 
24
40
  class Tr8n::TranslationSource < ActiveRecord::Base
25
41
  set_table_name :tr8n_translation_sources
42
+
43
+ attr_accessible :source, :translation_domain_id
44
+ attr_accessible :translation_domain
45
+
26
46
  after_destroy :clear_cache
27
47
 
28
48
  belongs_to :translation_domain, :class_name => "Tr8n::TranslationDomain"
@@ -1,30 +1,53 @@
1
- #--
2
- # Copyright (c) 2010-2012 Michael Berkovich, tr8n.net
3
- #
4
- # Permission is hereby granted, free of charge, to any person obtaining
5
- # a copy of this software and associated documentation files (the
6
- # "Software"), to deal in the Software without restriction, including
7
- # without limitation the rights to use, copy, modify, merge, publish,
8
- # distribute, sublicense, and/or sell copies of the Software, and to
9
- # permit persons to whom the Software is furnished to do so, subject to
10
- # the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be
13
- # included in all copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
- # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
- # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
- # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
- # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
- # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
- # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
- #++
23
-
24
- class Tr8n::TranslationSourceFilter < Tr8n::BaseFilter
25
-
26
- def inner_joins
27
- [:translation_domain]
28
- end
29
-
30
- end
1
+ #--
2
+ # Copyright (c) 2010-2012 Michael Berkovich, tr8n.net
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining
5
+ # a copy of this software and associated documentation files (the
6
+ # "Software"), to deal in the Software without restriction, including
7
+ # without limitation the rights to use, copy, modify, merge, publish,
8
+ # distribute, sublicense, and/or sell copies of the Software, and to
9
+ # permit persons to whom the Software is furnished to do so, subject to
10
+ # the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be
13
+ # included in all copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
+ #++
23
+ #
24
+ #-- Tr8n::TranslationSourceFilter Schema Information
25
+ #
26
+ # Table name: will_filter_filters
27
+ #
28
+ # id INTEGER not null, primary key
29
+ # type varchar(255)
30
+ # name varchar(255)
31
+ # data text
32
+ # user_id integer
33
+ # model_class_name varchar(255)
34
+ # created_at datetime
35
+ # updated_at datetime
36
+ #
37
+ # Indexes
38
+ #
39
+ # index_will_filter_filters_on_user_id (user_id)
40
+ #
41
+ #++
42
+
43
+ class Tr8n::TranslationSourceFilter < Tr8n::BaseFilter
44
+
45
+ def model_class
46
+ Tr8n::TranslationSource
47
+ end
48
+
49
+ def inner_joins
50
+ [:translation_domain]
51
+ end
52
+
53
+ end
@@ -1,39 +1,58 @@
1
- #--
2
- # Copyright (c) 2010-2012 Michael Berkovich, tr8n.net
3
- #
4
- # Permission is hereby granted, free of charge, to any person obtaining
5
- # a copy of this software and associated documentation files (the
6
- # "Software"), to deal in the Software without restriction, including
7
- # without limitation the rights to use, copy, modify, merge, publish,
8
- # distribute, sublicense, and/or sell copies of the Software, and to
9
- # permit persons to whom the Software is furnished to do so, subject to
10
- # the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be
13
- # included in all copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
- # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
- # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
- # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
- # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
- # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
- # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
- #++
23
-
24
- class Tr8n::TranslationSourceLanguage < ActiveRecord::Base
25
- set_table_name :tr8n_translation_source_languages
26
-
27
- belongs_to :translation_source, :class_name => "Tr8n::TranslationSource"
28
- belongs_to :language, :class_name => "Tr8n::Language"
29
-
30
- def self.find_or_create(translation_source, language = Tr8n::Config.current_language)
31
- source_lang = where("translation_source_id = ? and language_id = ?", translation_source.id, language.id).first
32
- source_lang ||= create(:translation_source => translation_source, :language => language)
33
- end
34
-
35
- def self.touch(translation_source, language = Tr8n::Config.current_language)
36
- find_or_create(translation_source, language).touch
37
- end
38
-
39
- end
1
+ #--
2
+ # Copyright (c) 2010-2012 Michael Berkovich, tr8n.net
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining
5
+ # a copy of this software and associated documentation files (the
6
+ # "Software"), to deal in the Software without restriction, including
7
+ # without limitation the rights to use, copy, modify, merge, publish,
8
+ # distribute, sublicense, and/or sell copies of the Software, and to
9
+ # permit persons to whom the Software is furnished to do so, subject to
10
+ # the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be
13
+ # included in all copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
+ #++
23
+ #
24
+ #-- Tr8n::TranslationSourceLanguage Schema Information
25
+ #
26
+ # Table name: tr8n_translation_source_languages
27
+ #
28
+ # id INTEGER not null, primary key
29
+ # language_id integer
30
+ # translation_source_id integer
31
+ # created_at datetime
32
+ # updated_at datetime
33
+ #
34
+ # Indexes
35
+ #
36
+ # tsllt (language_id, translation_source_id)
37
+ #
38
+ #++
39
+
40
+ class Tr8n::TranslationSourceLanguage < ActiveRecord::Base
41
+ set_table_name :tr8n_translation_source_languages
42
+
43
+ attr_accessible :language_id, :translation_source_id
44
+ attr_accessible :translation_source, :language
45
+
46
+ belongs_to :translation_source, :class_name => "Tr8n::TranslationSource"
47
+ belongs_to :language, :class_name => "Tr8n::Language"
48
+
49
+ def self.find_or_create(translation_source, language = Tr8n::Config.current_language)
50
+ source_lang = where("translation_source_id = ? and language_id = ?", translation_source.id, language.id).first
51
+ source_lang ||= create(:translation_source => translation_source, :language => language)
52
+ end
53
+
54
+ def self.touch(translation_source, language = Tr8n::Config.current_language)
55
+ find_or_create(translation_source, language).touch
56
+ end
57
+
58
+ end
@@ -1,35 +1,56 @@
1
- #--
2
- # Copyright (c) 2010-2012 Michael Berkovich, tr8n.net
3
- #
4
- # Permission is hereby granted, free of charge, to any person obtaining
5
- # a copy of this software and associated documentation files (the
6
- # "Software"), to deal in the Software without restriction, including
7
- # without limitation the rights to use, copy, modify, merge, publish,
8
- # distribute, sublicense, and/or sell copies of the Software, and to
9
- # permit persons to whom the Software is furnished to do so, subject to
10
- # the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be
13
- # included in all copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
- # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
- # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
- # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
- # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
- # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
- # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
- #++
23
-
24
- class Tr8n::TranslationVote < ActiveRecord::Base
25
- set_table_name :tr8n_translation_votes
26
-
27
- belongs_to :translation, :class_name => "Tr8n::Translation"
28
- belongs_to :translator, :class_name => "Tr8n::Translator"
29
-
30
- def self.find_or_create(translation, translator)
31
- vote = where("translation_id = ? and translator_id = ?", translation.id, translator.id).first
32
- vote ||= create(:translation => translation, :translator => translator, :vote => 0)
33
- end
34
-
35
- end
1
+ #--
2
+ # Copyright (c) 2010-2012 Michael Berkovich, tr8n.net
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining
5
+ # a copy of this software and associated documentation files (the
6
+ # "Software"), to deal in the Software without restriction, including
7
+ # without limitation the rights to use, copy, modify, merge, publish,
8
+ # distribute, sublicense, and/or sell copies of the Software, and to
9
+ # permit persons to whom the Software is furnished to do so, subject to
10
+ # the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be
13
+ # included in all copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
+ #++
23
+ #
24
+ #-- Tr8n::TranslationVote Schema Information
25
+ #
26
+ # Table name: tr8n_translation_votes
27
+ #
28
+ # id INTEGER not null, primary key
29
+ # translation_id integer not null
30
+ # translator_id integer not null
31
+ # vote integer not null
32
+ # created_at datetime
33
+ # updated_at datetime
34
+ #
35
+ # Indexes
36
+ #
37
+ # tr8n_trans_votes_trans_id_translator_id (translation_id, translator_id)
38
+ # tr8n_trans_votes_translator_id (translator_id)
39
+ #
40
+ #++
41
+
42
+ class Tr8n::TranslationVote < ActiveRecord::Base
43
+ set_table_name :tr8n_translation_votes
44
+
45
+ attr_accessible :translation_id, :translator_id, :vote
46
+ attr_accessible :translation, :translator
47
+
48
+ belongs_to :translation, :class_name => "Tr8n::Translation"
49
+ belongs_to :translator, :class_name => "Tr8n::Translator"
50
+
51
+ def self.find_or_create(translation, translator)
52
+ vote = where("translation_id = ? and translator_id = ?", translation.id, translator.id).first
53
+ vote ||= create(:translation => translation, :translator => translator, :vote => 0)
54
+ end
55
+
56
+ end