tr8n 3.2.1 → 3.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
@@ -20,9 +20,33 @@
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::LanguageCaseValueMap Schema Information
25
+ #
26
+ # Table name: tr8n_language_case_value_maps
27
+ #
28
+ # id INTEGER not null, primary key
29
+ # keyword varchar(255) not null
30
+ # language_id integer not null
31
+ # translator_id integer
32
+ # map text
33
+ # reported boolean
34
+ # created_at datetime
35
+ # updated_at datetime
36
+ #
37
+ # Indexes
38
+ #
39
+ # index_tr8n_language_case_value_maps_on_translator_id (translator_id)
40
+ # index_tr8n_language_case_value_maps_on_keyword_and_language_id (keyword, language_id)
41
+ #
42
+ #++
23
43
 
24
44
  class Tr8n::LanguageCaseValueMap < ActiveRecord::Base
25
45
  set_table_name :tr8n_language_case_value_maps
46
+
47
+ attr_accessible :keyword, :language_id, :translator_id, :map, :reported
48
+ attr_accessible :language, :translator
49
+
26
50
  after_save :clear_cache
27
51
  after_destroy :clear_cache
28
52
 
@@ -1,45 +1,68 @@
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::LanguageCaseValueMapFilter < Tr8n::BaseFilter
25
-
26
- def definition
27
- defs = super
28
- defs[:language_id][:is] = :list
29
- defs[:language_id][:is_not] = :list
30
- defs
31
- end
32
-
33
- def value_options_for(criteria_key)
34
- if criteria_key == :language_id
35
- return Tr8n::Language.filter_options
36
- end
37
-
38
- return []
39
- end
40
-
41
- def inner_joins
42
- [:language, :translator]
43
- end
44
-
45
- 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::LanguageCaseValueMapFilter 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::LanguageCaseValueMapFilter < Tr8n::BaseFilter
44
+
45
+ def model_class
46
+ Tr8n::LanguageCaseValueMap
47
+ end
48
+
49
+ def definition
50
+ defs = super
51
+ defs[:language_id][:is] = :list
52
+ defs[:language_id][:is_not] = :list
53
+ defs
54
+ end
55
+
56
+ def value_options_for(criteria_key)
57
+ if criteria_key == :language_id
58
+ return Tr8n::Language.filter_options
59
+ end
60
+
61
+ return []
62
+ end
63
+
64
+ def inner_joins
65
+ [:language, :translator]
66
+ end
67
+
68
+ end
@@ -20,9 +20,32 @@
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::LanguageFilter 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
+ #++
23
42
 
24
43
  class Tr8n::LanguageFilter < Tr8n::BaseFilter
25
44
 
45
+ def model_class
46
+ Tr8n::Language
47
+ end
48
+
26
49
  def definition
27
50
  defs = super
28
51
  defs[:fallback_language_id][:is] = :list
