Giter VIP home page Giter VIP logo

voxpop's People

Contributors

augke avatar bofrede avatar dependabot[bot] avatar nicolas-semaphor avatar pre-commit-ci[bot] avatar valberg avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

voxpop's Issues

Database connection leak on SSE requests

The database connections used for SSE are not closed, witch leads to not available database connections, as they are all used.

The EventSource at /voxpops/<voxpopid>/questions/stream calls questions_stream_view witch returns a StreamingHttpResponse in

voxpop/voxpop/views.py

Lines 237 to 245 in f26ca8b

return StreamingHttpResponse(
content_type="text/event-stream",
headers={
"X-Accel-Buffering": "no",
"Access-Control-Allow-Credentials": "true",
"Cache-Control": "No-Cache"
},
streaming_content=__stream_questions(channel_prefix=channel_prefix, voxpop_id=voxpop_id, last_event_id=last_event_id),
)

Inside __stream_questions some async code yields the events:

voxpop/voxpop/views.py

Lines 220 to 224 in f26ca8b

async with aconnection.cursor() as acursor:
await acursor.execute(f"LISTEN {channel_name}")
gen = aconnection.notifies()
async for notify in gen:
yield notify.payload

This async block needs to be stopped and the database connection closed, when the HTTP connection is dropped.

Voxpop Edit Signal

  • Not important right now.
    Maybe we should have at voxpop event change signal, so titel / desc. changes will be updated for users.

Admin Frontend

We need a "watered down" version of the Django interface that allows authenticated users to view Voxpops relevant to their organisation as well as moderate the chats of the Voxpops.

I think the site will be accesible like this:
voxpop.semaphor.dk/admin <- General overview
voxpop.semaphor.dk/admin/<voxpop.uuid> <- Specific voxpop overview.

And potentially we can use the @login_required decorater around the specific views to ensure only authorized personall can access the site.

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.