1
0
Fork 0

Add column FederalSubject#centre

This commit is contained in:
Alex Kotov 2019-07-22 14:14:14 +05:00
parent 9a6904829f
commit b6f6899ecc
Signed by: kotovalexarian
GPG Key ID: 553C0EBBEB5D5F08
11 changed files with 141 additions and 87 deletions

View File

@ -35,6 +35,10 @@ class FederalSubject < ApplicationRecord
uniqueness: true,
length: { in: 1..255 }
validates :centre,
presence: true,
length: { in: 1..255 }
validates :number,
presence: true,
uniqueness: true,
@ -44,6 +48,7 @@ class FederalSubject < ApplicationRecord
validate :english_name_looks_realistic
validate :native_name_looks_realistic
validate :centre_looks_realistic
###########
# Methods #
@ -72,4 +77,11 @@ private
errors.add :native_name, :leading_spaces if native_name.start_with? ' '
errors.add :native_name, :trailing_spaces if native_name.end_with? ' '
end
def centre_looks_realistic
return if centre.blank?
errors.add :centre, :leading_spaces if centre.start_with? ' '
errors.add :centre, :trailing_spaces if centre.end_with? ' '
end
end

View File

@ -8,6 +8,9 @@
<th scope="col">
<%= FederalSubject.human_attribute_name :display_name %>
</th>
<th scope="col">
<%= FederalSubject.human_attribute_name :centre %>
</th>
<th scope="col">
<%= FederalSubject.human_attribute_name :timezone %>
</th>
@ -20,6 +23,7 @@
<tr>
<td><%= federal_subject.number %></td>
<td><%= federal_subject.display_name %></td>
<td><%= federal_subject.centre %></td>
<td><%= federal_subject.timezone %></td>
<td>
<% if policy(federal_subject).show? %>

View File

@ -8,6 +8,9 @@
</p>
<dl class="mt-3">
<dt><%= FederalSubject.human_attribute_name :centre %></dt>
<dd><%= @federal_subject.centre %></dd>
<dt><%= FederalSubject.human_attribute_name :number %></dt>
<dd><%= @federal_subject.number %></dd>

View File

