GithubHelp home page GithubHelp logo

pretalx-downstream's Introduction

pretalx logo

Continuous integration Coverage PyPI Documentation Website

pretalx is a conference planning tool focused on providing the best experience for organisers, speakers, reviewers, and attendees alike. It handles the submission process with a configurable Call for Participation, the reviewing and selection of submissions, and the scheduling and release handling. After the event, pretalx allows speakers to receive feedback, upload their slides, and organisers to embed recordings.

Read our feature list on our main site to get a better idea of what pretalx can do for you, but it typically involves everything you'll need to curate submissions and contents for a conference with several tracks and conference days.

You can host pretalx yourself, as detailed in our administrator documentation, or use our public instance at pretalx.com. If you want to use pretalx, we recommend you follow our blog, where we announce new versions and upcoming features.

📺 Look and feel

Screenshots of pretalx pages

Check out our feature list for more screenshots – or check the list of events to see how pretalx looks in the wild.

pretalx is highly configurable, so you can change its appearance and behaviour in many ways if the defaults don't fit your event. If the settings are not enough for you, you can even write plugins of your own.

🚦 Project status

pretalx is under active development and used by many events. It supports everything required for talk submission, speaker communication, and scheduling. You can see our supported features in the feature list, and our planned features in our open issues. pretalx has regular releases – you can look at the changelog to see upcoming and past changes, and install pretalx via PyPI.

🔨 Contributing

Contributions to pretalx are very welcome! You can contribute observations, bugs or feature requests via the issues. If you want to contribute changes to pretalx, please check our developer documentation on how to set up pretalx and get started on development. Please bear in mind that our Code of Conduct applies to the complete contribution process.

If you are interested in plugin development, check both our documentation and our list of plugin ideas in the project wiki.

💡 Project information

The pretalx source code is available on GitHub, where you can also find the issue tracker. The documentation is available at docs.pretalx.org, and you can find up to date information on our blog and Twitter. The pretalx package is available via PyPI.

We publish pretalx under the terms of the Apache License. See the LICENSE file for further information and the complete license text. The licenses of all dependencies are documented in the DEPENDENCIES.rst file.

The primary maintainer of this project is Tobias Kunze <[email protected]> (who also runs pretalx.com). See the CONTRIBUTORS file for a list of all the awesome folks who contributed to this project.

🧭 Users

If you want to look at conferences using pretalx, head over to the wiki for a list of events. And if you use pretalx for your event, please add it to the list (or tell us about it, and we'll add it)!

pretalx-downstream's People

Contributors

kunsi avatar rixx avatar saerdnaer avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

luto kunsi voc

pretalx-downstream's Issues

Improve handling of errors

Errors would include HTTP errors, parsing errors, and application errors (most commonly, duplicate version names). All of these should be exposed to administrators.

We might consider a fallback solution to duplicate versions in the long run.

[note to self] empty schedule creates invalid database state which can not recover itself

Ich hab grade keinen besseren Platz das aufzuschreiben, deswegen kurz hier – wir machen dann im Zweifel einfach selbst nen Fix als PR dafür.

Wir hatten vorhin mal die situation das der upstream schedule kurz leer war, dadurch hat das plugin dann in der postgres DB eine schedule version bei der nicht alle Pflichtfelder ausgefüllt waren – konkret kommt es beim end unten im zitierten Codeblock in Zeile 131 zu einem None. Versucht man danach das wieder korrekte schedule.xml einzuspielen, schlägt das end.date() fehl, und die Exception verhindert das man über die GUI wieder in sinnvollen Zustand kommt.

Nachdem ich die fehlerhafte Schedule-Version in der Postgres DB von Hand gelöscht habe hat sich das Problem behoben.

Dec 27 16:55:16 pretalx celery[6321]: [2022-12-27 15:55:16,762: INFO/ForkPoolWorker-1] processing jev22
Dec 27 16:55:23 pretalx celery[6321]: [2022-12-27 15:55:23,084: ERROR/ForkPoolWorker-1] Task pretalx_downstream.tasks.task_refresh_upstream_schedule[62381851-5633-492f-a182-7b2dd0c1de74] raised unexpected: AttributeError("'NoneType' object has no attribute 'date'")
Dec 27 16:55:23 pretalx celery[6321]: Traceback (most recent call last):
Dec 27 16:55:23 pretalx celery[6321]:   File "/opt/pretalx/venv/lib/python3.7/site-packages/celery/app/trace.py", line 412, in trace_task
Dec 27 16:55:23 pretalx celery[6321]:     R = retval = fun(*args, **kwargs)
Dec 27 16:55:23 pretalx celery[6321]:   File "/opt/pretalx/venv/lib/python3.7/site-packages/celery/app/trace.py", line 704, in __protected_call__
Dec 27 16:55:23 pretalx celery[6321]:     return self.run(*args, **kwargs)
Dec 27 16:55:23 pretalx celery[6321]:   File "/opt/pretalx/plugin_downstream/pretalx_downstream/tasks.py", line 78, in task_refresh_upstream_schedule
Dec 27 16:55:23 pretalx celery[6321]:     root, event, release_new_version=release_new_version
Dec 27 16:55:23 pretalx celery[6321]:   File "/usr/lib/python3.7/contextlib.py", line 74, in inner
Dec 27 16:55:23 pretalx celery[6321]:     return func(*args, **kwds)
Dec 27 16:55:23 pretalx celery[6321]:   File "/opt/pretalx/plugin_downstream/pretalx_downstream/tasks.py", line 131, in process_frab
Dec 27 16:55:23 pretalx celery[6321]:  event.date_to = end.date()
Dec 27 16:55:23 pretalx celery[6321]: AttributeError: 'NoneType' object has no attribute 'date'

if release_new_version:
schedule_version = root.find("version").text
if event.settings.downstream_discard_after:
schedule_version = schedule_version.split(
event.settings.downstream_discard_after
)[0]
try:
event.wip_schedule.freeze(schedule_version, notify_speakers=False)
schedule = event.schedules.get(version=schedule_version)
except Exception as e:
raise Exception(
f'Could not import "{event.name}" schedule version "{schedule_version}": {e}.'
)
schedule.talks.update(is_visible=True)
start = schedule.talks.order_by("start").first().start
end = schedule.talks.order_by("-end").first().end
event.date_from = start.date()
event.date_to = end.date()
event.save()
return changes, schedule

Add support for room guid's

As organizer in an upstream system I'd like to be able to rename rooms, without duplicating them downstream.

Right now the room get's created downstream as new room instead of renaming the existing one, as seen on pertalx.c3voc.de during jev22 when Sparti was renamed to RTC-Bühne (Sparti)

Additional complication: When the upstream and downstream conferences are in the same pretalx instance, there might be conflicts depending on how the unique constrains in the database are set...

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.