...
 
Commits (6)
......@@ -8,7 +8,8 @@ import requests.packages.urllib3
import logging
import urllib
import unicodedata
from fredrika import locationfinder
from fredrika import locationfinder, b64html2text
logger = logging.getLogger(__name__)
# disable urllib3 warnings and log mumbojumbo
......@@ -107,30 +108,6 @@ def parse_feed(db, Message, topic_id, app):
else:
location = False
'''
# Lets pretend that this isn't needed any more (due to r.encoding=UTF-8):
# location is probably in windows encoding
try:
location = location.encode("windows-1252").decode("utf-8")
# convert to base form
location = unidecode(location).encode('utf-8')
# new location base form
logging.debug("Base form: %s" % locationdata)
except Exception as e:
# wrong encoding or something
logging.error("%s loc conversion with id %s failed utf8!" % (name, alert))
location = unicodedata.normalize('NFKD', location).encode('ascii','xmlcharrefreplace')
translations = (
('¶', ''), ('¤', ''), ('¥', ''),
('å', 'a'), ('ä', 'a'), ('ö', 'o'),
('Å', 'A'), ('Ä', 'A'), ('Ö', 'O'),
('Ã', 'a'), ('รถ','o'), ('รค','a'),
)
for from_str, to_str in translations:
location = location.replace(from_str, to_str)
'''
# Override misspelled county :/
if location:
location = location.replace('Gataland', 'Gotaland')
......@@ -138,6 +115,7 @@ def parse_feed(db, Message, topic_id, app):
# current location
logging.info("Location: %s", location)
# lookup location from OpenStreetMap (OSM)
try:
location = locationfinder( location )
logging.info("The location is probably %s" % location)
......@@ -145,13 +123,17 @@ def parse_feed(db, Message, topic_id, app):
# wrong encoding or something
logging.error("%s location conversion with id %s failed!" % (name, alert))
message = data['info'][0]['resource'][0]['derefUri']
text = b64html2text(message)
msg = Message()
msg.subject = 'VMA - Viktigt Meddelande till Allmänheten'
msg.message = data['info'][0]['resource'][0]['derefUri']
msg.message = message
msg.active = True
msg.topic_id = topic_id
msg.location = location
msg.raw = data
msg.text = text
db.session.add(msg)
db.session.commit()
......
......@@ -14,6 +14,11 @@ import requests
import urllib
import os
# for parsing the content to text
import base64
from bs4 import BeautifulSoup
from lxml import html
# time to config
app = Flask(__name__)
app.config.from_object(os.getenv('APP_SETTINGS', 'config.DevelopmentConfig'))
......@@ -97,6 +102,20 @@ def locationfinder(location):
else:
return False
def b64html2text(html):
try:
html = base64.b64decode(html)
except:
html = False
if html:
soup = BeautifulSoup(html, "html.parser")
text = soup.text
else:
text = False
return text
####################
#### extensions ####
####################
......
......@@ -6,7 +6,7 @@ from sqlalchemy.orm import load_only
from fredrika.forms import LoginForm, MessageForm, UserForm, TopicForm, MessageEditForm, VolunteerForm, SignupForm
from fredrika.models import User, Org, Municipality, Topic, Logging, Volunteer, Message, Signup
from fredrika import db, locationfinder, notify_admin, send_to_topic
from fredrika import db, locationfinder, notify_admin, send_to_topic, b64html2text
from flask.ext.babel import gettext
import requests
import json
......@@ -14,6 +14,8 @@ import base64
import datetime
import time
main = Blueprint('main', __name__)
@main.route('/', methods=["GET", "POST"])
......@@ -22,22 +24,7 @@ def home():
if current_user.is_authenticated():
return redirect(url_for('.dashboard'))
form = SignupForm()
if form.validate_on_submit():
email = Signup.query.filter(Signup.email==form.email.data).first()
if not email:
signup = Signup()
form.populate_obj(signup)
db.session.add(signup)
db.session.commit()
flash( gettext("Your email has been added to the notification list: ") + signup.email, 'success')
return redirect(url_for('.home'))
else:
flash( gettext('Your email has already been added to the notification list'), 'error')
return redirect(url_for('.home'))
return render_template('index.html', form=form)
return render_template('index.html')
@main.route('/om')
def about():
......@@ -269,6 +256,8 @@ def message_edit(mid=0):
message.message = base64.b64encode(message.message.encode('utf-8'))
message.location = locationfinder(message.location.encode('utf-8'))
message.text = b64html2text(message.message)
# Helluva ugly hack, but deadlines!
raw = {}
raw['identifier'] = message.raw['identifier']
......@@ -295,19 +284,6 @@ def login():
return render_template("login.html", form=form)
@main.route('/signups')
@login_required
def signups():
delete = request.args.get('delete')
if delete:
Signup.query.filter_by(id=int(delete)).delete()
db.session.commit()
flash(gettext("Deleted email ") + str(delete), "success")
return redirect(url_for(".signups"))
users = Signup.query.order_by(Signup.created).all()
return render_template('signups.html', data=users)
@main.route("/logout")
def logout():
logout_user()
......@@ -376,6 +352,8 @@ def api(api_version=1.0, name=False, i_id=False):
'message': row.message,
'url': row.url,
'subject' : row.subject,
'text': row.text,
'description' : row.raw['info'][0]['description'],
})
if len(data) is 0:
......@@ -415,8 +393,13 @@ def sendalarm():
m.location = locationfinder(m.location.encode('utf-8'))
except:
m.location = locationfinder(m.location)
if m.raw['info'][0]['description']:
text_message = m.raw['info'][0]['description']
else:
text_message = m.text
try:
send = send_to_topic(m.topic.id, m.subject, m.message, m.location, m.id, m.raw)
send = send_to_topic(m.topic.id, m.subject, text_message, m.location, m.id, m.raw)
except requests.exceptions.RequestException as e:
pass
else:
......
......@@ -130,6 +130,7 @@ class Message(db.Model):
error = db.Column(db.Boolean(), default=False)
location = db.Column(JSONB)
message = db.Column(db.String())
text = db.Column(db.String())
raw = db.Column(JSONB)
subject = db.Column(db.String())
url = db.Column(db.String())
......
......@@ -13,21 +13,23 @@
</div>
<div class="col-xs-12 col-sm-6 col-md-5 col-lg-5 col-lg-offset-1">
<br>
<h1>Om Hesa Fredrika</h1>
<h1>{{ gettext('Om Hesa Fredrika') }}</h1>
<h3>Viktigt Meddelande till Allmänheten via App</h3>
<h3>{{ gettext('Viktigt Meddelande till Allmänheten via App') }}</h3>
<br><br>
<p>Idag får en stor majoritet av befolkningen stora mängder av notifikationer i fickan. Varför ska då de få potentiellt livsviktiga meddelanden enbart distribueras genom en ljudsignal följt av meddelande via lokalradio.</p>
<p>{{ gettext('Idag får en stor majoritet av befolkningen stora mängder av notifikationer i fickan. Varför ska då de få potentiellt livsviktiga meddelanden enbart distribueras genom en ljudsignal följt av meddelande via lokalradio?') }}</p>
<p>Vi vill med detta projekt för hur enkelt det är att göra just detta samt visa på möjligheterna som ett digitalt distributionssystem möjliggör.</p>
<p>Ljudsignalen, i folkmun kallad Hesa Fredrik, som används för VMA har fått ge namn till Hesa Fredrika.</p>
<p>{{ gettext('Vi vill med detta projekt för hur enkelt det är att göra just detta samt visa på möjligheterna som ett digitalt distributionssystem möjliggör.') }}</p>
<p>{{ gettext('Ljudsignalen, i folkmun kallad Hesa Fredrik, som används för VMA har fått ge namn till Hesa Fredrika.') }}</p>
<p>Vill du få kontakt med oss gör du det enklast via "tut at hesafredrika punkt se".
<p>{{ gettext('Vill du få kontakt med oss gör du det enklast via "tut at hesafredrika punkt se".') }}</p>
<br>
<p><b>Detta projekt har gjorts möjligt genom finansiering av Internetfonden IIS (Internetstiftelsen i Sverige).</b></p>
<p><b>{{ gettext('Detta projekt har gjorts möjligt genom finansiering av') }} <a href="https://www.iis.se" target="_blank">Internetfonden IIS</a> (Internetstiftelsen i Sverige).</b></p>
<br>
<a href="/">&laquo; Tillbaka</a>
<p><b>{{ gettext('Hesa Fredrika är Open Source och du kan hitta hela projektet här:') }} <a href="https://gitlab.com/hesafredrika" target="_blank">gitlab.com/hesafredrika</a>.</b></p>
<br>
<a href="/">&laquo; {{ gettext('Tillbaka') }}</a>
</div>
</div>
......
......@@ -27,7 +27,6 @@
<li><a href="{{ url_for('.logging') }}"><span class="icon-list"></span> {{ _("Logs") }} </a></li>
<li><a href="{{ url_for('.topics') }}"><span class="icon-list"></span> {{ _("Topics") }} </a></li>
<li><a href="{{ url_for('.volunteer') }}"><span class="icon-list"></span> {{ _("Volunteers") }} </a></li>
<li><a href="{{ url_for('.signups') }}"><span class="icon-people"></span> {{ _("Signups") }} </a></li>
{% endif %}
<li><a href="{{ url_for('.users') }}"><span class="icon-people"></span> {{ _("Users") }} </a></li>
{% if current_user.name %}
......
{% extends "base.html" %}
{% block title %}Hem{% endblock %}
{% block title %}Hesa Fredrika{% endblock %}
{% block body %}
......@@ -18,17 +18,17 @@
<h1 class="text-center">Hesa Fredrika</h1>
<p class="text-center">{{ gettext('Get important public announces, weather warnings and other important information directly to your phone.') }}</p>
<p class="text-center">{{ gettext('Become an volonteer in times of crisis and assist various public organisations.') }}</p>
<p class="text-center">{{ gettext('Få viktiga meddelanden till allmänheten, vädervarningar och annan kritisk samhällsinformation direkt till din mobiltelefon.') }}</p>
<p class="text-center">{{ gettext('Ställ upp som frivillig när hjälporganisationer i din närhet behöver hjälp i en krissituation"') }}</p>
<div class="row" style="margin-bottom: 1em;">
<div class="col-xs-12 visible-xs">
<br>
</div>
<div class="col-xs-6 col-sm-5 col-sm-offset-1 col-md-4 col-md-offset-2 text-center">
<a href="#"><img class="img-responsive" src="{{url_for('static', filename='images/appstore.png')}}"></a>
<a href="https://itunes.apple.com/se/app/id1076296132"><img class="img-responsive" src="{{url_for('static', filename='images/appstore.png')}}"></a>
</div>
<div class="col-xs-6 col-sm-5 col-md-4 text-center">
<a href="#"><img class="img-responsive" src="{{url_for('static', filename='images/googleplay.png')}}"></a>
<a href="https://play.google.com/store/apps/details?id=org.fredrika.hesa.android"><img class="img-responsive" src="{{url_for('static', filename='images/googleplay.png')}}"></a>
</div>
</div><!-- .row -->
</div>
......@@ -39,48 +39,4 @@
</div>
</div>
{# form stuff #}
<form role="form" action="" method="post"> {{ form.hidden_tag() }}
<div class="row">
<p>{{ gettext('Add your email address to our list and get an email when the app is available!') }}</p>
</div> {# end row #}
<div class="row">
<div class="col-md-2">
{{ form.email.label }}
</div>{# end col #}
<div class="col-md-8">
<div class="form-group">
{{ form.email(size=60) }}
{% if form.email.errors %}
{% for e in form.email.errors %}
<p class="help-block">{{ e }}</p>
{% endfor %}
{% endif %}
* <i>{{ gettext('Mandatory') }}</i>
</div>
</div>{# end col #}
<div class="col-md-2">
</div>
</div> {# end row #}
<div class="row">
<div class="col-md-2">
{{ form.name.label }}
</div>{# end col #}
<div class="col-md-8">
<div class="form-group">
{{ form.name(size=60) }}
{% if form.name.errors %}
{% for e in form.name.errors %}
<p class="help-block">{{ e }}</p>
{% endfor %}
{% endif %}
</div>
</div>{# end col #}
<div class="col-md-2">
</div>
</div> {# end row #}
<button type="submit" class="btn btn-primary">{{ gettext('Send') }}</button>
</form>
{% endblock %}
......@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: code@hesafredrika.se\n"
"POT-Creation-Date: 2017-07-27 21:49+0200\n"
"POT-Creation-Date: 2017-12-17 12:01+0100\n"
"PO-Revision-Date: 2015-11-18 22:48+0100\n"
"Last-Translator: Fredrik Lundhag <fredrik@hesafredrika.se>\n"
"Language: sv\n"
......@@ -19,12 +19,12 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.3.4\n"
#: fredrika/forms.py:14 fredrika/forms.py:36 fredrika/forms.py:122
#: fredrika/forms.py:14 fredrika/forms.py:36 fredrika/forms.py:126
msgid "Email"
msgstr "E-post"
#: fredrika/forms.py:15 fredrika/forms.py:96 fredrika/forms.py:109
#: fredrika/forms.py:123
#: fredrika/forms.py:15 fredrika/forms.py:100 fredrika/forms.py:113
#: fredrika/forms.py:127
msgid "Name"
msgstr "Namn"
......@@ -44,94 +44,135 @@ msgstr "Lösenord"
msgid "Wrong email or password"
msgstr "Fel email eller lösenord"
#: fredrika/forms.py:60 fredrika/forms.py:82
#: fredrika/forms.py:60 fredrika/forms.py:84
msgid "Active"
msgstr "Aktiv"
#: fredrika/forms.py:61 fredrika/forms.py:83 fredrika/main/views.py:271
#: fredrika/forms.py:61 fredrika/forms.py:85
msgid "Description"
msgstr ""
#: fredrika/forms.py:62 fredrika/forms.py:86 fredrika/main/views.py:268
msgid "Message"
msgstr "Meddelande"
#: fredrika/forms.py:62 fredrika/forms.py:84 fredrika/templates/message.html:31
#: fredrika/forms.py:63 fredrika/forms.py:87 fredrika/templates/message.html:31
msgid "Subject"
msgstr "Ärende"
#: fredrika/forms.py:63 fredrika/forms.py:85
#: fredrika/forms.py:64 fredrika/forms.py:88
msgid "Location"
msgstr "Plats"
#: fredrika/forms.py:64 fredrika/forms.py:86 fredrika/templates/message.html:36
#: fredrika/forms.py:65 fredrika/forms.py:89 fredrika/templates/message.html:36
msgid "URL"
msgstr "URL"
#: fredrika/forms.py:65
#: fredrika/forms.py:66
msgid "Topic"
msgstr "Ämne"
#: fredrika/forms.py:76
#: fredrika/forms.py:67 fredrika/forms.py:90
msgid "Error"
msgstr ""
#: fredrika/forms.py:78
msgid "Select topic"
msgstr "Välj ämne"
#: fredrika/forms.py:97 fredrika/forms.py:110
#: fredrika/forms.py:101 fredrika/forms.py:114
msgid "Note"
msgstr "Notering"
#: fredrika/main/views.py:34
msgid "Your email has been added to the notification list: "
msgstr "Din emailadress har lagts till på vår lista: "
#: fredrika/main/views.py:37
msgid "Your email has already been added to the notification list"
msgstr "Din emailadress finns redan på vår lista"
#: fredrika/main/views.py:86
#: fredrika/main/views.py:75
msgid "Location could not be found"
msgstr "Platsen kunde inte hittas"
#: fredrika/main/views.py:95
#: fredrika/main/views.py:84
msgid "Your message was sent added to the send queue"
msgstr "Ditt meddelande är lagt i kön"
#: fredrika/main/views.py:259
#: fredrika/main/views.py:248
msgid "Deleted Message "
msgstr "Tog bort meddelande "
#: fredrika/main/views.py:271
#: fredrika/main/views.py:268
msgid " edited."
msgstr " ändrat."
#: fredrika/main/views.py:284
#: fredrika/main/views.py:281
msgid "You are logged in"
msgstr "Du är inloggad"
#: fredrika/main/views.py:297
msgid "Deleted email "
msgstr "Tog bort email "
#: fredrika/main/views.py:306
#: fredrika/main/views.py:290
msgid "You are logged out"
msgstr "Du är utloggad"
#: fredrika/main/views.py:313
#: fredrika/main/views.py:297
msgid "You can only see this if you are logged in!"
msgstr "Du kan bara se detta när du är inloggad!"
#: fredrika/main/views.py:456
#: fredrika/main/views.py:448
msgid "The message with id "
msgstr "Meddelandet med id "
#: fredrika/main/views.py:456
#: fredrika/main/views.py:448
msgid "could not be found"
msgstr "kan inte hittas"
#: fredrika/templates/about.html:16
msgid "Om Hesa Fredrika"
msgstr ""
#: fredrika/templates/about.html:18
msgid "Viktigt Meddelande till Allmänheten via App"
msgstr ""
#: fredrika/templates/about.html:20
msgid ""
"Idag får en stor majoritet av befolkningen stora mängder av "
"notifikationer i fickan. Varför ska då de få potentiellt livsviktiga "
"meddelanden enbart distribueras genom en ljudsignal följt av meddelande "
"via lokalradio?"
msgstr ""
#: fredrika/templates/about.html:22
msgid ""
"Vi vill med detta projekt för hur enkelt det är att göra just detta samt "
"visa på möjligheterna som ett digitalt distributionssystem möjliggör."
msgstr ""
#: fredrika/templates/about.html:23
msgid ""
"Ljudsignalen, i folkmun kallad Hesa Fredrik, som används för VMA har fått"
" ge namn till Hesa Fredrika."
msgstr ""
#: fredrika/templates/about.html:25
msgid ""
"Vill du få kontakt med oss gör du det enklast via \"tut at hesafredrika "
"punkt se\"."
msgstr ""
#: fredrika/templates/about.html:28
msgid "Detta projekt har gjorts möjligt genom finansiering av"
msgstr ""
#: fredrika/templates/about.html:30
msgid "Hesa Fredrika är Open Source och du kan hitta hela projektet här:"
msgstr ""
#: fredrika/templates/about.html:32
msgid "Tillbaka"
msgstr ""
#: fredrika/templates/dashboard.html:9
msgid "To send a message, enter your text and select the topic, then press send."
msgstr ""
"För att skicka ett meddelande, skriv in text, välj topic och klicka på "
"Skicka"
#: fredrika/templates/dashboard.html:59 fredrika/templates/header.html:18
#: fredrika/templates/index.html:83
#: fredrika/templates/dashboard.html:68 fredrika/templates/header.html:18
msgid "Send"
msgstr "Skicka"
......@@ -147,47 +188,29 @@ msgstr "Ämnen"
msgid "Volunteers"
msgstr "Organisationer"
#: fredrika/templates/header.html:30
msgid "Signups"
msgstr "Utskick"
#: fredrika/templates/header.html:32
#: fredrika/templates/header.html:31
msgid "Users"
msgstr "Användare"
msgstr "Administratörer"
#: fredrika/templates/header.html:38
#: fredrika/templates/header.html:37
msgid "Sign out"
msgstr "Logga ut"
#: fredrika/templates/header.html:40
#: fredrika/templates/header.html:39
msgid "Sign in"
msgstr "Logga in"
#: fredrika/templates/index.html:21
msgid ""
"Get important public announces, weather warnings and other important "
"information directly to your phone."
"Få viktiga meddelanden till allmänheten, vädervarningar och annan kritisk"
" samhällsinformation direkt till din mobiltelefon."
msgstr ""
"Få viktiga meddelanden till allmänheten, vädervarningar och annan "
"samhällskritisk information direkt till din mobiltelefon."
#: fredrika/templates/index.html:22
msgid ""
"Become an volonteer in times of crisis and assist various public "
"organisations."
msgstr ""
"Ställ upp som frivillig när hjälporganisationer i din närhet behöver "
"hjälp i en krissituation"
#: fredrika/templates/index.html:45
msgid ""
"Add your email address to our list and get an email when the app is "
"available!"
msgstr "Lägg till dig på vår epostlista och få ett mail när appen släpps!"
#: fredrika/templates/index.html:60
msgid "Mandatory"
msgstr "Obligatorisk"
"hjälp i en krissituation\""
msgstr ""
#: fredrika/templates/message.html:3
msgid "Message log"
......@@ -233,3 +256,12 @@ msgstr "Föregående sida"
msgid "Next page"
msgstr "Nästa sida"
#~ msgid ""
#~ "Idag får en stor majoritet av "
#~ "befolkningen stora mängder av notifikationer"
#~ " i fickan. Varför ska då de få"
#~ " potentiellt livsviktiga meddelanden enbart "
#~ "distribueras genom en ljudsignal följt "
#~ "av meddelande via lokalradio."
#~ msgstr ""
......@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2017-07-27 21:49+0200\n"
"POT-Creation-Date: 2017-12-17 12:01+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......@@ -17,12 +17,12 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.3.4\n"
#: fredrika/forms.py:14 fredrika/forms.py:36 fredrika/forms.py:122
#: fredrika/forms.py:14 fredrika/forms.py:36 fredrika/forms.py:126
msgid "Email"
msgstr ""
#: fredrika/forms.py:15 fredrika/forms.py:96 fredrika/forms.py:109
#: fredrika/forms.py:123
#: fredrika/forms.py:15 fredrika/forms.py:100 fredrika/forms.py:113
#: fredrika/forms.py:127
msgid "Name"
msgstr ""
......@@ -42,92 +42,133 @@ msgstr ""
msgid "Wrong email or password"
msgstr ""
#: fredrika/forms.py:60 fredrika/forms.py:82
#: fredrika/forms.py:60 fredrika/forms.py:84
msgid "Active"
msgstr ""
#: fredrika/forms.py:61 fredrika/forms.py:83 fredrika/main/views.py:271
#: fredrika/forms.py:61 fredrika/forms.py:85
msgid "Description"
msgstr ""
#: fredrika/forms.py:62 fredrika/forms.py:86 fredrika/main/views.py:268
msgid "Message"
msgstr ""
#: fredrika/forms.py:62 fredrika/forms.py:84 fredrika/templates/message.html:31
#: fredrika/forms.py:63 fredrika/forms.py:87 fredrika/templates/message.html:31
msgid "Subject"
msgstr ""
#: fredrika/forms.py:63 fredrika/forms.py:85
#: fredrika/forms.py:64 fredrika/forms.py:88
msgid "Location"
msgstr ""
#: fredrika/forms.py:64 fredrika/forms.py:86 fredrika/templates/message.html:36
#: fredrika/forms.py:65 fredrika/forms.py:89 fredrika/templates/message.html:36
msgid "URL"
msgstr ""
#: fredrika/forms.py:65
#: fredrika/forms.py:66
msgid "Topic"
msgstr ""
#: fredrika/forms.py:76
msgid "Select topic"
msgstr ""
#: fredrika/forms.py:97 fredrika/forms.py:110
msgid "Note"
#: fredrika/forms.py:67 fredrika/forms.py:90
msgid "Error"
msgstr ""
#: fredrika/main/views.py:34
msgid "Your email has been added to the notification list: "
#: fredrika/forms.py:78
msgid "Select topic"
msgstr ""
#: fredrika/main/views.py:37
msgid "Your email has already been added to the notification list"
#: fredrika/forms.py:101 fredrika/forms.py:114
msgid "Note"
msgstr ""
#: fredrika/main/views.py:86
#: fredrika/main/views.py:75
msgid "Location could not be found"
msgstr ""
#: fredrika/main/views.py:95
#: fredrika/main/views.py:84
msgid "Your message was sent added to the send queue"
msgstr ""
#: fredrika/main/views.py:259
#: fredrika/main/views.py:248
msgid "Deleted Message "
msgstr ""
#: fredrika/main/views.py:271
#: fredrika/main/views.py:268
msgid " edited."
msgstr ""
#: fredrika/main/views.py:284
#: fredrika/main/views.py:281
msgid "You are logged in"
msgstr ""
#: fredrika/main/views.py:297
msgid "Deleted email "
msgstr ""
#: fredrika/main/views.py:306
#: fredrika/main/views.py:290
msgid "You are logged out"
msgstr ""
#: fredrika/main/views.py:313
#: fredrika/main/views.py:297
msgid "You can only see this if you are logged in!"
msgstr ""
#: fredrika/main/views.py:456
#: fredrika/main/views.py:448
msgid "The message with id "
msgstr ""
#: fredrika/main/views.py:456
#: fredrika/main/views.py:448
msgid "could not be found"
msgstr ""
#: fredrika/templates/about.html:16
msgid "Om Hesa Fredrika"
msgstr ""
#: fredrika/templates/about.html:18
msgid "Viktigt Meddelande till Allmänheten via App"
msgstr ""
#: fredrika/templates/about.html:20
msgid ""
"Idag får en stor majoritet av befolkningen stora mängder av "
"notifikationer i fickan. Varför ska då de få potentiellt livsviktiga "
"meddelanden enbart distribueras genom en ljudsignal följt av meddelande "
"via lokalradio?"
msgstr ""
#: fredrika/templates/about.html:22
msgid ""
"Vi vill med detta projekt för hur enkelt det är att göra just detta samt "
"visa på möjligheterna som ett digitalt distributionssystem möjliggör."
msgstr ""
#: fredrika/templates/about.html:23
msgid ""
"Ljudsignalen, i folkmun kallad Hesa Fredrik, som används för VMA har fått"
" ge namn till Hesa Fredrika."
msgstr ""
#: fredrika/templates/about.html:25
msgid ""
"Vill du få kontakt med oss gör du det enklast via \"tut at hesafredrika "
"punkt se\"."
msgstr ""
#: fredrika/templates/about.html:28
msgid "Detta projekt har gjorts möjligt genom finansiering av"
msgstr ""
#: fredrika/templates/about.html:30
msgid "Hesa Fredrika är Open Source och du kan hitta hela projektet här:"
msgstr ""
#: fredrika/templates/about.html:32
msgid "Tillbaka"
msgstr ""
#: fredrika/templates/dashboard.html:9
msgid "To send a message, enter your text and select the topic, then press send."
msgstr ""
#: fredrika/templates/dashboard.html:59 fredrika/templates/header.html:18
#: fredrika/templates/index.html:83
#: fredrika/templates/dashboard.html:68 fredrika/templates/header.html:18
msgid "Send"
msgstr ""
......@@ -143,42 +184,28 @@ msgstr ""
msgid "Volunteers"
msgstr ""
#: fredrika/templates/header.html:30
msgid "Signups"
msgstr ""
#: fredrika/templates/header.html:32
#: fredrika/templates/header.html:31
msgid "Users"
msgstr ""
#: fredrika/templates/header.html:38
#: fredrika/templates/header.html:37
msgid "Sign out"
msgstr ""
#: fredrika/templates/header.html:40
#: fredrika/templates/header.html:39
msgid "Sign in"
msgstr ""
#: fredrika/templates/index.html:21
msgid ""
"Get important public announces, weather warnings and other important "
"information directly to your phone."
"Få viktiga meddelanden till allmänheten, vädervarningar och annan kritisk"
" samhällsinformation direkt till din mobiltelefon."
msgstr ""
#: fredrika/templates/index.html:22
msgid ""
"Become an volonteer in times of crisis and assist various public "
"organisations."
msgstr ""
#: fredrika/templates/index.html:45
msgid ""
"Add your email address to our list and get an email when the app is "
"available!"
msgstr ""
#: fredrika/templates/index.html:60
msgid "Mandatory"
"Ställ upp som frivillig när hjälporganisationer i din närhet behöver "
"hjälp i en krissituation\""
msgstr ""
#: fredrika/templates/message.html:3
......
......@@ -4,12 +4,16 @@ anyjson==0.3.3
Babel==2.3.4
backports.shutil-get-terminal-size==1.0.0
bcrypt==3.1.0
beautifulsoup4==4.5.3
billiard==3.3.0.23
blessings==1.6
blinker==1.4
bpython==0.15
bs4==0.0.1
celery==3.1.23
certifi==2017.4.17
cffi==1.8.2
chardet==3.0.4
cov-core==1.15.0
coverage==3.7.1
cssmin==0.2.0
......@@ -30,12 +34,15 @@ Flask-Script==2.0.5
Flask-SQLAlchemy==2.0
Flask-WTF==0.11
greenlet==0.4.10
idna==2.5
ipython==5.1.0
ipython-genutils==0.1.0
itsdangerous==0.24
Jinja2==2.8
jsmin==2.1.1
kitchen==1.2.4
kombu==3.0.35
lxml==4.1.1
Mako==1.0.4
MarkupSafe==0.23
mccabe==0.3
......@@ -49,7 +56,7 @@ psycopg2==2.6.1
ptyprocess==0.5.1
py==1.4.31
pycparser==2.14
pyfcm==1.0.5
pyfcm==1.3.1
pyflakes==0.8.1
Pygments==2.1.3
pytest==2.7.0
......@@ -58,13 +65,16 @@ python-editor==1.0.1
python-firebase==1.2
pytz==2016.7
redis==2.10.5
requests==2.11.1
regex==2017.4.5
requests==2.18.1
requests-toolbelt==0.8.0
simplegeneric==0.8.1
six==1.10.0
speaklater==1.3
SQLAlchemy==1.0.15
traitlets==4.3.0
Unidecode==0.4.20
urllib3==1.21.1
wcwidth==0.1.7
webassets==0.12.0
Werkzeug==0.11.10
......