@ -1,85 +1,85 @@
22 | Altai Krai | Алтайский край | 22 | 06:00:00
31 | Amur Oblast | Амурская область | 28 | 08:00:00
32 | Arkhangelsk Oblast | Архангельская область | 29 | 02:00:00
33 | Astrakhan Oblast | Астраханская область | 30 | 03:00:00
34 | Belgorod Oblast | Белгородская область | 31 | 02:00:00
35 | Bryansk Oblast | Брянская область | 32 | 02:00:00
36 | Vladimir Oblast | Владимирская область | 33 | 02:00:00
37 | Volgograd Oblast | Волгоградская область | 34 | 02:00:00
38 | Vologda Oblast | Вологодская область | 35 | 02:00:00
39 | Voronezh Oblast | Воронежская область | 36 | 02:00:00
80 | Jewish Autonomous Oblast | Еврейская автономная область | 79 | 09:00:00
23 | Zabaykalsky Krai | Забайкальский край | 75 | 08:00:00
40 | Ivanovo Oblast | Ивановская область | 37 | 02:00:00
41 | Irkutsk Oblast | Иркутская область | 38 | 07:00:00
6 | Kabardino-Balkar Republic | Кабардино-Балкарская Республика | 07 | 02:00:00
42 | Kaliningrad Oblast | Калининградская область | 39 | 01:00:00
43 | Kaluga Oblast | Калужская область | 40 | 02:00:00
24 | Kamchatka Krai | Камчатский край | 41 | 11:00:00
8 | Karachay-Cherkess Republic | Карачаево-Черкесская Республика | 09 | 02:00:00
44 | Kemerovo Oblast | Кемеровская область | 42 | 06:00:00
45 | Kirov Oblast | Кировская область | 43 | 02:00:00
46 | Kostroma Oblast | Костромская область | 44 | 02:00:00
25 | Krasnodar Krai | Краснодарский край | 23 | 02:00:00
26 | Krasnoyarsk Krai | Красноярский край | 24 | 06:00:00
47 | Kurgan Oblast | Курганская область | 45 | 04:00:00
48 | Kursk Oblast | Курская область | 46 | 02:00:00
49 | Leningrad Oblast | Ленинградская область | 47 | 02:00:00
50 | Lipetsk Oblast | Липецкая область | 48 | 02:00:00
51 | Magadan Oblast | Магаданская область | 49 | 10:00:00
77 | Moscow | Москва | 77 | 02:00:00
52 | Moscow Oblast | Московская область | 50 | 02:00:00
53 | Murmansk Oblast | Мурманская область | 51 | 02:00:00
81 | Nenets Autonomous Okrug | Ненецкий автономный округ | 83 | 02:00:00
54 | Nizhny Novgorod Oblast | Нижегородская область | 52 | 02:00:00
55 | Novgorod Oblast | Новгородская область | 53 | 02:00:00
56 | Novosibirsk Oblast | Новосибирская область | 54 | 06:00:00
57 | Omsk Oblast | Омская область | 55 | 05:00:00
58 | Orenburg Oblast | Оренбургская область | 56 | 04:00:00
59 | Oryol Oblast | Орловская область | 57 | 02:00:00
60 | Penza Oblast | Пензенская область | 58 | 02:00:00
27 | Perm Krai | Пермский край | 59 | 04:00:00
28 | Primorsky Krai | Приморский край | 25 | 09:00:00
61 | Pskov Oblast | Псковская область | 60 | 02:00:00
87 | Republic of Adygea | Республика Адыгея | 01 | 02:00:00
1 | Altai Republic | Республика Алтай | 04 | 06:00:00
2 | Republic of Bashkortostan | Республика Башкортостан | 02 | 04:00:00
3 | Republic of Buryatia | Республика Бурятия | 03 | 07:00:00
4 | Republic of Dagestan | Республика Дагестан | 05 | 02:00:00
5 | Republic of Ingushetia | Республика Ингушетия | 06 | 02:00:00
7 | Republic of Kalmykia | Республика Калмыкия | 08 | 02:00:00
9 | Republic of Karelia | Республика Карелия | 10 | 02:00:00
10 | Komi Republic | Республика Коми | 11 | 02:00:00
11 | Republic of Crimea | Республика Крым | 91 | 02:00:00
12 | Mari El Republic | Республика Марий Эл | 12 | 02:00:00
13 | Republic of Mordovia | Республика Мордовия | 13 | 02:00:00
14 | Republic of Sakha (Yakutia) | Республика Саха (Якутия) | 14 | 08:00:00
15 | Republic of North Ossetia Alania | Республика Северная Осетия — Алания | 15 | 02:00:00
16 | Republic of Tatarstan | Республика Татарстан | 16 | 02:00:00
17 | Tyva Republic | Республика Тыва | 17 | 06:00:00
19 | Republic of Khakassia | Республика Хакасия | 19 | 06:00:00
62 | Rostov Oblast | Ростовская область | 61 | 02:00:00
63 | Ryazan Oblast | Рязанская область | 62 | 02:00:00
64 | Samara Oblast | Самарская область | 63 | 03:00:00
78 | Saint Petersburg | Санкт-Петербург | 78 | 02:00:00
65 | Saratov Oblast | Саратовская область | 64 | 03:00:00
66 | Sakhalin Oblast | Сахалинская область | 65 | 10:00:00
67 | Sverdlovsk Oblast | Свердловская область | 66 | 04:00:00
79 | Sevastopol | Севастополь | 92 | 02:00:00
68 | Smolensk Oblast | Смоленская область | 67 | 02:00:00
29 | Stavropol Krai | Ставропольский край | 26 | 02:00:00
69 | Tambov Oblast | Тамбовская область | 68 | 02:00:00
70 | Tver Oblast | Тверская область | 69 | 02:00:00
71 | Tomsk Oblast | Томская область | 70 | 06:00:00
72 | Tula Oblast | Тульская область | 71 | 02:00:00
73 | Tyumen Oblast | Тюменская область | 72 | 04:00:00
18 | Udmurt Republic | Удмуртская Республика | 18 | 03:00:00
74 | Ulyanovsk Oblast | Ульяновская область | 73 | 03:00:00
30 | Khabarovsk Krai | Хабаровский край | 27 | 09:00:00
82 | Khanty-Mansi Autonomous Okrug Yugra | Ханты-Мансийский автономный округ — Югра | 86 | 04:00:00
75 | Chelyabinsk Oblast | Челябинская область | 74 | 04:00:00
20 | Chechen Republic | Чеченская Республика | 20 | 02:00:00
21 | Chuvash Republic | Чувашская Республика | 21 | 02:00:00
83 | Chukotka Autonomous Okrug | Чукотский автономный округ | 87 | 11:00:00
84 | Yamalo-Nenets Autonomous Okrug | Ямало-Ненецкий автономный округ | 89 | 04:00:00
76 | Yaroslavl Oblast | Ярославская область | 76 | 02:00:00
22 | Altai Krai | Алтайский край | 22 | 06:00:00 | Барнаул
31 | Amur Oblast | Амурская область | 28 | 08:00:00 | Благовещенск
32 | Arkhangelsk Oblast | Архангельская область | 29 | 02:00:00 | Архангельск
33 | Astrakhan Oblast | Астраханская область | 30 | 03:00:00 | Астрахань
34 | Belgorod Oblast | Белгородская область | 31 | 02:00:00 | Белгород
35 | Bryansk Oblast | Брянская область | 32 | 02:00:00 | Брянск
36 | Vladimir Oblast | Владимирская область | 33 | 02:00:00 | Владимир
37 | Volgograd Oblast | Волгоградская область | 34 | 02:00:00 | Волгоград
38 | Vologda Oblast | Вологодская область | 35 | 02:00:00 | Вологда
39 | Voronezh Oblast | Воронежская область | 36 | 02:00:00 | Воронеж
80 | Jewish Autonomous Oblast | Еврейская автономная область | 79 | 09:00:00 | Биробиджан
23 | Zabaykalsky Krai | Забайкальский край | 75 | 08:00:00 | Чита
40 | Ivanovo Oblast | Ивановская область | 37 | 02:00:00 | Иваново
41 | Irkutsk Oblast | Иркутская область | 38 | 07:00:00 | Иркутск
6 | Kabardino-Balkar Republic | Кабардино-Балкарская Республика | 07 | 02:00:00 | Нальчик
42 | Kaliningrad Oblast | Калининградская область | 39 | 01:00:00 | Калининград
43 | Kaluga Oblast | Калужская область | 40 | 02:00:00 | Калуга
24 | Kamchatka Krai | Камчатский край | 41 | 11:00:00 | Петропавловск-Камчатский
8 | Karachay-Cherkess Republic | Карачаево-Черкесская Республика | 09 | 02:00:00 | Черкесск
44 | Kemerovo Oblast | Кемеровская область | 42 | 06:00:00 | Кемерово
45 | Kirov Oblast | Кировская область | 43 | 02:00:00 | Киров
46 | Kostroma Oblast | Костромская область | 44 | 02:00:00 | Кострома
25 | Krasnodar Krai | Краснодарский край | 23 | 02:00:00 | Красноярск
26 | Krasnoyarsk Krai | Красноярский край | 24 | 06:00:00 | Краснодар
47 | Kurgan Oblast | Курганская область | 45 | 04:00:00 | Курган
48 | Kursk Oblast | Курская область | 46 | 02:00:00 | Курск
49 | Leningrad Oblast | Ленинградская область | 47 | 02:00:00 | Санкт-Петербург
50 | Lipetsk Oblast | Липецкая область | 48 | 02:00:00 | Липецк
51 | Magadan Oblast | Магаданская область | 49 | 10:00:00 | Магадан
77 | Moscow | Москва | 77 | 02:00:00 | Москва
52 | Moscow Oblast | Московская область | 50 | 02:00:00 | Москва
53 | Murmansk Oblast | Мурманская область | 51 | 02:00:00 | Мурманск
81 | Nenets Autonomous Okrug | Ненецкий автономный округ | 83 | 02:00:00 | Нарьян-Мар
54 | Nizhny Novgorod Oblast | Нижегородская область | 52 | 02:00:00 | Нижний Новгород
55 | Novgorod Oblast | Новгородская область | 53 | 02:00:00 | Великий Новгород
56 | Novosibirsk Oblast | Новосибирская область | 54 | 06:00:00 | Новосибирск
57 | Omsk Oblast | Омская область | 55 | 05:00:00 | Омск
58 | Orenburg Oblast | Оренбургская область | 56 | 04:00:00 | Оренбург
59 | Oryol Oblast | Орловская область | 57 | 02:00:00 | Орёл
60 | Penza Oblast | Пензенская область | 58 | 02:00:00 | Пенза
27 | Perm Krai | Пермский край | 59 | 04:00:00 | Пермь
28 | Primorsky Krai | Приморский край | 25 | 09:00:00 | Владивосток
61 | Pskov Oblast | Псковская область | 60 | 02:00:00 | Псков
87 | Republic of Adygea | Республика Адыгея | 01 | 02:00:00 | Майкоп
1 | Altai Republic | Республика Алтай | 04 | 06:00:00 | Горно-Алтайск
2 | Republic of Bashkortostan | Республика Башкортостан | 02 | 04:00:00 | Уфа
3 | Republic of Buryatia | Республика Бурятия | 03 | 07:00:00 | Улан-Удэ
4 | Republic of Dagestan | Республика Дагестан | 05 | 02:00:00 | Махачкала
5 | Republic of Ingushetia | Республика Ингушетия | 06 | 02:00:00 | Магас
7 | Republic of Kalmykia | Республика Калмыкия | 08 | 02:00:00 | Элиста
9 | Republic of Karelia | Республика Карелия | 10 | 02:00:00 | Петрозаводск
10 | Komi Republic | Республика Коми | 11 | 02:00:00 | Сыктывкар
11 | Republic of Crimea | Республика Крым | 91 | 02:00:00 | Симферополь
12 | Mari El Republic | Республика Марий Эл | 12 | 02:00:00 | Йошкар-Ола
13 | Republic of Mordovia | Республика Мордовия | 13 | 02:00:00 | Саранск
14 | Republic of Sakha (Yakutia) | Республика Саха (Якутия) | 14 | 08:00:00 | Якутск
15 | Republic of North Ossetia Alania | Республика Северная Осетия — Алания | 15 | 02:00:00 | Владикавказ
16 | Republic of Tatarstan | Республика Татарстан | 16 | 02:00:00 | Казань
17 | Tyva Republic | Республика Тыва | 17 | 06:00:00 | Кызыл
19 | Republic of Khakassia | Республика Хакасия | 19 | 06:00:00 | Абакан
62 | Rostov Oblast | Ростовская область | 61 | 02:00:00 | Ростов-на-Дону
63 | Ryazan Oblast | Рязанская область | 62 | 02:00:00 | Рязань
64 | Samara Oblast | Самарская область | 63 | 03:00:00 | Самара
78 | Saint Petersburg | Санкт-Петербург | 78 | 02:00:00 | Санкт-Петербург
65 | Saratov Oblast | Саратовская область | 64 | 03:00:00 | Саратов
66 | Sakhalin Oblast | Сахалинская область | 65 | 10:00:00 | Южно-Сахалинск
67 | Sverdlovsk Oblast | Свердловская область | 66 | 04:00:00 | Екатеринбург
79 | Sevastopol | Севастополь | 92 | 02:00:00 | Севастополь
68 | Smolensk Oblast | Смоленская область | 67 | 02:00:00 | Смоленск
29 | Stavropol Krai | Ставропольский край | 26 | 02:00:00 | Ставрополь
69 | Tambov Oblast | Тамбовская область | 68 | 02:00:00 | Тамбов
70 | Tver Oblast | Тверская область | 69 | 02:00:00 | Тверь
71 | Tomsk Oblast | Томская область | 70 | 06:00:00 | Томск
72 | Tula Oblast | Тульская область | 71 | 02:00:00 | Тула
73 | Tyumen Oblast | Тюменская область | 72 | 04:00:00 | Тюмень
18 | Udmurt Republic | Удмуртская Республика | 18 | 03:00:00 | Ижевск
74 | Ulyanovsk Oblast | Ульяновская область | 73 | 03:00:00 | Ульяновск
30 | Khabarovsk Krai | Хабаровский край | 27 | 09:00:00 | Хабаровск
82 | Khanty-Mansi Autonomous Okrug Yugra | Ханты-Мансийский автономный округ — Югра | 86 | 04:00:00 | Ханты-Мансийск
75 | Chelyabinsk Oblast | Челябинская область | 74 | 04:00:00 | Челябинск
20 | Chechen Republic | Чеченская Республика | 20 | 02:00:00 | Грозный
21 | Chuvash Republic | Чувашская Республика | 21 | 02:00:00 | Чебоксары
83 | Chukotka Autonomous Okrug | Чукотский автономный округ | 87 | 11:00:00 | Анадырь
84 | Yamalo-Nenets Autonomous Okrug | Ямало-Ненецкий автономный округ | 89 | 04:00:00 | Салехард
76 | Yaroslavl Oblast | Ярославская область | 76 | 02:00:00 | Ярославль

