Giter VIP home page Giter VIP logo

pretix / pretix Goto Github PK

View Code? Open in Web Editor NEW
1.7K 46.0 424.0 469.68 MB

Ticket shop application for conferences, festivals, concerts, tech events, shows, exhibitions, workshops, barcamps, etc.

Home Page: https://pretix.eu

License: Other

Makefile 0.01% Python 77.20% JavaScript 5.33% CSS 0.04% HTML 13.07% Shell 0.01% Dockerfile 0.02% SCSS 3.73% Vue 0.59%
python django web tickets conferences events shop javascript html pretix

pretix's Introduction

pretix

image

image

image

image

Reinventing ticket presales, one ticket at a time.

Project status & release cycle

While there is always a lot to do and improve on, pretix by now has been in use for thousands of events conferences that sold millions of tickets combined. We therefore think of pretix as being stable and ready to use.

If you want to use or extend pretix, we strongly recommend to follow our blog. We will announce all releases there. You can always find the latest stable version on PyPI or in the release/X.Y branch of this repository. The master branch contains a development version that we also try to keep stable in the sense that it does not break your data, but its APIs might change without prior notice.

To get started using pretix on your own server, look at the installation guide in our documentation.

Support

This project is 100 percent free and open source software. You are welcome to ask questions in the GitHub repository. Private support via email or phone is only offered to customers of our pretix Hosted or pretix Enterprise offerings. If you are interested in commercial support, hosting services or supporting this project financially, please go to pretix.eu or contact us at [email protected].

Contributing

If you want to contribute to pretix, please read the developer documentation in our documentation. If you have any further questions, please do not hesitate to ask!

image

Code of Conduct

We have a Code of Conduct in place that applies to all project contributions, including issues, pull requests, etc.

License

The code in this repository is covered by different licenses. Most of it is available to everyone under the terms of the GNU AGPL license v3 with additional terms. See the LICENSE file for the complete license details.

pretix's People

Contributors

abdullah-g avatar aruanoguate avatar c0de-bender avatar davidmgvaz avatar dependabot[bot] avatar edd28 avatar eltorio avatar felixrindt avatar koebi avatar luelista avatar maartenberg avatar magamig avatar maicotimmerman avatar mapostolopoulou avatar markiousi avatar mhvis avatar oocf avatar pc-coholic avatar pretix-translations avatar raphaelm avatar regendrogenbogen avatar rimi-itk avatar rixx avatar ser8phin avatar supaplextw avatar thanosteste avatar tophattom avatar wafyapp-mtawfiq avatar webappconcept avatar wiffbi 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pretix's Issues

Stripe: Noscript version

We currently use stripe.js, but we could use the traditional API for people without JavaScript.

Implement quotas

  • When adding things to cart
  • When submitting an order with expired card positions
  • When receiving payments for an expired order

Enable sorting in the list of orders

The pretix control panel allows the administrator to view a list of all orders. It should be made possible to sort this list by various columns (like date, value, …) clicking on the table heads.

Think about ticket PDF generation

  • XeLaTeX – bloaty, but produces nice output
  • fpdf – nope, crappy software
  • SVG – unable to do word wrapping, but this might be the only blocker

New event-level/organizer-level settings

The EventSetting/OrganizerSetting models provide a way of storing event-like settings.

  • Use them for more things that are currently fields of the Event model (payment term, plugins, …)
  • Provide a form/UI for changing them

Tax handling for payment method fees

Currently, tax rates are only specified on item-level. However, if a special payment method adds e.g. a credit card fee, this does not directly belong to a special item but might still need a tax rate configured.

Microdata for search engines

Hey! If you ever wanted to contribute to an Open Source project, but didn't know how, you just found a perfect place to start. We try to write this issue as instructive as possible, but as we're humans we almost certainly forgot to write something important in here. If you want to try to tackle this issue and get stuck at any point, please do not hesitate and ask us, either here on GitHub or via email at [email protected]. We'll be very happy to help!

