Giter Site home page Giter Site logo

symposion's Introduction

Symposion

Pinax

Pinax is an open-source platform built on the Django Web Framework. It is an ecosystem of reusable Django apps, themes, and starter project templates. This collection can be found at http://pinaxproject.com.

symposion

symposion is a conference management solution from Eldarion. It was built with the generous support of the Python Software Foundation. See http://eldarion.com/symposion/ for commercial support, customization and hosting.

Quickstart

To install symposion, run:

pip install symposion

symposion is a Django app. You will need to create a Django project to customize and manage your Symposion installation. We have built a basic Django startproject template that includes symposion (https://github.com/pinax/pinax-project-symposion).

Documentation

The symposion documentation is available at https://symposion.readthedocs.org/en/latest/. The Pinax documentation is available at http://pinaxproject.com/pinax/.

Contribute

See this blog post http://blog.pinaxproject.com/2016/02/26/recap-february-pinax-hangout/ including a video, or our How to Contribute (http://pinaxproject.com/pinax/how_to_contribute/) section for an overview on how contributing to Pinax works. For concrete contribution ideas, please see our Ways to Contribute/What We Need Help With (http://pinaxproject.com/pinax/ways_to_contribute/) section.

In case of any questions, we recommend you join our Pinax Slack team (http://slack.pinaxproject.com) and ping us there instead of creating an issue on GitHub. Creating issues on GitHub is of course also valid but we are usually able to help you faster if you ping us in Slack.

We also highly recommend reading our Open Source and Self-Care blog post (http://blog.pinaxproject.com/2016/01/19/open-source-and-self-care/).

Code of Conduct

In order to foster a kind, inclusive, and harassment-free community, the Pinax Project has a code of conduct, which can be found here http://pinaxproject.com/pinax/code_of_conduct/. We ask you to treat everyone as a smart human programmer that shares an interest in Python, Django, and Pinax with you.

Pinax Project Blog and Twitter

For updates and news regarding the Pinax Project, please follow us on Twitter at @pinaxproject and check out our blog http://blog.pinaxproject.com.

symposion's People

Contributors

brosner avatar chromano avatar codersquid avatar daaray avatar eloraburns avatar florapdx avatar holdenweb avatar hotsyk avatar jefftriplett avatar jtauber avatar katherinemichel avatar lukeman avatar mariatta avatar martey avatar mbrochh avatar miurahr avatar mjumbewu avatar odyx avatar paltman avatar trbs avatar uranusjr avatar wrought avatar zerok 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  avatar  avatar

symposion's Issues

Cospeaker emails via reviews notifications app

A friend reported that his co-speaker did not also receive the acceptance email.

Line 487 in symposion/reviews/views.py:

rn.to_address = proposal.speaker_email

Should probably be:

rn.to_address = [ speaker.email for speaker in proposal.speakers ]

Free for UI widget dependency

As a reusable application, symposion should be mostly independent against UI part.
It has already archived when dropping all templates from symposion and introduce pinax-project-symposion.

There is another dependency that is MarkItUp widget.

Some user prefer to use TinyMCE (or other widget such as MarkEdit as in PyCon), but it is quite difficult to change without forking and modifying symposion code base itself.

Can we drop MarkItUp dependency from, at least, models?

Changing from MarkupField to TextField, then developer may be able easily to add their preferable widget to their templates.

How to extend symposion.conference.models.Conference model without creating `Section` table?

Suppose I just want to customize the Conference model now. So I write these codes.

from symposion.conference.models import Conference

class ConferenceDetail(Conference):
    """
    Store conference details
    """
    location = models.CharField(max_length=50)
    # ...

However, when I run python manage.py syncdb, three tables, namely conference,section,conferencedetail, be created and I don't need section table.
BTW, I do not put symposion into INSTALLED_APPS.

Sitetree needs "django.core.context_processors.request" and "Could not parse the remainder"

I encountered a strange problem:
"pip install -r requirements.txt" installs symposion. However, using "symposion_project" as it is found in the repository already includes symposion in the PYTHONPATH.

This caused an error log of """Sitetree needs "django.core.context_processors.request" """ and "Could not parse the remainder" described in idlesign/django-sitetree#92

I guess that removing symposion from the requirements.txt would avoid that mistake to many people.

Stop using a copy of the talk description on the accepted talks page

Hi there -- PyOhio uses a fork of symposion, and I just created an issue in our repo, and a friend said I should add it here.

So, I'm copying / pasting this below.

Here's a fun fact: when a talk is accepted, the system copies the talk description.

So, speakers then go back and edit their original proposal, but don't see the changes show up on the accepted talks page but the DO see them on the original proposal for their talk.

Then they ask me to refresh the site, and I never remember how to do that.

The right way for this to work is to only keep a single copy of the data.

Somebody explained that the idea was to prevent people from editing a talk after acceptance, or after voting (I don't remember the specifics), and that's not necessarily a bad idea.

But I would prefer to support that feature explicitly by blocking edits, not by copying data.

I found these notes from last year when I had to deal with this problem:

This is the process I followed to refresh the talk data in the schedule.

Go to the review page for a talk and change the status from Accepted to Standby. This has a side effect of removing the talk from the schedule.
This is the review page for the configman talk:
http://www.pyohio.org/reviews/review/117/

Immediately change the talk back from Standby to Accepted.

Go to the edit schedule page:

http://www.pyohio.org/schedule/talks/edit/

and then find the plus symbol where the talk used to be. Click that
and in the popup modal, select the talk.

It seems to work OK. the sexism talk is now "diversity in tech". I
don't know what exact changes were made in the configman talk though,
so I can't be sure of that one.

Symposion, Pinax Project Symposion, PinaxCon Docs

Hi, I'm creating an issue for contributing to Pinax Symposion docs. I brought this up in Slack on Feb 29. I offered to help document PinaxCon, but also noticed pinax-project-symposion after that and could help with this at the same time. The Symposion Docs seems like the logical place to document this...? Here is a possible new structure for the index.rst

.. toctree::
:maxdepth: 2
:caption: Symposion Apps

project
conference
content
proposals
sponsorship
speakers
schedule

.. toctree::
:maxdepth: 2
:caption: Starter Projects

pinax-project-symposion
pinaxcon

.. toctree::
:maxdepth: 2
:caption: Examples

I got the caption info from here: http://www.sphinx-doc.org/en/stable/markup/toctree.html#toctree-directive

The new detail pages would be something like:
pinax-project-symposion
pinaxcon

The examples part could either be a hyperlink directly to project (DjangoCon, PyCon website repos, ect) or a detail page for each project to give more explanation and hyperlink... ?

These are just my initial thoughts, btw. Could be changed, but it is similar in format to https://github.com/pinax/pinax/blob/master/docs/index.md though. Does anyone else have any thoughts?

Update, March 12: I also just discovered that there are docs for PyCon, based on Pinax Symposion. This could also be somehow referenced.... https://pycon.readthedocs.org/en/latest/

Request: sponsor logo url api

I need a list of sponsor_logo images so assemble into a slide show that loops between talks.
if I could hit an endpoint and get said list, that would be great.
Also knowing what sort of sponsor they are might be good but really just the logo urls will suffice.

Document backwards-incompatible changes.

Commit 11f697d included a number of changes that are backwards-incompatible with previous versions of symposion, including changing template locations. This makes upgrading difficult.

I think it would be good if symposion had a CHANGELOG that included all major changes, but especially any backwards-incompatible ones. If this is acceptable to the project maintainers, I am willing to create a pull request with one.

No code for social login

Seems like the code is not updated. I searched it code to find how Sign-in using Google feature from PyCon 2014 site is implemented to port it over to RTD site and couldn't.

Reviews causes: TypeError: Database is trying to update a relational field of type DecimalField with a value of type ProposalScoreExpression

euroscipy@0956e8578eee5a7477585877eb3a012abb48cb2ehas a fix for this issue. This should be back merged.

ERROR Internal Server Error: /reviews/review/6/
Traceback (most recent call last):
File "/www/conf_site/env/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 111, in get_response
response = wrapped_callback(request, callback_args, *callback_kwargs)
File "/www/conf_site/env/local/lib/python2.7/site-packages/django/contrib/auth/decorators.py", line 21, in wrapped_view
return view_func(request, args, *kwargs)
File "/www/conf_site/env/local/lib/python2.7/site-packages/symposion/reviews/views.py", line 203, in review_detail
review.save()
File "/www/conf_site/env/local/lib/python2.7/site-packages/symposion/reviews/models.py", line 131, in save
self.proposal.result.update_vote(self.vote)
File "/www/conf_site/env/local/lib/python2.7/site-packages/symposion/reviews/models.py", line 280, in update_vote
model.default_manager.filter(pk=self.pk).update(score=ProposalScoreExpression())
File "/www/conf_site/env/local/lib/python2.7/site-packages/django/db/models/query.py", line 583, in update
rows = query.get_compiler(self.db).execute_sql(CURSOR)
File "/www/conf_site/env/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 1004, in execute_sql
cursor = super(SQLUpdateCompiler, self).execute_sql(result_type)
File "/www/conf_site/env/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 775, in execute_sql
sql, params = self.as_sql()
File "/www/conf_site/env/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 967, in as_sql
(field.__class.name, val.class.name))
TypeError: Database is trying to update a relational field of type DecimalField with a value of type ProposalScoreExpression. Make sure you are setting the correct relations

License

Hi,
Which license does this application uses?
Please can you add a LICENSE file?

Thanks

html tags in the json data

https://us.pycon.org/2013/schedule/conference.json

There are html tags in the text..
Here is an example: "description": "

Introduction and welcome: Jesse Noller

",

Seems github issue tracker does not escape the tags, so this report doesn't clearly show it. Look at the data.

For descriptions, if you can provide markdown that can be used in PyVideo.org.

Finish Upgrades

  • Remove symposion.reviews for pinax-submissions
  • Replace a bulk of symposion.proposals with pinax-submissions
  • Replace symposion.teams for pinax-teams (see #69)

Do this in the context of bringing PinaxCon up to speed.

Apps name i18n/l10n

When specified label and verbose_name in apps.py,
django 1.7 ignores verbose_name and use label.title() for admin interface.

For example;

class SponsorshipConfig(AppConfig):
    name = "symposion.sponsorship"
    label = "symposion_sponsorship"
    verbose_name = "Symposion Sponsorship"

That make admin screen tiltle "Symposim_Sponsorship" that is as same as lable.title().

When trying to i18n app such as

class SponsorshipConfig(AppConfig):
    name = "symposion.sponsorship"
    label = "symposion_sponsorship"
    verbose_name = _("Symposion Sponsorship")

then it is no work. I see admin screen with titled "Symposion_Sponsorship" that is as same as label.title()

class SponsorshipConfig(AppConfig):
    name = "symposion.sponsorship"
    verbose_name = _("Symposion Sponsorship")

is working i18n/l10n well. I see a translated string in admin screen.

Add cospeaker support to reviews feedback system

Not receiving notifications that the primary speaker received. E.g. an email went out about a meeting that all speakers were supposed to attend, but co-speakers didn't get it.

Cospeakers should also be able to respond to questions from reviewers.

Slot __unicode__ method hits the DB hard

Am trying to get my head round Symposion (see postings to the google group...).

I created 195 Slot objects for my conference, and some admin pages became very slow - such as creating a new Presentation.

The debug toolbar showed it was doing nearly 1000 database queries - or 5 times the number of slots.

Repeatable with a smaller set of Slots.

Traced it back to the unicode method of Slot - in getting the string rep of Slot for the drop-down in the Presentation admin field, it has to get the string rep of the Day, which causes another db hit, which then gets the schedule, which probably then gets the Conference object all from the DB. If I replaced Slot.unicode to just return a simple string of the start and end time the the DB hits went down to the number of Slots as expected.

Either I'm doing it wrong and having 195 slots isn't the right thing (we have 195 presentations, so I need 195 slots, yes? See google group post for details) or Django is being very inefficient. This is all running off the debug runserver.

What I might prefer would be for slots to have a CharField name...

Allow for a SlotRoom to "merge" with its next neighbor

To be exposed on the schedule edit interface for lengthening a presentation across two existing slots.

Steps

  1. Set the end time of the Slot in SlotRoom 1 to the end time of the slot in SlotRoom 2
  2. Delete SlotRoom 2 and delete the Slot under SlotRoom 2

Restraints

  • Only available if the Slot in SlotRoom 2 is associated with a single room (You shouldn't be able to merge a talk into a plenary that is assigned to all rooms)

Down the road features

  • An undo method would have to be a "split" mechanism that does mostly the opposite of the above. This could be useful later on in the full scheduling structure interface (start with a rough outline).
  • Merge two sibling SlotRooms (for when two rooms are combined for a single session or possibly to schedule plenary or break type events)

Purchase does not work on the second attempt

This morning I attempted to purchase two tickets -- each with different users. The first ticket was purchased without issue, but the second would not display the payment form. I logged in using an incognito window and was able to get to purchase form and purchase the ticket.

Making proposals appear for reviews

Getting Symposion up and running is pretty easy, but somehow I do not get proposals eligable for reviews. Any pointers? Is it a bug? Are there conditions that need to be met before they do appear?

ICS iCalendar issue

Originally reported by David Steele with regards to PyOhio.

FWIW, I had to do the following to get the PyOhio ICS bookmarks to import into Google Calendar:

# cat pycon2011-dsteele-bookmarks.ics | sed -e 's/;VALUE=DATE//' >pycon2011-dsteele-bookmarks2.ics

# diff pycon2011-dsteele-bookmarks.ics pycon2011-dsteele-bookmarks2.ics | head
15,17c15,17
< DTEND;VALUE=DATE:20110731T153000
< DTSTAMP;VALUE=DATE:20110722T215713
< DTSTART;VALUE=DATE:20110731T143000

---
> DTEND:20110731T153000
> DTSTAMP:20110722T215713
> DTSTART:20110731T143000
29,31c29,31
< DTEND;VALUE=DATE:20110731T163000

The PyOhio stie output appears to be RFC Compliant, but doesn't match iCalendar "documentation" and validators.

Give SlotKind a property to indicate whether it is a presentation

SlotKinds represent types of things on a schedule, some of which have presentations attached as content, some of which do not. In the pinax-symposion-project the schedule grid only renders a presentation if the slot.kind.label is 'talk' or 'tutorial', which leads to issues like pydata/conf_site#68

Back when I was working on SciPy 2014, we forked symposion and changed SlotKind to add presentation = models.BooleanField(default=True, help_text="Whether or not this slot is a presentation")

so that we could change the template conditional to {% if slot.kind.presentation %}
from {% if slot.kind.label == "talk" or slot.kind.label == "tutorial" %} (see _grid.html L16)

Sponsor signup does not trigger email notification

When a would-be sponsor signs up through a web account the information sits in the database without any notification. This is generally not the best way to treat would-be sponsors.

Could the system send administrator email (perhaps daily in summary too, but certainly with individual notifications per signup) and/or show non-approved sponsorships in the dashboard of superusers?

How to wire up "reviews" and "schedule"?

Hi there!

I was just trying out symposion and found it quite nice. I've seen that there are quite a few more projects (like reviews and schedule) than are visible in the admin interface.

How can those pieces be put together? Otherwise it looks like there is not much use for the "proposals". Am I missing something?

Thanks for your help,
Björn

make proposals app a reusable app?

Is there a reason why the proposals app is inside the symposion_project folder and not inside the symposion folder? Are there any plans to move it into the symposion app?

It is really tricky to update the schedule

I'm working with the pyohio conference and we use symposion.

Some times I need to remove slots in the schedule or change a presentation from one time and place to a different time and place.

It is It is super-difficult to make these changes using the django admin client because I can't see all the fields. I just see the title of the slot, which is non-unique. So I have to view the HTML source and then look in a local copy of the database to learn about the IDs.

ProposalKind model is duplicated with another feature

Symposion has proposal kind model in proposals app

class ProposalKind(models.Model):
    """
    e.g. talk vs panel vs tutorial vs poster
    Note that if you have different deadlines, reviewers, etc. you'll want
    to distinguish the section as well as the kind.
    """

It is not used in pinax-project-symposion sample project.
because it defined several *Proposal models such as TalkProposal, TutorialProposal and use its forms.
https://github.com/pinax/pinax-project-symposion/blob/master/project_name/proposals/forms.py

It is duplicated feature.

Symposion can drop proposal kind from its model.

html5lib 0.999 pinning causes a markdown parser error

The pinned requirement causes the markdown parser to throw errors:

  File "/home/daaray/.virtualenvs/conf_site/local/lib/python2.7/site-packages/sy
mposion/markdown_parser.py", line 15, in parse
    for token in parser.parseFragment(text).childNodes:
AttributeError: childNodes

This is due to html5lib/html5lib-python#45.

We need to either revert the pin to 0.95 or modify the parser by specifying the tree builder:

from html5lib import html5parser, sanitizer, getTreeBuilder

import markdown


def parse(text):

    # First run through the Markdown parser
    text = markdown.markdown(text, extensions=["extra"], safe_mode=False)

    # Sanitize using html5lib
    bits = []
    parser = html5parser.HTMLParser(tokenizer=sanitizer.HTMLSanitizer, tree=getTreeBuilder("dom"))
    for token in parser.parseFragment(text).childNodes:
        bits.append(token.toxml())
    return "".join(bits)

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.