1 22 Altai Krai Алтайский край 22 06:00:00 06:00:00 Барнаул
2 31 Amur Oblast Амурская область 28 08:00:00 08:00:00 Благовещенск
3 32 Arkhangelsk Oblast Архангельская область 29 02:00:00 02:00:00 Архангельск
4 33 Astrakhan Oblast Астраханская область 30 03:00:00 03:00:00 Астрахань
5 34 Belgorod Oblast Белгородская область 31 02:00:00 02:00:00 Белгород
6 35 Bryansk Oblast Брянская область 32 02:00:00 02:00:00 Брянск
7 36 Vladimir Oblast Владимирская область 33 02:00:00 02:00:00 Владимир
8 37 Volgograd Oblast Волгоградская область 34 02:00:00 02:00:00 Волгоград
9 38 Vologda Oblast Вологодская область 35 02:00:00 02:00:00 Вологда
10 39 Voronezh Oblast Воронежская область 36 02:00:00 02:00:00 Воронеж
11 80 Jewish Autonomous Oblast Еврейская автономная область 79 09:00:00 09:00:00 Биробиджан
12 23 Zabaykalsky Krai Забайкальский край 75 08:00:00 08:00:00 Чита
13 40 Ivanovo Oblast Ивановская область 37 02:00:00 02:00:00 Иваново
14 41 Irkutsk Oblast Иркутская область 38 07:00:00 07:00:00 Иркутск
15 6 Kabardino-Balkar Republic Кабардино-Балкарская Республика 07 02:00:00 02:00:00 Нальчик
16 42 Kaliningrad Oblast Калининградская область 39 01:00:00 01:00:00 Калининград
17 43 Kaluga Oblast Калужская область 40 02:00:00 02:00:00 Калуга
18 24 Kamchatka Krai Камчатский край 41 11:00:00 11:00:00 Петропавловск-Камчатский
19 8 Karachay-Cherkess Republic Карачаево-Черкесская Республика 09 02:00:00 02:00:00 Черкесск
20 44 Kemerovo Oblast Кемеровская область 42 06:00:00 06:00:00 Кемерово
21 45 Kirov Oblast Кировская область 43 02:00:00 02:00:00 Киров
22 46 Kostroma Oblast Костромская область 44 02:00:00 02:00:00 Кострома
23 25 Krasnodar Krai Краснодарский край 23 02:00:00 02:00:00 Красноярск
24 26 Krasnoyarsk Krai Красноярский край 24 06:00:00 06:00:00 Краснодар
25 47 Kurgan Oblast Курганская область 45 04:00:00 04:00:00 Курган
26 48 Kursk Oblast Курская область 46 02:00:00 02:00:00 Курск
27 49 Leningrad Oblast Ленинградская область 47 02:00:00 02:00:00 Санкт-Петербург
28 50 Lipetsk Oblast Липецкая область 48 02:00:00 02:00:00 Липецк
29 51 Magadan Oblast Магаданская область 49 10:00:00 10:00:00 Магадан
30 77 Moscow Москва 77 02:00:00 02:00:00 Москва
31 52 Moscow Oblast Московская область 50 02:00:00 02:00:00 Москва
32 53 Murmansk Oblast Мурманская область 51 02:00:00 02:00:00 Мурманск
33 81 Nenets Autonomous Okrug Ненецкий автономный округ 83 02:00:00 02:00:00 Нарьян-Мар
34 54 Nizhny Novgorod Oblast Нижегородская область 52 02:00:00 02:00:00 Нижний Новгород
35 55 Novgorod Oblast Новгородская область 53 02:00:00 02:00:00 Великий Новгород
36 56 Novosibirsk Oblast Новосибирская область 54 06:00:00 06:00:00 Новосибирск
37 57 Omsk Oblast Омская область 55 05:00:00 05:00:00 Омск
38 58 Orenburg Oblast Оренбургская область 56 04:00:00 04:00:00 Оренбург
39 59 Oryol Oblast Орловская область 57 02:00:00 02:00:00 Орёл
40 60 Penza Oblast Пензенская область 58 02:00:00 02:00:00 Пенза
41 27 Perm Krai Пермский край 59 04:00:00 04:00:00 Пермь
42 28 Primorsky Krai Приморский край 25 09:00:00 09:00:00 Владивосток
43 61 Pskov Oblast Псковская область 60 02:00:00 02:00:00 Псков
44 87 Republic of Adygea Республика Адыгея 01 02:00:00 02:00:00 Майкоп
45 1 Altai Republic Республика Алтай 04 06:00:00 06:00:00 Горно-Алтайск
46 2 Republic of Bashkortostan Республика Башкортостан 02 04:00:00 04:00:00 Уфа
47 3 Republic of Buryatia Республика Бурятия 03 07:00:00 07:00:00 Улан-Удэ
48 4 Republic of Dagestan Республика Дагестан 05 02:00:00 02:00:00 Махачкала
49 5 Republic of Ingushetia Республика Ингушетия 06 02:00:00 02:00:00 Магас
50 7 Republic of Kalmykia Республика Калмыкия 08 02:00:00 02:00:00 Элиста
51 9 Republic of Karelia Республика Карелия 10 02:00:00 02:00:00 Петрозаводск
52 10 Komi Republic Республика Коми 11 02:00:00 02:00:00 Сыктывкар
53 11 Republic of Crimea Республика Крым 91 02:00:00 02:00:00 Симферополь
54 12 Mari El Republic Республика Марий Эл 12 02:00:00 02:00:00 Йошкар-Ола
55 13 Republic of Mordovia Республика Мордовия 13 02:00:00 02:00:00 Саранск
56 14 Republic of Sakha (Yakutia) Республика Саха (Якутия) 14 08:00:00 08:00:00 Якутск
57 15 Republic of North Ossetia – Alania Республика Северная Осетия — Алания 15 02:00:00 02:00:00 Владикавказ
58 16 Republic of Tatarstan Республика Татарстан 16 02:00:00 02:00:00 Казань
59 17 Tyva Republic Республика Тыва 17 06:00:00 06:00:00 Кызыл
60 19 Republic of Khakassia Республика Хакасия 19 06:00:00 06:00:00 Абакан
61 62 Rostov Oblast Ростовская область 61 02:00:00 02:00:00 Ростов-на-Дону
62 63 Ryazan Oblast Рязанская область 62 02:00:00 02:00:00 Рязань
63 64 Samara Oblast Самарская область 63 03:00:00 03:00:00 Самара
64 78 Saint Petersburg Санкт-Петербург 78 02:00:00 02:00:00 Санкт-Петербург
65 65 Saratov Oblast Саратовская область 64 03:00:00 03:00:00 Саратов
66 66 Sakhalin Oblast Сахалинская область 65 10:00:00 10:00:00 Южно-Сахалинск
67 67 Sverdlovsk Oblast Свердловская область 66 04:00:00 04:00:00 Екатеринбург
68 79 Sevastopol Севастополь 92 02:00:00 02:00:00 Севастополь
69 68 Smolensk Oblast Смоленская область 67 02:00:00 02:00:00 Смоленск
70 29 Stavropol Krai Ставропольский край 26 02:00:00 02:00:00 Ставрополь
71 69 Tambov Oblast Тамбовская область 68 02:00:00 02:00:00 Тамбов
72 70 Tver Oblast Тверская область 69 02:00:00 02:00:00 Тверь
73 71 Tomsk Oblast Томская область 70 06:00:00 06:00:00 Томск
74 72 Tula Oblast Тульская область 71 02:00:00 02:00:00 Тула
75 73 Tyumen Oblast Тюменская область 72 04:00:00 04:00:00 Тюмень
76 18 Udmurt Republic Удмуртская Республика 18 03:00:00 03:00:00 Ижевск
77 74 Ulyanovsk Oblast Ульяновская область 73 03:00:00 03:00:00 Ульяновск
78 30 Khabarovsk Krai Хабаровский край 27 09:00:00 09:00:00 Хабаровск
79 82 Khanty-Mansi Autonomous Okrug – Yugra Ханты-Мансийский автономный округ — Югра 86 04:00:00 04:00:00 Ханты-Мансийск
80 75 Chelyabinsk Oblast Челябинская область 74 04:00:00 04:00:00 Челябинск
81 20 Chechen Republic Чеченская Республика 20 02:00:00 02:00:00 Грозный
82 21 Chuvash Republic Чувашская Республика 21 02:00:00 02:00:00 Чебоксары
83 83 Chukotka Autonomous Okrug Чукотский автономный округ 87 11:00:00 11:00:00 Анадырь
84 84 Yamalo-Nenets Autonomous Okrug Ямало-Ненецкий автономный округ 89 04:00:00 04:00:00 Салехард
85 76 Yaroslavl Oblast Ярославская область 76 02:00:00 02:00:00 Ярославль

