comunit-base 0.37.200628.0

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 (752) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +426 -0
  4. data/Rakefile +26 -0
  5. data/app/assets/config/comunit_base_manifest.js +2 -0
  6. data/app/assets/images/comunit/base/icons/book.svg +1 -0
  7. data/app/assets/images/comunit/base/icons/comment.svg +1 -0
  8. data/app/assets/images/comunit/base/icons/dropdown.svg +3 -0
  9. data/app/assets/images/comunit/base/icons/hamburger.svg +1 -0
  10. data/app/assets/images/comunit/base/icons/pencil.svg +1 -0
  11. data/app/assets/images/comunit/base/icons/recent.svg +1 -0
  12. data/app/assets/images/comunit/base/icons/repost.svg +1 -0
  13. data/app/assets/images/comunit/base/icons/right-arrow.svg +1 -0
  14. data/app/assets/images/comunit/base/icons/search.svg +1 -0
  15. data/app/assets/images/comunit/base/icons/slider/left-arrow-hover.svg +4 -0
  16. data/app/assets/images/comunit/base/icons/slider/left-arrow.svg +4 -0
  17. data/app/assets/images/comunit/base/icons/slider/right-arrow-hover.svg +4 -0
  18. data/app/assets/images/comunit/base/icons/slider/right-arrow.svg +4 -0
  19. data/app/assets/images/comunit/base/icons/view.svg +1 -0
  20. data/app/assets/images/comunit/base/placeholders/file.svg +1 -0
  21. data/app/assets/images/comunit/base/placeholders/region_image.svg +12 -0
  22. data/app/assets/images/comunit/base/publisher_logo1.png +0 -0
  23. data/app/assets/javascripts/comunit/base/components/regions.js +0 -0
  24. data/app/assets/javascripts/comunit/base/comunit-base.js +197 -0
  25. data/app/assets/javascripts/comunit/base/socialization.js +47 -0
  26. data/app/assets/stylesheets/biovision/regions/regions.scss +25 -0
  27. data/app/assets/stylesheets/comunit/base/admin.scss +95 -0
  28. data/app/assets/stylesheets/comunit/base/albums.scss +101 -0
  29. data/app/assets/stylesheets/comunit/base/components.scss +8 -0
  30. data/app/assets/stylesheets/comunit/base/components/calendar.scss +62 -0
  31. data/app/assets/stylesheets/comunit/base/components/campaigns.scss +1 -0
  32. data/app/assets/stylesheets/comunit/base/components/campaigns/candidates.scss +16 -0
  33. data/app/assets/stylesheets/comunit/base/components/carousel.scss +36 -0
  34. data/app/assets/stylesheets/comunit/base/components/deeds.scss +2 -0
  35. data/app/assets/stylesheets/comunit/base/components/deeds/form.scss +26 -0
  36. data/app/assets/stylesheets/comunit/base/components/deeds/preview.scss +11 -0
  37. data/app/assets/stylesheets/comunit/base/components/forms.scss +24 -0
  38. data/app/assets/stylesheets/comunit/base/components/forms/inputs.scss +32 -0
  39. data/app/assets/stylesheets/comunit/base/components/posts.scss +28 -0
  40. data/app/assets/stylesheets/comunit/base/components/posts/featured.scss +86 -0
  41. data/app/assets/stylesheets/comunit/base/components/posts/item.scss +91 -0
  42. data/app/assets/stylesheets/comunit/base/components/posts/list.scss +20 -0
  43. data/app/assets/stylesheets/comunit/base/components/posts/my-form.scss +32 -0
  44. data/app/assets/stylesheets/comunit/base/components/posts/preview.scss +169 -0
  45. data/app/assets/stylesheets/comunit/base/default.scss +74 -0
  46. data/app/assets/stylesheets/comunit/base/default_site.scss +6 -0
  47. data/app/assets/stylesheets/comunit/base/entries.scss +145 -0
  48. data/app/assets/stylesheets/comunit/base/events.scss +161 -0
  49. data/app/assets/stylesheets/comunit/base/layout.scss +417 -0
  50. data/app/assets/stylesheets/comunit/base/notifications.scss +12 -0
  51. data/app/assets/stylesheets/comunit/base/posts.scss +798 -0
  52. data/app/assets/stylesheets/comunit/base/socialization.scss +112 -0
  53. data/app/assets/stylesheets/comunit/base/themes/default.scss +34 -0
  54. data/app/assets/stylesheets/comunit/base/themes/default/footer.scss +45 -0
  55. data/app/assets/stylesheets/comunit/base/themes/default/frontpage.scss +2 -0
  56. data/app/assets/stylesheets/comunit/base/themes/default/frontpage/featured_posts.scss +8 -0
  57. data/app/assets/stylesheets/comunit/base/themes/default/frontpage/post_category.scss +36 -0
  58. data/app/assets/stylesheets/comunit/base/themes/default/header.scss +108 -0
  59. data/app/assets/stylesheets/comunit/base/themes/default/header/navigation.scss +139 -0
  60. data/app/assets/stylesheets/comunit/base/themes/default/header/search.scss +31 -0
  61. data/app/assets/stylesheets/comunit/base/themes/default/legacy.scss +183 -0
  62. data/app/assets/stylesheets/comunit/base/themes/default/main.scss +45 -0
  63. data/app/assets/stylesheets/comunit/base/themes/default/sidebar.scss +49 -0
  64. data/app/assets/stylesheets/comunit/base/themes/default/sidebar/polls.scss +38 -0
  65. data/app/assets/stylesheets/comunit/base/themes/default/sidebar/posts.scss +133 -0
  66. data/app/assets/stylesheets/comunit/base/users.scss +142 -0
  67. data/app/assets/stylesheets/comunit/base/vars.scss +17 -0
  68. data/app/controllers/admin/albums_controller.rb +35 -0
  69. data/app/controllers/admin/appeals_controller.rb +30 -0
  70. data/app/controllers/admin/campaigns_controller.rb +37 -0
  71. data/app/controllers/admin/candidates_controller.rb +28 -0
  72. data/app/controllers/admin/countries_controller.rb +26 -0
  73. data/app/controllers/admin/decision_users_controller.rb +2 -0
  74. data/app/controllers/admin/decisions_controller.rb +2 -0
  75. data/app/controllers/admin/deed_categories_controller.rb +51 -0
  76. data/app/controllers/admin/deeds_controller.rb +28 -0
  77. data/app/controllers/admin/event_materials_controller.rb +25 -0
  78. data/app/controllers/admin/event_participants_controller.rb +27 -0
  79. data/app/controllers/admin/event_programs_controller.rb +20 -0
  80. data/app/controllers/admin/event_speakers_controller.rb +30 -0
  81. data/app/controllers/admin/event_sponsors_controller.rb +30 -0
  82. data/app/controllers/admin/events_controller.rb +54 -0
  83. data/app/controllers/admin/groups_controller.rb +54 -0
  84. data/app/controllers/admin/photos_controller.rb +25 -0
  85. data/app/controllers/admin/political_forces_controller.rb +45 -0
  86. data/app/controllers/admin/promo_blocks_controller.rb +27 -0
  87. data/app/controllers/admin/promo_items_controller.rb +22 -0
  88. data/app/controllers/admin/regions_controller.rb +53 -0
  89. data/app/controllers/admin/teams_controller.rb +53 -0
  90. data/app/controllers/admin/user_messages_controller.rb +2 -0
  91. data/app/controllers/albums_controller.rb +68 -0
  92. data/app/controllers/api/user_links_controller.rb +23 -0
  93. data/app/controllers/api/users_controller.rb +71 -0
  94. data/app/controllers/appeals_controller.rb +78 -0
  95. data/app/controllers/articles_controller.rb +49 -0
  96. data/app/controllers/authors_controller.rb +27 -0
  97. data/app/controllers/campaigns_controller.rb +130 -0
  98. data/app/controllers/candidates_controller.rb +70 -0
  99. data/app/controllers/decision_users_controller.rb +2 -0
  100. data/app/controllers/decisions_controller.rb +2 -0
  101. data/app/controllers/deed_categories_controller.rb +70 -0
  102. data/app/controllers/deeds_controller.rb +95 -0
  103. data/app/controllers/editorial/index_controller.rb +11 -0
  104. data/app/controllers/editorial/users_controller.rb +34 -0
  105. data/app/controllers/entries_controller.rb +140 -0
  106. data/app/controllers/event_materials_controller.rb +55 -0
  107. data/app/controllers/event_participants_controller.rb +44 -0
  108. data/app/controllers/event_programs_controller.rb +55 -0
  109. data/app/controllers/event_speakers_controller.rb +55 -0
  110. data/app/controllers/event_sponsors_controller.rb +55 -0
  111. data/app/controllers/events_controller.rb +69 -0
  112. data/app/controllers/featured_posts_controller.rb +42 -0
  113. data/app/controllers/groups_controller.rb +57 -0
  114. data/app/controllers/impeachment_controller.rb +15 -0
  115. data/app/controllers/index_controller.rb +42 -0
  116. data/app/controllers/legacy/admin/post_categories_controller.rb +28 -0
  117. data/app/controllers/legacy/admin/posts_controller.rb +31 -0
  118. data/app/controllers/legacy/news_controller.rb +116 -0
  119. data/app/controllers/legacy/post_categories_controller.rb +74 -0
  120. data/app/controllers/legacy/posts_controller.rb +132 -0
  121. data/app/controllers/my/albums_controller.rb +2 -0
  122. data/app/controllers/my/deeds_controller.rb +42 -0
  123. data/app/controllers/my/entries_controller.rb +8 -0
  124. data/app/controllers/my/followees_controller.rb +9 -0
  125. data/app/controllers/my/followers_controller.rb +9 -0
  126. data/app/controllers/my/messages_controller.rb +23 -0
  127. data/app/controllers/my/notifications_controller.rb +8 -0
  128. data/app/controllers/network/campaigns_controller.rb +11 -0
  129. data/app/controllers/network/candidates_controller.rb +11 -0
  130. data/app/controllers/network/political_forces_controller.rb +11 -0
  131. data/app/controllers/network/posts_controller.rb +11 -0
  132. data/app/controllers/network/regions_controller.rb +11 -0
  133. data/app/controllers/network/sites_controller.rb +15 -0
  134. data/app/controllers/network/users_controller.rb +22 -0
  135. data/app/controllers/network_controller.rb +68 -0
  136. data/app/controllers/news_categories_controller.rb +59 -0
  137. data/app/controllers/news_controller.rb +67 -0
  138. data/app/controllers/photos_controller.rb +67 -0
  139. data/app/controllers/political_forces_controller.rb +70 -0
  140. data/app/controllers/profiles_controller.rb +27 -0
  141. data/app/controllers/promo_blocks_controller.rb +64 -0
  142. data/app/controllers/promo_items_controller.rb +68 -0
  143. data/app/controllers/regional_news_controller.rb +26 -0
  144. data/app/controllers/search_controller.rb +10 -0
  145. data/app/controllers/teams_controller.rb +56 -0
  146. data/app/controllers/user_messages_controller.rb +41 -0
  147. data/app/controllers/users_controller.rb +94 -0
  148. data/app/helpers/albums_helper.rb +37 -0
  149. data/app/helpers/campaigns_helper.rb +98 -0
  150. data/app/helpers/comments_helper.rb +15 -0
  151. data/app/helpers/deeds_helper.rb +36 -0
  152. data/app/helpers/entries_helper.rb +104 -0
  153. data/app/helpers/events_helper.rb +80 -0
  154. data/app/helpers/feedback_helper.rb +6 -0
  155. data/app/helpers/groups_helper.rb +11 -0
  156. data/app/helpers/media_helper.rb +19 -0
  157. data/app/helpers/parsing_helper.rb +80 -0
  158. data/app/helpers/promo_helper.rb +38 -0
  159. data/app/helpers/regions_helper.rb +77 -0
  160. data/app/helpers/users_helper.rb +37 -0
  161. data/app/helpers/votes_helper.rb +24 -0
  162. data/app/jobs/application_job.rb +7 -0
  163. data/app/jobs/network_campaign_sync_job.rb +20 -0
  164. data/app/jobs/network_candidate_sync_job.rb +20 -0
  165. data/app/jobs/network_entity_sync_job.rb +31 -0
  166. data/app/jobs/network_political_force_sync_job.rb +20 -0
  167. data/app/jobs/network_post_sync_job.rb +22 -0
  168. data/app/jobs/network_user_sync_job.rb +20 -0
  169. data/app/mailers/appeals_mailer.rb +12 -0
  170. data/app/mailers/application_mailer.rb +5 -0
  171. data/app/models/album.rb +42 -0
  172. data/app/models/appeal.rb +50 -0
  173. data/app/models/appeal_type.rb +45 -0
  174. data/app/models/application_record.rb +3 -0
  175. data/app/models/campaign.rb +78 -0
  176. data/app/models/candidate.rb +144 -0
  177. data/app/models/candidate_political_force.rb +15 -0
  178. data/app/models/central_region.rb +53 -0
  179. data/app/models/concerns/post_child_with_priority.rb +49 -0
  180. data/app/models/country.rb +33 -0
  181. data/app/models/decision.rb +38 -0
  182. data/app/models/decision_user.rb +25 -0
  183. data/app/models/deed.rb +78 -0
  184. data/app/models/deed_category.rb +95 -0
  185. data/app/models/deed_deed_category.rb +15 -0
  186. data/app/models/deed_image.rb +33 -0
  187. data/app/models/entry.rb +128 -0
  188. data/app/models/event.rb +47 -0
  189. data/app/models/event_material.rb +44 -0
  190. data/app/models/event_participant.rb +52 -0
  191. data/app/models/event_program.rb +50 -0
  192. data/app/models/event_speaker.rb +69 -0
  193. data/app/models/event_sponsor.rb +69 -0
  194. data/app/models/featured_post.rb +20 -0
  195. data/app/models/group.rb +34 -0
  196. data/app/models/illustration.rb +11 -0
  197. data/app/models/news.rb +110 -0
  198. data/app/models/news_category.rb +60 -0
  199. data/app/models/notification.rb +64 -0
  200. data/app/models/photo.rb +53 -0
  201. data/app/models/political_force.rb +62 -0
  202. data/app/models/privilege.rb +188 -0
  203. data/app/models/promo_block.rb +49 -0
  204. data/app/models/promo_item.rb +36 -0
  205. data/app/models/region.rb +149 -0
  206. data/app/models/region_user.rb +28 -0
  207. data/app/models/site.rb +29 -0
  208. data/app/models/team.rb +72 -0
  209. data/app/models/team_privilege.rb +6 -0
  210. data/app/models/theme.rb +26 -0
  211. data/app/models/theme_news_category.rb +4 -0
  212. data/app/models/theme_post_category.rb +4 -0
  213. data/app/models/user_group.rb +6 -0
  214. data/app/models/user_link.rb +69 -0
  215. data/app/models/user_message.rb +86 -0
  216. data/app/models/zen_category.rb +21 -0
  217. data/app/services/biovision/components/campaigns_component.rb +14 -0
  218. data/app/services/biovision/components/decisions_component.rb +9 -0
  219. data/app/services/biovision/components/deeds_component.rb +15 -0
  220. data/app/services/biovision/components/regions_component.rb +32 -0
  221. data/app/services/comunit/network/handler.rb +162 -0
  222. data/app/services/comunit/network/handlers/decision_handler.rb +16 -0
  223. data/app/services/comunit/network/handlers/deed_category_handler.rb +31 -0
  224. data/app/services/comunit/network/handlers/deed_handler.rb +58 -0
  225. data/app/services/comunit/network/handlers/deed_image_handler.rb +40 -0
  226. data/app/services/comunit/network/handlers/poll_answer_handler.rb +41 -0
  227. data/app/services/comunit/network/handlers/poll_handler.rb +46 -0
  228. data/app/services/comunit/network/handlers/poll_question_handler.rb +31 -0
  229. data/app/services/comunit/network/handlers/poll_vote_handler.rb +41 -0
  230. data/app/services/comunit/network/handlers/site_handler.rb +21 -0
  231. data/app/services/comunit/network/handlers/user_handler.rb +45 -0
  232. data/app/services/comunit/network/logging.rb +33 -0
  233. data/app/services/comunit/network/sending.rb +28 -0
  234. data/app/services/network_manager.rb +116 -0
  235. data/app/services/network_manager/campaign_handler.rb +96 -0
  236. data/app/services/network_manager/candidate_handler.rb +137 -0
  237. data/app/services/network_manager/political_force_handler.rb +85 -0
  238. data/app/services/network_manager/post_attachment_handler.rb +18 -0
  239. data/app/services/network_manager/post_handler.rb +133 -0
  240. data/app/services/network_manager/post_type_handler.rb +15 -0
  241. data/app/services/network_manager/region_handler.rb +83 -0
  242. data/app/services/network_manager/user_handler.rb +158 -0
  243. data/app/services/popular_entries.rb +25 -0
  244. data/app/services/popular_posts.rb +28 -0
  245. data/app/services/post_manager.rb +79 -0
  246. data/app/services/post_parser.rb +77 -0
  247. data/app/services/region_manager.rb +60 -0
  248. data/app/services/user_profile_handler.rb +74 -0
  249. data/app/uploaders/event_attachment_uploader.rb +15 -0
  250. data/app/uploaders/event_image_uploader.rb +32 -0
  251. data/app/uploaders/event_person_image_uploader.rb +40 -0
  252. data/app/uploaders/event_sponsor_image_uploader.rb +40 -0
  253. data/app/uploaders/header_image_uploader.rb +50 -0
  254. data/app/uploaders/illustration_image_uploader.rb +32 -0
  255. data/app/uploaders/photo_uploader.rb +55 -0
  256. data/app/uploaders/post_illustration_uploader.rb +73 -0
  257. data/app/uploaders/post_image_uploader.rb +54 -0
  258. data/app/uploaders/promo_image_uploader.rb +53 -0
  259. data/app/uploaders/region_image_uploader.rb +53 -0
  260. data/app/uploaders/site_image_uploader.rb +55 -0
  261. data/app/views/about/donate.html.erb +12 -0
  262. data/app/views/admin/albums/_list.html.erb +11 -0
  263. data/app/views/admin/albums/_nav_item.html.erb +6 -0
  264. data/app/views/admin/albums/_toggleable.html.erb +7 -0
  265. data/app/views/admin/albums/entity/_in_list.html.erb +19 -0
  266. data/app/views/admin/albums/index.html.erb +14 -0
  267. data/app/views/admin/albums/photos.html.erb +23 -0
  268. data/app/views/admin/albums/show.html.erb +55 -0
  269. data/app/views/admin/appeals/_form.html.erb +15 -0
  270. data/app/views/admin/appeals/_list.html.erb +17 -0
  271. data/app/views/admin/appeals/_nav_item.html.erb +2 -0
  272. data/app/views/admin/appeals/_toggleable.html.erb +7 -0
  273. data/app/views/admin/appeals/entity/_in_list.html.erb +13 -0
  274. data/app/views/admin/appeals/index.html.erb +13 -0
  275. data/app/views/admin/appeals/show.html.erb +67 -0
  276. data/app/views/admin/campaigns/_nav_item.html.erb +6 -0
  277. data/app/views/admin/campaigns/candidates.html.erb +24 -0
  278. data/app/views/admin/campaigns/entity/_in_list.html.erb +40 -0
  279. data/app/views/admin/campaigns/index.html.erb +21 -0
  280. data/app/views/admin/campaigns/new_candidate.html.erb +24 -0
  281. data/app/views/admin/campaigns/show.html.erb +73 -0
  282. data/app/views/admin/candidates/_nav_item.html.erb +6 -0
  283. data/app/views/admin/candidates/entity/_in_list.html.erb +29 -0
  284. data/app/views/admin/candidates/entity/_political_forces.html.erb +23 -0
  285. data/app/views/admin/candidates/index.html.erb +22 -0
  286. data/app/views/admin/candidates/show.html.erb +93 -0
  287. data/app/views/admin/components/links/_campaigns.html.erb +5 -0
  288. data/app/views/admin/components/links/_deeds.html.erb +2 -0
  289. data/app/views/admin/components/links/_regions.html.erb +3 -0
  290. data/app/views/admin/components/user_settings/_regions.html.erb +22 -0
  291. data/app/views/admin/components/user_settings/regions/_linked_regions.html.erb +23 -0
  292. data/app/views/admin/components/user_settings/regions/_new_link.html.erb +43 -0
  293. data/app/views/admin/countries/_nav_item.html.erb +2 -0
  294. data/app/views/admin/deed_categories/_nav_item.html.erb +6 -0
  295. data/app/views/admin/deed_categories/entity/_in_list.html.erb +31 -0
  296. data/app/views/admin/deed_categories/index.html.erb +22 -0
  297. data/app/views/admin/deed_categories/show.html.erb +79 -0
  298. data/app/views/admin/deeds/_nav_item.html.erb +6 -0
  299. data/app/views/admin/deeds/entity/_categories.html.erb +33 -0
  300. data/app/views/admin/deeds/entity/_in_list.html.erb +31 -0
  301. data/app/views/admin/deeds/index.html.erb +24 -0
  302. data/app/views/admin/deeds/show.html.erb +63 -0
  303. data/app/views/admin/event_materials/_list.html.erb +11 -0
  304. data/app/views/admin/event_materials/_toggleable.html.erb +7 -0
  305. data/app/views/admin/event_materials/entity/_in_list.html.erb +16 -0
  306. data/app/views/admin/event_participants/_list.html.erb +11 -0
  307. data/app/views/admin/event_participants/_nav_item.html.erb +6 -0
  308. data/app/views/admin/event_participants/_toggleable.html.erb +7 -0
  309. data/app/views/admin/event_participants/entity/_in_list.html.erb +22 -0
  310. data/app/views/admin/event_participants/index.html.erb +15 -0
  311. data/app/views/admin/event_participants/show.html.erb +10 -0
  312. data/app/views/admin/event_programs/_list.html.erb +11 -0
  313. data/app/views/admin/event_programs/entity/_in_list.html.erb +9 -0
  314. data/app/views/admin/event_programs/show.html.erb +11 -0
  315. data/app/views/admin/event_speakers/_list.html.erb +11 -0
  316. data/app/views/admin/event_speakers/_toggleable.html.erb +7 -0
  317. data/app/views/admin/event_speakers/entity/_in_list.html.erb +17 -0
  318. data/app/views/admin/event_sponsors/_list.html.erb +11 -0
  319. data/app/views/admin/event_sponsors/_toggleable.html.erb +7 -0
  320. data/app/views/admin/event_sponsors/entity/_in_list.html.erb +17 -0
  321. data/app/views/admin/events/_event.html.erb +57 -0
  322. data/app/views/admin/events/_nav_item.html.erb +6 -0
  323. data/app/views/admin/events/_toggleable.html.erb +7 -0
  324. data/app/views/admin/events/entity/_in_list.html.erb +24 -0
  325. data/app/views/admin/events/entity/_materials.html.erb +14 -0
  326. data/app/views/admin/events/entity/_programs.html.erb +14 -0
  327. data/app/views/admin/events/entity/_speakers.html.erb +14 -0
  328. data/app/views/admin/events/entity/_sponsors.html.erb +14 -0
  329. data/app/views/admin/events/index.html.erb +16 -0
  330. data/app/views/admin/events/participants.html.erb +22 -0
  331. data/app/views/admin/events/show.html.erb +32 -0
  332. data/app/views/admin/featured_posts/_add.html.erb +128 -0
  333. data/app/views/admin/featured_posts/_language.html.erb +14 -0
  334. data/app/views/admin/featured_posts/_nav_item.html.erb +2 -0
  335. data/app/views/admin/featured_posts/entity/_in_list.html.erb +26 -0
  336. data/app/views/admin/featured_posts/index.html.erb +18 -0
  337. data/app/views/admin/groups/_list.html.erb +11 -0
  338. data/app/views/admin/groups/_nav_item.html.erb +6 -0
  339. data/app/views/admin/groups/entity/_in_list.html.erb +15 -0
  340. data/app/views/admin/groups/index.html.erb +11 -0
  341. data/app/views/admin/groups/show.html.erb +89 -0
  342. data/app/views/admin/groups/users.jbuilder +11 -0
  343. data/app/views/admin/groups/users/_list.html.erb +18 -0
  344. data/app/views/admin/groups/users/_user.html.erb +24 -0
  345. data/app/views/admin/index/_additional.html.erb +0 -0
  346. data/app/views/admin/index/_custom_dashboard.html.erb +3 -0
  347. data/app/views/admin/index/dashboard/_event_manager.html.erb +8 -0
  348. data/app/views/admin/index/dashboard/_feedback_manager.html.erb +8 -0
  349. data/app/views/admin/index/dashboard/_promo_manager.html.erb +10 -0
  350. data/app/views/admin/photos/_list.html.erb +11 -0
  351. data/app/views/admin/photos/entity/_in_list.html.erb +13 -0
  352. data/app/views/admin/photos/show.html.erb +42 -0
  353. data/app/views/admin/political_forces/_nav_item.html.erb +6 -0
  354. data/app/views/admin/political_forces/candidates.html.erb +25 -0
  355. data/app/views/admin/political_forces/entity/_in_list.html.erb +24 -0
  356. data/app/views/admin/political_forces/index.html.erb +21 -0
  357. data/app/views/admin/political_forces/show.html.erb +48 -0
  358. data/app/views/admin/post_attachments/entity/_in_list.html.erb +12 -0
  359. data/app/views/admin/posts/_list.html.erb +15 -0
  360. data/app/views/admin/posts/_nav_item.html.erb +2 -0
  361. data/app/views/admin/posts/_toggleable.html.erb +7 -0
  362. data/app/views/admin/posts/entity/_additional_data.html.erb +0 -0
  363. data/app/views/admin/posts/entity/_attachments.html.erb +14 -0
  364. data/app/views/admin/posts/entity/_in_list.html.erb +90 -0
  365. data/app/views/admin/posts/entity/_in_search.html.erb +8 -0
  366. data/app/views/admin/posts/entity/_links.html.erb +125 -0
  367. data/app/views/admin/posts/entity/in_list/_additional_data.html.erb +0 -0
  368. data/app/views/admin/posts/images.html.erb +22 -0
  369. data/app/views/admin/posts/index.html.erb +16 -0
  370. data/app/views/admin/posts/post/_preview.html.erb +28 -0
  371. data/app/views/admin/posts/regions.jbuilder +10 -0
  372. data/app/views/admin/posts/search.jbuilder +26 -0
  373. data/app/views/admin/posts/show.html.erb +208 -0
  374. data/app/views/admin/privileges/entity/_groups.html.erb +33 -0
  375. data/app/views/admin/privileges/entity/_in_list.html.erb +54 -0
  376. data/app/views/admin/privileges/entity/_region.html.erb +12 -0
  377. data/app/views/admin/privileges/index.html.erb +25 -0
  378. data/app/views/admin/privileges/regions.jbuilder +10 -0
  379. data/app/views/admin/privileges/show.html.erb +81 -0
  380. data/app/views/admin/promo_blocks/_nav_item.html.erb +6 -0
  381. data/app/views/admin/promo_blocks/entity/_in_list.html.erb +34 -0
  382. data/app/views/admin/promo_blocks/entity/_items.html.erb +23 -0
  383. data/app/views/admin/promo_blocks/index.html.erb +14 -0
  384. data/app/views/admin/promo_blocks/show.html.erb +52 -0
  385. data/app/views/admin/promo_items/entity/_in_list.html.erb +31 -0
  386. data/app/views/admin/promo_items/show.html.erb +69 -0
  387. data/app/views/admin/regions/_nav_item.html.erb +2 -0
  388. data/app/views/admin/regions/_news_form.html.erb +91 -0
  389. data/app/views/admin/regions/_post_form.html.erb +91 -0
  390. data/app/views/admin/regions/_region.jbuilder +11 -0
  391. data/app/views/admin/regions/entity/_in_list.html.erb +22 -0
  392. data/app/views/admin/regions/index.html.erb +16 -0
  393. data/app/views/admin/regions/index.jbuilder +3 -0
  394. data/app/views/admin/regions/show.html.erb +90 -0
  395. data/app/views/admin/regions/show.jbuilder +8 -0
  396. data/app/views/admin/teams/_list.html.erb +11 -0
  397. data/app/views/admin/teams/_nav_item.html.erb +6 -0
  398. data/app/views/admin/teams/_toggleable.html.erb +7 -0
  399. data/app/views/admin/teams/entity/_in_list.html.erb +18 -0
  400. data/app/views/admin/teams/entity/_privileges.html.erb +33 -0
  401. data/app/views/admin/teams/index.html.erb +11 -0
  402. data/app/views/admin/teams/show.html.erb +16 -0
  403. data/app/views/admin/users/entity/_in_list.html.erb +53 -0
  404. data/app/views/admin/users/entity/_privilege.html.erb +33 -0
  405. data/app/views/admin/users/entity/_profile.html.erb +75 -0
  406. data/app/views/albums/_form.html.erb +59 -0
  407. data/app/views/albums/_list.html.erb +13 -0
  408. data/app/views/albums/edit.html.erb +13 -0
  409. data/app/views/albums/new.html.erb +12 -0
  410. data/app/views/albums/show.html.erb +21 -0
  411. data/app/views/api/user_links/not_found.jbuilder +3 -0
  412. data/app/views/appeals/_form.html.erb +44 -0
  413. data/app/views/appeals/edit.js.erb +1 -0
  414. data/app/views/appeals/new.html.erb +12 -0
  415. data/app/views/appeals/new.js.erb +1 -0
  416. data/app/views/appeals_mailer/appeal_reply.html.erb +10 -0
  417. data/app/views/articles/category.html.erb +18 -0
  418. data/app/views/articles/index.html.erb +17 -0
  419. data/app/views/articles/show.html.erb +6 -0
  420. data/app/views/articles/tagged.html.erb +14 -0
  421. data/app/views/authentication/_info.html.erb +8 -0
  422. data/app/views/authentication/new.html.erb +9 -0
  423. data/app/views/authors/_list.html.erb +18 -0
  424. data/app/views/authors/entity/_in_list.html.erb +9 -0
  425. data/app/views/authors/index.html.erb +10 -0
  426. data/app/views/authors/show.html.erb +25 -0
  427. data/app/views/blog_posts/category.html.erb +18 -0
  428. data/app/views/blog_posts/show.html.erb +6 -0
  429. data/app/views/blog_posts/tagged.html.erb +14 -0
  430. data/app/views/campaigns/_form.html.erb +91 -0
  431. data/app/views/campaigns/candidate.html.erb +29 -0
  432. data/app/views/campaigns/edit.html.erb +17 -0
  433. data/app/views/campaigns/new.html.erb +15 -0
  434. data/app/views/candidates/_form.html.erb +209 -0
  435. data/app/views/candidates/edit.html.erb +19 -0
  436. data/app/views/candidates/new.html.erb +11 -0
  437. data/app/views/deed_categories/_form.html.erb +44 -0
  438. data/app/views/deed_categories/edit.html.erb +18 -0
  439. data/app/views/deed_categories/new.html.erb +16 -0
  440. data/app/views/deeds/_form.html.erb +114 -0
  441. data/app/views/deeds/_list.html.erb +18 -0
  442. data/app/views/deeds/_preview.html.erb +6 -0
  443. data/app/views/deeds/_regions.html.erb +91 -0
  444. data/app/views/deeds/edit.html.erb +12 -0
  445. data/app/views/deeds/form/_categories.html.erb +30 -0
  446. data/app/views/deeds/index.html.erb +32 -0
  447. data/app/views/deeds/new.html.erb +15 -0
  448. data/app/views/deeds/regions.jbuilder +10 -0
  449. data/app/views/deeds/show.html.erb +28 -0
  450. data/app/views/editable_pages/form/_ckeditor.html.erb +12 -0
  451. data/app/views/editorial/index/_navigation.html.erb +17 -0
  452. data/app/views/editorial/index/index.html.erb +16 -0
  453. data/app/views/editorial/users/_filter.html.erb +12 -0
  454. data/app/views/editorial/users/_list.html.erb +17 -0
  455. data/app/views/editorial/users/_nav_item.html.erb +6 -0
  456. data/app/views/editorial/users/_toggleable.html.erb +7 -0
  457. data/app/views/editorial/users/entity/_in_list.html.erb +19 -0
  458. data/app/views/editorial/users/index.html.erb +14 -0
  459. data/app/views/editorial/users/show.html.erb +107 -0
  460. data/app/views/entries/_adjacent.html.erb +16 -0
  461. data/app/views/entries/_entry.html.erb +39 -0
  462. data/app/views/entries/_form.html.erb +53 -0
  463. data/app/views/entries/_list.html.erb +9 -0
  464. data/app/views/entries/_preview.html.erb +22 -0
  465. data/app/views/entries/_recent.html.erb +7 -0
  466. data/app/views/entries/_repost_form.html.erb +108 -0
  467. data/app/views/entries/_sidebar_preview.html.erb +10 -0
  468. data/app/views/entries/archive.html.erb +14 -0
  469. data/app/views/entries/archive/_month_list.html.erb +27 -0
  470. data/app/views/entries/edit.html.erb +14 -0
  471. data/app/views/entries/index.html.erb +17 -0
  472. data/app/views/entries/new.html.erb +10 -0
  473. data/app/views/entries/new_repost.html.erb +8 -0
  474. data/app/views/entries/show.html.erb +15 -0
  475. data/app/views/event_materials/_form.html.erb +66 -0
  476. data/app/views/event_materials/edit.html.erb +11 -0
  477. data/app/views/event_materials/new.html.erb +13 -0
  478. data/app/views/event_participants/_form.html.erb +28 -0
  479. data/app/views/event_participants/edit.html.erb +12 -0
  480. data/app/views/event_participants/new.html.erb +13 -0
  481. data/app/views/event_programs/_form.html.erb +48 -0
  482. data/app/views/event_programs/edit.html.erb +11 -0
  483. data/app/views/event_programs/new.html.erb +13 -0
  484. data/app/views/event_speakers/_form.html.erb +75 -0
  485. data/app/views/event_speakers/edit.html.erb +11 -0
  486. data/app/views/event_speakers/new.html.erb +13 -0
  487. data/app/views/event_sponsors/_form.html.erb +75 -0
  488. data/app/views/event_sponsors/edit.html.erb +11 -0
  489. data/app/views/event_sponsors/new.html.erb +13 -0
  490. data/app/views/events/_form.html.erb +143 -0
  491. data/app/views/events/edit.html.erb +11 -0
  492. data/app/views/events/entity/_speakers.html.erb +17 -0
  493. data/app/views/events/entity/_sponsors.html.erb +15 -0
  494. data/app/views/events/new.html.erb +10 -0
  495. data/app/views/events/show.html.erb +22 -0
  496. data/app/views/featured_posts/create.jbuilder +10 -0
  497. data/app/views/groups/_form.html.erb +41 -0
  498. data/app/views/groups/edit.html.erb +12 -0
  499. data/app/views/groups/new.html.erb +11 -0
  500. data/app/views/impeachment/_filter.html.erb +41 -0
  501. data/app/views/impeachment/candidate.html.erb +32 -0
  502. data/app/views/impeachment/candidates.html.erb +52 -0
  503. data/app/views/index/_post_preview.jbuilder +3 -0
  504. data/app/views/index/frontpage_posts/_illustrated.html.erb +14 -0
  505. data/app/views/index/frontpage_posts/_loader.html.erb +35 -0
  506. data/app/views/index/frontpage_posts/_main_news.html.erb +11 -0
  507. data/app/views/index/frontpage_posts/_preview.html.erb +46 -0
  508. data/app/views/index/frontpage_posts/_regional_news.html.erb +11 -0
  509. data/app/views/index/frontpage_posts/_videos.html.erb +8 -0
  510. data/app/views/index/index.html.erb +19 -0
  511. data/app/views/index/index/_categories.html.erb +33 -0
  512. data/app/views/index/index/_featured_posts.html.erb +38 -0
  513. data/app/views/index/main_news.jbuilder +9 -0
  514. data/app/views/index/regional_news.jbuilder +9 -0
  515. data/app/views/layouts/admin/_footer.html.erb +5 -0
  516. data/app/views/layouts/application.html.erb +28 -0
  517. data/app/views/layouts/application/_footer.html.erb +18 -0
  518. data/app/views/layouts/application/_header.html.erb +27 -0
  519. data/app/views/layouts/application/_header_content.html.erb +0 -0
  520. data/app/views/layouts/application/_main_navigation.html.erb +27 -0
  521. data/app/views/layouts/application/header/_authentication.html.erb +9 -0
  522. data/app/views/layouts/application/header/_logo.html.erb +12 -0
  523. data/app/views/layouts/application/header/_region_selector.html.erb +24 -0
  524. data/app/views/layouts/application/header/_search.html.erb +5 -0
  525. data/app/views/layouts/application/main_navigation/_addition.html.erb +0 -0
  526. data/app/views/layouts/application/main_navigation/_categories.html.erb +15 -0
  527. data/app/views/layouts/application/main_navigation/_prepend.html.erb +0 -0
  528. data/app/views/layouts/mailer.html.erb +13 -0
  529. data/app/views/layouts/mailer.text.erb +1 -0
  530. data/app/views/my/confirmations/show.html.erb +30 -0
  531. data/app/views/my/deeds/_list.html.erb +18 -0
  532. data/app/views/my/deeds/entity/_categories.html.erb +33 -0
  533. data/app/views/my/deeds/index.html.erb +13 -0
  534. data/app/views/my/deeds/show.html.erb +32 -0
  535. data/app/views/my/entries/index.html.erb +2 -0
  536. data/app/views/my/followees/_list.html.erb +11 -0
  537. data/app/views/my/followees/index.html.erb +18 -0
  538. data/app/views/my/followers/_list.html.erb +11 -0
  539. data/app/views/my/followers/index.html.erb +18 -0
  540. data/app/views/my/index/_articles.html.erb +21 -0
  541. data/app/views/my/index/_blog_posts.html.erb +21 -0
  542. data/app/views/my/index/_news.html.erb +21 -0
  543. data/app/views/my/index/index.html.erb +64 -0
  544. data/app/views/my/messages/_list.html.erb +11 -0
  545. data/app/views/my/messages/dialog.html.erb +36 -0
  546. data/app/views/my/messages/entity/_in_list.html.erb +14 -0
  547. data/app/views/my/messages/index.html.erb +14 -0
  548. data/app/views/my/messages/not_found.html.erb +1 -0
  549. data/app/views/my/notifications/_list.html.erb +11 -0
  550. data/app/views/my/notifications/entity/_entry_comment.html.erb +1 -0
  551. data/app/views/my/notifications/entity/_in_list.html.erb +5 -0
  552. data/app/views/my/notifications/entity/_new_follower.html.erb +1 -0
  553. data/app/views/my/notifications/entity/_new_message.html.erb +9 -0
  554. data/app/views/my/notifications/entity/_news_comment.html.erb +1 -0
  555. data/app/views/my/notifications/entity/_post_comment.html.erb +1 -0
  556. data/app/views/my/notifications/index.html.erb +10 -0
  557. data/app/views/my/posts/_form.html.erb +234 -0
  558. data/app/views/my/posts/_list.html.erb +9 -0
  559. data/app/views/my/posts/_post.html.erb +81 -0
  560. data/app/views/my/posts/_preview.html.erb +45 -0
  561. data/app/views/my/posts/articles.html.erb +26 -0
  562. data/app/views/my/posts/index.html.erb +16 -0
  563. data/app/views/my/posts/news_index.html.erb +26 -0
  564. data/app/views/my/profiles/edit.html.erb +13 -0
  565. data/app/views/my/profiles/edit/_form.html.erb +386 -0
  566. data/app/views/my/profiles/show.html.erb +5 -0
  567. data/app/views/my/recoveries/show.html.erb +41 -0
  568. data/app/views/network/show.jbuilder +14 -0
  569. data/app/views/news/_form.html.erb +145 -0
  570. data/app/views/news/_news.html.erb +70 -0
  571. data/app/views/news/_preview.html.erb +10 -0
  572. data/app/views/news/category.html.erb +18 -0
  573. data/app/views/news/edit.html.erb +16 -0
  574. data/app/views/news/form/_figures.html.erb +69 -0
  575. data/app/views/news/index.html.erb +17 -0
  576. data/app/views/news/index/_column.html.erb +11 -0
  577. data/app/views/news/index/_items.html.erb +13 -0
  578. data/app/views/news/new.html.erb +11 -0
  579. data/app/views/news/not_found.html.erb +7 -0
  580. data/app/views/news/previews/_comments.html.erb +15 -0
  581. data/app/views/news/previews/_most_recent.html.erb +14 -0
  582. data/app/views/news/previews/_topics.html.erb +15 -0
  583. data/app/views/news/show.html.erb +6 -0
  584. data/app/views/news/show_in_category.html.erb +40 -0
  585. data/app/views/news/tagged.html.erb +14 -0
  586. data/app/views/news_categories/_form.html.erb +39 -0
  587. data/app/views/news_categories/edit.html.erb +16 -0
  588. data/app/views/news_categories/new.html.erb +15 -0
  589. data/app/views/photos/_form.html.erb +62 -0
  590. data/app/views/photos/_list.html.erb +17 -0
  591. data/app/views/photos/edit.html.erb +13 -0
  592. data/app/views/photos/new.html.erb +14 -0
  593. data/app/views/photos/show.html.erb +17 -0
  594. data/app/views/political_forces/_flares.html.erb +9 -0
  595. data/app/views/political_forces/_form.html.erb +97 -0
  596. data/app/views/political_forces/edit.html.erb +17 -0
  597. data/app/views/political_forces/new.html.erb +15 -0
  598. data/app/views/posts/_carousel.html.erb +11 -0
  599. data/app/views/posts/_form.html.erb +452 -0
  600. data/app/views/posts/_post.html.erb +136 -0
  601. data/app/views/posts/_preview.html.erb +51 -0
  602. data/app/views/posts/archive.html.erb +13 -0
  603. data/app/views/posts/archive.jbuilder +3 -0
  604. data/app/views/posts/archive/_month_list.html.erb +25 -0
  605. data/app/views/posts/archive_day.html.erb +12 -0
  606. data/app/views/posts/category.html.erb +18 -0
  607. data/app/views/posts/entity/_author.html.erb +9 -0
  608. data/app/views/posts/entity/_gallery.html.erb +54 -0
  609. data/app/views/posts/entity/_linked_posts.html.erb +9 -0
  610. data/app/views/posts/entity/_metadata.html.erb +39 -0
  611. data/app/views/posts/entity/_preview_author.html.erb +10 -0
  612. data/app/views/posts/entity/_publisher.html.erb +7 -0
  613. data/app/views/posts/form/_attachments.html.erb +29 -0
  614. data/app/views/posts/form/_figures.html.erb +67 -0
  615. data/app/views/posts/form/_gallery.html.erb +163 -0
  616. data/app/views/posts/index.html.erb +13 -0
  617. data/app/views/posts/index.jbuilder +1 -0
  618. data/app/views/posts/post_type/_category.html.erb +16 -0
  619. data/app/views/posts/post_type/_post_page.html.erb +9 -0
  620. data/app/views/posts/post_type/_tagged.html.erb +7 -0
  621. data/app/views/posts/show.html.erb +9 -0
  622. data/app/views/posts/show_in_category.html.erb +20 -0
  623. data/app/views/posts/tagged.html.erb +10 -0
  624. data/app/views/posts/tagged.jbuilder +1 -0
  625. data/app/views/profiles/_profile.html.erb +175 -0
  626. data/app/views/profiles/entries.html.erb +11 -0
  627. data/app/views/profiles/followees.html.erb +21 -0
  628. data/app/views/profiles/not_found.html.erb +1 -0
  629. data/app/views/profiles/show.html.erb +4 -0
  630. data/app/views/promo_blocks/_entity.html.erb +10 -0
  631. data/app/views/promo_blocks/_form.html.erb +80 -0
  632. data/app/views/promo_blocks/edit.html.erb +17 -0
  633. data/app/views/promo_blocks/new.html.erb +15 -0
  634. data/app/views/promo_items/_form.html.erb +132 -0
  635. data/app/views/promo_items/edit.html.erb +18 -0
  636. data/app/views/promo_items/new.html.erb +18 -0
  637. data/app/views/regional_news/_news.html.erb +70 -0
  638. data/app/views/regional_news/_preview.html.erb +10 -0
  639. data/app/views/regional_news/category.html.erb +39 -0
  640. data/app/views/regional_news/index.html.erb +43 -0
  641. data/app/views/regional_news/index/_column.html.erb +11 -0
  642. data/app/views/regional_news/index/_items.html.erb +13 -0
  643. data/app/views/regional_news/previews/_comments.html.erb +15 -0
  644. data/app/views/regional_news/previews/_most_recent.html.erb +14 -0
  645. data/app/views/regional_news/previews/_topics.html.erb +15 -0
  646. data/app/views/regional_news/show_in_category.html.erb +40 -0
  647. data/app/views/regions/_form.html.erb +59 -0
  648. data/app/views/regions/_region.jbuilder +12 -0
  649. data/app/views/regions/edit.html.erb +20 -0
  650. data/app/views/regions/index.jbuilder +3 -0
  651. data/app/views/regions/new.html.erb +17 -0
  652. data/app/views/regions/show.jbuilder +3 -0
  653. data/app/views/search/index.html.erb +24 -0
  654. data/app/views/shared/_counters.html.erb +1 -0
  655. data/app/views/shared/_favicons.html.erb +6 -0
  656. data/app/views/shared/_pagination.jbuilder +9 -0
  657. data/app/views/shared/_pluso.html.erb +12 -0
  658. data/app/views/shared/_sidebar.html.erb +18 -0
  659. data/app/views/shared/blog/_sidebar.html.erb +8 -0
  660. data/app/views/shared/errors/_not_found.html.erb +7 -0
  661. data/app/views/shared/forms/_region_select.html.erb +55 -0
  662. data/app/views/shared/sidebar/_calendar.html.erb +54 -0
  663. data/app/views/shared/sidebar/_custom_sidebar.html.erb +0 -0
  664. data/app/views/shared/sidebar/_deeds.html.erb +10 -0
  665. data/app/views/shared/sidebar/_poll.html.erb +62 -0
  666. data/app/views/shared/sidebar/_popular_entries.html.erb +68 -0
  667. data/app/views/shared/sidebar/_popular_topics.html.erb +51 -0
  668. data/app/views/shared/sidebar/_recent_posts.html.erb +17 -0
  669. data/app/views/teams/_form.html.erb +45 -0
  670. data/app/views/teams/edit.html.erb +12 -0
  671. data/app/views/teams/new.html.erb +11 -0
  672. data/app/views/user_messages/_form.html.erb +12 -0
  673. data/app/views/user_messages/new.html.erb +7 -0
  674. data/app/views/user_messages/not_found.html.erb +7 -0
  675. data/app/views/users/_filter.html.erb +12 -0
  676. data/app/views/users/_follow_buttons.html.erb +4 -0
  677. data/app/views/users/_list.html.erb +11 -0
  678. data/app/views/users/entity/_in_list.html.erb +19 -0
  679. data/app/views/users/form/_profile_data.html.erb +162 -0
  680. data/app/views/users/index.html.erb +11 -0
  681. data/app/views/users/index.jbuilder +14 -0
  682. data/config/locales/albums-ru.yml +83 -0
  683. data/config/locales/campaigns-ru.yml +356 -0
  684. data/config/locales/common-ru.yml +48 -0
  685. data/config/locales/decisions-ru.yml +22 -0
  686. data/config/locales/deeds-ru.yml +108 -0
  687. data/config/locales/events-ru.yml +217 -0
  688. data/config/locales/feedback-ru.yml +57 -0
  689. data/config/locales/media-ru.yml +94 -0
  690. data/config/locales/notifications-ru.yml +8 -0
  691. data/config/locales/posts-ru.yml +475 -0
  692. data/config/locales/promo-ru.yml +98 -0
  693. data/config/locales/regions-ru.yml +99 -0
  694. data/config/locales/socialization-ru.yml +60 -0
  695. data/config/locales/users-ru.yml +284 -0
  696. data/config/routes.rb +251 -0
  697. data/db/amends/20190223100000_create_themes.rb +40 -0
  698. data/db/amends/20190311141414_convert_posts.rb +218 -0
  699. data/db/amends/20190415131313_add_uuid_to_post_attachments.rb +16 -0
  700. data/db/amends/20190501222222_add_fields_to_regions.rb +15 -0
  701. data/db/amends/20190710121653_update_region_posts_count.rb +16 -0
  702. data/db/amends/20200406151505_add_fields_to_sites.rb +18 -0
  703. data/db/migrate/20170129000001_create_sites.rb +32 -0
  704. data/db/migrate/20170129000002_create_regions.rb +70 -0
  705. data/db/migrate/20170209000101_create_user_links.rb +23 -0
  706. data/db/migrate/20170209000102_create_user_messages.rb +26 -0
  707. data/db/migrate/20171111000005_create_appeal_types.rb +19 -0
  708. data/db/migrate/20171111000010_create_appeals.rb +32 -0
  709. data/db/migrate/20180630000001_create_promo_blocks.rb +21 -0
  710. data/db/migrate/20180630000002_create_promo_items.rb +31 -0
  711. data/db/migrate/20190805212121_add_comunit_to_posts.rb +18 -0
  712. data/db/migrate/20190913142159_convert_themes.rb +24 -0
  713. data/db/migrate/20190919112129_add_regions_component.rb +18 -0
  714. data/db/migrate/20190922165743_create_region_users.rb +22 -0
  715. data/db/migrate/20191209101010_create_campaigns.rb +96 -0
  716. data/db/migrate/20200306220439_add_impeachment_category.rb +12 -0
  717. data/db/migrate/20200420000000_create_deeds_component.rb +89 -0
  718. data/db/migrate/20200604000000_create_decisions_component.rb +53 -0
  719. data/db/obsolete_migrations/20170209000006_create_illustrations.rb +18 -0
  720. data/db/obsolete_migrations/20170228195056_create_groups.rb +19 -0
  721. data/db/obsolete_migrations/20170228195119_create_user_groups.rb +17 -0
  722. data/db/obsolete_migrations/20170309205037_create_albums.rb +26 -0
  723. data/db/obsolete_migrations/20170309205146_create_photos.rb +21 -0
  724. data/db/obsolete_migrations/20170322000001_create_teams.rb +22 -0
  725. data/db/obsolete_migrations/20170322000002_create_team_privileges.rb +17 -0
  726. data/db/obsolete_migrations/20170413000001_create_events.rb +29 -0
  727. data/db/obsolete_migrations/20170413000002_create_event_participants.rb +29 -0
  728. data/db/obsolete_migrations/20170413000003_create_event_speakers.rb +21 -0
  729. data/db/obsolete_migrations/20170413000004_create_event_sponsors.rb +21 -0
  730. data/db/obsolete_migrations/20170413000005_create_event_programs.rb +19 -0
  731. data/db/obsolete_migrations/20170413000006_create_event_materials.rb +21 -0
  732. data/db/obsolete_migrations/20170517000000_insert_editable_pages.rb +10 -0
  733. data/db/obsolete_migrations/20190924040404_convert_regional_editors.rb +106 -0
  734. data/lib/comunit/base.rb +7 -0
  735. data/lib/comunit/base/decorators/controllers/admin/posts_controller_decorator.rb +8 -0
  736. data/lib/comunit/base/decorators/controllers/admin/privileges_controller_decorator.rb +7 -0
  737. data/lib/comunit/base/decorators/controllers/my/posts_controller_decorator.rb +28 -0
  738. data/lib/comunit/base/decorators/controllers/my/profiles_controller_decorator.rb +25 -0
  739. data/lib/comunit/base/decorators/controllers/poll_answers_controller_decorator.rb +14 -0
  740. data/lib/comunit/base/decorators/controllers/poll_questions_controller_decorator.rb +14 -0
  741. data/lib/comunit/base/decorators/controllers/polls_controller_decorator.rb +24 -0
  742. data/lib/comunit/base/decorators/controllers/posts_controller_decorator.rb +46 -0
  743. data/lib/comunit/base/decorators/models/post_decorator.rb +39 -0
  744. data/lib/comunit/base/decorators/models/user_decorator.rb +30 -0
  745. data/lib/comunit/base/decorators/models/user_privilege_decorator.rb +3 -0
  746. data/lib/comunit/base/engine.rb +46 -0
  747. data/lib/comunit/base/privilege_methods.rb +53 -0
  748. data/lib/comunit/base/version.rb +7 -0
  749. data/lib/tasks/comunit.rake +29 -0
  750. data/lib/tasks/comunit/base_tasks.rake +4 -0
  751. data/lib/tasks/regions.rake +57 -0
  752. metadata +947 -0
