Code Monkey home page Code Monkey logo

skylines's People

Contributors

adrien81 avatar bbonamin avatar blastur avatar clementallen avatar dependabot-preview[bot] avatar dependabot-support avatar dependabot[bot] avatar fb avatar fberst avatar gabor-konrad avatar glidergeek avatar harry-r avatar jthuvili avatar kaaia avatar kedder avatar kerel-fs avatar lkangas avatar lordfolken avatar maxkellermann avatar parapent1sta avatar quints avatar renovate-bot avatar renovate[bot] avatar scottec avatar shadowoneau avatar snip avatar tobiaslohner avatar turbo87 avatar twpayne avatar vicb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

skylines's Issues

Exception on /flights/upload/ [POST]

Exception on /flights/upload/ [POST]
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1817, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1477, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1381, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1475, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1461, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/opt/skylines/src/skylines/lib/decorators.py", line 55, in decorated_view
    return fn(*args, **kwargs)
  File "/opt/skylines/src/skylines/views/upload.py", line 152, in index_post
    db.session.commit()
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/scoping.py", line 149, in do
    return getattr(self.registry(), name)(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 719, in commit
    self.transaction.commit()
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 352, in commit
    self._prepare_impl()
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 332, in _prepare_impl
    self.session.flush()
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1814, in flush
    self._flush(objects)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1896, in _flush
    flush_context.execute()
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 372, in execute
    rec.execute(self)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 525, in execute
    uow
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 63, in save_obj
    table, insert)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 565, in _emit_insert_statements
    execute(statement, params)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 664, in execute
    params)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 764, in _execute_clauseelement
    compiled_sql, distilled_params
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 878, in _execute_context
    context)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 871, in _execute_context
    context)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 320, in do_execute
    cursor.execute(statement, parameters)
IntegrityError: (IntegrityError) duplicate key value violates unique constraint "igc_files_md5_key"
DETAIL:  Key (md5)=(1a3ab3591291d7c7fd3e82937477b096) already exists.
 'INSERT INTO igc_files (owner_id, time_created, filename, md5, logger_id, logger_manufacturer_id, registration, competition_id, model, date_utc) VALUES (%(owner_id)s, %(time_created)s, %(filename)s, %(md5)s, %(logger_id)s, %(logger_manufacturer_id)s, %(registration)s, %(competition_id)s, %(model)s, %(date_utc)s) RETURNING igc_files.id' {'competition_id': None, 'time_created': datetime.datetime(2013, 7, 26, 12, 56, 50, 464413), 'filename': u'283c3w01.igc', 'date_utc': datetime.date(2012, 8, 3), 'logger_id': u'3W0', 'registration': u'D-6997', 'logger_manufacturer_id': 'CAM', 'md5': '1a3ab3591291d7c7fd3e82937477b096', 'model': u'GLASFLUEGEL_', 'owner_id': 72}

this it probably throwing if two identical files are part of a ZIP file.

Live Tracking barometer trace updates in m when units of feet are set

With live tracking set to Australian units the barogram has feet as the altitude units. However after refreshing the webpage, the live tracking updates to the barogram traces show a discontinuity step as though they are being drawn in metres rather than feet. The text display of altitude displayed at the marker location remains correct in feet.

Refreshing the page causes the traces to be correctly displayed in feet, then subsequent tracking reverts to plotting as though they are in metres.

Attached images show sequence:
LiveTrackingBaroUnits1.jpg - webpage refreshed ~03:05 with altitude trace steps shown

livetrackingbarounits1

LiveTrackingBaroUnits2.jpg - webpage refreshed ~03:20 with altitude trace steps from previous image corrected but updates from 03:20 incorrect.
livetrackingbarounits2

Support for NMEA logs

Given that a pilot wants to enter all flight info normally provided by IGC files, it makes sense to support NMEA logs as well.

backup is broken

pg_dump: reading schemas
pg_dump: reading user-defined tables
pg_dump: SQL command failed
pg_dump: Error message from server: ERROR: permission denied for relation
alembic_version
pg_dump: The command was: LOCK TABLE public.alembic_version IN ACCESS SHARE MODE
pg_dump: *** aborted because of error

RuntimeError: working outside of application context while trying to run './scripts/import_welt2000.py'

I'm trying to do a complete installation of Skylines in a Ubuntu machine, and all the dependencies have been installed successfully. I'm running python 2.7.3 (included with Ubuntu 12.04)

When running './scripts/import_welt2000.py', I get the error mentioned in the title with the following stack trace:

Traceback (most recent call last):
  File "./scripts/import_welt2000.py", line 30, in <module>
    welt2000 = get_database(path=args.welt2000_path)
  File "/vagrant/skylines/lib/waypoints/welt2000.py", line 34, in get_database
    path = __get_database_file(current_app.config['SKYLINES_TEMPORARY_DIR'])
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/local.py", line 338, in __getattr__
    return getattr(self._get_current_object(), name)
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/local.py", line 297, in _get_current_object
    return self.__local()
  File "/usr/local/lib/python2.7/dist-packages/flask/globals.py", line 34, in _find_app
    raise RuntimeError('working outside of application context')