View File

@ -34,6 +34,7 @@ en:
english_name: Name
native_name: Name
display_name: Name
centre: Administrative centre
number: Number
timezone: Time zone
passport:

View File

@ -34,6 +34,7 @@ ru:
english_name: Название
native_name: Название
display_name: Название
centre: Административный центр
number: Номер
timezone: Часовой пояс
passport:

View File

@ -17,6 +17,7 @@ class InitialMigration < ActiveRecord::Migration[6.0]
t.string :english_name, null: false, index: { unique: true }
t.string :native_name, null: false, index: { unique: true }
t.string :centre, null: false, index: false
t.integer :number, null: false, index: { unique: true }
t.interval :timezone, null: false, index: false
@ -226,6 +227,14 @@ class InitialMigration < ActiveRecord::Migration[6.0]
native_name !~ '[[:space:]]{1,}$'
SQL
constraint :federal_subjects, :centre, <<~SQL
length(centre) BETWEEN 1 AND 255
AND
centre !~ '^[[:space:]]{1,}'
AND
centre !~ '[[:space:]]{1,}$'
SQL
constraint :federal_subjects, :number, <<~SQL
number > 0
SQL

View File

@ -4,19 +4,23 @@ require 'csv'
federal_subjects_filename = Rails.root.join 'config', 'federal_subjects.csv'
CSV.foreach federal_subjects_filename,
col_sep: '|' do |(id, english_name, native_name, number, timezone)|
CSV.foreach(
federal_subjects_filename,
col_sep: '|',
) do |(id, english_name, native_name, number, timezone, centre)|
id = Integer(id.strip)
english_name.strip!
native_name.strip!
number = Integer(number.strip.sub(/\A0*/, ''))
timezone.strip!
centre.strip!
FederalSubject.where(id: id).first_or_create! do |new_federal_subject|
new_federal_subject.english_name = english_name
new_federal_subject.native_name = native_name
new_federal_subject.number = number
new_federal_subject.timezone = timezone
new_federal_subject.centre = centre
end
end