@@ -1,33 +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::LanguageForumAbuseReport < ActiveRecord::Base
25
- set_table_name :tr8n_language_forum_abuse_reports
26
-
27
- belongs_to :language, :class_name => "Tr8n::Language"
28
- belongs_to :translator, :class_name => "Tr8n::Translator"
29
- belongs_to :language_forum_message, :class_name => "Tr8n::LanguageForumMessage"
30
-
31
- alias :message :language_forum_message
32
-
33
- 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::LanguageForumAbuseReport Schema Information
25
+ #
26
+ # Table name: tr8n_language_forum_abuse_reports
27
+ #
28
+ # id INTEGER not null, primary key
29
+ # language_id integer not null
30
+ # translator_id integer not null
31
+ # language_forum_message_id integer not null
32
+ # reason varchar(255)
33
+ # created_at datetime
34
+ # updated_at datetime
35
+ #
36
+ # Indexes
37
+ #
38
+ # tr8n_forum_reports_message_id (language_forum_message_id)
39
+ # tr8n_forum_reports_lang_id_translator_id (language_id, translator_id)
40
+ # tr8n_forum_reports_lang_id (language_id)
41
+ #
42
+ #++
43
+
44
+ class Tr8n::LanguageForumAbuseReport < ActiveRecord::Base
45
+ set_table_name :tr8n_language_forum_abuse_reports
46
+
47
+ attr_accessible :language_id, :translator_id, :language_forum_message_id, :reason
48
+ attr_accessible :language, :translator, :language_forum_message
49
+
50
+ belongs_to :language, :class_name => "Tr8n::Language"
51
+ belongs_to :translator, :class_name => "Tr8n::Translator"
52
+ belongs_to :language_forum_message, :class_name => "Tr8n::LanguageForumMessage"
53
+
54
+ alias :message :language_forum_message
55
+
56
+ end
@@ -1,34 +1,57 @@
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::LanguageForumAbuseReportFilter < Tr8n::BaseFilter
25
-
26
- def inner_joins
27
- [["Tr8n::Language", :language_id], ["Tr8n::LanguageForumMessage", :language_forum_message_id], ["Tr8n::Translator", :translator_id]]
28
- end
29
-
30
- def inner_joins
31
- [:language, :language_forum_message, :translator]
32
- end
33
-
34
- 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::LanguageForumAbuseReportFilter 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::LanguageForumAbuseReportFilter < Tr8n::BaseFilter
44
+
45
+ def model_class
46
+ Tr8n::LanguageForumAbuseReport
47
+ end
48
+
49
+ def inner_joins
50
+ [["Tr8n::Language", :language_id], ["Tr8n::LanguageForumMessage", :language_forum_message_id], ["Tr8n::Translator", :translator_id]]
51
+ end
52
+
53
+ def inner_joins
54
+ [:language, :language_forum_message, :translator]
55
+ end
56
+
57
+ end
@@ -1,46 +1,69 @@
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::LanguageForumMessage < ActiveRecord::Base
25
- set_table_name :tr8n_language_forum_messages
26
-
27
- belongs_to :language, :class_name => "Tr8n::Language"
28
- belongs_to :translator, :class_name => "Tr8n::Translator"
29
- belongs_to :language_forum_topic, :class_name => "Tr8n::LanguageForumTopic"
30
-
31
- has_many :language_forum_abuse_reports, :class_name => "Tr8n::LanguageForumAbuseReport", :dependent => :destroy
32
-
33
- alias :topic :language_forum_topic
34
-
35
- def submit_abuse_report(reporter)
36
- report = Tr8n::LanguageForumAbuseReport.where("language_forum_message_id = ? and translator_id = ?", self.id, reporter.id).first
37
- report ||= Tr8n::LanguageForumAbuseReport.create(:language_forum_message => self, :translator => reporter, :language => language)
38
- translator.update_attributes(:reported => true)
39
- report
40
- end
41
-
42
- def toHTML
43
- return "" unless message
44
- ERB::Util.html_escape(message).gsub("\n", "<br>")
45
- end
46
- 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::LanguageForumMessage Schema Information
25
+ #
26
+ # Table name: tr8n_language_forum_messages
27
+ #
28
+ # id INTEGER not null, primary key
29
+ # language_id integer not null
30
+ # language_forum_topic_id integer not null
31
+ # translator_id integer not null
32
+ # message text not null
33
+ # created_at datetime
34
+ # updated_at datetime
35
+ #
36
+ # Indexes
37
+ #
38
+ # tr8n_forum_msgs_lang_id_topic_id (language_id, language_forum_topic_id)
39
+ # tr8n_forums_msgs_translator_id (translator_id)
40
+ # tr8n_forum_msgs_lang_id (language_id)
41
+ #
42
+ #++
43
+
44
+ class Tr8n::LanguageForumMessage < ActiveRecord::Base
45
+ set_table_name :tr8n_language_forum_messages
46
+
47
+ attr_accessible :language_id, :language_forum_topic_id, :translator_id, :message
48
+ attr_accessible :language, :translator, :language_forum_topic
49
+
50
+ belongs_to :language, :class_name => "Tr8n::Language"
51
+ belongs_to :translator, :class_name => "Tr8n::Translator"
52
+ belongs_to :language_forum_topic, :class_name => "Tr8n::LanguageForumTopic"
53
+
54
+ has_many :language_forum_abuse_reports, :class_name => "Tr8n::LanguageForumAbuseReport", :dependent => :destroy
55
+
56
+ alias :topic :language_forum_topic
57
+
58
+ def submit_abuse_report(reporter)
59
+ report = Tr8n::LanguageForumAbuseReport.where("language_forum_message_id = ? and translator_id = ?", self.id, reporter.id).first
60
+ report ||= Tr8n::LanguageForumAbuseReport.create(:language_forum_message => self, :translator => reporter, :language => language)
61
+ translator.update_attributes(:reported => true)
62
+ report
63
+ end
64
+
65
+ def toHTML
66
+ return "" unless message
67
+ ERB::Util.html_escape(message).gsub("\n", "<br>")
68
+ end
69
+ end