RuntimeError: working outside of application context

With the little research I've done, I think this might be related to flask's Application Context (http://flask.pocoo.org/docs/appcontext/), but I have not been able to solve this.

I've digged into the source code of skylines/lib/waypoints/welt2000.py and I've found that the error goes away when line 34 is commented.

I'm not versed enough with python & flask to solve this... =(.. yet 👅

Exception on /notifications/ [GET]

Exception on /notifications/ [GET]
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1817, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1477, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1381, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1475, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1461, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/opt/skylines/src/skylines/views/notifications.py", line 71, in index
    return render_template('notifications/list.jinja', **template_vars)
  File "/usr/local/lib/python2.7/dist-packages/flask/templating.py", line 128, in render_template
    context, ctx.app)
  File "/usr/local/lib/python2.7/dist-packages/flask/templating.py", line 110, in _render
    rv = template.render(context)
  File "/usr/local/lib/python2.7/dist-packages/jinja2/environment.py", line 894, in render
    return self.environment.handle_exception(exc_info, True)
  File "/opt/skylines/src/skylines/templates/notifications/list.jinja", line 45, in top-level template code
    <a href="{{ url_for('.index', **(request.args|add_to_dict(page=next_page))) }}" class="btn">{% trans %}Older{% endtrans %} &rarr;</a>
  File "/opt/skylines/src/skylines/templates/base-page.jinja", line 3, in top-level template code
    {% from 'macros/flash.jinja' import insert_flash_message with context %}
  File "/opt/skylines/src/skylines/templates/base.jinja", line 21, in top-level template code
    {%- block body %}{% endblock %}
  File "/opt/skylines/src/skylines/templates/base-page.jinja", line 36, in block "body"
    {%- block content %}{% endblock %}
  File "/opt/skylines/src/skylines/templates/notifications/list.jinja", line 20, in block "content"
    {{ render_events_table(events) }}
  File "/opt/skylines/src/skylines/templates/notifications/events-table.jinja", line 9, in template
    {{ render_event_row(event) }}
  File "/opt/skylines/src/skylines/templates/notifications/events-table.jinja", line 43, in template
    {{ _render_show_button(event_link(event)) }}
  File "/opt/skylines/src/skylines/templates/notifications/events-table.jinja", line 200, in template
    {{ url_for('club.index', club_id=event.club_id) }}
  File "/usr/local/lib/python2.7/dist-packages/flask/helpers.py", line 312, in url_for
    return appctx.app.handle_url_build_error(error, endpoint, values)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1641, in handle_url_build_error
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python2.7/dist-packages/flask/helpers.py", line 305, in url_for
    force_external=external)
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/routing.py", line 1620, in build
    raise BuildError(endpoint, values, method)
BuildError: ('club.index', {}, None)

Live Tracking flights crossing UTC 00:00 are wrapped in elevation window

In New Zealand (NZDT=UTC+13) flights sometimes cross UTC midnight and the live tracking altitude trace is wrapped to the start of the window rather than scrolling and providing a continuous trace.

Suggestions:

  1. elevation graph time axis commences at midnight local time
  2. elevation graph time axis scrolls and scales as necessary to provide a "zoom - fit to available window" display

Public API

Since Skylines is promoted as an Open Data project, we should offer our data in form of a public API. We already offer unimportant things like airports and airspace for the map interactivity, but neither of them is documented so far.

This issue should be used to track all activities related to this effort.

Key Points

  • The API should be reachable through https://www.skylines-project.org/api/ or later https://api.skylines-project.org (SSL certificate is only valid for www subdomain).
  • The API is JSON based. Other representations can optionally be added.
  • The API code should be used to render the server-side templates if possible. The code in frontend.views should use the code in the api package, just like the code in api.views exposes most of that API to the public.
  • It should be possible to create a full-featured JS one-page app that uses the API. Same for possible mobile apps, i.e. Android and iOS.
  • The API should be versioned, but it should stay backwards compatible as far as ever possible.
  • The API should allow apps like XCSoar or iGlide to upload and publish IGC files directly from the app.

Tasks

  • Document API endpoints with Sphinx (and sphinxcontrib.httpdomain)
  • /api/airports
  • /api/airspace
  • /api/waves
  • /api/events
  • /api/flights
  • /api/users
  • /api/clubs
  • /api/files
  • /api/tracking
  • /api/search
  • Implement HTTP BasicAuth and/or OAuth for authenticating with the API

Examples

A list of well documented public APIs:

Tracking multiple flights live doesn't work if the first ID# in the URL isn't online

If you enter an URL with more than one user ID (seperated by ",") to track multiple flights live and the first ID in the URL isn't online, you don't see any flights, but just some kind of user page of the first (offline) ID. Even if the other IDs, or at least some of them are online. When the first ID is online you can see all the other live tracks too.
At the moment it's not possible to use a constant URL with e.g. all club colleagues IDs, where you can watch everyone who is online, without the need of filtering the URL on who ist flying that day and who isn't.