@@ -0,0 +1,94 @@
1
+ ru:
2
+ media_file_count:
3
+ zero: "файлов нет"
4
+ one: "%{count} файл"
5
+ few: "%{count} файла"
6
+ many: "%{count} файлов"
7
+ other: "%{count} файлов"
8
+ activerecord:
9
+ models:
10
+ media_folder: "Папка"
11
+ media_file: "Файл"
12
+ attributes:
13
+ media_folder:
14
+ user: "Пользователь"
15
+ user_id: "Пользователь"
16
+ parent_id: "Родительская папка"
17
+ flags: "Фалги"
18
+ uuid: "UUID"
19
+ snapshot: "Картинка"
20
+ name: "Название"
21
+ parents_cache: "Кеш родителей"
22
+ children_cache: "Кеш дочек"
23
+ media_file:
24
+ media_folder: "Папка"
25
+ media_folder_id: "Папка"
26
+ user: "Пользователь"
27
+ user_id: "Пользователь"
28
+ flags: "Флаги"
29
+ uuid: "UUID"
30
+ snapshot: "Картинка"
31
+ file: "Файл"
32
+ mime_type: "MIME-тип"
33
+ original_name: "Оригинальное имя файла"
34
+ name: "Название"
35
+ description: "Описание"
36
+ admin:
37
+ media_folders:
38
+ nav_item:
39
+ text: "Медиахранилище"
40
+ description: "Управление медиахранилищем"
41
+ index:
42
+ title: "Папки"
43
+ heading: "Медиахранилище"
44
+ show:
45
+ title: "Медиахранилище: файлы папки %{name}, страница %{page}"
46
+ media_files:
47
+ nav_item:
48
+ text: "Загруженные файлы"
49
+ description: "Управление загруженными в хранилище файлами"
50
+ index:
51
+ title: "Файлы, страница %{page}"
52
+ heading: "Файлы в хранилище"
53
+ show:
54
+ title: "Файл «%{name}»"
55
+ media_folders:
56
+ new:
57
+ title: "Добавить папку в хранилище"
58
+ heading: "Добавление папки в хранилище"
59
+ show:
60
+ title: "Папка хранилища «%{name}»"
61
+ edit:
62
+ title: "Редактирование папки"
63
+ forbidden: "Редактирование этой папки запрещено"
64
+ update:
65
+ success: "Папка успешно изменена"
66
+ destroy:
67
+ success: "Папка успешно удалена"
68
+ form:
69
+ placeholders:
70
+ name: "Презентации"
71
+ guidelines:
72
+ snapshot: "Картинка в формате JPEG размером до 320×320 для вывода в списке"
73
+ name: "Название для списка. Максимум 100 символов"
74
+ media_files:
75
+ new:
76
+ title: "Добавить файл в хранилище"
77
+ heading: "Добавление файла в хранилище"
78
+ show:
79
+ title: "Файл «%{name}»"
80
+ edit:
81
+ title: "Редактирование файла"
82
+ forbidden: "Редактирование этого файла запрещено"
83
+ update:
84
+ success: "Файл успешно изменён"
85
+ destroy:
86
+ success: "Файл успешно удалён"
87
+ form:
88
+ placeholders:
89
+ name: "Общий план действий"
90
+ description: "Документ с описанием плана дальнейших действий"
91
+ guidelines:
92
+ snapshot: "Картинка в формате JPEG размером до 320×320 для вывода в списке"
93
+ name: "Название для списка. Максимум 250 символов"
94
+ description: "Описание для списка. Максимум 250 символов"
@@ -0,0 +1,8 @@
1
+ ru:
2
+ unread_notifications: "Непрочитанные уведомления"
3
+ new_notification_count:
4
+ zero: "Новых уведомлений нет"
5
+ one: "%{count} новое уведомление"
6
+ few: "%{count} новых уведомления"
7
+ many: "%{count} новых уведомлений"
8
+ other: "%{count} новых уведомлений"
@@ -0,0 +1,475 @@
1
+ ru:
2
+ date:
3
+ nominative_month_names: [~, январь, февраль, март, апрель, май, июнь, июль, август, сентябрь, октябрь, ноябрь, декабрь]
4
+ post_count:
5
+ zero: "публикаций нет"
6
+ one: "%{count} публикация"
7
+ few: "%{count} публикации"
8
+ many: "%{count} публикаций"
9
+ other: "%{count} публикаций"
10
+ post_category_count:
11
+ zero: "категорий публикаций нет"
12
+ one: "%{count} категория публикаций"
13
+ few: "%{count} категории публикаций"
14
+ many: "%{count} категорий публикаций"
15
+ other: "%{count} категорий публикаций"
16
+ activerecord:
17
+ models:
18
+ editorial_member: "Член редакции"
19
+ featured_post: "Избранная публикация"
20
+ post: "Публикация"
21
+ post_attachment: "Приложение к публикации"
22
+ post_category: "Категория публикации"
23
+ post_image: "Картинка для публикации"
24
+ post_post_tag: "Метка у публикации"
25
+ post_tag: "Метка"
26
+ post_type: "Тип публикации"
27
+ post_zen_category: "Категория Яндекс.Дзен для публикации"
28
+ theme: "Тема публикаций"
29
+ zen_category: "Категория Яндекс.Дзен"
30
+ errors:
31
+ messages:
32
+ mismatches_post_type: "имеет другой тип публикации"
33
+ models:
34
+ post_category:
35
+ attributes:
36
+ parent_id:
37
+ is_too_deep: "находится слишком глубоко"
38
+ attributes:
39
+ editorial_member:
40
+ about: "Подробное описание"
41
+ lead: "Краткое описание"
42
+ priority: "Порядок сортировки"
43
+ title: "Титул"
44
+ user: "Пользователь"
45
+ user_id: "Пользователь"
46
+ visible: "Показывать"
47
+ featured_post:
48
+ language: "Язык"
49
+ language_id: "Язык"
50
+ post: "Публикация"
51
+ post_id: "Публикация"
52
+ priority: "Порядок сортировки"
53
+ post:
54
+ allow_comments: "Разрешить комментарии"
55
+ allow_votes: "Разрешить голосовать"
56
+ approved: "Одобрено к показу"
57
+ author_name: "Имя автора"
58
+ author_title: "Титул автора"
59
+ author_url: "URL автора"
60
+ body: "Текст"
61
+ created_at: "Время публикации"
62
+ explicit: "Откровенное содержание"
63
+ image: "Изображение"
64
+ image_alt_text: "Альтернативный текст для изображения"
65
+ image_name: "Название изображения"
66
+ image_source_link: "Ссылка на источник изображения"
67
+ image_source_name: "Источник изображения"
68
+ language_id: "Язык"
69
+ lead: "Аннотация"
70
+ meta_description: "Описание для метатэга"
71
+ meta_keywords: "Ключевые слова для метатэга"
72
+ meta_title: "Название для заголовка окна"
73
+ original_post_id: "Оригинальная публикация"
74
+ original_title: "Оригинальное название"
75
+ privacy: "Видимость"
76
+ post_category: "Категория"
77
+ post_category_id: "Категория"
78
+ post_type: "Тип"
79
+ post_type_id: "Тип"
80
+ publication_time: "Время публикации"
81
+ rating: "Рейтинг"
82
+ region_id: "Регион"
83
+ show_owner: "Показывать автора"
84
+ slug: "Идентификатор для URL"
85
+ source_link: "Ссылка на источник"
86
+ source_name: "Название источника"
87
+ tags_cache: "Метки"
88
+ time_required: "Время на прочтение"
89
+ title: "Название"
90
+ translation: "Перевод"
91
+ translator_name: "Имя переводчика"
92
+ user: "Автор"
93
+ uuid: "UUID"
94
+ view_count: "Количество просмотров"
95
+ visible: "Показывать"
96
+ post_attachment:
97
+ file: "Файл"
98
+ name: "Название"
99
+ post: "Публикация"
100
+ post_id: "Публикация"
101
+ post_category:
102
+ children_cache: "Кеш дочек"
103
+ meta_description: "Описание для тэга meta"
104
+ name: "Название"
105
+ parent_id: "Родительская категория"
106
+ parents_cache: "Кеш родителей"
107
+ post_type: "Тип публикации"
108
+ post_type_id: "Тип публикации"
109
+ priority: "Порядок сортировки"
110
+ slug: "Идентификатор"
111
+ visible: "Показывать"
112
+ post_image:
113
+ caption: "Название"
114
+ description: "Описание"
115
+ image: "Картинка"
116
+ image_alt_text: "Текст для атрибута alt у картинки"
117
+ post: "Публикация"
118
+ post_id: "Публикация"
119
+ priority: "Порядок сортировки"
120
+ source_link: "Ссылка на источник изображения"
121
+ source_name: "Источник изображения"
122
+ visible: "Показывать"
123
+ post_tag:
124
+ name: "Название"
125
+ post_type: "Тип публикации"
126
+ post_type_id: "Тип публикации"
127
+ posts_count: "Количество публикаций"
128
+ slug: "Идентификатор"
129
+ post_type:
130
+ category_depth: "Глубина категорий"
131
+ default_category_name: "Название категории по умолчанию"
132
+ name: "Название"
133
+ slug: "Идентификатор"
134
+ post_zen_category:
135
+ post: "Публикация"
136
+ post_id: "Публикация"
137
+ zen_category: "Категория Яндекс.Дзен"
138
+ zen_category_id: "Категория Яндекс.Дзен"
139
+ zen_category:
140
+ name: "Название"
141
+ posts_count: "Количество публикаций"
142
+ theme:
143
+ name: "Название"
144
+ slug: "Идентификатор"
145
+ admin:
146
+ editorial_members:
147
+ nav_item:
148
+ description: "Управление публичным составом редакции"
149
+ text: "Члены редакции"
150
+ index:
151
+ heading: "Члены редакции"
152
+ title: "Члены редакции"
153
+ show:
154
+ heading: "Член редакции"
155
+ title: "Редакция: %{name}"
156
+ featured_posts:
157
+ nav_item:
158
+ description: "Управление списком избранных публикаций"
159
+ text: "Избранные публикации"
160
+ index:
161
+ add: "Добавить"
162
+ heading: "Избранные публикации"
163
+ title: "Избранные публикации"
164
+ post_categories:
165
+ show:
166
+ title: "Категория публикаций «%{name}»"
167
+ children: "Дочерние категории"
168
+ new_child: "Добавить дочернюю категорию"
169
+ post_images:
170
+ nav_item:
171
+ description: "Управление картинками публикаций"
172
+ text: "Картинки публикаций"
173
+ index:
174
+ heading: "Картинки публикаций"
175
+ title: "Картинки публикаций, страница %{page}"
176
+ show:
177
+ title: "Картинка публикации «%{caption}»"
178
+ post_tags:
179
+ nav_item:
180
+ description: "Управление метками публикаций"
181
+ text: "Метки публикаций"
182
+ index:
183
+ heading: "Метки публикаций"
184
+ title: "Метки публикаций, страница %{page}"
185
+ show:
186
+ title: "Метка публикаций «%{name}»"
187
+ posts:
188
+ heading: "Публикации"
189
+ nav_text: "Публикации"
190
+ title: "Публикации с меткой «%{name}», страница %{page}"
191
+ post_types:
192
+ nav_item:
193
+ description: "Управление типами и категориями публикаций"
194
+ text: "Типы публикаций"
195
+ index:
196
+ heading: "Типы публикаций"
197
+ title: "Типы публикаций"
198
+ show:
199
+ title: "Тип публикаций «%{name}»"
200
+ children: "Дочерние типы"
201
+ post_categories:
202
+ heading: "Категории публикаций"
203
+ nav_text: "Категории"
204
+ title: "Категории типа публикаций «%{name}»"
205
+ post_tags:
206
+ heading: "Метки публикаций"
207
+ nav_text: "Метки"
208
+ title: "Метки публикаций типа «%{name}», страница %{page}"
209
+ new_post:
210
+ title: "Новая публикация типа «%{name}»"
211
+ heading: "Добавить публикацию"
212
+ posts:
213
+ nav_item:
214
+ description: "Управление публикациями"
215
+ text: "Публикации"
216
+ index:
217
+ heading: "Публикации"
218
+ title: "Публикации, страница %{page}"
219
+ show:
220
+ title: "Публикация «%{name}»"
221
+ images: "Картинки"
222
+ images:
223
+ heading: "Картинки"
224
+ nav_text: "Картинки"
225
+ title: "Картинки к публикации «%{post}»"
226
+ entity:
227
+ links:
228
+ heading: "Связанные публикации"
229
+ search: "Искать"
230
+ attachments:
231
+ heading: "Приложения"
232
+ themes:
233
+ index:
234
+ title: "Темы группировки публикаций"
235
+ heading: "Темы группировки публикаций"
236
+ description: "Управление темами группировки публикаций и новостей на главной"
237
+ show:
238
+ title: "Тема группировки публикаций «%{name}»"
239
+ index:
240
+ dashboard:
241
+ biovision_post:
242
+ heading: "Модуль публикаций"
243
+ posts_component:
244
+ heading: "Редакция"
245
+ editorial_members:
246
+ new:
247
+ heading: "Добавление члена редакции"
248
+ nav_text: "Добавить пользователя"
249
+ title: "Новый член редакции"
250
+ edit:
251
+ heading: "Редактирование члена редакции"
252
+ nav_text: "Редактировать"
253
+ title: "Редактирование члена редакции"
254
+ update:
255
+ success: "Член редакции успешно отредактирован"
256
+ destroy:
257
+ success: "Член редакции успешно удалён"
258
+ form:
259
+ guidelines:
260
+ about: "Максимум 5000 символов."
261
+ lead: "Максимум 170 символов."
262
+ title: "Максимум 150 символов."
263
+ post_categories:
264
+ new:
265
+ title: "Новая категория публикаций"
266
+ heading: "Добавление категории публикаций"
267
+ edit:
268
+ title: "Редактирование категории публикаций"
269
+ heading: "Редактирование категории публикаций"
270
+ forbidden: "Редактирование этой категории публикации запрещено"
271
+ update:
272
+ success: "Категория публикаций успешно изменена"
273
+ destroy:
274
+ success: "Категория публикаций успешно удалена"
275
+ form:
276
+ guidelines:
277
+ meta_description: "Максимум 250 символов."
278
+ name: "Максимум 50 символов."
279
+ slug: "Используется в URL. Только латинские буквы, цифры и дефис (кроме первого и последнего символа), максимум 50 символов."
280
+ post_tags:
281
+ new:
282
+ heading: "Добавление метки публикаций"
283
+ nav_text: "Добавить"
284
+ title: "Новая метка публикаций"
285
+ edit:
286
+ heading: "Редактирование метки публикаций"
287
+ nav_text: "Редактировать"
288
+ title: "Редактирование метки публикаций"
289
+ update:
290
+ success: "Метки публикаций отредактирована"
291
+ destroy:
292
+ success: "Метка публикаций удалена"
293
+ form:
294
+ guidelines:
295
+ name: "Максимум 50 символов."
296
+ post_images:
297
+ new:
298
+ heading: "Добавление картинки к публикации"
299
+ nav_text: "Добавить картинку"
300
+ title: "Новая картинка публикации"
301
+ edit:
302
+ heading: "Редактирование изображения публикации"
303
+ nav_text: "Редактировать"
304
+ title: "Редактирование изображения публикации"
305
+ update:
306
+ success: "Изображение публикации отредактировано"
307
+ destroy:
308
+ success: "Изображение публикации удалено"
309
+ form:
310
+ guidelines:
311
+ caption: "Максимум 255 символов."
312
+ description: "Максимум 5000 символов."
313
+ image: "Максимальный размер — 3000×3000, формат — JPG или PNG."
314
+ image_alt_text: "Краткое описание того, что происходит на картинке. До 200 символов."
315
+ source_link: "Будет открываться при нажатии на имя автора картинки."
316
+ source_name: "ФИО или название организации. Будет отображаться в подписи к картинке."
317
+ placeholders:
318
+ source_link: "https://example.org/user42"
319
+ posts:
320
+ edit:
321
+ title: "Редактирование публикации"
322
+ heading: "Редактирование публикации"
323
+ destroy:
324
+ success: "Публикация успешно удалена"
325
+ form:
326
+ guidelines:
327
+ author_name: "Если указать, будет отображаться вместо текущего пользователя"
328
+ author_title: "Например, должность или звание"
329
+ author_url: "Если указать, имя автора будет ссылкой сюда"
330
+ image: "Максимальный размер — 3000×3000, формат — JPG или PNG."
331
+ image_alt_text: "Краткое описание того, что происходит на картинке. До 200 символов."
332
+ image_name: "Будет отображаться в качестве подписи к картинке."
333
+ image_source_link: "Будет открываться при нажатии на имя автора картинки."
334
+ image_source_name: "ФИО или название организации. Будет отображаться в подписи к картинке."
335
+ language_id: "Язык"
336
+ lead: "Краткая суть, максимум 5000 символов."
337
+ meta_description: "50–55 слов. Максимум 250 символов."
338
+ meta_keywords: "Максимум 250 символов."
339
+ meta_title: "Если указать, будет отображаться в заголовке окна вместо названия. Максимум 250 символов."
340
+ original_title: "Название в том виде, в котором оно было у источника. Максимум 250 символов."
341
+ slug: "Только латинские буквы, цифры, точки, дефисы и подчёркивания. Максимум 200 символов."
342
+ source: "Название источника публикации (агентство и т.п.)"
343
+ source_link: "Будет открываться при нажатии на название источника"
344
+ time_required: "Задаётся в минутах"
345
+ title: "Максимум 255 символов."
346
+ placeholders:
347
+ image_source_link: "https://example.com/user42"
348
+ source_link: "https://example.org/posts/123"
349
+ tags: "Метки"
350
+ gallery:
351
+ heading: "Галерея картинок"
352
+ add_image: "Добавить изображение"
353
+ attachments:
354
+ heading: "Приложения"
355
+ add: "Добавить приложение"
356
+ post:
357
+ source: "Источник"
358
+ image_credit: "Источник изображения"
359
+ attachments: "Приложения"
360
+ index:
361
+ title: "Публикации, страница %{page}"
362
+ heading: "Публикации"
363
+ nav_text: "Публикации"
364
+ tagged:
365
+ title: "Публикации с меткой «%{tag_name}», страница %{page}"
366
+ entity:
367
+ linked_posts:
368
+ heading: "Читайте также"
369
+ gallery:
370
+ heading: "Галерея"
371
+ rss:
372
+ title: "Публикации сайта на Comunit CMS"
373
+ description: "RSS-канал сайта на Comunit CMS"
374
+ archive_day:
375
+ title: "Архив публикаций"
376
+ calendar:
377
+ heading: "Архив"
378
+ search:
379
+ title: "Поиск публикаций"
380
+ nav_text: "Поиск публикаций"
381
+ heading: "Поиск публикаций"
382
+ themes:
383
+ update:
384
+ success: "Тема группировки успешно обновлена"
385
+ destroy:
386
+ success: "Тема группировки успешно удалена"
387
+ new:
388
+ title: "Добавить тему группировки"
389
+ edit:
390
+ title: "Редактирование темы группировки"
391
+ forbidden: "Редактирование этой темы группировки запрещено"
392
+ index:
393
+ dashboard:
394
+ biovision_post:
395
+ heading: "Недавние публикации"
396
+ more: "Ещё"
397
+ articles:
398
+ index:
399
+ title: "Статьи, страница %{page}"
400
+ heading: "Статьи"
401
+ nav_text: "Статьи"
402
+ category:
403
+ title: "Статьи в категории «%{category}», страница %{page}"
404
+ tagged:
405
+ title: "Статьи с меткой «%{tag_name}», страница %{page}"
406
+ blog_posts:
407
+ index:
408
+ title: "Записи в блоге, страница %{page}"
409
+ heading: "Записи в блоге"
410
+ nav_text: "Блог"
411
+ category:
412
+ title: "Записи в блоге в категории «%{category}», страница %{page}"
413
+ tagged:
414
+ title: "Записи в блоге с меткой «%{tag_name}», страница %{page}"
415
+ news:
416
+ index:
417
+ title: "Новости, страница %{page}"
418
+ heading: "Новости"
419
+ nav_text: "Новости"
420
+ category:
421
+ title: "Новости в категории «%{category}», страница %{page}"
422
+ tagged:
423
+ title: "Новости с меткой «%{tag_name}», страница %{page}"
424
+ authors:
425
+ index:
426
+ nav_text: "Авторы"
427
+ title: "Авторы"
428
+ heading: "Авторы"
429
+ list:
430
+ no_authors: "Список авторов пуст"
431
+ show:
432
+ heading: "Авторы"
433
+ my:
434
+ index:
435
+ dashboard:
436
+ biovision_post:
437
+ heading: "Мои публикации"
438
+ posts:
439
+ articles:
440
+ heading: "Мои статьи"
441
+ nav_text: "Статьи"
442
+ title: "Мои статьи, страница %{page}"
443
+ blog_posts:
444
+ heading: "Мой блог"
445
+ nav_text: "Блог"
446
+ title: "Мой блог, страница %{page}"
447
+ index:
448
+ heading: "Мои публикации"
449
+ nav_text: "Все публикации"
450
+ title: "Мои публикации, страница %{page}"
451
+ new_article:
452
+ heading: "Новая статья"
453
+ nav_text: "Написать статью"
454
+ title: "Добавление статьи"
455
+ new_blog_post:
456
+ heading: "Новая запись в блоге"
457
+ nav_text: "Написать в блоге"
458
+ title: "Добавление записи в блоге"
459
+ new_news:
460
+ heading: "Новая новость"
461
+ nav_text: "Добавить новость"
462
+ title: "Добавление новости"
463
+ news_index:
464
+ heading: "Мои новости"
465
+ nav_text: "Новости"
466
+ title: "Мои новости, страница %{page}"
467
+ new:
468
+ title: "Добавление публикации"
469
+ heading: "Добавление публикации"
470
+ edit:
471
+ title: "Редактирование моей публикации"
472
+ nav_text: "Редактировать"
473
+ heading: "Редактирование публикации"
474
+ form:
475
+ categories: "Категории"