Skip to content

Commit 0aa3406

Browse files
jonkridracos
authored andcommitted
[Hylte] Add cobrand
1 parent e8189b7 commit 0aa3406

23 files changed

+393
-4
lines changed

Diff for: perllib/FixMyStreet/Cobrand/FixaMinGata.pm

+32
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ use Carp;
99
use mySociety::MaPit;
1010
use DateTime;
1111

12+
sub site_key { 'fixamingata' }
13+
1214
sub country {
1315
return 'SE';
1416
}
@@ -18,6 +20,7 @@ sub language_override { 'sv' }
1820

1921
sub enter_postcode_text {
2022
my ( $self ) = @_;
23+
2124
return _('Enter a nearby postcode, or street name and area');
2225
}
2326

@@ -87,42 +90,53 @@ sub geocoder_munge_results {
8790

8891
sub area_types {
8992
my $self = shift;
93+
9094
return $self->next::method() if FixMyStreet->staging_flag('skip_checks');
95+
9196
[ 'KOM' ];
9297
}
9398

9499
sub geocode_postcode {
95100
my ( $self, $s ) = @_;
101+
96102
# Most people write Swedish postcodes like this:
97103
# XXX XX, so let's remove the space
98104
$s =~ s/\ //g;
105+
99106
if ($s =~ /^\d{5}$/) {
100107
my $location = mySociety::MaPit::call('postcode', $s);
108+
101109
if ($location->{error}) {
102110
return {
103111
error => $location->{code} =~ /^4/
104112
? _('That postcode was not recognised, sorry.')
105113
: $location->{error}
106114
};
107115
}
116+
108117
return {
109118
latitude => $location->{wgs84_lat},
110119
longitude => $location->{wgs84_lon},
111120
};
112121
}
122+
113123
return {};
114124
}
115125

116126
# Vad gör den här funktionen? Är "Sverige" rätt här?
117127
sub geocoded_string_check {
118128
my ( $self, $s ) = @_;
129+
119130
return 1 if $s =~ /, Sverige/;
131+
120132
return 0;
121133
}
122134

123135
sub find_closest {
124136
my ( $self, $problem ) = @_;
137+
125138
$problem = $problem->{problem} if ref $problem eq 'HASH';
139+
126140
return FixMyStreet::Geocode::OSM->closest_road_text( $self, $problem->latitude, $problem->longitude );
127141
}
128142

@@ -132,13 +146,15 @@ sub guess_road_operator {
132146

133147
my $highway = $inforef->{highway} || "unknown";
134148
my $refs = $inforef->{ref} || "unknown";
149+
135150
return "Trafikverket"
136151
if $highway eq "trunk" || $highway eq "primary";
137152

138153
for my $ref (split(/;/, $refs)) {
139154
return "Trafikverket"
140155
if $ref =~ m/E ?\d+/ || $ref =~ m/Fv\d+/i;
141156
}
157+
142158
return '';
143159
}
144160

@@ -167,9 +183,13 @@ sub filter_all_council_ids_list {
167183
# confirmed state), and red otherwise.
168184
sub pin_colour {
169185
my ( $self, $p, $context ) = @_;
186+
170187
return 'green' if $p->is_closed;
188+
171189
return 'green' if $p->is_fixed;
190+
172191
return 'yellow' if $p->is_in_progress;
192+
173193
return 'red';
174194
}
175195

@@ -183,6 +203,7 @@ sub state_groups_inspect {
183203

184204
sub always_view_body_contribute_details {
185205
my ( $self, $contributed_as ) = @_;
206+
186207
return $contributed_as eq '';
187208
}
188209

@@ -197,4 +218,15 @@ sub suggest_duplicates { 1 }
197218

198219
sub default_show_name { 1 }
199220

221+
sub path_to_email_templates {
222+
my ( $self, $lang_code ) = @_;
223+
224+
my $paths = [
225+
FixMyStreet->path_to( 'templates', 'email', $self->moniker ),
226+
FixMyStreet->path_to( 'templates', 'email', 'fixamingata'),
227+
];
228+
229+
return $paths;
230+
}
231+
200232
1;

Diff for: perllib/FixMyStreet/Cobrand/Hylte.pm

+89
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
package FixMyStreet::Cobrand::Hylte;
2+
use base 'FixMyStreet::Cobrand::FixaMinGata';
3+
4+
use strict;
5+
use warnings;
6+
use utf8;
7+
8+
use Carp;
9+
use mySociety::MaPit;
10+
use DateTime;
11+
12+
sub council_area_id { return 68; }
13+
sub council_area { return 'Hylte'; }
14+
sub council_name { return 'Hylte kommun'; }
15+
sub council_url { return 'hylte'; }
16+
17+
sub base_url { return 'https://hylte.fixamingata.se' }
18+
19+
sub site_key { 'hylte' }
20+
21+
sub areas_on_around { [68]; }
22+
23+
sub body {
24+
return FixMyStreet::DB->resultset("Body")->find({
25+
name => 'Hylte kommun'
26+
})
27+
}
28+
29+
sub extra_reports_bodies {
30+
return FixMyStreet::DB->resultset("Body")->find({
31+
name => 'Trafikverket'
32+
})
33+
}
34+
35+
sub problems_on_map_restriction {
36+
my ($self, $rs) = @_;
37+
38+
return $rs if FixMyStreet->staging_flag('skip_checks');
39+
40+
my $extra_bodies = $self->extra_reports_bodies();
41+
my @extra_bodies_ids = map { $_->id } $extra_bodies;
42+
my $bodies = [$self->body->id, @extra_bodies_ids];
43+
44+
return $rs->to_body($bodies);
45+
}
46+
47+
sub problems_restriction {
48+
my ($self, $rs) = @_;
49+
50+
return $rs if FixMyStreet->staging_flag('skip_checks');
51+
52+
my $extra_bodies = $self->extra_reports_bodies();
53+
my @extra_bodies_ids = map { $_->id } $extra_bodies;
54+
my $bodies = [$self->body->id, @extra_bodies_ids];
55+
56+
return $rs->to_body($bodies);
57+
}
58+
59+
sub updates_restriction {
60+
my ($self, $rs) = @_;
61+
62+
return $rs if FixMyStreet->staging_flag('skip_checks');
63+
64+
return $rs->to_body($self->body);
65+
}
66+
67+
sub disambiguate_location {
68+
my $self = shift;
69+
my $string = shift;
70+
71+
return {
72+
%{ $self->SUPER::disambiguate_location() },
73+
bounds => [ 56.8236518, 12.8207981, 57.1138647, 13.6935731 ],
74+
};
75+
}
76+
77+
sub abuse_reports_only { 1 }
78+
79+
sub always_view_body_contribute_details { return; }
80+
81+
sub default_show_name { 0 }
82+
83+
sub recent {
84+
my $self = shift;
85+
86+
return $self->problems->search({ areas => { 'like', '%,' . $self->body->id . ',%' } })->recent(@_);
87+
}
88+
89+
1;

Diff for: templates/email/hylte/_email_color_overrides.html

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
[%
2+
3+
color_hylte_deepblue = '#0078BB'
4+
color_black = '#000000'
5+
color_white = '#FFFFFF'
6+
color_hylte_lightblue = '#E6F2F8'
7+
8+
body_background_color = color_white
9+
body_text_color = color_black
10+
11+
header_background_color = color_hylte_deepblue
12+
header_text_color = color_white
13+
14+
secondary_column_background_color = color_hylte_lightblue
15+
16+
button_background_color = color_hylte_deepblue
17+
button_text_color = color_white
18+
19+
logo_file = 'Hylte%20kommun%20logotyp.svg'
20+
logo_width = "175" # pixel measurement, but without 'px' suffix
21+
logo_height = "35" # pixel measurement, but without 'px' suffix
22+
header_padding = "20px 30px"
23+
24+
%]

Diff for: templates/email/hylte/site-name.txt

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Hylte kommun

Diff for: templates/web/hylte/about/faq-sv.html

+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
[% INCLUDE 'header.html', title => loc('Frequently Asked Questions'), bodyclass => 'twothirdswidthpage' %]
2+
3+
<div class="sticky-sidebar">
4+
<aside>
5+
<ul class="plain-list">
6+
<li><a href="#faq">Vanliga frågor</a></li>
7+
<li><a href="#privacy">Personuppgiftshantering, sekretess och kakor</a></li>
8+
</ul>
9+
</aside>
10+
</div>
11+
12+
<h1><a name="faq"></a>Vanliga frågor</h1>
13+
<dl>
14+
<dt>Vad är FixaMinGata?</dt>
15+
<dd>FixaMinGata är en e-tjänst som hjälper Hylte kommuns invånare att anmäla fel i deras närmiljö på ett enkelt sätt genom att markera felet på en karta. Invånarna kan sedan följa felet och får samtliga uppdateringar till den e-post de angivit vid rapporteringen.</dd>
16+
<dd>Den här e-tjänsten tillhandahålls av <a href="http://sambruk.se/">Föreningen Sambruk</a>, en förening för kommunal samverkan kring e-tjänster. Totalt ingår runt 100 kommuner och landsting i Sambruk. Tjänsten togs fram i samarbete med <a href="http://kivos.se/">KIVOS</a> och <a href="http://ffkp.se/">Föreningen fri kultur och programvara</a>.</dd>
17+
<dt>Vilken typ av fel ska jag anmäla i FixaMinGata?</dt>
18+
<dd>
19+
FixaMinGata är främst anpassad för att rapportera fysiska problem i din närmiljö, exempelvis sådant som behöver <strong>underhållas, lagas eller iordningsställas</strong> till exempel:
20+
<ul>
21+
<li>Nedskräpning</li>
22+
<li>Trasiga gatulysen</li>
23+
<li>Hål i vägar och gångbanor</li>
24+
</ul>
25+
</dd>
26+
<dt>Vad är INTE FixaMinGata till för?</dt>
27+
<dd>
28+
FixaMinGata är inte lämpligt för andra typer av felanmälningar än de som anges ovan. Du måste kontakta din kommun eller fastighetsägare direkt för fel i stil med:
29+
<ul>
30+
<li>Brådskande och akuta problem</li>
31+
<li>Oljud i din närmiljö</li>
32+
<li>Brand och rök</li>
33+
<li>Förslag på nya vägar, farthinder, etc.</li>
34+
<li>Klaga på dina grannar</li>
35+
<li>Klaga på din kommun</li>
36+
<li>Droger, djurplågeri, stöld, eller andra kriminella aktiviteter.</li>
37+
</ul>
38+
</dd>
39+
<dt>Hur använder jag e-tjänsten?</dt>
40+
<dd>
41+
<ol>
42+
<li>Gå in på <a href="https://hylte.fixamingata.se">hylte.fixamingata.se</a> eller öppna Hylteappen (som du kan ladda ner <a href="https://www.hylte.se/hylteappen">här</a>) och klicka på <em>FixaMinGata</em>.</li>
43+
<li>Ange postnummer/gatunamn och ort eller om du står på det stället anmälan gäller för klicka på <em>Använd min nuvarande position</em>.</li>
44+
<li>Markera på kartan var felet finns.</li>
45+
<li>Beskriv felet och skicka in.</li>
46+
<li>Slutför anmälan genom att klicka på länken <em>Skicka min rapport</em> som du har fått till den e-postadress du angav.</li>
47+
</ol>
48+
</dd>
49+
<dt>Hur löses problem?</dt>
50+
<dd>Felanmälningar rapporteras till Hylte Kommun som sedan hanterar felanmälan enligt en intern process, exempelvis genom att delegera det till rätt enhet inom kommunen som får i uppdrag att lösa felanmälan.</dd>
51+
<dt>Är det gratis?</dt>
52+
<dd>Den här e-tjänsten används gratis för att göra en felanmälan. Tjänsten tillhandahålls av <a href="http://sambruk.se/">Föreningen Sambruk</a>, en förening för kommunal samverkan kring e-tjänster. Totalt ingår runt 100 kommuner och landsting i Sambruk.</dd>
53+
<dt>Kan jag använda FixaMinGata på min mobil?</dt>
54+
<dd>FixaMinGata kan du nå i din mobil via <a href="https://hylte.fixamingata.se/">hylte.fixamingata.se</a> eller öppna i <a href="https://www.hylte.se/hylteappen">Hylteappen</a> och klicka på FixaMinGata. Via Hylteappen kommer du snabbt in i systemet för att anmäla ett fel i närmiljön utan att behöva ta reda på vem som ansvarar för underhåll och service.</dd>
55+
<dt>Hur tillgänglig är tjänsten?</dt>
56+
<dd>Föreningen Sambruk står bakom webbplatsen FixaMinGata och målet är att så många som möjligt ska kunna använda webbplatsen. I FixaMinGatas <a href="https://fixamingata.se/about/accessibility">tillgänglighetsredogörelse</a> kan du läsa mer om hur lagen om tillgänglighet till digital offentlig service uppfylls samt om eventuella kända tillgänglighetsproblem och hur du kan rapportera brister så att de kan åtgärdas.</dd>
57+
</dl>
58+
59+
<h1 style="margin-top: 2rem;"><a name="privacy"></a>Personuppgiftshantering, sekretess och kakor</h1>
60+
61+
<p>De personuppgifter du lämnar i samband med att du gör en felanmälan via FixaMinGata behandlar Hylte kommun för att kunna administrera ditt ärende. Uppgifterna hanteras med stöd av gällande dataskyddslagstiftning och den lagliga grunden allmänt intresse.</p>
62+
<p>Samhällsbyggnadsnämnden är personuppgiftsansvarig för uppgifterna. Vi har kvar dina uppgifter den tid som behövs för att vi ska kunna uppfylla våra skyldigheter.</p>
63+
<p>Mer information om hur vi hanterar dina personuppgifter, vilka rättigheter du har och hur du kontaktar oss kan du läsa <a href="https://www.hylte.se/kommun-och-politik/allmanna-handlingar-och-personuppgifter/hantering-av-personuppgifter">här</a>.</p>
64+
<p>Föreningen Sambruk står bakom webbplatsen FixaMinGata. För mer information om personuppgiftshantering, sekretess och kakor se <a href="https://fixamingata.se/about/privacy">FixaMinGatas integritetsskyddspolicy</a>.</p>

Diff for: templates/web/hylte/about/privacy.html

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[% INCLUDE 'header.html', title => loc('Vanliga Frågor'), bodyclass => 'twothirdswidthpage' %]
2+
3+
<h1>Sekretess och kakor</h1>
4+
<p>De personuppgifter du lämnar i samband med att du gör en felanmälan via FixaMinGata behandlar Hylte kommun för att kunna administrera ditt ärende. Uppgifterna hanteras med stöd av gällande dataskyddslagstiftning och den lagliga grunden allmänt intresse.</p>
5+
<p>Samhällsbyggnadsnämnden är personuppgiftsansvarig för uppgifterna. Vi har kvar dina uppgifter den tid som behövs för att vi ska kunna uppfylla våra skyldigheter.</p>
6+
<p>Mer information om hur vi hanterar dina personuppgifter, vilka rättigheter du har och hur du kontaktar oss kan du läsa <a href="https://www.hylte.se/kommun-och-politik/allmanna-handlingar-och-personuppgifter/hantering-av-personuppgifter">här</a>.</p>
7+
<p>Föreningen Sambruk står bakom webbplatsen FixaMinGata. För mer information om personuppgiftshantering, sekretess och kakor se <a href="https://fixamingata.se/about/privacy">FixaMinGatas integritetsskyddspolicy</a>.</p>
8+
9+
[% INCLUDE 'footer.html' pagefooter = 'yes' %]

Diff for: templates/web/hylte/around/intro.html

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
<h1>[% loc('Report, view, or discuss local problems') %]</h1>
2+
<h2>till exempel nedskräpning eller trasig belysning</h2>

Diff for: templates/web/hylte/front/footer-marketing.html

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<div class="tablewrapper bordered footer-marketing" style="align-items: center; display: flex;">
2+
<p style="flex-grow: 1; margin-bottom: 0; text-align: left;">
3+
Använd <a href="https://fixamingata.se">FixaMinGata</a> för att rapportera problem utanför Hylte kommun.
4+
</p>
5+
<a href="https://fixamingata.se"><img alt="FixaMinGata" src="/cobrands/fixamingata/images/site-logo.svg"></a>
6+
</div>

Diff for: templates/web/hylte/front/recent.html

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
[%
2+
recent_photos = c.cobrand.recent('front', 5);
3+
%]
4+
5+
[% IF recent_photos.size %]
6+
<div id="front-recently">
7+
<h2>
8+
[%- IF c.cobrand.moniker == 'hart' %]
9+
Recently reported
10+
[% ELSE %]
11+
[% loc('Recently reported problems') %]
12+
[% END -%]
13+
</h2>
14+
15+
<section class="full-width">
16+
<ul id="js-reports-list" class="item-list item-list--reports item-list--front-page">
17+
[% FOREACH problem IN recent_photos %]
18+
[% INCLUDE 'front/_list-entry.html' %]
19+
[% END %]
20+
</ul>
21+
</section>
22+
</div>
23+
[% END %]

Diff for: templates/web/hylte/front/stats.html

Whitespace-only changes.

Diff for: templates/web/hylte/index-steps.html

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<h2>[% loc('How to report a problem') %]</h2>
2+
3+
<ol class="big-numbers">
4+
<li>[% question %]</li>
5+
<li>[% loc('Locate the problem on a map of the area') %]</li>
6+
<li>[% loc('Enter details of the problem') %]</li>
7+
<li>Bekräfta rapporten</li>
8+
</ol>
9+
10+
<section class="full-width">
11+
[% INCLUDE "front/stats.html" %]
12+
[% TRY %][% INCLUDE "front/tips.html" %][% CATCH file %][% END %]
13+
</section>
14+

Diff for: templates/web/hylte/report/inspect/assignment.html

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
[% inspectors = c.user.from_body.staff_with_permission('planned_reports') %]
2+
[%
3+
IF c.user.has_permission_to('assign_report_to_user', problem.bodies_str_ids)
4+
&& inspectors
5+
%]
6+
<p>
7+
<label for="assignment">[% loc('Assign to:') %]</label>
8+
<select class="form-control" name="assignment" id="assignment">
9+
[% INCLUDE 'report/inspect/_assignment-options.html' %]
10+
</select>
11+
</p>
12+
[% END %]

Diff for: templates/web/hylte/report/inspect/public_update.html

Whitespace-only changes.

Diff for: templates/web/hylte/report/new/after_title.html

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<div class="description_tips" aria-label="Allmänna riktlinjer kring rapporter">
2+
<ul class="do">
3+
<li>Rapportera endast fysiska problem som kan åtgärdas</li>
4+
</ul>
5+
<ul class="dont">
6+
<li>Använd inte denna tjänst för rena synpunkter och förslag</li>
7+
</ul>
8+
</div>

0 commit comments

Comments
 (0)