View File

@ -252,8 +252,10 @@ CREATE TABLE public.federal_subjects (
updated_at timestamp(6) without time zone NOT NULL,
english_name character varying NOT NULL,
native_name character varying NOT NULL,
centre character varying NOT NULL,
number integer NOT NULL,
timezone interval NOT NULL,
CONSTRAINT centre CHECK ((((length((centre)::text) >= 1) AND (length((centre)::text) <= 255)) AND ((centre)::text !~ '^[[:space:]]{1,}'::text) AND ((centre)::text !~ '[[:space:]]{1,}$'::text))),
CONSTRAINT english_name CHECK ((((length((english_name)::text) >= 1) AND (length((english_name)::text) <= 255)) AND ((english_name)::text !~ '^[[:space:]]{1,}'::text) AND ((english_name)::text !~ '[[:space:]]{1,}$'::text))),
CONSTRAINT native_name CHECK ((((length((native_name)::text) >= 1) AND (length((native_name)::text) <= 255)) AND ((native_name)::text !~ '^[[:space:]]{1,}'::text) AND ((native_name)::text !~ '[[:space:]]{1,}$'::text))),
CONSTRAINT number CHECK ((number > 0))

View File

@ -17,6 +17,8 @@ FactoryBot.define do
native_name { english_name }
centre { Faker::Address.city }
timezone { "#{[nil, :-].sample}#{rand(0..11).to_s.rjust(2, '0')}:00:00" }
end
end

View File

@ -49,6 +49,22 @@ RSpec.describe FederalSubject do
it { is_expected.not_to allow_value 'Foo ' }
end
describe '#centre' do
def allow_value(*)
super.for :centre
end
it { is_expected.to validate_presence_of :centre }
it do
is_expected.to \
validate_length_of(:centre).is_at_least(1).is_at_most(255)
end
it { is_expected.not_to allow_value ' Foo' }
it { is_expected.not_to allow_value 'Foo ' }
end
describe '#number' do
it { is_expected.to validate_presence_of :number }
it { is_expected.to validate_uniqueness_of :number }