http://bugs.xcsoar.org/ticket/2786

Avatars

Since #14 got rejected we need a self-baked solution for uploading and using avatars for all users (and possibly clubs).

Where do we store the images?

File system, statically served.

What sizes do we need?

GitHub has 440x440 for the profile pages and 140x140 everywhere else.

Adding Schweizer Gliders

The following list of Schweizer gliders should be added to the SkyLines database:

  • SGS 1-23
  • SGS 1-26
  • SGS 1-34
  • SGS 1-35
  • SGS 1-36
  • SGS 2-32
  • SGS 2-33

This request came via mail from [email protected]

Enabling Realtime Tracking for use in SAR Operations

I would like to see the Real Time Tracking function to be made useful for Search and Rescue operations. This would require the ability to be able to read a geodetic position of the aircraft from the trace - especially the final positions.

MouseOver on Barograph triggers vertical scroll bar

In Chrome, when I move the mouse from not-MouseOver the barograph to MouseOver the barograph, a vertical scrollbar appears. The result is the whole page shifts a bit to the left.
Sometimes, this triggers a not-MouseOver again, and a continious shudder results.

Email notifications

Instead of requiring people to log in to see if there are notifications, why not drop them an email (if they indicate they would like that)?

Welt2000 Import Script

Our import script should be able to merge any modifications in the Welt2000 dataset with our current database. The airfield IDs must stay the same to keep the start/landing point information and other IDs related things.

Frontpage image broken

The frontpage currently attempts to display this image:
https://www.skylines-project.org/images/about-banner.png

Like this:

However, this is image cannot be found and returns a 404. This results in a rather empty frontpage.

Browser: Chrome Version 19.0.1055.1 dev
OS: Linux

In Iceweasel you do not notice the missing image, since it does not take up any space on the frontpage. In Chrome it does.

Screenshots can be made on request.

Searching for \ results in Internal Server Error

Exception on /search/ [GET]
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1817, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1477, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1381, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1475, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1461, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/opt/skylines/src/skylines/views/search.py", line 21, in index
    tokens = text_to_tokens(search_text)
  File "/opt/skylines/src/skylines/model/search.py", line 175, in text_to_tokens
    return shlex.split(search_text.encode('utf-8'))
  File "/usr/lib/python2.7/shlex.py", line 279, in split
    return list(lex)
  File "/usr/lib/python2.7/shlex.py", line 269, in next
    token = self.get_token()
  File "/usr/lib/python2.7/shlex.py", line 96, in get_token
    raw = self.read_token()
  File "/usr/lib/python2.7/shlex.py", line 191, in read_token
    raise ValueError, "No escaped character"
ValueError: No escaped character

Private / Public flights

Feature request: have Private / Public flights
Skylines could easily be used as an online personal logbook.
For this to be possible one would like to flag some flights (simple circuit, etc.) as private flights and not appear in the public pages. Much like what xcontest.org does.

Exception on /clubs/466/edit [POST]

Exception on /clubs/466/edit [POST]
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1817, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1477, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1381, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1475, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1461, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/opt/skylines/src/skylines/lib/decorators.py", line 37, in decorated_view
    return fn(*args, **kwargs)
  File "/opt/skylines/src/skylines/views/club.py", line 59, in edit_post
    db.session.commit()
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/scoping.py", line 149, in do
    return getattr(self.registry(), name)(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 719, in commit
    self.transaction.commit()
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 352, in commit
    self._prepare_impl()
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 332, in _prepare_impl
    self.session.flush()
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1814, in flush
    self._flush(objects)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1896, in _flush
    flush_context.execute()
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 372, in execute
    rec.execute(self)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 525, in execute
    uow
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 58, in save_obj
    mapper, table, update)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 491, in _emit_update_statements
    execute(statement, params)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 664, in execute
    params)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 764, in _execute_clauseelement
    compiled_sql, distilled_params
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 878, in _execute_context
    context)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 871, in _execute_context
    context)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 320, in do_execute
    cursor.execute(statement, parameters)
IntegrityError: (IntegrityError) duplicate key value violates unique constraint "clubs_name_key"
DETAIL:  Key (name)=(GKG) already exists.
 'UPDATE clubs SET name=%(name)s, website=%(website)s WHERE clubs.id = %(clubs_id)s' {'website': u'', 'clubs_id': 466, 'name': u'GKG'}

Delete a pilot

Delete a pilot or a club member if he/she is created by you.

Filter für Flüge

Wäre es möglich auf die Seite der Flüge einen Filter für die einzelnen Auswahlmöglichkeiten zu implementieren. Damit könnten Flüge präzise nach Verein, Datum, Pilot usw. gesucht und gelistet werden.
Derzeit ist dies schwierig weil man alle Seiten einzeln durchblättern muss um Flüge zu finden.

Imported from http://bugs.xcsoar.org/ticket/2676

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.