We think this issue is very suitable to people who are just starting with Python or Django development or who never contributed to Open Source before. We'd like to ask people with wide experience in these areas to leave this issue to beginners. Thanks! (If you want something more advanced, just drop us a line, we'll find something 😉)

How to get started

First of all, you need pretix running locally on your machine. We have a guide on the developer installation over here. Play around with it and get a feeling for what pretix is and how it works :) Try to find the places in the interface mentioned in this issue where something needs to change. Maybe try to find the same places in the code? Just searching for characteristic words can be a powerful tool to find your way around.

What this is about

Every event organized by pretix gets a small web page representing the event -- it's ticket shop. In the HTML code of this page we want to add microdata markup. Microdata is a structured way to tell search engines what the given page is about and allows them to understand the page better and do fancy things like showing the event location or date directly in the search results.

How to do this

First, you need to read up a bit about structured data. For example, there is the JSON-LD data format that we probably want to use. Don't get discouraged by complicated-sounding words, just keep to the examples, they should be pretty clear in many cases. Google also has a lot of documentation and tools on the topic, for example:

Once you know how it should look like, you basically only have to put it in the right place, which is src/pretix/presale/templates/pretixpresale/event/index.html, and fill it up with the correct data via template variables.

I want to give it a try!

You're still reading, nice! If you want to try working on this, please comment below, so everyone else knows this is being looked at and can search for a different place to contribute.

First, fork the repository to your own GitHub account. Then clone it locally (or set it as your remote if you already cloned it earlier) and prepare your pull requests. There are a number of tutorials on the Pull Request workflow online, for example this short version by GitHub itself and this more in-depth tutorial. We're excited to see your pull request!

And don't forget: If you get stuck, don't hestitate to ask. We bound ourselves to a Code of Conduct and we're committed to providing a welcoming experience and giving constructive, friendly and useful feedback on your contributions.

Creating events

We already have tixlcontrol.views.event.EventUpdate but no process for creating new events. For the beginning, this can be a simple creation form.

Later, this should become a multi-step wizard enabling users to select from multiple presets to initialize the event with.

Required boolean question

A required question of type boolean should require the user to select either Yes or No, but currently requires the user to select Yes (because the checkbox is otherwise not checked). A SelectInput could be the solution to this.

Creating items

We already have tixlcontrol.views.item.ItemUpdate for changing items. It should be easy to implement ItemCreate in a similar matter.

Beautiful UI for checkout process

  • Stepping back or forward
  • Answering questions for multiple items: Accordion members should have a 'continue' button and open the next one automatically
  • Proper field error reporting for questions (accordion should open / be red)

"Shop is live"-Flag

There should be a button or checkbox to take the whole shop up or down. If it is down, it should be only visible to the admin.

This might be easily implemented as a event setting.

In a second step, a checklist of actions might be enforced before going live, e.g. at least one payment provider selected.

Better integration of permissions

  • Hide links the users has no permission for
  • Add an editor for event permissions
  • Add an editor for organizer permissions
  • Add a nice editor for teams/permissions
  • Restructure permissions such that plugins can define them

Native support for re-trying payments

…or changing the payment method later if it failed.

Re-try is currently implemented in the PayPal provider, but it would nice to implement it on a higher level for all providers (maybe based on flag providers can set).

  • Build new API
  • Implement API for stripe
  • Implement API for PayPal

Retain answers when re-adding items

If you have an expired CartPosition and you try to add something else to your cart, pretix will try to renew all your CartPositions in order to have a common expiration time for all of them (for user convenience). Currently, this happens by them being removed and added like new positions. This loses all existing information like attendee_name or existion QuestionAnswer objects (which should be retained).

Correct handling of required=True

Currently, when a payment provider defines input fields with required=True, they will be rendered with the required=required HTML attribute. This is bad, as there are often multiple payment providers on one page and the user shouldn't need to fill out all of them.

Allow rich text in product descriptions

Currently, product descriptions and category descriptions only allow plain text.

This issue suggests to add support for Markdown markup to allow links and other simple formatting.

User settings

Implement the user settings dialog

  • Change password
  • Change e-mail address
  • Change name, etc.

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.