├── .coveragerc ├── .dockerignore ├── .editorconfig ├── .env.example ├── .flake8.ini ├── .github ├── CONTRIBUTING.md ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── .hound.yml ├── .travis.yml ├── Dockerfile ├── LICENSE.md ├── Procfile ├── README.md ├── Vagrantfile ├── app.json ├── app ├── __init__.py ├── api │ ├── __init__.py │ ├── access_codes.py │ ├── activities.py │ ├── admin_sales │ │ ├── discounted.py │ │ ├── events.py │ │ ├── fees.py │ │ ├── invoices.py │ │ ├── locations.py │ │ ├── marketer.py │ │ ├── organizer.py │ │ └── utils.py │ ├── admin_statistics_api │ │ ├── __init__.py │ │ ├── events.py │ │ ├── mails.py │ │ ├── sessions.py │ │ └── users.py │ ├── attendees.py │ ├── auth.py │ ├── bootstrap.py │ ├── celery_tasks.py │ ├── custom_forms.py │ ├── custom_placeholders.py │ ├── data_layers │ │ ├── ChargesLayer.py │ │ ├── EventCopyLayer.py │ │ ├── NoModelLayer.py │ │ └── __init__.py │ ├── discount_codes.py │ ├── email_notifications.py │ ├── event_copy.py │ ├── event_copyright.py │ ├── event_image_sizes.py │ ├── event_invoices.py │ ├── event_locations.py │ ├── event_statistics.py │ ├── event_sub_topics.py │ ├── event_topics.py │ ├── event_types.py │ ├── events.py │ ├── events_role_permission.py │ ├── exports.py │ ├── faq_types.py │ ├── faqs.py │ ├── feedbacks.py │ ├── helpers │ │ ├── ICalExporter.py │ │ ├── __init__.py │ │ ├── auth.py │ │ ├── cache.py │ │ ├── csv_jobs_util.py │ │ ├── db.py │ │ ├── errors.py │ │ ├── exceptions.py │ │ ├── export_helpers.py │ │ ├── files.py │ │ ├── import_helpers.py │ │ ├── jwt.py │ │ ├── log.py │ │ ├── mail.py │ │ ├── notification.py │ │ ├── order.py │ │ ├── payment.py │ │ ├── pentabarfxml.py │ │ ├── permission_manager.py │ │ ├── permissions.py │ │ ├── query.py │ │ ├── request_context_task.py │ │ ├── scheduled_jobs.py │ │ ├── static.py │ │ ├── storage.py │ │ ├── system_mails.py │ │ ├── system_notifications.py │ │ ├── tasks.py │ │ ├── ticketing.py │ │ ├── utilities.py │ │ └── xcal.py │ ├── imports.py │ ├── mails.py │ ├── message_settings.py │ ├── microlocations.py │ ├── modules.py │ ├── notifications.py │ ├── order_statistics │ │ ├── __init__.py │ │ ├── events.py │ │ └── tickets.py │ ├── orders.py │ ├── pages.py │ ├── role_invites.py │ ├── roles.py │ ├── schema │ │ ├── __init__.py │ │ ├── access_codes.py │ │ ├── activities.py │ │ ├── admin_statistics_schema │ │ │ ├── __init__.py │ │ │ └── events.py │ │ ├── attendees.py │ │ ├── base.py │ │ ├── custom_forms.py │ │ ├── custom_placeholders.py │ │ ├── discount_codes.py │ │ ├── email_notifications.py │ │ ├── event_copyright.py │ │ ├── event_invoices.py │ │ ├── event_locations.py │ │ ├── event_role_permissions.py │ │ ├── event_statistics.py │ │ ├── event_sub_topics.py │ │ ├── event_topics.py │ │ ├── event_types.py │ │ ├── events.py │ │ ├── faq_types.py │ │ ├── faqs.py │ │ ├── feedbacks.py │ │ ├── image_sizes.py │ │ ├── mails.py │ │ ├── message_settings.py │ │ ├── microlocations.py │ │ ├── modules.py │ │ ├── notifications.py │ │ ├── orders.py │ │ ├── pages.py │ │ ├── role_invites.py │ │ ├── roles.py │ │ ├── services.py │ │ ├── session_types.py │ │ ├── sessions.py │ │ ├── settings.py │ │ ├── social_links.py │ │ ├── speakers.py │ │ ├── speakers_calls.py │ │ ├── sponsors.py │ │ ├── stripe_authorization.py │ │ ├── tax.py │ │ ├── ticket_fees.py │ │ ├── ticket_tags.py │ │ ├── tickets.py │ │ ├── tracks.py │ │ ├── user_permission.py │ │ └── users.py │ ├── service.py │ ├── session_types.py │ ├── sessions.py │ ├── settings.py │ ├── social_links.py │ ├── speaker_image_sizes.py │ ├── speakers.py │ ├── speakers_calls.py │ ├── sponsors.py │ ├── stripe_authorization.py │ ├── tax.py │ ├── ticket_fees.py │ ├── ticket_tags.py │ ├── tickets.py │ ├── tracks.py │ ├── uploads.py │ ├── user_permission.py │ └── users.py ├── factories │ ├── __init__.py │ ├── access_code.py │ ├── activities.py │ ├── attendee.py │ ├── common.py │ ├── custom_form.py │ ├── custom_placeholder.py │ ├── discount_code.py │ ├── email_notification.py │ ├── event.py │ ├── event_copyright.py │ ├── event_invoice.py │ ├── event_role_permission.py │ ├── event_sub_topic.py │ ├── event_topic.py │ ├── event_type.py │ ├── faq.py │ ├── faq_type.py │ ├── feedback.py │ ├── image_size.py │ ├── mail.py │ ├── message_setting.py │ ├── microlocation.py │ ├── module.py │ ├── notification.py │ ├── order.py │ ├── page.py │ ├── role.py │ ├── role_invite.py │ ├── service.py │ ├── session.py │ ├── session_type.py │ ├── setting.py │ ├── social_link.py │ ├── speaker.py │ ├── speakers_call.py │ ├── sponsor.py │ ├── stripe_authorization.py │ ├── tax.py │ ├── ticket.py │ ├── ticket_fee.py │ ├── ticket_tag.py │ ├── track.py │ ├── user.py │ └── user_permission.py ├── models │ ├── __init__.py │ ├── access_code.py │ ├── activity.py │ ├── base.py │ ├── custom_form.py │ ├── custom_placeholder.py │ ├── custom_system_role.py │ ├── discount_code.py │ ├── email_notification.py │ ├── event.py │ ├── event_copyright.py │ ├── event_invoice.py │ ├── event_location.py │ ├── event_sub_topic.py │ ├── event_topic.py │ ├── event_type.py │ ├── export_job.py │ ├── faq.py │ ├── faq_type.py │ ├── feedback.py │ ├── helpers │ │ ├── __init__.py │ │ └── versioning.py │ ├── image_size.py │ ├── import_job.py │ ├── invite.py │ ├── mail.py │ ├── message_setting.py │ ├── microlocation.py │ ├── module.py │ ├── notification.py │ ├── order.py │ ├── page.py │ ├── panel_permission.py │ ├── permission.py │ ├── role.py │ ├── role_invite.py │ ├── service.py │ ├── session.py │ ├── session_type.py │ ├── setting.py │ ├── social_link.py │ ├── speaker.py │ ├── speakers_call.py │ ├── sponsor.py │ ├── stripe_authorization.py │ ├── tax.py │ ├── ticket.py │ ├── ticket_fee.py │ ├── ticket_holder.py │ ├── track.py │ ├── user.py │ ├── user_permission.py │ ├── users_events_role.py │ └── version.py ├── settings │ └── __init__.py ├── templates │ ├── admin │ │ └── index.html │ ├── admin_base.html │ ├── bootstrap │ │ └── bootstrap_pdf.css │ ├── flask_ext │ │ ├── __init__.py │ │ └── jinja │ │ │ ├── __init__.py │ │ │ └── filters.py │ └── pdf │ │ ├── attendees_pdf.html │ │ ├── orders.html │ │ ├── ticket_attendee.html │ │ └── ticket_purchaser.html ├── translations │ ├── bn │ │ └── LC_MESSAGES │ │ │ ├── messages.mo │ │ │ └── messages.po │ ├── de │ │ └── LC_MESSAGES │ │ │ ├── messages.mo │ │ │ └── messages.po │ ├── es │ │ └── LC_MESSAGES │ │ │ ├── messages.mo │ │ │ └── messages.po │ ├── fr │ │ └── LC_MESSAGES │ │ │ ├── messages.mo │ │ │ └── messages.po │ ├── hi │ │ └── LC_MESSAGES │ │ │ ├── messages.mo │ │ │ └── messages.po │ ├── id │ │ └── LC_MESSAGES │ │ │ ├── messages.mo │ │ │ └── messages.po │ ├── ja │ │ └── LC_MESSAGES │ │ │ ├── messages.mo │ │ │ └── messages.po │ ├── ko │ │ └── LC_MESSAGES │ │ │ ├── messages.mo │ │ │ └── messages.po │ ├── messages.pot │ ├── pl │ │ └── LC_MESSAGES │ │ │ ├── messages.mo │ │ │ └── messages.po │ ├── ru │ │ └── LC_MESSAGES │ │ │ ├── messages.mo │ │ │ └── messages.po │ ├── th │ │ └── LC_MESSAGES │ │ │ ├── messages.mo │ │ │ └── messages.po │ ├── vi │ │ └── LC_MESSAGES │ │ │ ├── messages.mo │ │ │ └── messages.po │ ├── zh_Hans │ │ └── LC_MESSAGES │ │ │ ├── messages.mo │ │ │ └── messages.po │ └── zh_Hant │ │ └── LC_MESSAGES │ │ ├── messages.mo │ │ └── messages.po └── views │ ├── __init__.py │ ├── celery_.py │ ├── elastic_cron_helpers.py │ ├── elastic_search.py │ ├── healthcheck.py │ ├── redis_store.py │ └── sentry.py ├── autodeploy ├── README.md ├── auto_updater.py ├── command.py ├── config.yml ├── docker.py ├── git.py └── main.py ├── config.py ├── create_db.py ├── docker-compose.yml ├── docs ├── api │ └── api_blueprint.apib ├── general │ ├── amazon-s3.md │ ├── api.md │ ├── database.md │ ├── import-export.md │ ├── logs.md │ ├── permissions.md │ ├── roles.md │ └── signals.md └── installation │ ├── aws.md │ ├── basic.md │ ├── digital-ocean.md │ ├── docker.md │ ├── gce-kubernetes.md │ ├── google.md │ ├── heroku.md │ ├── local.md │ ├── mac-os.md │ └── vagrant.md ├── dredd.yml ├── drop_db.py ├── kubernetes ├── deploy.sh ├── images │ ├── gcloud │ │ └── Dockerfile │ ├── nfs-server │ │ ├── Dockerfile │ │ └── run_nfs.sh │ └── web │ │ ├── Dockerfile │ │ └── setup.sh ├── run.sh ├── travis │ ├── deploy-nextgen.sh │ ├── deploy-staging.sh │ ├── deploy.sh │ └── eventyay-8245fde7ab8a.json.enc └── yamls │ ├── api-server │ ├── configmap.yml │ ├── deployment.yml │ └── service.yml │ ├── crons │ └── pg-snapshot.yml │ ├── debug │ ├── busybox.yml │ └── gcloud.yml │ ├── elasticsearch │ ├── 00-namespace.yml │ ├── account.yaml │ ├── configmap.yml │ ├── deployment.yaml │ └── service.yaml │ ├── lego │ ├── 00-namespace.yml │ ├── configmap.yml │ └── deployment.yaml │ ├── nginx │ ├── 00-namespace.yml │ ├── configmap.yml │ ├── default-deployment.yml │ ├── default-service.yml │ ├── deployment.yml │ └── service.yml │ ├── postgres │ ├── 00-namespace.yml │ ├── configmap.yml │ ├── deployment.yml │ └── service.yml │ ├── redis │ ├── 00-namespace.yml │ ├── redis-deployment.yml │ └── redis-service.yml │ └── web │ ├── 00-namespace.yml │ ├── ingress-notls.yml │ └── ingress-tls.yml ├── manage.py ├── migrations ├── README ├── alembic.ini ├── env.py ├── script.py.mako └── versions │ ├── 000b9376b87b_.py │ ├── 008dae41b45e_.py │ ├── 00ea66754d06_.py │ ├── 010744bcdb8d_.py │ ├── 01a1fa5b87f5_.py │ ├── 01b6969ef4e5_.py │ ├── 03d5a2b6ea24_.py │ ├── 03ed49c73697_.py │ ├── 04060417378c_.py │ ├── 047f7c3db184_.py │ ├── 06e3dc4e8d68_.py │ ├── 072706cab017.py │ ├── 079cf8351a19_.py │ ├── 0ac3fd02c230_.py │ ├── 0d25e6904746_.py │ ├── 0d995bfb3671_.py │ ├── 0e5940f5bf43_.py │ ├── 0e648fcb8ef6_.py │ ├── 0ebd913edd27_.py │ ├── 10136334dff5_.py │ ├── 11143ed3e6fa_.py │ ├── 124271738482_.py │ ├── 13aed5739978_.py │ ├── 149695270251_.py │ ├── 1552f7bafb5b_.py │ ├── 1569fb5915ad_.py │ ├── 15f1533bb93d_.py │ ├── 16183eae08cb_.py │ ├── 163f9fc56815_.py │ ├── 167379522d3d_.py │ ├── 16caacf7c5b0_.py │ ├── 16e4da58dcbe_.py │ ├── 17881794fc87_.py │ ├── 193fadf22de7_.py │ ├── 194a5a2a44ef_.py │ ├── 1a89015d90bd_.py │ ├── 1b34cefe5f92_.py │ ├── 1b3e4f5f56bd_.py │ ├── 1b9c8698c632_.py │ ├── 1c52a25b4a97_.py │ ├── 1c6f7e989021_.py │ ├── 1c7441698fae_.py │ ├── 1c7e0ce885a6_.py │ ├── 1cc66579a10e_.py │ ├── 1d4ae4569284_.py │ ├── 202b15987640_.py │ ├── 20f17a744206_.py │ ├── 217c21289729_.py │ ├── 217d3c1f3c5f_.py │ ├── 2339564f5dc7_.py │ ├── 23ff3fbdc6da_.py │ ├── 24017504a117_.py │ ├── 24da7df1e00e_.py │ ├── 265d11072331_.py │ ├── 26a83ff1e6ad_.py │ ├── 26b8a1438602_.py │ ├── 274cf8742fb5_.py │ ├── 27c4db7538ca_.py │ ├── 28c3d6eb08f9_.py │ ├── 291bb44bb014_.py │ ├── 2a9e2f32ed34_.py │ ├── 2b39d8c05788_.py │ ├── 2eb08848b0e9_.py │ ├── 2f9f90ee6e73_.py │ ├── 30ca70296a1c_.py │ ├── 32881ff3b521_.py │ ├── 3453e1bd6fc3_.py │ ├── 3458fec198e2_.py │ ├── 34be8a5853bd_.py │ ├── 359d4a9f9376_.py │ ├── 35e6312c8b8f_.py │ ├── 37208b5daa39_.py │ ├── 3750bc39e4de_.py │ ├── 37ba223cec70_.py │ ├── 38f11aa39bff_.py │ ├── 38f8ca71e523_.py │ ├── 3a01b7d9d55e_.py │ ├── 3a1e54b1be78_.py │ ├── 3a9c159811ae_.py │ ├── 3b55af20871a_.py │ ├── 3c88cd5a4967_.py │ ├── 3ddac4799fb1_.py │ ├── 3e2141df9b6f_.py │ ├── 3ea3ef8796a8_.py │ ├── 3f145ecaf358_.py │ ├── 40709a13f64d_.py │ ├── 40911d5c6c5b_.py │ ├── 4132f684e5f1_.py │ ├── 41494520d7c0_.py │ ├── 4163ebc03101_.py │ ├── 42a7c7ff2a8e_.py │ ├── 42b10433d1b3_.py │ ├── 44e7397c1cae_.py │ ├── 4525c3f044c3_.py │ ├── 4541c9f0492b_.py │ ├── 4591885edbf0_.py │ ├── 460a04b3e98e_.py │ ├── 475688ee0c8a_.py │ ├── 47e818661817_.py │ ├── 4891e2b124f8_.py │ ├── 49f3a33f5437_.py │ ├── 4b9a4e5aebe6_.py │ ├── 4bbba854e30b_.py │ ├── 4c7f86bbed3d_.py │ ├── 4cac94c86047_.py │ ├── 4cce4fe9ede5_.py │ ├── 4defe72abed3_.py │ ├── 4e143b2ac72a_.py │ ├── 4e5dd0df14b5_.py │ ├── 4e882b5acaaa_.py │ ├── 4f2f0d9fe9e1_.py │ ├── 509a234a3c86_.py │ ├── 509ff01b6848_.py │ ├── 5108f7608918_.py │ ├── 5155b2a9f3fc_.py │ ├── 523742f2b632_.py │ ├── 526dec6f4aff_.py │ ├── 52d175c3da98_.py │ ├── 52fe3ae3d39e_.py │ ├── 531a00c3d139_.py │ ├── 53500e542289_.py │ ├── 5432cb603630_.py │ ├── 591df081093e_.py │ ├── 59a75a06249d_.py │ ├── 59d045580f02_.py │ ├── 5aea50727992_.py │ ├── 5aed7e80e00e_.py │ ├── 5b37561a6d2b_.py │ ├── 5b9f83cede65_.py │ ├── 5bff18b52910_.py │ ├── 5d35fa753afa_.py │ ├── 5d4abe45c6d9_.py │ ├── 5dcb69824a56_.py │ ├── 60548d0505ea_.py │ ├── 6093d5e52b01_.py │ ├── 6153d21347b9_.py │ ├── 623663663ec8_.py │ ├── 63203fd4c3ea_.py │ ├── 63deafdfebd6_.py │ ├── 6415c74704d9_.py │ ├── 6440077182f0_.py │ ├── 652f5bf2e030_.py │ ├── 6581466d21c9_.py │ ├── 66c7787c546e_.py │ ├── 673cf7219a71_.py │ ├── 6904ae1e0e33_.py │ ├── 692062f2fef8_.py │ ├── 694a281af0a8_.py │ ├── 6bd24e8f99f0_.py │ ├── 6c2ee19dee3b_.py │ ├── 6f6b4b3a368d_.py │ ├── 6ffaeab2c3c2_.py │ ├── 7017afcbe5b2_.py │ ├── 703eda37e75c_.py │ ├── 70941b60bc7d_.py │ ├── 713af9635f46_.py │ ├── 715b1189ecbd_.py │ ├── 718e36d598de_.py │ ├── 740b89e12cbb_.py │ ├── 74e76a7976fb_.py │ ├── 752be2444e8d_.py │ ├── 76617aa50e25_.py │ ├── 76c457093e38_.py │ ├── 76c949b1235f_.py │ ├── 77df37e3e9ad_.py │ ├── 781e870940ac_.py │ ├── 784a1fc57171_.py │ ├── 7871961f26f2_.py │ ├── 79e54124b415_.py │ ├── 7a110ca7061b_.py │ ├── 7b359f067e8e_.py │ ├── 7cf31ed98b0c_.py │ ├── 7e1d14ae17e9_.py │ ├── 7ed42c8dc5cc_.py │ ├── 80a704b880db_.py │ ├── 80d2754fb939_.py │ ├── 81a713eded64_.py │ ├── 81fe5a689259_.py │ ├── 8223e1b0c247_.py │ ├── 83e0a28b1430_.py │ ├── 840bc71025d6_.py │ ├── 848f6f918b3d_.py │ ├── 84b81dbc95df_.py │ ├── 8500f5ec6c45_.py │ ├── 85e24937f108_.py │ ├── 86fe7df8dca6_.py │ ├── 884774042071_.py │ ├── 898490456115_.py │ ├── 8a3b434d8265_.py │ ├── 8a548c2338e6_.py │ ├── 8c2a2319df7f_.py │ ├── 8c777b781ea8_.py │ ├── 8cdaeb567de4_.py │ ├── 8d3a90a31246_.py │ ├── 8e7f7864cb60_.py │ ├── 90a9f0908326_.py │ ├── 9105f9e64cdc_.py │ ├── 92d65554495c_.py │ ├── 94e639e6575c_.py │ ├── 98166ca15055_.py │ ├── 98c151c7a16a_.py │ ├── 9913b58c2640_.py │ ├── 9920a61bf875_.py │ ├── 9a01232a22cc_.py │ ├── 9b1050b22e9d_.py │ ├── 9be9077d8fce_.py │ ├── 9ccc41444de6_.py │ ├── 9d21de792967_.py │ ├── 9e1204b2e096_.py │ ├── 9eb4b61d0acb_.py │ ├── a1c17effff1d_.py │ ├── a3cf002f4da8_.py │ ├── a48b4f13c561_.py │ ├── a5f2c19b7ac9_.py │ ├── a643eb3f2bb4_.py │ ├── a71a8fcf6493_.py │ ├── a79f1dc2fd67_.py │ ├── a89a143735e5_.py │ ├── a946e9a677e1_.py │ ├── a9b15f3c5424_.py │ ├── aa204a8b5743_.py │ ├── aa4b21539f5b_.py │ ├── ab545d15d160_.py │ ├── ab5e71976320_.py │ ├── aba0b1754103_.py │ ├── abda2e67f7c3_.py │ ├── abe953265132_.py │ ├── abf206ef23a1_.py │ ├── ac0d73a95c0a_.py │ ├── ac2a9daf5a8e_.py │ ├── acc80f4a90d2_.py │ ├── ad789015cdf7_.py │ ├── ad7f50c4afb5_.py │ ├── adf34c11b0df_.py │ ├── ae95fb82282d_.py │ ├── aefa134809bf_.py │ ├── af0b6ab086b7_.py │ ├── af9215895b80_.py │ ├── afa76758760e_.py │ ├── afd252f090e5_.py │ ├── affad812c947_.py │ ├── b15e124e9b93_.py │ ├── b20ae211b8e0_.py │ ├── b4fdb245fccd_.py │ ├── b5abafa45063_.py │ ├── b723e2342f15_.py │ ├── b79853132e71_.py │ ├── b96384251d86_.py │ ├── bae57b0ae2cd_.py │ ├── bc1c553a72c5_.py │ ├── bc2e43a3c3ea_.py │ ├── bec88339e8ef_.py │ ├── bf3e8c2a01f6_.py │ ├── bf559a01a63b_.py │ ├── bf894430e0a9_.py │ ├── c05b18293895_.py │ ├── c14dce153e2d_.py │ ├── c1bc95d0d654_.py │ ├── c2e5de1111bd_.py │ ├── c3676a5f81de_.py │ ├── c4979be6c73b_.py │ ├── c4b4889d5e4e_.py │ ├── c5fc44dd6653_.py │ ├── c5fe28ec7139_.py │ ├── c61a3c33adb5_.py │ ├── c6b183975be9_.py │ ├── c713cdd49fb3_.py │ ├── c79e6d36a194_.py │ ├── c8561d8684da_.py │ ├── c87273102cfb_.py │ ├── c87f76817bf2_.py │ ├── ca3156df9a12_.py │ ├── ca628ab9ac91_.py │ ├── caf96244e10b_.py │ ├── cb8e1f876bc3_.py │ ├── cbf72dcb80e3_.py │ ├── cc6c2a3152bd_.py │ ├── ccd80550c01f_.py │ ├── cd994170e0d2_.py │ ├── cdba269e9de1_.py │ ├── ce0b8ccd98ce_.py │ ├── d01ead213e8e_.py │ ├── d04baaaca7b5_.py │ ├── d3fa4a1dbb8f_.py │ ├── d40a49824b53_.py │ ├── d469443aed74_.py │ ├── d563f6eba95a_.py │ ├── d7157fcb6e5d_.py │ ├── d73fc7833958_.py │ ├── d763cf2e7dc4_.py │ ├── d796a713eba3_.py │ ├── d84f976530e1_.py │ ├── d983585810ac_.py │ ├── da47a767f2ef_.py │ ├── da5c6c740257_event_model_rename_has_sessions_.py │ ├── dbb79ff12e45_.py │ ├── dbb9670cd902_.py │ ├── dc0f787c88ae_.py │ ├── dcc03295ba71_.py │ ├── dd24d9e90809_.py │ ├── dd7968d8d413_.py │ ├── dd97b5e8fa6b_.py │ ├── ddaa6df27340_.py │ ├── ddc941500bd2_.py │ ├── de41bffc4830_.py │ ├── de59ac570231_.py │ ├── df5729aed5d2_.py │ ├── e267d3b2a8f6_.py │ ├── e385c8e1368a_.py │ ├── e38935822969_.py │ ├── e404a529dc5b_.py │ ├── e42e322f7ffb_.py │ ├── e702a5a988c2_.py │ ├── e8222a407dd5_.py │ ├── e85aaacd8721_.py │ ├── e95a9cd83678_.py │ ├── e9d070685a1b_.py │ ├── eaa029ebb260_.py │ ├── eba5ba85d240_.py │ ├── ebf41490ac7d_.py │ ├── ec7d4c35740b_.py │ ├── ecb671d1eb4b_.py │ ├── ed4b4ba3274e_.py │ ├── efa8f2dbf092_.py │ ├── efb2ecc878c5_.py │ ├── f07fed8f60e5_.py │ ├── f0c5ef58ad19_.py │ ├── f1531223b9e5_.py │ ├── f2b4430d9e57_.py │ ├── f4417da578e5_.py │ ├── f55fde3d62b1_.py │ ├── f5ad6fb15f50_.py │ ├── f5fec4ca8b2b_.py │ ├── f6205b904315_.py │ ├── f63b9b9b645b_.py │ ├── f6e303f33d28_.py │ ├── f873b99e5be3_.py │ ├── f8aa756c44f9_.py │ ├── f94439299737_.py │ ├── faf2cd17a4f4_.py │ ├── fb3114b70f3c_.py │ ├── fd0a931e7493_.py │ ├── fd3b97c8cc9a_.py │ ├── fea0fa56ded9_.py │ ├── ffa958a14ea8_.py │ ├── ffb21f7a6e61_.py │ └── ffbb4d4dad39_.py ├── populate_db.py ├── postgres-initdb.d └── create_db.sql ├── requirements.txt ├── requirements ├── common.txt ├── dev.txt ├── prod.txt └── tests.txt ├── runtime.txt ├── scripts ├── check_error.sh ├── docker_run.sh ├── heroku.sh ├── init.sh ├── install.sh ├── opev_orga.enc ├── push_api_docs.sh ├── run.sh ├── test_multiple_heads.sh └── upgrade.sh ├── static └── .gitignore ├── tests ├── __init__.py ├── hook_main.py └── unittests │ ├── __init__.py │ ├── api │ ├── __init__.py │ ├── helpers │ │ ├── __init__.py │ │ ├── test_db.py │ │ ├── test_errors.py │ │ ├── test_exceptions.py │ │ ├── test_files.py │ │ ├── test_jwt.py │ │ ├── test_permission_manager.py │ │ ├── test_storage.py │ │ └── test_utilities.py │ └── validation │ │ ├── __init__.py │ │ ├── test_discount_codes.py │ │ ├── test_events.py │ │ ├── test_sessions.py │ │ ├── test_speakers_call.py │ │ └── test_tickets.py │ ├── auth_helper.py │ ├── setup_database.py │ ├── test_migrations.py │ ├── utils.py │ └── utils │ └── test_schema_defaulting.py └── utils ├── __init__.py └── common.py /.coveragerc: -------------------------------------------------------------------------------- 1 | [report] 2 | omit = 3 | */migrations/* 4 | */site-packages/* 5 | */vintage/* 6 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | .git 2 | .dockerignore 3 | 4 | ##################### 5 | # .gitignore copied 6 | ##################### 7 | 8 | .vagrant/ 9 | .DS_Store 10 | *.pyc 11 | *.pyo 12 | env 13 | env* 14 | dist 15 | build 16 | *.egg 17 | *.egg-info 18 | _mailinglist 19 | .tox 20 | .cache/ 21 | test.db 22 | app.db 23 | .idea/ 24 | .bundle/ 25 | app/vintage 26 | 27 | # Static files at 'app/static/vendor' 28 | app/static/vendor 29 | node_modules 30 | 31 | # event export files 32 | static/exports/event* 33 | 34 | # temp static files 35 | static/temp/* 36 | !static/temp/.gitkeep 37 | /tests/test.db-journal 38 | 39 | # uploads dir 40 | static/media/* 41 | !static/media/.gitkeep 42 | 43 | # redis 44 | redis-3.2.1/ 45 | dump.rdb 46 | /report.html 47 | /output.xml 48 | /log.html 49 | /selenium-screenshot-1.png 50 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 4 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.html] 12 | indent_size = 4 13 | 14 | [*.js] 15 | indent_size = 4 16 | 17 | [*.css] 18 | indent_size = 4 19 | -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | DATABASE_URL=postgresql://john:start@127.0.0.1:5432/oevent 2 | INTEGRATE_SOCKETIO=false 3 | TEST_DATABASE_URL=postgresql://open_event_user:test@127.0.0.1:5432/opev_test 4 | APP_CONFIG=config.DevelopmentConfig 5 | -------------------------------------------------------------------------------- /.flake8.ini: -------------------------------------------------------------------------------- 1 | [flake8] 2 | max-line-length = 120 3 | exclude = 4 | .git, 5 | __pycache__, 6 | migrations, 7 | venv, 8 | .venv, 9 | app/vintage, 10 | site-packages 11 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | 5 | --- 6 | 7 | **Describe the bug** 8 | 9 | 10 | **To Reproduce** 11 | Steps to reproduce the behavior: 12 | 1. Go to '...' 13 | 2. Click on '....' 14 | 3. Scroll down to '....' 15 | 4. See error 16 | 17 | **Expected behavior** 18 | 19 | 20 | **Stacktrace** 21 | 22 | 23 | **Additional details (please complete the following information):** 24 | - OS: [e.g. MacOS, Ubuntu, CentOS] 25 | - Python Version [e.g. `3.5`, `3.6`] 26 | - `HEAD` Commit hash [e.g. `4629c62`] 27 | 28 | **Additional context** 29 | 30 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | 5 | --- 6 | 7 | **Is your feature request related to a problem? Please describe.** 8 | 9 | 10 | **Describe the solution you'd like** 11 | 12 | 13 | **Describe alternatives you've considered** 14 | 15 | 16 | **Additional context** 17 | 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .vagrant/ 2 | .DS_Store 3 | *.pyc 4 | *.pyo 5 | *.env 6 | env 7 | env* 8 | !migrations/env.py 9 | dist 10 | build 11 | *.egg 12 | *.egg-info 13 | _mailinglist 14 | .tox 15 | .cache/ 16 | test.db 17 | app.db 18 | .idea/ 19 | .bundle/ 20 | .vscode/ 21 | venv/ 22 | .venv 23 | 24 | # Static files at 'app/static/vendor' 25 | app/static/vendor 26 | node_modules 27 | 28 | # event export files 29 | static/exports/event* 30 | 31 | # temp static files 32 | static/temp/* 33 | !static/temp/.gitkeep 34 | /tests/test.db-journal 35 | 36 | # uploads dir 37 | static/media/* 38 | !static/media/.gitkeep 39 | 40 | # uploads dir 41 | static/uploads/* 42 | !static/uploads/.gitkeep 43 | 44 | # redis 45 | redis-3.2.1/ 46 | dump.rdb 47 | /report.html 48 | /output.xml 49 | /log.html 50 | /selenium-screenshot-1.png 51 | jobs.sqlite 52 | 53 | # for -e pip packages 54 | src 55 | -------------------------------------------------------------------------------- /.hound.yml: -------------------------------------------------------------------------------- 1 | python: 2 | enabled: true 3 | config_file: .flake8.ini 4 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.6-slim 2 | LABEL maintainer="Niranjan Rajendran " 3 | 4 | ENV INSTALL_PATH /open_event 5 | RUN mkdir -p $INSTALL_PATH 6 | 7 | WORKDIR $INSTALL_PATH 8 | 9 | # apt-get update and update some packages 10 | RUN apt-get update && apt-get install -y wget git ca-certificates curl && update-ca-certificates && apt-get clean -y 11 | 12 | 13 | # install deps 14 | RUN apt-get install -y --no-install-recommends build-essential python-dev libpq-dev libevent-dev libmagic-dev libssl-dev && apt-get clean -y 15 | 16 | # copy just requirements 17 | COPY requirements.txt requirements.txt 18 | COPY requirements requirements 19 | 20 | # install requirements 21 | RUN pip3 install --no-cache-dir -r requirements.txt 22 | RUN pip3 install eventlet 23 | RUN pip3 install colour 24 | 25 | # copy remaining files 26 | COPY . . 27 | 28 | CMD bash scripts/docker_run.sh 29 | -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: sh ./scripts/heroku.sh 2 | -------------------------------------------------------------------------------- /app/api/activities.py: -------------------------------------------------------------------------------- 1 | from flask_rest_jsonapi import ResourceDetail, ResourceList 2 | 3 | from app.api.bootstrap import api 4 | from app.api.schema.activities import ActivitySchema 5 | from app.models import db 6 | from app.models.activity import Activity 7 | 8 | 9 | class ActivityList(ResourceList): 10 | """ 11 | List and create activity 12 | """ 13 | schema = ActivitySchema 14 | methods = ['GET', ] 15 | decorators = (api.has_permission('is_admin', ),) 16 | data_layer = {'session': db.session, 17 | 'model': Activity} 18 | 19 | 20 | class ActivityDetail(ResourceDetail): 21 | """ 22 | Activity detail by id 23 | """ 24 | schema = ActivitySchema 25 | methods = ['GET', ] 26 | decorators = (api.has_permission('is_admin', ),) 27 | data_layer = {'session': db.session, 28 | 'model': Activity} 29 | -------------------------------------------------------------------------------- /app/api/admin_sales/utils.py: -------------------------------------------------------------------------------- 1 | """ 2 | This module contains common sales calculations that are used throughout the 3 | admin section 4 | """ 5 | 6 | 7 | def status_summary(orders, status): 8 | """ 9 | Groups orders by status and returns the total sales and ticket count as a 10 | dictionary 11 | """ 12 | return { 13 | 'sales_total': sum([o.amount for o in orders if o.status == status]), 14 | 'ticket_count': sum([o.tickets_count for o in orders]) 15 | } 16 | 17 | 18 | def summary(orders): 19 | "Returns sales as dictionary for all status codes" 20 | status_codes = ['placed', 'completed', 'pending'] 21 | return {s: status_summary(orders, s) for s in status_codes} 22 | -------------------------------------------------------------------------------- /app/api/admin_statistics_api/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/app/api/admin_statistics_api/__init__.py -------------------------------------------------------------------------------- /app/api/bootstrap.py: -------------------------------------------------------------------------------- 1 | from flask import current_app as app, Blueprint 2 | from flask_rest_jsonapi import Api 3 | from app.api.helpers.permission_manager import permission_manager 4 | 5 | api_v1 = Blueprint('v1', __name__, url_prefix='/v1') 6 | api = Api(app, api_v1) 7 | api.permission_manager(permission_manager) 8 | -------------------------------------------------------------------------------- /app/api/data_layers/NoModelLayer.py: -------------------------------------------------------------------------------- 1 | from flask_rest_jsonapi.data_layers.base import BaseDataLayer 2 | 3 | from app.api.helpers.utilities import EmptyObject 4 | 5 | 6 | class NoModelLayer(BaseDataLayer): 7 | def get_object(self, view_kwargs): 8 | """Retrieve an object 9 | :params dict view_kwargs: kwargs from the resource view 10 | :return DeclarativeMeta: an object 11 | """ 12 | obj = EmptyObject() 13 | obj.id = 1 14 | return obj 15 | -------------------------------------------------------------------------------- /app/api/data_layers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/app/api/data_layers/__init__.py -------------------------------------------------------------------------------- /app/api/event_image_sizes.py: -------------------------------------------------------------------------------- 1 | from flask_rest_jsonapi import ResourceDetail 2 | 3 | from app.api.bootstrap import api 4 | from app.api.schema.image_sizes import EventImageSizeSchema 5 | from app.models import db 6 | from app.models.image_size import ImageSizes 7 | 8 | 9 | class EventImageSizeDetail(ResourceDetail): 10 | """ 11 | Event Image_size detail by id 12 | """ 13 | @classmethod 14 | def before_get(self, args, kwargs): 15 | kwargs['id'] = 1 16 | decorators = (api.has_permission('is_admin', methods='PATCH', id="1"),) 17 | methods = ['GET', 'PATCH'] 18 | schema = EventImageSizeSchema 19 | data_layer = {'session': db.session, 20 | 'model': ImageSizes} 21 | -------------------------------------------------------------------------------- /app/api/event_locations.py: -------------------------------------------------------------------------------- 1 | from flask_rest_jsonapi import ResourceList 2 | 3 | from app.api.bootstrap import api 4 | from app.api.schema.event_locations import EventLocationSchema 5 | from app.models import db 6 | from app.models.event_location import EventLocation 7 | 8 | 9 | class EventLocationList(ResourceList): 10 | 11 | """ 12 | List event locations 13 | """ 14 | decorators = (api.has_permission('is_admin', methods="POST"),) 15 | schema = EventLocationSchema 16 | data_layer = {'session': db.session, 17 | 'model': EventLocation} 18 | -------------------------------------------------------------------------------- /app/api/helpers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/app/api/helpers/__init__.py -------------------------------------------------------------------------------- /app/api/helpers/cache.py: -------------------------------------------------------------------------------- 1 | from flask_caching import Cache 2 | 3 | cache = Cache() 4 | -------------------------------------------------------------------------------- /app/api/helpers/exceptions.py: -------------------------------------------------------------------------------- 1 | from flask_rest_jsonapi.exceptions import JsonApiException 2 | 3 | 4 | class UnprocessableEntity(JsonApiException): 5 | title = "Unprocessable Entity" 6 | status = 422 7 | 8 | 9 | class ConflictException(JsonApiException): 10 | title = "Conflict" 11 | status = 409 12 | 13 | 14 | class ForbiddenException(JsonApiException): 15 | """ 16 | Default class for 403 Error 17 | """ 18 | title = 'Access Forbidden' 19 | status = 403 20 | 21 | 22 | class MethodNotAllowed(JsonApiException): 23 | """ 24 | Default Class to throw HTTP 405 Exception 25 | """ 26 | title = "Method Not Allowed" 27 | status = 405 28 | -------------------------------------------------------------------------------- /app/api/helpers/order.py: -------------------------------------------------------------------------------- 1 | import logging 2 | 3 | 4 | def delete_related_attendees_for_order(self, order): 5 | """ 6 | Delete the associated attendees of an order when it is cancelled/deleted/expired 7 | :param self: 8 | :param order: Order whose attendees have to be deleted. 9 | :return: 10 | """ 11 | for ticket_holder in order.ticket_holders: 12 | self.session.delete(ticket_holder) 13 | try: 14 | self.session.commit() 15 | except Exception as e: 16 | logging.error('DB Exception! %s' % e) 17 | self.session.rollback() 18 | -------------------------------------------------------------------------------- /app/api/mails.py: -------------------------------------------------------------------------------- 1 | from flask_rest_jsonapi import ResourceDetail, ResourceList 2 | 3 | from app.api.bootstrap import api 4 | from app.api.schema.mails import MailSchema 5 | from app.models import db 6 | from app.models.mail import Mail 7 | 8 | 9 | class MailList(ResourceList): 10 | """ 11 | List and create mails 12 | """ 13 | decorators = (api.has_permission('is_admin'),) 14 | methods = ['GET'] 15 | schema = MailSchema 16 | data_layer = {'session': db.session, 17 | 'model': Mail} 18 | 19 | 20 | class MailDetail(ResourceDetail): 21 | """ 22 | Mail detail by id 23 | """ 24 | methods = ['GET'] 25 | schema = MailSchema 26 | decorators = (api.has_permission('is_admin'),) 27 | data_layer = {'session': db.session, 28 | 'model': Mail} 29 | -------------------------------------------------------------------------------- /app/api/modules.py: -------------------------------------------------------------------------------- 1 | from flask_rest_jsonapi import ResourceDetail 2 | 3 | from app.api.bootstrap import api 4 | from app.api.schema.modules import ModuleSchema 5 | from app.models import db 6 | from app.models.module import Module 7 | 8 | 9 | class ModuleDetail(ResourceDetail): 10 | """ 11 | module detail by id 12 | """ 13 | 14 | def before_get(self, args, kwargs): 15 | """ 16 | before get method to get the resource id for fetching details 17 | :param args: 18 | :param kwargs: 19 | :return: 20 | """ 21 | kwargs['id'] = 1 22 | 23 | decorators = (api.has_permission('is_admin', methods='PATCH', id='1'),) 24 | methods = ['GET', 'PATCH'] 25 | schema = ModuleSchema 26 | data_layer = {'session': db.session, 27 | 'model': Module} 28 | -------------------------------------------------------------------------------- /app/api/order_statistics/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/app/api/order_statistics/__init__.py -------------------------------------------------------------------------------- /app/api/pages.py: -------------------------------------------------------------------------------- 1 | from flask_rest_jsonapi import ResourceDetail, ResourceList 2 | 3 | from app.api.bootstrap import api 4 | from app.api.schema.pages import PageSchema 5 | from app.models import db 6 | from app.models.page import Page 7 | 8 | 9 | class PageList(ResourceList): 10 | """ 11 | List and create page 12 | """ 13 | decorators = (api.has_permission('is_admin', methods="POST"),) 14 | schema = PageSchema 15 | data_layer = {'session': db.session, 16 | 'model': Page} 17 | 18 | 19 | class PageDetail(ResourceDetail): 20 | """ 21 | Page detail by id 22 | """ 23 | schema = PageSchema 24 | decorators = (api.has_permission('is_admin', methods="PATCH,DELETE"),) 25 | data_layer = {'session': db.session, 26 | 'model': Page} 27 | -------------------------------------------------------------------------------- /app/api/schema/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/app/api/schema/__init__.py -------------------------------------------------------------------------------- /app/api/schema/activities.py: -------------------------------------------------------------------------------- 1 | from marshmallow_jsonapi import fields 2 | from marshmallow_jsonapi.flask import Schema 3 | 4 | from app.api.helpers.utilities import dasherize 5 | 6 | 7 | class ActivitySchema(Schema): 8 | """ 9 | Api schema for Activity Model 10 | """ 11 | class Meta: 12 | """ 13 | Meta class for Activity Api Schema 14 | """ 15 | type_ = 'activity' 16 | self_view = 'v1.activity_detail' 17 | self_view_kwargs = {'id': ''} 18 | inflect = dasherize 19 | 20 | id = fields.Str(dump_only=True) 21 | actor = fields.Str(allow_none=True) 22 | time = fields.DateTime(allow_none=True) 23 | action = fields.Str(allow_none=True) 24 | -------------------------------------------------------------------------------- /app/api/schema/admin_statistics_schema/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/app/api/schema/admin_statistics_schema/__init__.py -------------------------------------------------------------------------------- /app/api/schema/base.py: -------------------------------------------------------------------------------- 1 | from marshmallow_jsonapi import fields 2 | from marshmallow_jsonapi.flask import Schema 3 | 4 | 5 | class SoftDeletionSchema(Schema): 6 | """ 7 | Base Schema for soft deletion support. All the schemas that support soft deletion should extend this schema 8 | """ 9 | deleted_at = fields.DateTime(allow_none=True) 10 | -------------------------------------------------------------------------------- /app/api/schema/mails.py: -------------------------------------------------------------------------------- 1 | from marshmallow_jsonapi import fields 2 | from marshmallow_jsonapi.flask import Schema 3 | 4 | from app.api.helpers.utilities import dasherize 5 | 6 | 7 | class MailSchema(Schema): 8 | """ 9 | Api schema for mail Model 10 | """ 11 | class Meta: 12 | """ 13 | Meta class for mail Api Schema 14 | """ 15 | type_ = 'mail' 16 | self_view = 'v1.mail_detail' 17 | self_view_kwargs = {'id': ''} 18 | self_view_many = 'v1.mail_list' 19 | inflect = dasherize 20 | 21 | id = fields.Str(dump_only=True) 22 | recipient = fields.Email(dump_only=True) 23 | time = fields.DateTime(dump_only=True) 24 | action = fields.Str(dump_only=True) 25 | subject = fields.Str(dump_only=True) 26 | message = fields.Str(dump_only=True) 27 | -------------------------------------------------------------------------------- /app/api/schema/modules.py: -------------------------------------------------------------------------------- 1 | from marshmallow_jsonapi import fields 2 | from marshmallow_jsonapi.flask import Schema 3 | 4 | from app.api.helpers.utilities import dasherize 5 | from utils.common import use_defaults 6 | 7 | 8 | @use_defaults() 9 | class ModuleSchema(Schema): 10 | """ 11 | Admin Api schema for modules Model 12 | """ 13 | class Meta: 14 | """ 15 | Meta class for module Api Schema 16 | """ 17 | type_ = 'module' 18 | self_view = 'v1.module_detail' 19 | self_view_kwargs = {'id': ''} 20 | inflect = dasherize 21 | 22 | id = fields.Str(dump_only=True) 23 | ticket_include = fields.Boolean(default=False) 24 | payment_include = fields.Boolean(default=False) 25 | donation_include = fields.Boolean(default=False) 26 | -------------------------------------------------------------------------------- /app/api/schema/roles.py: -------------------------------------------------------------------------------- 1 | from marshmallow_jsonapi import fields 2 | 3 | from app.api.helpers.utilities import dasherize 4 | from app.api.schema.base import SoftDeletionSchema 5 | 6 | 7 | class RoleSchema(SoftDeletionSchema): 8 | """ 9 | Api schema for role Model 10 | """ 11 | class Meta: 12 | """ 13 | Meta class for role Api Schema 14 | """ 15 | type_ = 'role' 16 | self_view = 'v1.role_detail' 17 | self_view_kwargs = {'id': ''} 18 | inflect = dasherize 19 | 20 | id = fields.Str(dump_only=True) 21 | name = fields.Str(required=True) 22 | title_name = fields.Str(allow_none=True) 23 | -------------------------------------------------------------------------------- /app/api/schema/services.py: -------------------------------------------------------------------------------- 1 | from marshmallow_jsonapi import fields 2 | from marshmallow_jsonapi.flask import Schema 3 | from marshmallow import validate as validate 4 | 5 | from app.api.helpers.utilities import dasherize 6 | from utils.common import use_defaults 7 | 8 | 9 | @use_defaults() 10 | class ServiceSchema(Schema): 11 | """ 12 | API Schema for Service Model 13 | """ 14 | 15 | class Meta: 16 | """ 17 | Meta class for Service API schema 18 | """ 19 | type_ = 'service' 20 | self_view = 'v1.service_detail' 21 | self_view_kwargs = {'id': ''} 22 | self_view_many = 'v1.service_list' 23 | inflect = dasherize 24 | 25 | id = fields.Str(dump_only=True) 26 | name = fields.Str(default="track", validate=validate.OneOf( 27 | choices=["microlocation", "session", "speaker", "track", "sponsor"])) 28 | -------------------------------------------------------------------------------- /app/api/schema/user_permission.py: -------------------------------------------------------------------------------- 1 | from marshmallow_jsonapi import fields 2 | 3 | from app.api.helpers.utilities import dasherize 4 | from app.api.schema.base import SoftDeletionSchema 5 | 6 | 7 | class UserPermissionSchema(SoftDeletionSchema): 8 | """ 9 | Api schema for user permission Model 10 | """ 11 | class Meta: 12 | """ 13 | Meta class for user permission Api Schema 14 | """ 15 | type_ = 'user-permission' 16 | self_view = 'v1.user_permission_detail' 17 | self_view_kwargs = {'id': ''} 18 | inflect = dasherize 19 | 20 | id = fields.Str(dump_only=True) 21 | name = fields.Str(required=True) 22 | description = fields.Str(allow_none=True) 23 | 24 | unverified_user = fields.Boolean(allow_none=True) 25 | anonymous_user = fields.Boolean(allow_none=True) 26 | -------------------------------------------------------------------------------- /app/api/service.py: -------------------------------------------------------------------------------- 1 | from flask_rest_jsonapi import ResourceDetail, ResourceList 2 | 3 | from app.api.bootstrap import api 4 | from app.api.schema.services import ServiceSchema 5 | from app.models import db 6 | from app.models.service import Service 7 | 8 | 9 | class ServiceList(ResourceList): 10 | """ 11 | List all services i.e. microlocation, session, speaker, track, sponsor 12 | """ 13 | decorators = (api.has_permission('is_admin', methods="GET"),) 14 | methods = ['GET'] 15 | schema = ServiceSchema 16 | data_layer = {'session': db.session, 17 | 'model': Service} 18 | 19 | 20 | class ServiceDetail(ResourceDetail): 21 | """ 22 | service detail by id 23 | """ 24 | decorators = (api.has_permission('is_admin', methods="PATCH"),) 25 | schema = ServiceSchema 26 | methods = ['GET', 'PATCH'] 27 | data_layer = {'session': db.session, 28 | 'model': Service} 29 | -------------------------------------------------------------------------------- /app/api/speaker_image_sizes.py: -------------------------------------------------------------------------------- 1 | from flask_rest_jsonapi import ResourceDetail 2 | 3 | from app.api.bootstrap import api 4 | from app.api.schema.image_sizes import SpeakerImageSizeSchema 5 | from app.models import db 6 | from app.models.image_size import ImageSizes 7 | 8 | 9 | class SpeakerImageSizeDetail(ResourceDetail): 10 | """ 11 | Speaker Image_size detail by id 12 | """ 13 | @classmethod 14 | def before_get(self, args, kwargs): 15 | kwargs['id'] = 2 16 | decorators = (api.has_permission('is_admin', methods="PATCH", id="2"),) 17 | methods = ['GET', 'PATCH'] 18 | schema = SpeakerImageSizeSchema 19 | data_layer = {'session': db.session, 20 | 'model': ImageSizes} 21 | -------------------------------------------------------------------------------- /app/api/ticket_fees.py: -------------------------------------------------------------------------------- 1 | from flask_rest_jsonapi import ResourceDetail, ResourceList 2 | 3 | from app import db 4 | from app.api.bootstrap import api 5 | from app.api.schema.ticket_fees import TicketFeesSchema 6 | from app.models.ticket_fee import TicketFees 7 | 8 | 9 | class TicketFeeList(ResourceList): 10 | """ 11 | List and create TicketFees 12 | """ 13 | decorators = (api.has_permission('is_admin'),) 14 | schema = TicketFeesSchema 15 | data_layer = {'session': db.session, 16 | 'model': TicketFees} 17 | 18 | 19 | class TicketFeeDetail(ResourceDetail): 20 | """ 21 | ticket_fee detail by id 22 | """ 23 | decorators = (api.has_permission('is_admin'),) 24 | schema = TicketFeesSchema 25 | data_layer = {'session': db.session, 26 | 'model': TicketFees} 27 | -------------------------------------------------------------------------------- /app/api/user_permission.py: -------------------------------------------------------------------------------- 1 | from flask_rest_jsonapi import ResourceDetail, ResourceList 2 | 3 | from app.api.bootstrap import api 4 | from app.api.schema.user_permission import UserPermissionSchema 5 | from app.models import db 6 | from app.models.user_permission import UserPermission 7 | 8 | 9 | class UserPermissionList(ResourceList): 10 | """ 11 | List and create user permission 12 | """ 13 | decorators = (api.has_permission('is_admin', methods="POST"),) 14 | schema = UserPermissionSchema 15 | data_layer = {'session': db.session, 16 | 'model': UserPermission} 17 | 18 | 19 | class UserPermissionDetail(ResourceDetail): 20 | """ 21 | User permission detail by id 22 | """ 23 | schema = UserPermissionSchema 24 | decorators = (api.has_permission('is_admin', methods="PATCH,DELETE"),) 25 | data_layer = {'session': db.session, 26 | 'model': UserPermission} 27 | -------------------------------------------------------------------------------- /app/factories/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/app/factories/__init__.py -------------------------------------------------------------------------------- /app/factories/activities.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | import app.factories.common as common 4 | from app.models.activity import db, Activity 5 | 6 | 7 | class ActivityFactory(factory.alchemy.SQLAlchemyModelFactory): 8 | 9 | class Meta: 10 | model = Activity 11 | sqlalchemy_session = db.session 12 | 13 | actor = common.string_ 14 | action = common.string_ 15 | -------------------------------------------------------------------------------- /app/factories/attendee.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | import app.factories.common as common 4 | from app.factories.event import EventFactoryBasic 5 | from app.models.ticket_holder import db, TicketHolder 6 | 7 | 8 | class AttendeeFactory(factory.alchemy.SQLAlchemyModelFactory): 9 | class Meta: 10 | model = TicketHolder 11 | sqlalchemy_session = db.session 12 | 13 | event = factory.RelatedFactory(EventFactoryBasic) 14 | firstname = common.string_ 15 | lastname = common.string_ 16 | email = common.email_ 17 | address = common.string_ 18 | city = common.string_ 19 | state = common.string_ 20 | country = "IN" 21 | is_checked_in = True 22 | pdf_url = common.url_ 23 | event_id = 1 24 | ticket_id = None 25 | -------------------------------------------------------------------------------- /app/factories/common.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | # use camelCase for naming variables 4 | 5 | string_ = 'example' 6 | email_ = factory.Sequence(lambda n: 'user{0}@example.com'.format(n)) 7 | integer_ = 25 8 | url_ = 'http://example.com' 9 | imageUrl_ = 'https://www.w3schools.com/html/pic_mountain.jpg' 10 | date_ = '2016-12-13T23:59:59.123456+00:00' 11 | dateEnd_ = '2016-12-14T23:59:59.123456+00:00' 12 | country_ = 'US' 13 | currency_ = 'USD' 14 | int_ = '1' 15 | float_ = '1.23456789' 16 | timezone_ = 'UTC' 17 | environment_ = 'production' 18 | secret_ = 'ABCDefghIJKLmnop' 19 | fee_ = '1.23' 20 | slug_ = factory.Sequence(lambda n: 'example_slug{0}'.format(n)) 21 | 22 | 23 | def socialUrl_(name): 24 | return 'https://{}.com/{}'.format(name, name) 25 | -------------------------------------------------------------------------------- /app/factories/custom_form.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | import app.factories.common as common 4 | from app.factories.event import EventFactoryBasic 5 | from app.models.custom_form import db, CustomForms 6 | 7 | 8 | class CustomFormFactory(factory.alchemy.SQLAlchemyModelFactory): 9 | 10 | class Meta: 11 | model = CustomForms 12 | sqlalchemy_session = db.session 13 | 14 | event = factory.RelatedFactory(EventFactoryBasic) 15 | form = common.string_ 16 | field_identifier = common.string_ 17 | type = "text" 18 | is_required = False 19 | is_included = False 20 | is_fixed = False 21 | event_id = 1 22 | -------------------------------------------------------------------------------- /app/factories/custom_placeholder.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | import app.factories.common as common 4 | from app.models.custom_placeholder import db, CustomPlaceholder 5 | 6 | 7 | class CustomPlaceholderFactory(factory.alchemy.SQLAlchemyModelFactory): 8 | class Meta: 9 | model = CustomPlaceholder 10 | sqlalchemy_session = db.session 11 | 12 | name = common.string_ 13 | origin = common.string_ 14 | copyright = common.string_ 15 | original_image_url = common.imageUrl_ 16 | event_sub_topic_id = None 17 | -------------------------------------------------------------------------------- /app/factories/email_notification.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | from app.factories.event import EventFactoryBasic 4 | from app.factories.user import UserFactory 5 | from app.models.email_notification import db, EmailNotification 6 | 7 | 8 | class EmailNotificationFactory(factory.alchemy.SQLAlchemyModelFactory): 9 | class Meta: 10 | model = EmailNotification 11 | sqlalchemy_session = db.session 12 | 13 | user = factory.RelatedFactory(UserFactory) 14 | event = factory.RelatedFactory(EventFactoryBasic) 15 | next_event = False 16 | new_paper = False 17 | session_accept_reject = False 18 | session_schedule = True 19 | after_ticket_purchase = True 20 | event_id = 1 21 | user_id = 2 22 | -------------------------------------------------------------------------------- /app/factories/event_copyright.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | import app.factories.common as common 4 | from app.factories.event import EventFactoryBasic 5 | from app.models.event_copyright import db, EventCopyright 6 | 7 | 8 | class EventCopyrightFactory(factory.alchemy.SQLAlchemyModelFactory): 9 | 10 | class Meta: 11 | model = EventCopyright 12 | sqlalchemy_session = db.session 13 | 14 | event = factory.RelatedFactory(EventFactoryBasic) 15 | holder = common.string_ 16 | holder_url = common.url_ 17 | licence = common.string_ 18 | licence_url = common.url_ 19 | year = 2007 20 | logo = common.url_ 21 | event_id = 1 22 | -------------------------------------------------------------------------------- /app/factories/event_role_permission.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | from app.factories.role import RoleFactory 4 | from app.factories.service import ServiceFactory 5 | from app.models.permission import db, Permission 6 | 7 | 8 | class EventRolePermissionsFactory(factory.alchemy.SQLAlchemyModelFactory): 9 | class Meta: 10 | model = Permission 11 | sqlalchemy_session = db.session 12 | 13 | role = factory.RelatedFactory(RoleFactory) 14 | service = factory.RelatedFactory(ServiceFactory) 15 | can_create = True 16 | can_read = True 17 | can_update = True 18 | can_delete = True 19 | role_id = 1 20 | service_id = 1 21 | -------------------------------------------------------------------------------- /app/factories/event_sub_topic.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | import app.factories.common as common 4 | from app.factories.event_topic import EventTopicFactory 5 | from app.models.event_sub_topic import db, EventSubTopic 6 | 7 | 8 | class EventSubTopicFactory(factory.alchemy.SQLAlchemyModelFactory): 9 | class Meta: 10 | model = EventSubTopic 11 | sqlalchemy_session = db.session 12 | 13 | event_topic = factory.RelatedFactory(EventTopicFactory) 14 | name = common.string_ 15 | slug = common.slug_ 16 | event_topic_id = 1 17 | -------------------------------------------------------------------------------- /app/factories/event_topic.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | import app.factories.common as common 4 | from app.models.event_topic import db, EventTopic 5 | 6 | 7 | class EventTopicFactory(factory.alchemy.SQLAlchemyModelFactory): 8 | class Meta: 9 | model = EventTopic 10 | sqlalchemy_session = db.session 11 | 12 | name = common.string_ 13 | slug = common.slug_ 14 | -------------------------------------------------------------------------------- /app/factories/event_type.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | import app.factories.common as common 4 | from app.models.event_type import db, EventType 5 | 6 | 7 | class EventTypeFactory(factory.alchemy.SQLAlchemyModelFactory): 8 | class Meta: 9 | model = EventType 10 | sqlalchemy_session = db.session 11 | 12 | name = common.string_ 13 | slug = common.slug_ 14 | -------------------------------------------------------------------------------- /app/factories/faq.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | from app.factories.event import EventFactoryBasic 4 | from app.factories.faq_type import FaqTypeFactory 5 | from app.models.faq import db, Faq 6 | 7 | 8 | class FaqFactory(factory.alchemy.SQLAlchemyModelFactory): 9 | 10 | class Meta: 11 | model = Faq 12 | sqlalchemy_session = db.session 13 | 14 | event = factory.RelatedFactory(EventFactoryBasic) 15 | faq_type = factory.RelatedFactory(FaqTypeFactory) 16 | question = "Sample Question" 17 | answer = "Sample Answer" 18 | event_id = 1 19 | faq_type_id = 1 20 | -------------------------------------------------------------------------------- /app/factories/faq_type.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | import app.factories.common as common 4 | from app.factories.event import EventFactoryBasic 5 | from app.models.faq_type import db, FaqType 6 | 7 | 8 | class FaqTypeFactory(factory.alchemy.SQLAlchemyModelFactory): 9 | class Meta: 10 | model = FaqType 11 | sqlalchemy_session = db.session 12 | 13 | event = factory.RelatedFactory(EventFactoryBasic) 14 | name = common.string_ 15 | event_id = 1 16 | -------------------------------------------------------------------------------- /app/factories/feedback.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | from app.factories.event import EventFactoryBasic 4 | from app.factories.user import UserFactory 5 | from app.models.feedback import db, Feedback 6 | 7 | 8 | class FeedbackFactory(factory.alchemy.SQLAlchemyModelFactory): 9 | 10 | class Meta: 11 | model = Feedback 12 | sqlalchemy_session = db.session 13 | 14 | event = factory.RelatedFactory(EventFactoryBasic) 15 | user = factory.RelatedFactory(UserFactory) 16 | rating = "4" 17 | comment = "Awesome event." 18 | event_id = 1 19 | user_id = 2 20 | -------------------------------------------------------------------------------- /app/factories/mail.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | import app.factories.common as common 4 | from app.models.mail import db, Mail 5 | 6 | 7 | class MailFactory(factory.alchemy.SQLAlchemyModelFactory): 8 | class Meta: 9 | model = Mail 10 | sqlalchemy_session = db.session 11 | 12 | recipient = common.email_ 13 | time = common.date_ 14 | action = common.string_ 15 | subject = common.string_ 16 | message = common.string_ 17 | -------------------------------------------------------------------------------- /app/factories/message_setting.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | from app.models.message_setting import db, MessageSettings 4 | 5 | 6 | class MessageSettingsFactory(factory.alchemy.SQLAlchemyModelFactory): 7 | class Meta: 8 | model = MessageSettings 9 | sqlalchemy_session = db.session 10 | 11 | action = "After Event" 12 | mail_status = True 13 | notification_status = True 14 | user_control_status = True 15 | -------------------------------------------------------------------------------- /app/factories/microlocation.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | import app.factories.common as common 4 | from app.factories.event import EventFactoryBasic 5 | from app.models.microlocation import db, Microlocation 6 | 7 | 8 | class MicrolocationFactory(factory.alchemy.SQLAlchemyModelFactory): 9 | class Meta: 10 | model = Microlocation 11 | sqlalchemy_session = db.session 12 | 13 | event = factory.RelatedFactory(EventFactoryBasic) 14 | name = common.string_ 15 | latitude = common.float_ 16 | longitude = common.float_ 17 | floor = common.int_ 18 | room = common.string_ 19 | event_id = 1 20 | -------------------------------------------------------------------------------- /app/factories/module.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | from app.models.module import db, Module 4 | 5 | 6 | class ModuleFactory(factory.alchemy.SQLAlchemyModelFactory): 7 | 8 | class Meta: 9 | model = Module 10 | sqlalchemy_session = db.session 11 | 12 | donation_include = True 13 | ticket_include = True 14 | payment_include = True 15 | -------------------------------------------------------------------------------- /app/factories/notification.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | import app.factories.common as common 4 | from app.factories.user import UserFactory 5 | from app.models.notification import db, Notification 6 | 7 | 8 | class NotificationFactory(factory.alchemy.SQLAlchemyModelFactory): 9 | class Meta: 10 | model = Notification 11 | sqlalchemy_session = db.session 12 | 13 | user = factory.RelatedFactory(UserFactory) 14 | title = common.string_ 15 | message = common.string_ 16 | action = common.string_ 17 | is_read = False 18 | user_id = 2 19 | 20 | -------------------------------------------------------------------------------- /app/factories/order.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | from app.factories.event import EventFactoryBasic 4 | from app.models.order import Order 5 | from app.models.ticket import db 6 | 7 | 8 | class OrderFactory(factory.alchemy.SQLAlchemyModelFactory): 9 | class Meta: 10 | model = Order 11 | sqlalchemy_session = db.session 12 | 13 | event = factory.RelatedFactory(EventFactoryBasic) 14 | event_id = 1 15 | payment_mode = 'free' 16 | -------------------------------------------------------------------------------- /app/factories/page.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | import app.factories.common as common 4 | from app.models.page import db, Page 5 | 6 | 7 | class PageFactory(factory.alchemy.SQLAlchemyModelFactory): 8 | class Meta: 9 | model = Page 10 | sqlalchemy_session = db.session 11 | 12 | name = common.string_ 13 | title = common.string_ 14 | url = '/new_page' 15 | description = common.string_ 16 | place = common.string_ 17 | language = 'English' 18 | index = 0 19 | -------------------------------------------------------------------------------- /app/factories/role.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | import app.factories.common as common 4 | from app.models.role import db, Role 5 | 6 | 7 | class RoleFactory(factory.alchemy.SQLAlchemyModelFactory): 8 | class Meta: 9 | model = Role 10 | sqlalchemy_session = db.session 11 | 12 | name = common.string_ 13 | title_name = common.string_ 14 | -------------------------------------------------------------------------------- /app/factories/role_invite.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | import app.factories.common as common 4 | from app.factories.event import EventFactoryBasic 5 | from app.factories.role import RoleFactory 6 | from app.models.role_invite import db, RoleInvite 7 | 8 | 9 | class RoleInviteFactory(factory.alchemy.SQLAlchemyModelFactory): 10 | class Meta: 11 | model = RoleInvite 12 | sqlalchemy_session = db.session 13 | 14 | event = factory.RelatedFactory(EventFactoryBasic) 15 | role = factory.RelatedFactory(RoleFactory) 16 | email = common.email_ 17 | created_at = common.date_ 18 | hash = common.string_ 19 | status = common.string_ 20 | role_name = common.string_ 21 | event_id = 1 22 | role_id = 1 23 | -------------------------------------------------------------------------------- /app/factories/service.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | import app.factories.common as common 4 | from app.models.service import db, Service 5 | 6 | 7 | class ServiceFactory(factory.alchemy.SQLAlchemyModelFactory): 8 | class Meta: 9 | model = Service 10 | sqlalchemy_session = db.session 11 | 12 | name = common.string_ 13 | -------------------------------------------------------------------------------- /app/factories/session_type.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | import app.factories.common as common 4 | from app.factories.event import EventFactoryBasic 5 | from app.models.session_type import db, SessionType 6 | 7 | 8 | class SessionTypeFactory(factory.alchemy.SQLAlchemyModelFactory): 9 | class Meta: 10 | model = SessionType 11 | sqlalchemy_session = db.session 12 | 13 | event = factory.RelatedFactory(EventFactoryBasic) 14 | name = common.string_ 15 | length = '00:30' 16 | event_id = 1 17 | -------------------------------------------------------------------------------- /app/factories/social_link.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | import app.factories.common as common 4 | from app.factories.event import EventFactoryBasic 5 | from app.models.social_link import db, SocialLink 6 | 7 | 8 | class SocialLinkFactory(factory.alchemy.SQLAlchemyModelFactory): 9 | class Meta: 10 | model = SocialLink 11 | sqlalchemy_session = db.session 12 | 13 | event = factory.RelatedFactory(EventFactoryBasic) 14 | name = common.string_ 15 | link = common.socialUrl_('facebook') 16 | event_id = 1 17 | -------------------------------------------------------------------------------- /app/factories/speakers_call.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | import app.factories.common as common 4 | from app.factories.event import EventFactoryBasic 5 | from app.models.speakers_call import db, SpeakersCall 6 | 7 | 8 | class SpeakersCallFactory(factory.alchemy.SQLAlchemyModelFactory): 9 | class Meta: 10 | model = SpeakersCall 11 | sqlalchemy_session = db.session 12 | 13 | event = factory.RelatedFactory(EventFactoryBasic) 14 | announcement = common.string_ 15 | starts_at = common.date_ 16 | ends_at = common.dateEnd_ 17 | hash = common.string_ 18 | privacy = "public" 19 | event_id = 1 20 | -------------------------------------------------------------------------------- /app/factories/sponsor.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | import app.factories.common as common 4 | from app.factories.event import EventFactoryBasic 5 | from app.models.sponsor import db, Sponsor 6 | 7 | 8 | class SponsorFactory(factory.alchemy.SQLAlchemyModelFactory): 9 | class Meta: 10 | model = Sponsor 11 | sqlalchemy_session = db.session 12 | 13 | event = factory.RelatedFactory(EventFactoryBasic) 14 | name = common.string_ 15 | description = common.string_ 16 | url = common.url_ 17 | level = 1 18 | logo_url = common.imageUrl_ 19 | type = 'Gold' 20 | event_id = 1 21 | -------------------------------------------------------------------------------- /app/factories/stripe_authorization.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | import app.factories.common as common 4 | from app.factories.event import EventFactoryBasic 5 | from app.models import db 6 | from app.models.stripe_authorization import StripeAuthorization 7 | 8 | 9 | class StripeAuthorizationFactory(factory.alchemy.SQLAlchemyModelFactory): 10 | class Meta: 11 | model = StripeAuthorization 12 | sqlalchemy_session = db.session 13 | 14 | event = factory.RelatedFactory(EventFactoryBasic) 15 | stripe_secret_key = common.string_ 16 | stripe_refresh_token = common.string_ 17 | stripe_publishable_key = common.string_ 18 | stripe_user_id = common.string_ 19 | stripe_auth_code = common.secret_ 20 | event_id = 1 21 | -------------------------------------------------------------------------------- /app/factories/tax.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | import app.factories.common as common 4 | from app.factories.event import EventFactoryBasic 5 | from app.models.tax import db, Tax 6 | 7 | 8 | class TaxFactory(factory.alchemy.SQLAlchemyModelFactory): 9 | class Meta: 10 | model = Tax 11 | sqlalchemy_session = db.session 12 | 13 | event = factory.RelatedFactory(EventFactoryBasic) 14 | country = common.country_ 15 | name = common.string_ 16 | rate = common.float_ 17 | tax_id = "123456789" 18 | should_send_invoice = False 19 | registered_company = common.string_ 20 | address = common.string_ 21 | city = common.string_ 22 | state = common.string_ 23 | zip = "123456" 24 | invoice_footer = common.string_ 25 | is_tax_included_in_price = False 26 | event_id = 1 27 | -------------------------------------------------------------------------------- /app/factories/ticket.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | import app.factories.common as common 4 | from app.factories.event import EventFactoryBasic 5 | from app.models.ticket import db, Ticket 6 | 7 | 8 | class TicketFactory(factory.alchemy.SQLAlchemyModelFactory): 9 | class Meta: 10 | model = Ticket 11 | sqlalchemy_session = db.session 12 | 13 | event = factory.RelatedFactory(EventFactoryBasic) 14 | name = common.string_ 15 | description = common.string_ 16 | type = common.string_ 17 | price = common.float_ 18 | quantity = 10 19 | is_description_visible = True 20 | position = 10 21 | is_fee_absorbed = True 22 | sales_starts_at = common.date_ 23 | sales_ends_at = common.dateEnd_ 24 | is_hidden = True 25 | min_order = 0 26 | max_order = 10 27 | event_id = 1 28 | -------------------------------------------------------------------------------- /app/factories/ticket_fee.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | import app.factories.common as common 4 | from app.models.ticket_fee import db, TicketFees 5 | 6 | 7 | class TicketFeesFactory(factory.alchemy.SQLAlchemyModelFactory): 8 | class Meta: 9 | model = TicketFees 10 | sqlalchemy_session = db.session 11 | 12 | currency = common.currency_ 13 | service_fee = common.fee_ 14 | maximum_fee = common.fee_ 15 | -------------------------------------------------------------------------------- /app/factories/ticket_tag.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | import app.factories.common as common 4 | from app.factories.event import EventFactoryBasic 5 | from app.factories.ticket import TicketFactory 6 | from app.models.ticket import db, TicketTag 7 | 8 | 9 | class TicketTagFactory(factory.alchemy.SQLAlchemyModelFactory): 10 | class Meta: 11 | model = TicketTag 12 | sqlalchemy_session = db.session 13 | 14 | tickets = factory.RelatedFactory(TicketFactory) 15 | event = factory.RelatedFactory(EventFactoryBasic) 16 | name = common.string_ 17 | event_id = 1 18 | -------------------------------------------------------------------------------- /app/factories/track.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | import app.factories.common as common 4 | from app.factories.event import EventFactoryBasic 5 | from app.models.track import db, Track 6 | 7 | 8 | class TrackFactory(factory.alchemy.SQLAlchemyModelFactory): 9 | class Meta: 10 | model = Track 11 | sqlalchemy_session = db.session 12 | 13 | event = factory.RelatedFactory(EventFactoryBasic) 14 | event_id = 1 15 | name = common.string_ 16 | description = common.string_ 17 | color = "#0f0f0f" 18 | -------------------------------------------------------------------------------- /app/factories/user_permission.py: -------------------------------------------------------------------------------- 1 | import factory 2 | 3 | import app.factories.common as common 4 | from app.models.user_permission import db, UserPermission 5 | 6 | 7 | class UserPermissionFactory(factory.alchemy.SQLAlchemyModelFactory): 8 | class Meta: 9 | model = UserPermission 10 | sqlalchemy_session = db.session 11 | 12 | name = common.string_ 13 | description = common.string_ 14 | 15 | unverified_user = True 16 | anonymous_user = True 17 | -------------------------------------------------------------------------------- /app/models/__init__.py: -------------------------------------------------------------------------------- 1 | from flask_sqlalchemy import SQLAlchemy 2 | from sqlalchemy_continuum import make_versioned 3 | from sqlalchemy_continuum.plugins import FlaskPlugin 4 | 5 | make_versioned(plugins=[FlaskPlugin()], options={ 6 | 'strategy': 'subquery' 7 | }) 8 | 9 | db = SQLAlchemy() 10 | -------------------------------------------------------------------------------- /app/models/base.py: -------------------------------------------------------------------------------- 1 | from app.models import db 2 | 3 | 4 | class SoftDeletionModel(db.Model): 5 | """ 6 | Base model for soft deletion support. All the models which support soft deletion should extend it. 7 | """ 8 | __abstract__ = True 9 | 10 | deleted_at = db.Column(db.DateTime(timezone=True)) 11 | -------------------------------------------------------------------------------- /app/models/helpers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/app/models/helpers/__init__.py -------------------------------------------------------------------------------- /app/models/module.py: -------------------------------------------------------------------------------- 1 | from app.models import db 2 | 3 | 4 | class Module(db.Model): 5 | """File model class""" 6 | __tablename__ = 'modules' 7 | id = db.Column(db.Integer, 8 | primary_key=True) 9 | ticket_include = db.Column(db.Boolean, default=False) 10 | payment_include = db.Column(db.Boolean, default=False) 11 | donation_include = db.Column(db.Boolean, default=False) 12 | 13 | def __init__(self, 14 | ticket_include=None, 15 | payment_include=None, 16 | donation_include=None): 17 | self.ticket_include = ticket_include 18 | self.payment_include = payment_include 19 | self.donation_include = donation_include 20 | 21 | def __repr__(self): 22 | return '' % self.id 23 | 24 | def __str__(self): 25 | return self.__repr__() 26 | -------------------------------------------------------------------------------- /app/models/panel_permission.py: -------------------------------------------------------------------------------- 1 | from app.models import db 2 | 3 | 4 | class PanelPermission(db.Model): 5 | """Super-Admin Panel Permissions 6 | """ 7 | __tablename__ = 'panel_permissions' 8 | 9 | id = db.Column(db.Integer, primary_key=True) 10 | # Super Admin panel name 11 | panel_name = db.Column(db.String) 12 | # Custom System Role 13 | role_id = db.Column(db.Integer, db.ForeignKey('custom_sys_roles.id', ondelete='CASCADE')) 14 | role = db.relationship('CustomSysRole') 15 | 16 | can_access = db.Column(db.Boolean) 17 | 18 | def __init__(self, panel_name, role, can_access=True): 19 | self.panel_name = panel_name 20 | self.role = role 21 | self.can_access = can_access 22 | 23 | def __repr__(self): 24 | return '' % (self.role, self.panel_name) 25 | 26 | def __str__(self): 27 | return self.__repr__() 28 | -------------------------------------------------------------------------------- /app/models/role.py: -------------------------------------------------------------------------------- 1 | from app.models import db 2 | from app.models.base import SoftDeletionModel 3 | 4 | 5 | class Role(SoftDeletionModel): 6 | """Event Role 7 | """ 8 | __tablename__ = 'roles' 9 | 10 | id = db.Column(db.Integer, primary_key=True) 11 | name = db.Column(db.String, nullable=False, unique=True) 12 | title_name = db.Column(db.String) 13 | 14 | def __init__(self, name=None, title_name=None, deleted_at=None): 15 | self.name = name 16 | self.title_name = title_name 17 | self.deleted_at = deleted_at 18 | 19 | def __repr__(self): 20 | return '' % self.name 21 | 22 | def __str__(self): 23 | return self.__repr__() 24 | -------------------------------------------------------------------------------- /app/models/service.py: -------------------------------------------------------------------------------- 1 | from app.models import db 2 | 3 | 4 | class Service(db.Model): 5 | __tablename__ = 'services' 6 | 7 | id = db.Column(db.Integer, primary_key=True) 8 | name = db.Column(db.String, nullable=False, unique=True) 9 | 10 | def __init__(self, name): 11 | self.name = name 12 | 13 | def __repr__(self): 14 | return '' % self.name 15 | 16 | def __str__(self): 17 | return self.__repr__() 18 | -------------------------------------------------------------------------------- /app/templates/admin_base.html: -------------------------------------------------------------------------------- 1 | {% extends 'admin/base.html' %} 2 | 3 | {% block access_control %} 4 | {% if current_user.is_authenticated %} 5 | 13 | {% endif %} 14 | {% endblock %} 15 | -------------------------------------------------------------------------------- /app/templates/flask_ext/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/app/templates/flask_ext/__init__.py -------------------------------------------------------------------------------- /app/templates/flask_ext/jinja/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/app/templates/flask_ext/jinja/__init__.py -------------------------------------------------------------------------------- /app/templates/flask_ext/jinja/filters.py: -------------------------------------------------------------------------------- 1 | from forex_python.converter import CurrencyCodes 2 | import arrow 3 | 4 | 5 | def init_filters(app): 6 | @app.template_filter('currency_symbol') 7 | def currency_symbol_filter(currency_code): 8 | symbol = CurrencyCodes().get_symbol(currency_code) 9 | return symbol if symbol else '$' 10 | 11 | @app.template_filter('money') 12 | def money_filter(string): 13 | return '{:20,.2f}'.format(float(string)) 14 | 15 | @app.template_filter('datetime') 16 | def simple_datetime_display(date): 17 | return date.strftime('%B %d, %Y %I:%M %p') 18 | 19 | @app.template_filter('humanize') 20 | def humanize_filter(time): 21 | if not time: 22 | return "N/A" 23 | return arrow.get(time).humanize() 24 | -------------------------------------------------------------------------------- /app/translations/bn/LC_MESSAGES/messages.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/app/translations/bn/LC_MESSAGES/messages.mo -------------------------------------------------------------------------------- /app/translations/de/LC_MESSAGES/messages.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/app/translations/de/LC_MESSAGES/messages.mo -------------------------------------------------------------------------------- /app/translations/es/LC_MESSAGES/messages.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/app/translations/es/LC_MESSAGES/messages.mo -------------------------------------------------------------------------------- /app/translations/fr/LC_MESSAGES/messages.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/app/translations/fr/LC_MESSAGES/messages.mo -------------------------------------------------------------------------------- /app/translations/hi/LC_MESSAGES/messages.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/app/translations/hi/LC_MESSAGES/messages.mo -------------------------------------------------------------------------------- /app/translations/id/LC_MESSAGES/messages.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/app/translations/id/LC_MESSAGES/messages.mo -------------------------------------------------------------------------------- /app/translations/ja/LC_MESSAGES/messages.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/app/translations/ja/LC_MESSAGES/messages.mo -------------------------------------------------------------------------------- /app/translations/ko/LC_MESSAGES/messages.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/app/translations/ko/LC_MESSAGES/messages.mo -------------------------------------------------------------------------------- /app/translations/pl/LC_MESSAGES/messages.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/app/translations/pl/LC_MESSAGES/messages.mo -------------------------------------------------------------------------------- /app/translations/ru/LC_MESSAGES/messages.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/app/translations/ru/LC_MESSAGES/messages.mo -------------------------------------------------------------------------------- /app/translations/th/LC_MESSAGES/messages.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/app/translations/th/LC_MESSAGES/messages.mo -------------------------------------------------------------------------------- /app/translations/vi/LC_MESSAGES/messages.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/app/translations/vi/LC_MESSAGES/messages.mo -------------------------------------------------------------------------------- /app/translations/zh_Hans/LC_MESSAGES/messages.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/app/translations/zh_Hans/LC_MESSAGES/messages.mo -------------------------------------------------------------------------------- /app/translations/zh_Hant/LC_MESSAGES/messages.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/app/translations/zh_Hant/LC_MESSAGES/messages.mo -------------------------------------------------------------------------------- /app/views/celery_.py: -------------------------------------------------------------------------------- 1 | from celery import Celery 2 | from config import Config 3 | 4 | celery = Celery(__name__, broker=Config.REDIS_URL) 5 | -------------------------------------------------------------------------------- /app/views/elastic_search.py: -------------------------------------------------------------------------------- 1 | from flask_elasticsearch import FlaskElasticsearch 2 | 3 | es = FlaskElasticsearch() 4 | -------------------------------------------------------------------------------- /app/views/redis_store.py: -------------------------------------------------------------------------------- 1 | from flask_redis import FlaskRedis 2 | 3 | redis_store = FlaskRedis() 4 | -------------------------------------------------------------------------------- /app/views/sentry.py: -------------------------------------------------------------------------------- 1 | from raven.contrib.flask import Sentry 2 | 3 | sentry = Sentry() 4 | -------------------------------------------------------------------------------- /autodeploy/command.py: -------------------------------------------------------------------------------- 1 | from subprocess import Popen, PIPE 2 | 3 | 4 | def execute(cwd, executable, *args): 5 | """Executes command, returns a tuple: 6 | returncode, output, error message""" 7 | command = [executable] + list(args) 8 | process = Popen(command, stdout=PIPE, stderr=PIPE, cwd=cwd) 9 | out, err = process.communicate() 10 | 11 | return process.returncode, str(out, 'utf-8'), str(err, 'utf-8') 12 | -------------------------------------------------------------------------------- /autodeploy/config.yml: -------------------------------------------------------------------------------- 1 | server: 2 | url: https://github.com/fossasia/open-event-server 3 | branch: development 4 | container: web 5 | upgrade: bash scripts/upgrade.sh 6 | init: bash scripts/init.sh 7 | frontend: 8 | url: https://github.com/fossasia/open-event-frontend 9 | branch: development 10 | -------------------------------------------------------------------------------- /dredd.yml: -------------------------------------------------------------------------------- 1 | dry-run: null 2 | hookfiles: ./tests/hook_main.py 3 | language: python 4 | sandbox: false 5 | server: python manage.py runserver 6 | server-wait: 2 7 | init: false 8 | custom: 9 | apiaryApiKey: '' 10 | names: false 11 | only: [] 12 | reporter: apiary 13 | output: [] 14 | header: [] 15 | sorted: false 16 | user: null 17 | inline-errors: false 18 | details: false 19 | method: [] 20 | color: true 21 | level: info 22 | timestamp: false 23 | silent: false 24 | path: [] 25 | hooks-worker-timeout: 11000 26 | hooks-worker-connect-timeout: 5000 27 | hooks-worker-connect-retry: 500 28 | hooks-worker-after-connect-wait: 100 29 | hooks-worker-term-timeout: 5000 30 | hooks-worker-term-retry: 500 31 | hooks-worker-handler-host: 127.0.0.1 32 | hooks-worker-handler-port: 61321 33 | config: ./dredd.yml 34 | blueprint: docs/api/api_blueprint.apib 35 | endpoint: 'http://localhost:5000' 36 | -------------------------------------------------------------------------------- /kubernetes/images/gcloud/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:jessie-slim 2 | MAINTAINER Niranjan Rajendran 3 | 4 | RUN apt-get clean -y && apt-get update -y 5 | RUN apt-get install -y curl apt-transport-https 6 | RUN echo "deb https://packages.cloud.google.com/apt cloud-sdk-jessie main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list 7 | RUN curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - 8 | RUN apt-get update -y && apt-get install -y google-cloud-sdk && apt-get autoremove -y 9 | RUN apt-get clean -y 10 | 11 | CMD gcloud info 12 | -------------------------------------------------------------------------------- /kubernetes/images/web/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:2-slim 2 | MAINTAINER Niranjan Rajendran 3 | 4 | 5 | ARG COMMIT_HASH 6 | ARG BRANCH 7 | ARG REPOSITORY 8 | 9 | ENV COMMIT_HASH ${COMMIT_HASH:-null} 10 | ENV BRANCH ${BRANCH:-master} 11 | ENV REPOSITORY ${REPOSITORY:-https://github.com/fossasia/open-event-server.git} 12 | 13 | # apt-get update 14 | RUN apt-get clean -y && apt-get update -y 15 | # update some packages 16 | RUN apt-get install -y wget git ca-certificates curl && update-ca-certificates 17 | # install deps 18 | RUN apt-get install -y --no-install-recommends build-essential python-dev libpq-dev libevent-dev libmagic-dev 19 | 20 | ENV INSTALL_PATH /opev 21 | 22 | RUN mkdir -p $INSTALL_PATH 23 | 24 | WORKDIR $INSTALL_PATH 25 | 26 | COPY . . 27 | 28 | RUN bash setup.sh 29 | 30 | WORKDIR $INSTALL_PATH/open_event 31 | -------------------------------------------------------------------------------- /kubernetes/images/web/setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | git clone ${REPOSITORY} open_event 3 | cd open_event 4 | git checkout ${BRANCH} 5 | 6 | if [ -v COMMIT_HASH ]; then 7 | git reset --hard ${COMMIT_HASH} 8 | fi 9 | 10 | pip install --no-cache-dir -r requirements.txt 11 | rm -rf app/vintage 12 | touch .env 13 | chmod +x ./kubernetes/run.sh 14 | chmod -R 0777 ./static 15 | # /bin/bash ./kubernetes/run.sh 16 | -------------------------------------------------------------------------------- /kubernetes/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "[LOG] Deploying ${DEPLOYMENT}" 3 | echo "[LOG] Using database: ${DATABASE_URL}" 4 | echo "[LOG] Using redis: ${REDIS_URL}" 5 | if [ "$DEPLOYMENT" == "api" ] 6 | then 7 | echo "[LOG] Preparing database" 8 | python manage.py prepare_kubernetes_db 9 | echo "[LOG] Running migrations" 10 | python manage.py db upgrade 11 | echo "[LOG] Starting gunicorn on port 8080" 12 | gunicorn -b 0.0.0.0:8080 app:app -w 1 --enable-stdio-inheritance --log-level "warning" --proxy-protocol 13 | fi 14 | if [ "$DEPLOYMENT" == "celery" ] 15 | then 16 | echo "[LOG] Starting celery worker" 17 | export INTEGRATE_SOCKETIO=false 18 | celery worker -A app.celery --loglevel=warning 19 | fi 20 | -------------------------------------------------------------------------------- /kubernetes/travis/eventyay-8245fde7ab8a.json.enc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/kubernetes/travis/eventyay-8245fde7ab8a.json.enc -------------------------------------------------------------------------------- /kubernetes/yamls/api-server/configmap.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | data: 3 | REDIS_URL: "redis://redis.redis:6379/0" 4 | DATABASE_URL: "postgresql://postgres:test@postgres.postgres:5432/opev" 5 | POSTGRES_DB: "opev" 6 | SENTRY_DSN: "https://dummy@app.getsentry.com/dummy" 7 | kind: ConfigMap 8 | metadata: 9 | namespace: web 10 | name: api-server 11 | -------------------------------------------------------------------------------- /kubernetes/yamls/api-server/service.yml: -------------------------------------------------------------------------------- 1 | # 2 | # API Server service which will expose the API Server to the rest of the cluster 3 | # 4 | kind: Service 5 | apiVersion: v1 6 | metadata: 7 | name: api-server 8 | namespace: web 9 | spec: 10 | ports: 11 | - port: 8080 12 | protocol: TCP 13 | targetPort: 8080 14 | selector: 15 | app: api-server 16 | -------------------------------------------------------------------------------- /kubernetes/yamls/crons/pg-snapshot.yml: -------------------------------------------------------------------------------- 1 | # 2 | # The cron job to take auto backups os the database 3 | # 4 | # Currently this is an Alpha feature of k8s 1.6. 5 | # We will start using this once this moves to beta. (~ k8s 1.8) 6 | # 7 | apiVersion: batch/v2alpha1 8 | kind: CronJob 9 | metadata: 10 | name: pg-snapshot 11 | spec: 12 | schedule: "0 * * * 0-6" 13 | jobTemplate: 14 | spec: 15 | template: 16 | spec: 17 | containers: 18 | - name: pg-snapshot 19 | image: eventyay/gcloud-utils:latest 20 | command: 21 | - /usr/bin/gcloud 22 | - compute disks snapshot pg-data-disk --zone us-west1-a 23 | restartPolicy: OnFailure 24 | -------------------------------------------------------------------------------- /kubernetes/yamls/debug/busybox.yml: -------------------------------------------------------------------------------- 1 | # 2 | # A simple pod with busy box. Used for debugging. 3 | # 4 | apiVersion: v1 5 | kind: Pod 6 | metadata: 7 | name: busybox 8 | namespace: default 9 | spec: 10 | containers: 11 | - image: busybox 12 | command: 13 | - sleep 14 | - "3600" 15 | imagePullPolicy: IfNotPresent 16 | name: busybox 17 | restartPolicy: OnFailure 18 | -------------------------------------------------------------------------------- /kubernetes/yamls/debug/gcloud.yml: -------------------------------------------------------------------------------- 1 | # 2 | # A simple pod with gcloud utilities. Used for debugging. 3 | # 4 | apiVersion: v1 5 | kind: Pod 6 | metadata: 7 | name: gcloud 8 | namespace: default 9 | spec: 10 | containers: 11 | - image: eventyay/gcloud-utils:latest 12 | command: 13 | - /usr/bin/gcloud 14 | - config set compute/zone us-west1-a 15 | imagePullPolicy: IfNotPresent 16 | name: gcloud 17 | restartPolicy: OnFailure 18 | -------------------------------------------------------------------------------- /kubernetes/yamls/elasticsearch/00-namespace.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Namespace 3 | metadata: 4 | name: elasticsearch 5 | -------------------------------------------------------------------------------- /kubernetes/yamls/elasticsearch/account.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | name: elasticsearch 5 | namespace: elasticsearch 6 | -------------------------------------------------------------------------------- /kubernetes/yamls/elasticsearch/configmap.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | data: 3 | CLUSTER_NAME: "open-event-primary" 4 | DISCOVERY_SERVICE: "elasticsearch" 5 | NODE_MASTER: "true" 6 | NODE_DATA: "true" 7 | HTTP_ENABLE: "true" 8 | ES_JAVA_OPTS: "-Xms256m -Xmx256m" 9 | kind: ConfigMap 10 | metadata: 11 | namespace: elasticsearch 12 | name: elasticsearch 13 | -------------------------------------------------------------------------------- /kubernetes/yamls/elasticsearch/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: elasticsearch 5 | namespace: elasticsearch 6 | labels: 7 | component: elasticsearch 8 | spec: 9 | ports: 10 | - port: 9200 11 | name: http 12 | protocol: TCP 13 | targetPort: 9200 14 | - port: 9300 15 | name: transport 16 | protocol: TCP 17 | targetPort: 9300 18 | selector: 19 | component: elasticsearch 20 | -------------------------------------------------------------------------------- /kubernetes/yamls/lego/00-namespace.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Namespace 3 | metadata: 4 | name: kube-lego 5 | -------------------------------------------------------------------------------- /kubernetes/yamls/lego/configmap.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | metadata: 3 | name: kube-lego 4 | namespace: kube-lego 5 | data: 6 | lego.email: "eventyay.fossasia@gmail.com" 7 | lego.url: "https://acme-v01.api.letsencrypt.org/directory" 8 | kind: ConfigMap 9 | -------------------------------------------------------------------------------- /kubernetes/yamls/nginx/00-namespace.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Namespace 3 | metadata: 4 | name: nginx-ingress 5 | -------------------------------------------------------------------------------- /kubernetes/yamls/nginx/configmap.yml: -------------------------------------------------------------------------------- 1 | # 2 | # nginx ingress controller config 3 | # @ref https://github.com/kubernetes/ingress/blob/master/controllers/nginx/configuration.md 4 | # 5 | apiVersion: v1 6 | data: 7 | proxy-connect-timeout: "15" 8 | proxy-read-timeout: "600" 9 | proxy-send-imeout: "600" 10 | hsts-include-subdomains: "false" 11 | body-size: "64m" 12 | server-name-hash-bucket-size: "256" 13 | server-tokens: "false" 14 | kind: ConfigMap 15 | metadata: 16 | namespace: nginx-ingress 17 | name: nginx 18 | -------------------------------------------------------------------------------- /kubernetes/yamls/nginx/default-deployment.yml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1beta1 2 | kind: Deployment 3 | metadata: 4 | name: default-http-backend 5 | namespace: nginx-ingress 6 | spec: 7 | replicas: 1 8 | template: 9 | metadata: 10 | labels: 11 | app: default-http-backend 12 | spec: 13 | containers: 14 | - name: default-http-backend 15 | image: gcr.io/google_containers/defaultbackend:1.0 16 | livenessProbe: 17 | httpGet: 18 | path: /healthz 19 | port: 8080 20 | scheme: HTTP 21 | initialDelaySeconds: 30 22 | timeoutSeconds: 5 23 | ports: 24 | - containerPort: 8080 25 | resources: 26 | limits: 27 | cpu: 10m 28 | memory: 20Mi 29 | requests: 30 | cpu: 10m 31 | memory: 20Mi 32 | -------------------------------------------------------------------------------- /kubernetes/yamls/nginx/default-service.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: default-http-backend 5 | namespace: nginx-ingress 6 | spec: 7 | ports: 8 | - port: 80 9 | targetPort: 8080 10 | protocol: TCP 11 | selector: 12 | app: default-http-backend 13 | -------------------------------------------------------------------------------- /kubernetes/yamls/nginx/service.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: nginx 5 | namespace: nginx-ingress 6 | annotations: 7 | service.beta.kubernetes.io/external-traffic: "OnlyLocal" 8 | spec: 9 | type: LoadBalancer 10 | loadBalancerIP: '35.185.193.151' 11 | ports: 12 | - port: 80 13 | name: http 14 | - port: 443 15 | name: https 16 | selector: 17 | app: nginx 18 | -------------------------------------------------------------------------------- /kubernetes/yamls/postgres/00-namespace.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Namespace 3 | metadata: 4 | name: postgres 5 | -------------------------------------------------------------------------------- /kubernetes/yamls/postgres/configmap.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | data: 3 | DB_PASS: "test" 4 | DB_NAME: "opev" 5 | POSTGRES_DB: "opev" 6 | POSTGRES_PASSWORD: "test" 7 | kind: ConfigMap 8 | metadata: 9 | namespace: postgres 10 | name: postgres 11 | -------------------------------------------------------------------------------- /kubernetes/yamls/postgres/deployment.yml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1beta1 2 | kind: Deployment 3 | metadata: 4 | name: postgres 5 | namespace: postgres 6 | spec: 7 | replicas: 1 8 | template: 9 | metadata: 10 | labels: 11 | name: postgres 12 | spec: 13 | containers: 14 | - name: postgres 15 | image: postgres 16 | envFrom: 17 | - configMapRef: 18 | name: postgres 19 | env: 20 | - name: PGDATA 21 | value: /var/lib/postgresql/data/pgdata 22 | ports: 23 | - containerPort: 5432 24 | volumeMounts: 25 | - mountPath: /var/lib/postgresql/data 26 | name: pg-data 27 | volumes: 28 | - name: pg-data 29 | gcePersistentDisk: 30 | pdName: nextgen-data-disk 31 | fsType: ext4 32 | -------------------------------------------------------------------------------- /kubernetes/yamls/postgres/service.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: postgres 5 | namespace: postgres 6 | labels: 7 | name: postgres 8 | spec: 9 | ports: 10 | - port: 5432 11 | selector: 12 | name: postgres 13 | -------------------------------------------------------------------------------- /kubernetes/yamls/redis/00-namespace.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Namespace 3 | metadata: 4 | name: redis 5 | -------------------------------------------------------------------------------- /kubernetes/yamls/redis/redis-deployment.yml: -------------------------------------------------------------------------------- 1 | kind: Deployment 2 | apiVersion: apps/v1beta1 3 | metadata: 4 | name: redis 5 | namespace: redis 6 | spec: 7 | replicas: 1 8 | template: 9 | metadata: 10 | labels: 11 | service: redis 12 | spec: 13 | containers: 14 | - name: redis 15 | image: redis:3-alpine 16 | args: 17 | - redis-server 18 | livenessProbe: 19 | exec: 20 | command: 21 | - "/bin/sh" 22 | - "-c" 23 | - "redis-cli set liveness-probe \"`date`\" | grep OK" 24 | ports: 25 | - containerPort: 6379 26 | protocol: TCP 27 | restartPolicy: Always 28 | -------------------------------------------------------------------------------- /kubernetes/yamls/redis/redis-service.yml: -------------------------------------------------------------------------------- 1 | kind: Service 2 | apiVersion: v1 3 | metadata: 4 | name: redis 5 | namespace: redis 6 | labels: 7 | service: redis 8 | spec: 9 | ports: 10 | - name: '6379' 11 | protocol: TCP 12 | port: 6379 13 | targetPort: 6379 14 | selector: 15 | service: redis 16 | -------------------------------------------------------------------------------- /kubernetes/yamls/web/00-namespace.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Namespace 3 | metadata: 4 | name: web 5 | -------------------------------------------------------------------------------- /kubernetes/yamls/web/ingress-notls.yml: -------------------------------------------------------------------------------- 1 | apiVersion: extensions/v1beta1 2 | kind: Ingress 3 | metadata: 4 | name: web-notls 5 | namespace: web 6 | annotations: 7 | kubernetes.io/ingress.class: "nginx" 8 | spec: 9 | rules: 10 | - host: api.eventyay.com 11 | http: 12 | paths: 13 | - path: / 14 | backend: 15 | serviceName: api-server 16 | servicePort: 8080 17 | -------------------------------------------------------------------------------- /kubernetes/yamls/web/ingress-tls.yml: -------------------------------------------------------------------------------- 1 | apiVersion: extensions/v1beta1 2 | kind: Ingress 3 | metadata: 4 | name: web 5 | namespace: web 6 | annotations: 7 | kubernetes.io/tls-acme: "true" 8 | kubernetes.io/ingress.class: "nginx" 9 | spec: 10 | tls: 11 | - hosts: 12 | - api.eventyay.com 13 | secretName: eventyay-api-tls 14 | rules: 15 | - host: api.eventyay.com 16 | http: 17 | paths: 18 | - path: / 19 | backend: 20 | serviceName: api-server 21 | servicePort: 8080 22 | -------------------------------------------------------------------------------- /migrations/README: -------------------------------------------------------------------------------- 1 | Generic single-database configuration. -------------------------------------------------------------------------------- /migrations/script.py.mako: -------------------------------------------------------------------------------- 1 | """${message} 2 | 3 | Revision ID: ${up_revision} 4 | Revises: ${down_revision} 5 | Create Date: ${create_date} 6 | 7 | """ 8 | 9 | from alembic import op 10 | import sqlalchemy as sa 11 | import sqlalchemy_utils 12 | ${imports if imports else ""} 13 | 14 | # revision identifiers, used by Alembic. 15 | revision = ${repr(up_revision)} 16 | down_revision = ${repr(down_revision)} 17 | 18 | 19 | def upgrade(): 20 | ${upgrades if upgrades else "pass"} 21 | 22 | 23 | def downgrade(): 24 | ${downgrades if downgrades else "pass"} 25 | -------------------------------------------------------------------------------- /migrations/versions/008dae41b45e_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 008dae41b45e 4 | Revises: 0d25e6904746 5 | Create Date: 2016-06-09 04:53:33.428575 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '008dae41b45e' 11 | down_revision = '0d25e6904746' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.drop_column('user', 'nickname') 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.add_column('user', sa.Column('nickname', sa.VARCHAR(length=100), autoincrement=False, nullable=True)) 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/01a1fa5b87f5_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 01a1fa5b87f5 4 | Revises: 652f5bf2e030 5 | Create Date: 2017-06-26 22:58:10.215164 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '01a1fa5b87f5' 11 | down_revision = '652f5bf2e030' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | 16 | 17 | def upgrade(): 18 | ### commands auto generated by Alembic - please adjust! ### 19 | op.add_column('orders', sa.Column('is_reminder_mail_sent', sa.Boolean(), nullable=True)) 20 | ### end Alembic commands ### 21 | 22 | 23 | def downgrade(): 24 | ### commands auto generated by Alembic - please adjust! ### 25 | op.drop_column('orders', 'is_reminder_mail_sent') 26 | ### end Alembic commands ### 27 | -------------------------------------------------------------------------------- /migrations/versions/03d5a2b6ea24_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 03d5a2b6ea24 4 | Revises: ('1c7441698fae', 'd7157fcb6e5d') 5 | Create Date: 2016-08-17 21:20:16.058228 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '03d5a2b6ea24' 11 | down_revision = ('1c7441698fae', 'd7157fcb6e5d') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/03ed49c73697_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 03ed49c73697 4 | Revises: 86fe7df8dca6 5 | Create Date: 2016-08-08 04:13:14.767093 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '03ed49c73697' 11 | down_revision = '86fe7df8dca6' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('ticket', sa.Column('hide', sa.Boolean(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('ticket', 'hide') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/04060417378c_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 04060417378c 4 | Revises: 9b1050b22e9d 5 | Create Date: 2016-07-02 11:16:45.354167 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '04060417378c' 11 | down_revision = '9b1050b22e9d' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('notification', sa.Column('action', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('notification', 'action') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/072706cab017.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 072706cab017 4 | Revises: 30ca70296a1c 5 | Create Date: 2016-03-27 14:36:59.712765 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '072706cab017' 11 | down_revision = None 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('user', sa.Column('avatar', sa.String(length=600), nullable=True)) 21 | op.add_column('user', sa.Column('tokens', sa.Text(), nullable=True)) 22 | ### end Alembic commands ### 23 | 24 | 25 | def downgrade(): 26 | ### commands auto generated by Alembic - please adjust! ### 27 | op.drop_column('user', 'avatar') 28 | op.drop_column('user', 'tokens') 29 | ### end Alembic commands ### 30 | -------------------------------------------------------------------------------- /migrations/versions/0d25e6904746_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 0d25e6904746 4 | Revises: 8d3a90a31246 5 | Create Date: 2016-06-05 11:39:04.449322 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '0d25e6904746' 11 | down_revision = '8d3a90a31246' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('tracks', sa.Column('color', sa.String(), nullable=False)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('tracks', 'color') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/0e5940f5bf43_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 0e5940f5bf43 4 | Revises: 884774042071 5 | Create Date: 2016-06-27 13:46:18.345458 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '0e5940f5bf43' 11 | down_revision = '884774042071' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('notification', sa.Column('title', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('notification', 'title') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/0e648fcb8ef6_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 0e648fcb8ef6 4 | Revises: ('265d11072331', '8e7f7864cb60') 5 | Create Date: 2016-06-19 18:14:28.046000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '0e648fcb8ef6' 11 | down_revision = ('265d11072331', '8e7f7864cb60') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/0ebd913edd27_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 0ebd913edd27 4 | Revises: 2f9f90ee6e73 5 | Create Date: 2016-10-17 20:05:36.663421 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '0ebd913edd27' 11 | down_revision = '2f9f90ee6e73' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('events', sa.Column('created_at', sa.DateTime(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('events', 'created_at') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/10136334dff5_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 10136334dff5 4 | Revises: f4417da578e5 5 | Create Date: 2016-06-18 08:23:31.246965 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '10136334dff5' 11 | down_revision = 'f4417da578e5' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('user', sa.Column('is_verified', sa.Boolean(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('user', 'is_verified') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/11143ed3e6fa_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 11143ed3e6fa 4 | Revises: 94e639e6575c 5 | Create Date: 2016-12-31 17:35:45.270991 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '11143ed3e6fa' 11 | down_revision = '94e639e6575c' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('speaker', sa.Column('speaking_experience', sa.Text(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('speaker', 'speaking_experience') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/13aed5739978_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 13aed5739978 4 | Revises: ('34be8a5853bd', '77df37e3e9ad') 5 | Create Date: 2016-06-29 13:19:44.073308 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '13aed5739978' 11 | down_revision = ('34be8a5853bd', '77df37e3e9ad') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/149695270251_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 149695270251 4 | Revises: fb3114b70f3c 5 | Create Date: 2016-08-06 14:41:12.450088 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '149695270251' 11 | down_revision = 'fb3114b70f3c' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('ticket', sa.Column('description_toggle', sa.Boolean(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('ticket', 'description_toggle') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/1552f7bafb5b_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 1552f7bafb5b 4 | Revises: f2b4430d9e57 5 | Create Date: 2016-06-16 19:53:16.684181 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '1552f7bafb5b' 11 | down_revision = 'f2b4430d9e57' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.drop_column('user', 'role') 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.add_column('user', sa.Column('role', sa.VARCHAR(), autoincrement=False, nullable=True)) 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/15f1533bb93d_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 15f1533bb93d 4 | Revises: ('d40a49824b53', 'b723e2342f15', 'f07fed8f60e5') 5 | Create Date: 2016-06-17 10:38:33.087948 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '15f1533bb93d' 11 | down_revision = ('d40a49824b53', 'b723e2342f15', 'f07fed8f60e5') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/16183eae08cb_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 16183eae08cb 4 | Revises: 3458fec198e2 5 | Create Date: 2017-06-22 21:02:54.903603 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '16183eae08cb' 11 | down_revision = '3458fec198e2' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('settings', sa.Column('static_domain', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('settings', 'static_domain') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/167379522d3d_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 167379522d3d 4 | Revises: 06e3dc4e8d68 5 | Create Date: 2016-06-11 23:47:40.027113 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '167379522d3d' 11 | down_revision = '06e3dc4e8d68' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('user_detail', sa.Column('details', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('user_detail', 'details') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/16e4da58dcbe_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 16e4da58dcbe 4 | Revises: 8500f5ec6c45 5 | Create Date: 2017-07-16 17:28:45.870431 6 | 7 | """ 8 | 9 | from alembic import op 10 | import sqlalchemy as sa 11 | 12 | # revision identifiers, used by Alembic. 13 | revision = '16e4da58dcbe' 14 | down_revision = '8500f5ec6c45' 15 | 16 | 17 | def upgrade(): 18 | # ### commands auto generated by Alembic - please adjust! ### 19 | op.drop_column('user_permissions', 'verified_user') 20 | # ### end Alembic commands ### 21 | 22 | 23 | def downgrade(): 24 | # ### commands auto generated by Alembic - please adjust! ### 25 | op.add_column('user_permissions', sa.Column('verified_user', sa.BOOLEAN(), autoincrement=False, nullable=True)) 26 | # ### end Alembic commands ### 27 | -------------------------------------------------------------------------------- /migrations/versions/193fadf22de7_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 193fadf22de7 4 | Revises: 98166ca15055 5 | Create Date: 2016-05-31 11:40:12.637151 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '193fadf22de7' 11 | down_revision = '98166ca15055' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('user', sa.Column('avatar', sa.String(), nullable=True)) 21 | op.add_column('user', sa.Column('tokens', sa.Text(), nullable=True)) 22 | ### end Alembic commands ### 23 | 24 | 25 | def downgrade(): 26 | ### commands auto generated by Alembic - please adjust! ### 27 | op.drop_column('user', 'tokens') 28 | op.drop_column('user', 'avatar') 29 | ### end Alembic commands ### 30 | -------------------------------------------------------------------------------- /migrations/versions/1a89015d90bd_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 1a89015d90bd 4 | Revises: a9b15f3c5424 5 | Create Date: 2017-01-23 17:33:18.737072 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '1a89015d90bd' 11 | down_revision = 'a9b15f3c5424' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('orders', sa.Column('trashed_at', sa.DateTime(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('orders', 'trashed_at') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/1c52a25b4a97_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 1c52a25b4a97 4 | Revises: 42b10433d1b3 5 | Create Date: 2018-06-16 20:16:31.341637 6 | 7 | """ 8 | 9 | from alembic import op 10 | import sqlalchemy as sa 11 | 12 | 13 | # revision identifiers, used by Alembic. 14 | revision = '1c52a25b4a97' 15 | down_revision = '42b10433d1b3' 16 | 17 | 18 | def upgrade(): 19 | # ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('ticket_holders', sa.Column('attendee_notes', sa.String(), nullable=True)) 21 | # ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | # ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('ticket_holders', 'attendee_notes') 27 | # ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/1c7e0ce885a6_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 1c7e0ce885a6 4 | Revises: c05b18293895 5 | Create Date: 2016-10-16 15:17:26.665559 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '1c7e0ce885a6' 11 | down_revision = 'c05b18293895' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('discount_codes', sa.Column('used_for', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('discount_codes', 'used_for') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/1cc66579a10e_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 1cc66579a10e 4 | Revises: ca3156df9a12 5 | Create Date: 2016-08-02 13:20:49.465992 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '1cc66579a10e' 11 | down_revision = 'ca3156df9a12' 12 | 13 | def upgrade(): 14 | pass 15 | 16 | def downgrade(): 17 | pass 18 | -------------------------------------------------------------------------------- /migrations/versions/1d4ae4569284_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 1d4ae4569284 4 | Revises: 24da7df1e00e 5 | Create Date: 2017-06-30 22:45:17.510988 6 | 7 | """ 8 | 9 | from alembic import op 10 | 11 | 12 | # revision identifiers, used by Alembic. 13 | revision = '1d4ae4569284' 14 | down_revision = '24da7df1e00e' 15 | 16 | 17 | def upgrade(): 18 | # commands auto generated by Alembic - please adjust! # 19 | op.alter_column('tickets', 'description_toggle', new_column_name='is_description_visible') 20 | # end Alembic commands # 21 | 22 | 23 | def downgrade(): 24 | # commands auto generated by Alembic - please adjust! # 25 | op.alter_column('tickets', 'is_description_visible', new_column_name='description_toggle') 26 | # end Alembic commands # 27 | -------------------------------------------------------------------------------- /migrations/versions/202b15987640_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 202b15987640 4 | Revises: 30ca70296a1c 5 | Create Date: 2016-03-27 14:36:59.712765 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '202b15987640' 11 | down_revision = '30ca70296a1c' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.create_unique_constraint('user_email_unique', 'user', ['email']) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_constraint('user_email_unique', 'user', type_='unique') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/217d3c1f3c5f_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 217d3c1f3c5f 4 | Revises: ccd80550c01f 5 | Create Date: 2017-06-12 03:24:22.545460 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '217d3c1f3c5f' 11 | down_revision = 'ccd80550c01f' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | from sqlalchemy.dialects import postgresql 17 | 18 | 19 | def upgrade(): 20 | # ### commands auto generated by Alembic - please adjust! ### 21 | op.rename_table('notification', 'notifications') 22 | # ### end Alembic commands ### 23 | 24 | 25 | def downgrade(): 26 | # ### commands auto generated by Alembic - please adjust! ### 27 | op.rename_table('notifications', 'notification') 28 | # ### end Alembic commands ### 29 | -------------------------------------------------------------------------------- /migrations/versions/2339564f5dc7_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 2339564f5dc7 4 | Revises: e8222a407dd5 5 | Create Date: 2017-01-04 21:16:12.456548 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '2339564f5dc7' 11 | down_revision = 'e8222a407dd5' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | # ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('user_detail', sa.Column('google', sa.String(), nullable=True)) 21 | # ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | # ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('user_detail', 'google') 27 | # ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/24da7df1e00e_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 24da7df1e00e 4 | Revises: 52d175c3da98 5 | Create Date: 2017-06-27 16:32:54.671408 6 | 7 | """ 8 | from alembic import op 9 | import sqlalchemy as sa 10 | import sqlalchemy_utils 11 | 12 | # revision identifiers, used by Alembic. 13 | revision = '24da7df1e00e' 14 | down_revision = '52d175c3da98' 15 | 16 | 17 | def upgrade(): 18 | # ### commands auto generated by Alembic - please adjust! ### 19 | op.alter_column('tickets', 'hide', new_column_name='is_hidden') 20 | # ### end Alembic commands ### 21 | 22 | 23 | def downgrade(): 24 | # ### commands auto generated by Alembic - please adjust! ### 25 | op.alter_column('tickets', 'is_hidden', new_column_name='hide') 26 | # ### end Alembic commands ### 27 | -------------------------------------------------------------------------------- /migrations/versions/265d11072331_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 265d11072331 4 | Revises: 80a704b880db 5 | Create Date: 2016-06-19 11:57:24.223269 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '265d11072331' 11 | down_revision = '80a704b880db' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('role', sa.Column('title_name', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('role', 'title_name') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/274cf8742fb5_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 274cf8742fb5 4 | Revises: ('c87273102cfb', 'ed4b4ba3274e') 5 | Create Date: 2016-06-16 17:38:28.204365 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '274cf8742fb5' 11 | down_revision = ('c87273102cfb', 'ed4b4ba3274e') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/27c4db7538ca_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 27c4db7538ca 4 | Revises: 9eb4b61d0acb 5 | Create Date: 2016-06-26 09:23:07.894123 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '27c4db7538ca' 11 | down_revision = '9eb4b61d0acb' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('role_invite', sa.Column('create_time', sa.DateTime(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('role_invite', 'create_time') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/291bb44bb014_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 291bb44bb014 4 | Revises: ('3453e1bd6fc3', '66c7787c546e') 5 | Create Date: 2016-07-31 10:04:21.327220 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '291bb44bb014' 11 | down_revision = ('3453e1bd6fc3', '66c7787c546e') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/2b39d8c05788_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 2b39d8c05788 4 | Revises: 8500f5ec6c45 5 | Create Date: 2017-07-17 16:11:47.234638 6 | 7 | """ 8 | 9 | from alembic import op 10 | import sqlalchemy as sa 11 | import sqlalchemy_utils 12 | from sqlalchemy.dialects import postgresql 13 | 14 | # revision identifiers, used by Alembic. 15 | revision = '2b39d8c05788' 16 | down_revision = 'c5fc44dd6653' 17 | 18 | def upgrade(): 19 | # ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('settings', sa.Column('frontend_url', sa.String(), nullable=True)) 21 | # ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | # ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('settings', 'frontend_url') 27 | # ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/2f9f90ee6e73_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 2f9f90ee6e73 4 | Revises: 52fe3ae3d39e 5 | Create Date: 2016-10-17 19:57:41.510576 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '2f9f90ee6e73' 11 | down_revision = '52fe3ae3d39e' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('discount_codes', sa.Column('created_at', sa.DateTime(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('discount_codes', 'created_at') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/3458fec198e2_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 3458fec198e2 4 | Revises: ('6bd24e8f99f0', 'da5c6c740257') 5 | Create Date: 2017-06-22 23:02:20.572646 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '3458fec198e2' 11 | down_revision = ('6bd24e8f99f0', 'da5c6c740257') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/34be8a5853bd_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 34be8a5853bd 4 | Revises: ffbb4d4dad39 5 | Create Date: 2016-06-29 12:03:01.736940 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '34be8a5853bd' 11 | down_revision = 'ffbb4d4dad39' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('settings', sa.Column('storage_place', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('settings', 'storage_place') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/35e6312c8b8f_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 35e6312c8b8f 4 | Revises: ('5dcb69824a56', '1b9c8698c632') 5 | Create Date: 2017-06-16 22:49:07.545026 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '35e6312c8b8f' 11 | down_revision = ('5dcb69824a56', '1b9c8698c632') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/37208b5daa39_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 37208b5daa39 4 | Revises: b15e124e9b93 5 | Create Date: 2017-06-10 13:21:54.300078 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '37208b5daa39' 11 | down_revision = 'bae57b0ae2cd' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | # ### commands auto generated by Alembic - please adjust! ### 20 | op.alter_column('sponsors', 'sponsor_type', new_column_name='type') 21 | # ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | # ### commands auto generated by Alembic - please adjust! ### 26 | op.alter_column('sponsors', 'type', new_column_name='sponsor_type') 27 | # ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/3750bc39e4de_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: b48f6d037469 4 | Revises: ('3b55af20871a', '202b15987640') 5 | Create Date: 2016-05-22 14:43:01.251662 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '3750bc39e4de' 11 | down_revision = ('3b55af20871a', '202b15987640') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/38f11aa39bff_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 38f11aa39bff 4 | Revises: 781e870940ac 5 | Create Date: 2017-06-01 10:51:38.674997 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '38f11aa39bff' 11 | down_revision = '781e870940ac' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | # ### commands auto generated by Alembic - please adjust! ### 20 | op.alter_column('sponsors', 'logo', new_column_name='logo_url') 21 | # ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | # ### commands auto generated by Alembic - please adjust! ### 26 | op.alter_column('sponsors', 'logo_url', new_column_name='logo') 27 | # ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/38f8ca71e523_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 38f8ca71e523 4 | Revises: 694a281af0a8 5 | Create Date: 2016-08-28 10:59:08.517730 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '38f8ca71e523' 11 | down_revision = '694a281af0a8' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.drop_column('user', 'is_sales_admin') 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.add_column('user', sa.Column('is_sales_admin', sa.BOOLEAN(), autoincrement=False, nullable=True)) 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/3a01b7d9d55e_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 3a01b7d9d55e 4 | Revises: 163f9fc56815 5 | Create Date: 2018-07-08 21:00:30.438784 6 | 7 | """ 8 | 9 | from alembic import op 10 | import sqlalchemy as sa 11 | import sqlalchemy_utils 12 | 13 | 14 | # revision identifiers, used by Alembic. 15 | revision = '3a01b7d9d55e' 16 | down_revision = '163f9fc56815' 17 | 18 | 19 | def upgrade(): 20 | # ### commands auto generated by Alembic - please adjust! ### 21 | op.add_column('ticket_fees', sa.Column('country', sa.String(), nullable=True)) 22 | # ### end Alembic commands ### 23 | 24 | 25 | def downgrade(): 26 | # ### commands auto generated by Alembic - please adjust! ### 27 | op.drop_column('ticket_fees', 'country') 28 | # ### end Alembic commands ### 29 | -------------------------------------------------------------------------------- /migrations/versions/3a1e54b1be78_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 3a1e54b1be78 4 | Revises: 66c7787c546e 5 | Create Date: 2016-08-01 21:58:15.889094 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '3a1e54b1be78' 11 | down_revision = '66c7787c546e' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('settings', sa.Column('android_app_url', sa.String(), nullable=True)) 21 | op.add_column('settings', sa.Column('web_app_url', sa.String(), nullable=True)) 22 | ### end Alembic commands ### 23 | 24 | 25 | def downgrade(): 26 | ### commands auto generated by Alembic - please adjust! ### 27 | op.drop_column('settings', 'web_app_url') 28 | op.drop_column('settings', 'android_app_url') 29 | ### end Alembic commands ### 30 | -------------------------------------------------------------------------------- /migrations/versions/3a9c159811ae_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 3a9c159811ae 4 | Revises: acc80f4a90d2 5 | Create Date: 2016-08-05 20:48:57.697000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '3a9c159811ae' 11 | down_revision = 'acc80f4a90d2' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('discount_codes', sa.Column('tickets', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('discount_codes', 'tickets') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/3ddac4799fb1_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 3ddac4799fb1 4 | Revises: 15f1533bb93d 5 | Create Date: 2016-06-17 11:29:40.419114 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '3ddac4799fb1' 11 | down_revision = '15f1533bb93d' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('user', sa.Column('is_super_admin', sa.Boolean(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('user', 'is_super_admin') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/3ea3ef8796a8_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 3ea3ef8796a8 4 | Revises: 7871961f26f2 5 | Create Date: 2016-07-21 11:54:04.600472 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '3ea3ef8796a8' 11 | down_revision = '7871961f26f2' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.create_foreign_key(None, 'versions', 'events', ['event_id'], ['id'], ondelete='CASCADE') 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_constraint(None, 'versions', type_='foreignkey') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/40709a13f64d_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 40709a13f64d 4 | Revises: dcc03295ba71 5 | Create Date: 2016-06-15 21:59:35.739000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '40709a13f64d' 11 | down_revision = 'dcc03295ba71' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('session', sa.Column('comments', sa.Text(), nullable=True)) 21 | op.add_column('speaker', sa.Column('long_biography', sa.Text(), nullable=True)) 22 | ### end Alembic commands ### 23 | 24 | 25 | def downgrade(): 26 | ### commands auto generated by Alembic - please adjust! ### 27 | op.drop_column('speaker', 'long_biography') 28 | op.drop_column('session', 'comments') 29 | ### end Alembic commands ### 30 | -------------------------------------------------------------------------------- /migrations/versions/4132f684e5f1_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 4132f684e5f1 4 | Revises: fd3b97c8cc9a 5 | Create Date: 2016-08-05 22:38:18.946000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '4132f684e5f1' 11 | down_revision = 'fd3b97c8cc9a' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('discount_codes', sa.Column('tickets_number', sa.Integer(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('discount_codes', 'tickets_number') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/41494520d7c0_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 41494520d7c0 4 | Revises: ('167379522d3d', '4e882b5acaaa') 5 | Create Date: 2016-06-12 13:42:15.646338 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '41494520d7c0' 11 | down_revision = ('167379522d3d', '4e882b5acaaa') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/42b10433d1b3_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 42b10433d1b3 4 | Revises: ('9d21de792967', 'dd7968d8d413') 5 | Create Date: 2018-06-13 11:07:26.765745 6 | 7 | """ 8 | 9 | from alembic import op 10 | import sqlalchemy as sa 11 | import sqlalchemy_utils 12 | 13 | 14 | # revision identifiers, used by Alembic. 15 | revision = '42b10433d1b3' 16 | down_revision = ('9d21de792967', 'dd7968d8d413') 17 | 18 | 19 | def upgrade(): 20 | pass 21 | 22 | 23 | def downgrade(): 24 | pass 25 | -------------------------------------------------------------------------------- /migrations/versions/4541c9f0492b_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 4541c9f0492b 4 | Revises: ('531a00c3d139', '9be9077d8fce') 5 | Create Date: 2016-08-14 02:39:15.062307 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '4541c9f0492b' 11 | down_revision = ('531a00c3d139', '9be9077d8fce') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/460a04b3e98e_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 460a04b3e98e 4 | Revises: 2680911b5a1a 5 | Create Date: 2016-06-03 03:15:49.128795 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '460a04b3e98e' 11 | down_revision = 'd796a713eba3' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('events', sa.Column('description', sa.Text(), nullable=True)) 21 | op.drop_column('events', 'slogan') 22 | ### end Alembic commands ### 23 | 24 | 25 | def downgrade(): 26 | ### commands auto generated by Alembic - please adjust! ### 27 | op.add_column('events', sa.Column('slogan', sa.VARCHAR(), autoincrement=False, nullable=True)) 28 | op.drop_column('events', 'description') 29 | ### end Alembic commands ### 30 | -------------------------------------------------------------------------------- /migrations/versions/47e818661817_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 47e818661817 4 | Revises: 1b34cefe5f92 5 | Create Date: 2016-06-18 16:11:23.196270 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '47e818661817' 11 | down_revision = '1b34cefe5f92' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('speaker', sa.Column('user_id', sa.Integer(), nullable=True)) 21 | op.create_foreign_key(None, 'speaker', 'user', ['user_id'], ['id']) 22 | ### end Alembic commands ### 23 | 24 | 25 | def downgrade(): 26 | ### commands auto generated by Alembic - please adjust! ### 27 | op.drop_constraint(None, 'speaker', type_='foreignkey') 28 | op.drop_column('speaker', 'user_id') 29 | ### end Alembic commands ### 30 | -------------------------------------------------------------------------------- /migrations/versions/4bbba854e30b_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 4bbba854e30b 4 | Revises: 1c52a25b4a97 5 | Create Date: 2018-06-06 01:04:55.431292 6 | 7 | """ 8 | 9 | from alembic import op 10 | import sqlalchemy as sa 11 | 12 | 13 | # revision identifiers, used by Alembic. 14 | revision = '4bbba854e30b' 15 | down_revision = '1c52a25b4a97' 16 | 17 | 18 | def upgrade(): 19 | # ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('tax', sa.Column('is_invoice_sent', sa.Boolean(), nullable=True)) 21 | # ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | # ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('tax', 'is_invoice_sent') 27 | # ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/4e5dd0df14b5_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 4e5dd0df14b5 4 | Revises: fb3114b70f3c 5 | Create Date: 2016-08-06 21:20:17.660000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '4e5dd0df14b5' 11 | down_revision = 'fb3114b70f3c' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('settings', sa.Column('stripe_client_id', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('settings', 'stripe_client_id') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/4f2f0d9fe9e1_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 4f2f0d9fe9e1 4 | Revises: ca628ab9ac91 5 | Create Date: 2016-08-24 17:08:15.858355 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '4f2f0d9fe9e1' 11 | down_revision = 'ca628ab9ac91' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.drop_column('image_sizes', 'profile_width') 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.add_column('image_sizes', sa.Column('profile_width', sa.INTEGER(), autoincrement=False, nullable=True)) 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/509a234a3c86_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 509a234a3c86 4 | Revises: eba5ba85d240 5 | Create Date: 2016-10-15 18:52:30.378516 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '509a234a3c86' 11 | down_revision = 'eba5ba85d240' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('orders', sa.Column('marketer_id', sa.Integer(), nullable=True)) 21 | op.create_foreign_key(None, 'orders', 'user', ['marketer_id'], ['id']) 22 | ### end Alembic commands ### 23 | 24 | 25 | def downgrade(): 26 | ### commands auto generated by Alembic - please adjust! ### 27 | op.drop_constraint(None, 'orders', type_='foreignkey') 28 | op.drop_column('orders', 'marketer_id') 29 | ### end Alembic commands ### 30 | -------------------------------------------------------------------------------- /migrations/versions/5108f7608918_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 5108f7608918 4 | Revises: 92d65554495c 5 | Create Date: 2016-08-07 13:12:08.835000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '5108f7608918' 11 | down_revision = '92d65554495c' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.alter_column('orders', 'token', new_column_name='stripe_token') 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.alter_column('orders', 'stripe_token', new_column_name='token') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/523742f2b632_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 523742f2b632 4 | Revises: ('40709a13f64d', 'afd252f090e5') 5 | Create Date: 2016-06-15 22:21:45.219000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '523742f2b632' 11 | down_revision = ('40709a13f64d', 'afd252f090e5') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/53500e542289_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 53500e542289 4 | Revises: ('03ed49c73697', '59a75a06249d') 5 | Create Date: 2016-08-09 03:09:07.512961 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '53500e542289' 11 | down_revision = ('03ed49c73697', '59a75a06249d') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/59a75a06249d_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 59a75a06249d 4 | Revises: ('70941b60bc7d', 'efa8f2dbf092') 5 | Create Date: 2016-08-09 06:51:03.820000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '59a75a06249d' 11 | down_revision = ('70941b60bc7d', 'efa8f2dbf092') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/5aed7e80e00e_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 5aed7e80e00e 4 | Revises: d983585810ac 5 | Create Date: 2017-01-11 17:32:14.599285 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '5aed7e80e00e' 11 | down_revision = 'd983585810ac' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('ticket', sa.Column('absorb_fees', sa.Boolean(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('ticket', 'absorb_fees') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/5b9f83cede65_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 5b9f83cede65 4 | Revises: 4591885edbf0 5 | Create Date: 2018-04-18 17:55:43.266248 6 | 7 | """ 8 | 9 | from alembic import op 10 | import sqlalchemy as sa 11 | import sqlalchemy_utils 12 | 13 | 14 | # revision identifiers, used by Alembic. 15 | revision = '5b9f83cede65' 16 | down_revision = '4591885edbf0' 17 | 18 | 19 | def upgrade(): 20 | # ### commands auto generated by Alembic - please adjust! ### 21 | op.alter_column('ticket_holders', 'pdf_url', 22 | existing_type=sa.VARCHAR(), 23 | nullable=True) 24 | # ### end Alembic commands ### 25 | 26 | 27 | def downgrade(): 28 | # ### commands auto generated by Alembic - please adjust! ### 29 | op.alter_column('ticket_holders', 'pdf_url', 30 | existing_type=sa.VARCHAR(), 31 | nullable=False) 32 | # ### end Alembic commands ### 33 | -------------------------------------------------------------------------------- /migrations/versions/5bff18b52910_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 5bff18b52910 4 | Revises: ('74e76a7976fb', '13aed5739978') 5 | Create Date: 2016-06-29 14:33:43.383039 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '5bff18b52910' 11 | down_revision = ('74e76a7976fb', '13aed5739978') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/60548d0505ea_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 60548d0505ea 4 | Revises: cb8e1f876bc3 5 | Create Date: 2016-11-15 19:10:12.922256 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '60548d0505ea' 11 | down_revision = 'cb8e1f876bc3' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('settings', sa.Column('email_from', sa.String(), nullable=True)) 21 | op.add_column('settings', sa.Column('email_from_name', sa.String(), nullable=True)) 22 | ### end Alembic commands ### 23 | 24 | 25 | def downgrade(): 26 | ### commands auto generated by Alembic - please adjust! ### 27 | op.drop_column('settings', 'email_from_name') 28 | op.drop_column('settings', 'email_from') 29 | ### end Alembic commands ### 30 | -------------------------------------------------------------------------------- /migrations/versions/6153d21347b9_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 6153d21347b9 4 | Revises: ('d3fa4a1dbb8f', 'e42e322f7ffb') 5 | Create Date: 2016-06-25 00:17:00.173000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '6153d21347b9' 11 | down_revision = ('d3fa4a1dbb8f', 'e42e322f7ffb') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/63203fd4c3ea_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 63203fd4c3ea 4 | Revises: 509ff01b6848 5 | Create Date: 2016-08-22 11:13:21.448169 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '63203fd4c3ea' 11 | down_revision = '509ff01b6848' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('settings', sa.Column('analytics_key', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('settings', 'analytics_key') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/6440077182f0_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 6440077182f0 4 | Revises: eaa029ebb260 5 | Create Date: 2018-06-12 16:12:06.233030 6 | 7 | """ 8 | 9 | from alembic import op 10 | import sqlalchemy as sa 11 | 12 | # revision identifiers, used by Alembic. 13 | revision = '6440077182f0' 14 | down_revision = 'eaa029ebb260' 15 | 16 | 17 | def upgrade(): 18 | # ### commands auto generated by Alembic - please adjust! ### 19 | op.add_column('tickets', sa.Column('auto_checkin_enabled', sa.Boolean(), nullable=True)) 20 | op.add_column('tickets', sa.Column('is_checkin_restricted', sa.Boolean(), nullable=True)) 21 | # ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | # ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('tickets', 'is_checkin_restricted') 27 | op.drop_column('tickets', 'auto_checkin_enabled') 28 | # ### end Alembic commands ### 29 | -------------------------------------------------------------------------------- /migrations/versions/6581466d21c9_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 6581466d21c9 4 | Revises: 11143ed3e6fa 5 | Create Date: 2017-01-02 18:53:59.592709 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '6581466d21c9' 11 | down_revision = '11143ed3e6fa' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('session', sa.Column('level', sa.String(), nullable=True)) 21 | op.add_column('session_version', sa.Column('level', sa.String(), autoincrement=False, nullable=True)) 22 | ### end Alembic commands ### 23 | 24 | 25 | def downgrade(): 26 | ### commands auto generated by Alembic - please adjust! ### 27 | op.drop_column('session_version', 'level') 28 | op.drop_column('session', 'level') 29 | ### end Alembic commands ### 30 | -------------------------------------------------------------------------------- /migrations/versions/66c7787c546e_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 66c7787c546e 4 | Revises: ad7f50c4afb5 5 | Create Date: 2016-07-30 11:06:48.118000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '66c7787c546e' 11 | down_revision = 'ad7f50c4afb5' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('orders', sa.Column('token', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('orders', 'token') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/673cf7219a71_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 673cf7219a71 4 | Revises: 9ccc41444de6 5 | Create Date: 2016-07-24 16:11:54.201000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '673cf7219a71' 11 | down_revision = '9ccc41444de6' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('call_for_papers', sa.Column('privacy', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('call_for_papers', 'privacy') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/6f6b4b3a368d_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 6f6b4b3a368d 4 | Revises: abf206ef23a1 5 | Create Date: 2016-11-10 21:07:24.369390 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '6f6b4b3a368d' 11 | down_revision = 'abf206ef23a1' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('settings', sa.Column('app_name', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('settings', 'app_name') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/6ffaeab2c3c2_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 6ffaeab2c3c2 4 | Revises: 0d995bfb3671 5 | Create Date: 2017-08-27 16:05:20.575622 6 | 7 | """ 8 | 9 | from alembic import op 10 | import sqlalchemy as sa 11 | 12 | 13 | # revision identifiers, used by Alembic. 14 | revision = '6ffaeab2c3c2' 15 | down_revision = '0d995bfb3671' 16 | 17 | 18 | def upgrade(): 19 | # commands auto generated by Alembic - please adjust! # 20 | op.add_column('ticket_holders', sa.Column('checkin_times', sa.String(), nullable=True)) 21 | # end Alembic commands # 22 | 23 | 24 | def downgrade(): 25 | # commands auto generated by Alembic - please adjust! # 26 | op.drop_column('ticket_holders', 'checkin_times') 27 | # end Alembic commands # 28 | -------------------------------------------------------------------------------- /migrations/versions/74e76a7976fb_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 74e76a7976fb 4 | Revises: 5d35fa753afa 5 | Create Date: 2016-06-29 10:34:43.101394 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '74e76a7976fb' 11 | down_revision = '5d35fa753afa' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | op.add_column('session', sa.Column('in_trash', sa.Boolean(), default=False)) 20 | op.add_column('user', sa.Column('in_trash', sa.Boolean(), default=False)) 21 | op.add_column('events', sa.Column('in_trash', sa.Boolean(), default=False)) 22 | 23 | def downgrade(): 24 | op.drop_column('events', 'in_trash') 25 | op.drop_column('user', 'in_trash') 26 | op.drop_column('session', 'in_trash') 27 | -------------------------------------------------------------------------------- /migrations/versions/76617aa50e25_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 76617aa50e25 4 | Revises: 81a713eded64 5 | Create Date: 2017-01-13 21:08:29.619807 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '76617aa50e25' 11 | down_revision = '81a713eded64' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('settings', sa.Column('tagline', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('settings', 'tagline') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/77df37e3e9ad_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 77df37e3e9ad 4 | Revises: ('01b6969ef4e5', '98c151c7a16a') 5 | Create Date: 2016-06-29 17:42:18.513000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '77df37e3e9ad' 11 | down_revision = ('01b6969ef4e5', '98c151c7a16a') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/781e870940ac_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 781e870940ac 4 | Revises: 9105f9e64cdc 5 | Create Date: 2017-05-27 23:25:25.052273 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '781e870940ac' 11 | down_revision = '9105f9e64cdc' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.alter_column('users', 'password', new_column_name='_password') 21 | op.alter_column('users', 'email', new_column_name='_email') 22 | ### end Alembic commands ### 23 | 24 | 25 | def downgrade(): 26 | ### commands auto generated by Alembic - please adjust! ### 27 | op.alter_column('users', '_password', new_column_name='password') 28 | op.alter_column('users', '_email', new_column_name='email') 29 | ### end Alembic commands ### 30 | -------------------------------------------------------------------------------- /migrations/versions/784a1fc57171_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 784a1fc57171 4 | Revises: 523742f2b632 5 | Create Date: 2016-06-15 23:17:34.048000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '784a1fc57171' 11 | down_revision = '523742f2b632' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('events', sa.Column('privacy', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('events', 'privacy') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/7871961f26f2_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 7871961f26f2 4 | Revises: cd994170e0d2 5 | Create Date: 2016-07-18 16:41:19.374231 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '7871961f26f2' 11 | down_revision = 'cd994170e0d2' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('role_invite', sa.Column('declined', sa.Boolean(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('role_invite', 'declined') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/7a110ca7061b_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 7a110ca7061b 4 | Revises: ('ecb671d1eb4b', '3c88cd5a4967') 5 | Create Date: 2016-06-15 14:49:01.579553 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '7a110ca7061b' 11 | down_revision = ('ecb671d1eb4b', '3c88cd5a4967') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/7b359f067e8e_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 7b359f067e8e 4 | Revises: 6581466d21c9 5 | Create Date: 2017-01-03 02:51:36.786100 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '7b359f067e8e' 11 | down_revision = '6581466d21c9' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('speaker', sa.Column('heard_from', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('speaker', 'heard_from') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/80a704b880db_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 80a704b880db 4 | Revises: 47e818661817 5 | Create Date: 2016-06-19 14:16:47.531711 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '80a704b880db' 11 | down_revision = '47e818661817' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('user', sa.Column('last_access_time', sa.DateTime(), nullable=True)) 21 | op.add_column('user', sa.Column('signup_time', sa.DateTime(), nullable=True)) 22 | ### end Alembic commands ### 23 | 24 | 25 | def downgrade(): 26 | ### commands auto generated by Alembic - please adjust! ### 27 | op.drop_column('user', 'signup_time') 28 | op.drop_column('user', 'last_access_time') 29 | ### end Alembic commands ### 30 | -------------------------------------------------------------------------------- /migrations/versions/81fe5a689259_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 81fe5a689259 4 | Revises: ('4891e2b124f8', '59d045580f02') 5 | Create Date: 2016-08-26 11:03:45.791789 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '81fe5a689259' 11 | down_revision = ('4891e2b124f8', '59d045580f02') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/8223e1b0c247_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 8223e1b0c247 4 | Revises: 718e36d598de 5 | Create Date: 2016-08-15 06:04:53.691331 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '8223e1b0c247' 11 | down_revision = '718e36d598de' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('user', sa.Column('is_sales_admin', sa.Boolean(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('user', 'is_sales_admin') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/83e0a28b1430_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 83e0a28b1430 4 | Revises: b79853132e71 5 | Create Date: 2016-08-22 20:58:04.341000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '83e0a28b1430' 11 | down_revision = 'b79853132e71' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('ticket_holders', sa.Column('checked_in', sa.Boolean(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('ticket_holders', 'checked_in') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/840bc71025d6_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 840bc71025d6 4 | Revises: 531a00c3d139 5 | Create Date: 2016-08-14 11:27:22.471000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '840bc71025d6' 11 | down_revision = '531a00c3d139' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('speaker', sa.Column('featured', sa.Boolean(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('speaker', 'featured') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/848f6f918b3d_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 848f6f918b3d 4 | Revises: ('1569fb5915ad', 'ab5e71976320') 5 | Create Date: 2016-07-24 21:57:24.372000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '848f6f918b3d' 11 | down_revision = ('1569fb5915ad', 'ab5e71976320') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/84b81dbc95df_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 84b81dbc95df 4 | Revises: ('4541c9f0492b', '840bc71025d6') 5 | Create Date: 2016-08-14 07:23:42.783971 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '84b81dbc95df' 11 | down_revision = ('4541c9f0492b', '840bc71025d6') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/8500f5ec6c45_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 8500f5ec6c45 4 | Revises: e85aaacd8721 5 | Create Date: 2017-07-13 02:26:39.135397 6 | 7 | """ 8 | 9 | from alembic import op 10 | import sqlalchemy as sa 11 | import sqlalchemy_utils 12 | 13 | 14 | # revision identifiers, used by Alembic. 15 | revision = '8500f5ec6c45' 16 | down_revision = 'bf559a01a63b' 17 | 18 | def upgrade(): 19 | # ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('users', sa.Column('original_image_url', sa.String(), nullable=True)) 21 | # ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | # ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('users', 'original_image_url') 27 | # ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/85e24937f108_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 85e24937f108 4 | Revises: ('aefa134809bf', '4b9a4e5aebe6') 5 | Create Date: 2017-07-23 09:55:43.269505 6 | 7 | """ 8 | 9 | from alembic import op 10 | import sqlalchemy as sa 11 | import sqlalchemy_utils 12 | 13 | 14 | # revision identifiers, used by Alembic. 15 | revision = '85e24937f108' 16 | down_revision = ('aefa134809bf', '4b9a4e5aebe6') 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/86fe7df8dca6_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 86fe7df8dca6 4 | Revises: ('b5abafa45063', '149695270251') 5 | Create Date: 2016-08-07 03:06:46.006983 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '86fe7df8dca6' 11 | down_revision = ('b5abafa45063', '149695270251') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/898490456115_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 898490456115 4 | Revises: ('a71a8fcf6493', '35e6312c8b8f') 5 | Create Date: 2017-06-17 01:59:30.804860 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '898490456115' 11 | down_revision = ('a71a8fcf6493', '35e6312c8b8f') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/8a548c2338e6_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | Revision ID: 8a548c2338e6 3 | Revises: a1c17effff1d 4 | Create Date: 2017-05-21 22:35:28.931669 5 | """ 6 | 7 | # revision identifiers, used by Alembic. 8 | revision = '8a548c2338e6' 9 | down_revision = 'a1c17effff1d' 10 | 11 | from alembic import op 12 | import sqlalchemy as sa 13 | import sqlalchemy_utils 14 | from sqlalchemy.dialects import postgresql 15 | 16 | def upgrade(): 17 | ### commands auto generated by Alembic - please adjust! ### 18 | op.alter_column('sessions', 'end_time', new_column_name='ends_at') 19 | ### end Alembic commands ### 20 | 21 | 22 | def downgrade(): 23 | ### commands auto generated by Alembic - please adjust! ### 24 | op.alter_column('sessions', 'ends_at', new_column_name='end_time') 25 | ### end Alembic commands ### 26 | -------------------------------------------------------------------------------- /migrations/versions/8cdaeb567de4_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 8cdaeb567de4 4 | Revises: ('c14dce153e2d', 'e404a529dc5b') 5 | Create Date: 2016-07-23 08:50:57.943000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '8cdaeb567de4' 11 | down_revision = ('c14dce153e2d', 'e404a529dc5b') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/8e7f7864cb60_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 8e7f7864cb60 4 | Revises: ('80a704b880db', 'adf34c11b0df') 5 | Create Date: 2016-06-19 15:43:23.027000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '8e7f7864cb60' 11 | down_revision = ('80a704b880db', 'adf34c11b0df') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/94e639e6575c_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 94e639e6575c 4 | Revises: dd97b5e8fa6b 5 | Create Date: 2016-12-31 16:45:34.133509 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '94e639e6575c' 11 | down_revision = 'dd97b5e8fa6b' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.drop_column('speaker', 'level') 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.add_column('speaker', sa.Column('level', sa.VARCHAR(), autoincrement=False, nullable=True)) 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/9920a61bf875_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 9920a61bf875 4 | Revises: ('76617aa50e25', '5aed7e80e00e') 5 | Create Date: 2017-01-14 14:29:28.605952 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '9920a61bf875' 11 | down_revision = ('76617aa50e25', '5aed7e80e00e') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/9ccc41444de6_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 9ccc41444de6 4 | Revises: a89a143735e5 5 | Create Date: 2016-07-24 15:55:00.947000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '9ccc41444de6' 11 | down_revision = 'a89a143735e5' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('call_for_papers', sa.Column('hash', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('call_for_papers', 'hash') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/9d21de792967_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: 9d21de792967 4 | Revises: 49f3a33f5437 5 | Create Date: 2018-06-05 20:03:20.588368 6 | 7 | """ 8 | 9 | from alembic import op 10 | 11 | # revision identifiers, used by Alembic. 12 | revision = '9d21de792967' 13 | down_revision = '49f3a33f5437' 14 | 15 | 16 | def upgrade(): 17 | """commands auto generated by Alembic - please adjust!""" 18 | op.execute( 19 | """DELETE FROM ticket_holders WHERE id NOT IN 20 | (SELECT min(id) FROM ticket_holders GROUP BY ticket_id) 21 | """) 22 | op.create_unique_constraint('ticket_event', 'ticket_holders', ['ticket_id']) 23 | # ### end Alembic commands ### 24 | 25 | 26 | def downgrade(): 27 | """commands auto generated by Alembic - please adjust!""" 28 | op.drop_constraint('ticket_event', 'ticket_holders', type_='unique') 29 | # ### end Alembic commands ### 30 | -------------------------------------------------------------------------------- /migrations/versions/a643eb3f2bb4_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: a643eb3f2bb4 4 | Revises: ('c4979be6c73b', '63203fd4c3ea') 5 | Create Date: 2016-08-22 08:10:25.702338 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'a643eb3f2bb4' 11 | down_revision = ('c4979be6c73b', '63203fd4c3ea') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/aa204a8b5743_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: aa204a8b5743 4 | Revises: 90a9f0908326 5 | Create Date: 2016-08-18 23:47:48.760843 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'aa204a8b5743' 11 | down_revision = '90a9f0908326' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('custom_placeholder', sa.Column('thumbnail', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('custom_placeholder', 'thumbnail') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/aa4b21539f5b_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: aa4b21539f5b 4 | Revises: 274cf8742fb5 5 | Create Date: 2016-06-16 18:13:42.333200 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'aa4b21539f5b' 11 | down_revision = '274cf8742fb5' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('user', sa.Column('role', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('user', 'role') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/ab545d15d160_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: ab545d15d160 4 | Revises: 475688ee0c8a 5 | Create Date: 2016-07-06 20:30:40.272615 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'ab545d15d160' 11 | down_revision = '475688ee0c8a' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('settings', sa.Column('in_client_id', sa.String(), nullable=True)) 21 | op.add_column('settings', sa.Column('in_client_secret', sa.String(), nullable=True)) 22 | ### end Alembic commands ### 23 | 24 | 25 | def downgrade(): 26 | ### commands auto generated by Alembic - please adjust! ### 27 | op.drop_column('settings', 'in_client_secret') 28 | op.drop_column('settings', 'in_client_id') 29 | ### end Alembic commands ### 30 | -------------------------------------------------------------------------------- /migrations/versions/ab5e71976320_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: ab5e71976320 4 | Revises: ('6415c74704d9', '673cf7219a71') 5 | Create Date: 2016-07-24 21:08:46.637000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'ab5e71976320' 11 | down_revision = ('6415c74704d9', '673cf7219a71') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/abe953265132_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: abe953265132 4 | Revises: af9215895b80 5 | Create Date: 2017-06-13 21:46:19.772583 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'abe953265132' 11 | down_revision = 'af9215895b80' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | from sqlalchemy.dialects import postgresql 17 | 18 | def upgrade(): 19 | # ### commands auto generated by Alembic - please adjust! ### 20 | op.rename_table('call_for_papers', 'speakers_calls') 21 | # ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | # ### commands auto generated by Alembic - please adjust! ### 26 | op.rename_table('speakers_calls', 'call_for_papers') 27 | # ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/abf206ef23a1_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: abf206ef23a1 4 | Revises: 44e7397c1cae 5 | Create Date: 2016-10-24 23:15:09.043610 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'abf206ef23a1' 11 | down_revision = '44e7397c1cae' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('pages', sa.Column('language', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('pages', 'language') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/ac0d73a95c0a_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: ac0d73a95c0a 4 | Revises: cc6c2a3152bd 5 | Create Date: 2016-07-29 21:54:12.780000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'ac0d73a95c0a' 11 | down_revision = 'cc6c2a3152bd' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('orders', sa.Column('zipcode', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('orders', 'zipcode') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/ac2a9daf5a8e_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: ac2a9daf5a8e 4 | Revises: f0c5ef58ad19 5 | Create Date: 2016-12-05 19:55:32.893709 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'ac2a9daf5a8e' 11 | down_revision = 'f0c5ef58ad19' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('settings', sa.Column('aws_region', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('settings', 'aws_region') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/ad789015cdf7_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: ad789015cdf7 4 | Revises: ('bc1c553a72c5', '9e1204b2e096') 5 | Create Date: 2017-07-09 00:00:31.031203 6 | 7 | """ 8 | 9 | from alembic import op 10 | import sqlalchemy as sa 11 | import sqlalchemy_utils 12 | 13 | 14 | # revision identifiers, used by Alembic. 15 | revision = 'ad789015cdf7' 16 | down_revision = ('bc1c553a72c5', '9e1204b2e096') 17 | 18 | 19 | def upgrade(): 20 | pass 21 | 22 | 23 | def downgrade(): 24 | pass 25 | -------------------------------------------------------------------------------- /migrations/versions/ad7f50c4afb5_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: ad7f50c4afb5 4 | Revises: 9913b58c2640 5 | Create Date: 2016-07-29 23:33:03.981000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'ad7f50c4afb5' 11 | down_revision = '9913b58c2640' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('orders', sa.Column('status', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('orders', 'status') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/adf34c11b0df_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: adf34c11b0df 4 | Revises: 47e818661817 5 | Create Date: 2016-06-19 15:12:13.886000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'adf34c11b0df' 11 | down_revision = '47e818661817' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('events', sa.Column('schedule_published_on', sa.DateTime())) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('events', 'schedule_published_on') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/af9215895b80_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: af9215895b80 4 | Revises: ('217d3c1f3c5f', '6904ae1e0e33') 5 | Create Date: 2017-06-13 19:47:34.126518 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'af9215895b80' 11 | down_revision = ('217d3c1f3c5f', '6904ae1e0e33') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/b723e2342f15_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: b723e2342f15 4 | Revises: 26a83ff1e6ad 5 | Create Date: 2016-06-17 03:31:11.246151 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'b723e2342f15' 11 | down_revision = '26a83ff1e6ad' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('session', sa.Column('language', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('session', 'language') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/b96384251d86_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: b96384251d86 4 | Revises: ('e385c8e1368a', 'ffb21f7a6e61') 5 | Create Date: 2016-06-15 13:25:30.215713 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'b96384251d86' 11 | down_revision = ('e385c8e1368a', 'ffb21f7a6e61') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/bec88339e8ef_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: bec88339e8ef 4 | Revises: 38f8ca71e523 5 | Create Date: 2016-08-28 11:13:01.645421 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'bec88339e8ef' 11 | down_revision = '38f8ca71e523' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.drop_column('custom_sys_role', 'title') 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.add_column('custom_sys_role', sa.Column('title', sa.VARCHAR(), autoincrement=False, nullable=True)) 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/bf559a01a63b_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: bf559a01a63b 4 | Revises: ('c713cdd49fb3', '7e1d14ae17e9') 5 | Create Date: 2017-07-13 02:27:52.584612 6 | 7 | """ 8 | 9 | from alembic import op 10 | import sqlalchemy as sa 11 | import sqlalchemy_utils 12 | 13 | 14 | # revision identifiers, used by Alembic. 15 | revision = 'bf559a01a63b' 16 | down_revision = ('c713cdd49fb3', '7e1d14ae17e9') 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/c14dce153e2d_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: c14dce153e2d 4 | Revises: 3ea3ef8796a8 5 | Create Date: 2016-07-22 09:28:56.773672 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'c14dce153e2d' 11 | down_revision = '3ea3ef8796a8' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.alter_column('versions', 'session_ver', new_column_name='sessions_ver') 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.alter_column('versions', 'sessions_ver', new_column_name='session_ver') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/c2e5de1111bd_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: c2e5de1111bd 4 | Revises: ('40911d5c6c5b', '124271738482') 5 | Create Date: 2016-07-11 11:35:45.870774 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'c2e5de1111bd' 11 | down_revision = ('40911d5c6c5b', '124271738482') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/c5fe28ec7139_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: c5fe28ec7139 4 | Revises: ('e9d070685a1b', '4525c3f044c3') 5 | Create Date: 2016-08-11 12:46:12.540980 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'c5fe28ec7139' 11 | down_revision = ('e9d070685a1b', '4525c3f044c3') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/c61a3c33adb5_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: c61a3c33adb5 4 | Revises: ('da47a767f2ef', 'fd0a931e7493') 5 | Create Date: 2017-06-20 10:12:35.427367 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'c61a3c33adb5' 11 | down_revision = ('da47a767f2ef', 'fd0a931e7493') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/c6b183975be9_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: c6b183975be9 4 | Revises: ccd80550c01f 5 | Create Date: 2017-06-12 00:42:29.329727 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'c6b183975be9' 11 | down_revision = 'ccd80550c01f' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | # ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('ticket_holders', sa.Column('pdf_url', sa.String(), nullable=True)) 21 | # ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | # ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('ticket_holders', 'pdf_url') 27 | # ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/c713cdd49fb3_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: c713cdd49fb3 4 | Revises: ('e85aaacd8721', 'aba0b1754103') 5 | Create Date: 2017-07-12 21:09:56.355486 6 | 7 | """ 8 | 9 | from alembic import op 10 | import sqlalchemy as sa 11 | import sqlalchemy_utils 12 | 13 | 14 | # revision identifiers, used by Alembic. 15 | revision = 'c713cdd49fb3' 16 | down_revision = ('e85aaacd8721', 'aba0b1754103') 17 | 18 | 19 | def upgrade(): 20 | pass 21 | 22 | 23 | def downgrade(): 24 | pass 25 | -------------------------------------------------------------------------------- /migrations/versions/c87f76817bf2_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: c87f76817bf2 4 | Revises: 86fe7df8dca6 5 | Create Date: 2016-08-08 21:57:43.919000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'c87f76817bf2' 11 | down_revision = '86fe7df8dca6' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | 16 | def upgrade(): 17 | op.drop_column('events', 'event_url') 18 | op.drop_column('events_version', 'event_url') 19 | pass 20 | 21 | 22 | def downgrade(): 23 | op.add_column('events', sa.Column('event_url', sa.String(), nullable=True)) 24 | op.add_column('events_version', sa.Column('event_url', sa.String(), nullable=True)) 25 | pass 26 | -------------------------------------------------------------------------------- /migrations/versions/ca3156df9a12_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: ca3156df9a12 4 | Revises: ('af0b6ab086b7', '3a1e54b1be78') 5 | Create Date: 2016-08-02 13:19:43.596283 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'ca3156df9a12' 11 | down_revision = ('af0b6ab086b7', '3a1e54b1be78') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/ca628ab9ac91_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: ca628ab9ac91 4 | Revises: 23ff3fbdc6da 5 | Create Date: 2016-08-24 16:55:09.605900 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'ca628ab9ac91' 11 | down_revision = '23ff3fbdc6da' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('image_sizes', sa.Column('type', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('image_sizes', 'type') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/caf96244e10b_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: caf96244e10b 4 | Revises: 4cac94c86047 5 | Create Date: 2018-05-24 22:52:38.381505 6 | 7 | """ 8 | 9 | from alembic import op 10 | import sqlalchemy as sa 11 | import sqlalchemy_utils 12 | 13 | 14 | # revision identifiers, used by Alembic. 15 | revision = 'caf96244e10b' 16 | down_revision = '4cac94c86047' 17 | 18 | 19 | def upgrade(): 20 | # ### commands auto generated by Alembic - please adjust! ### 21 | op.drop_column('access_codes', 'used_for') 22 | # ### end Alembic commands ### 23 | 24 | 25 | def downgrade(): 26 | # ### commands auto generated by Alembic - please adjust! ### 27 | op.add_column('access_codes', sa.Column('used_for', sa.VARCHAR(), autoincrement=False, nullable=True)) 28 | # ### end Alembic commands ### 29 | -------------------------------------------------------------------------------- /migrations/versions/cdba269e9de1_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: cdba269e9de1 4 | Revises: 5d4abe45c6d9 5 | Create Date: 2016-06-21 11:09:54.239439 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'cdba269e9de1' 11 | down_revision = '5d4abe45c6d9' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('mails', sa.Column('subject', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('mails', 'subject') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/d04baaaca7b5_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: d04baaaca7b5 4 | Revises: ('079cf8351a19', '1cc66579a10e') 5 | Create Date: 2016-08-02 21:17:37.199000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'd04baaaca7b5' 11 | down_revision = ('079cf8351a19', '1cc66579a10e') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/d40a49824b53_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: d40a49824b53 4 | Revises: aa4b21539f5b 5 | Create Date: 2016-06-16 13:31:57.438513 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'd40a49824b53' 11 | down_revision = 'aa4b21539f5b' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('user_detail', sa.Column('avatar_uploaded', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('user_detail', 'avatar_uploaded') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/d469443aed74_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: d469443aed74 4 | Revises: ('c87f76817bf2', '703eda37e75c') 5 | Create Date: 2016-08-08 17:21:17.797925 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'd469443aed74' 11 | down_revision = ('c87f76817bf2', '703eda37e75c') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/d563f6eba95a_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: d563f6eba95a 4 | Revises: ('008dae41b45e', 'a48b4f13c561') 5 | Create Date: 2016-06-11 14:10:15.636879 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'd563f6eba95a' 11 | down_revision = ('008dae41b45e', 'a48b4f13c561') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/d73fc7833958_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: d73fc7833958 4 | Revises: 1a89015d90bd 5 | Create Date: 2017-01-30 00:42:05.089748 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'd73fc7833958' 11 | down_revision = '1a89015d90bd' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('speaker', sa.Column('gender', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('speaker', 'gender') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/d84f976530e1_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: d84f976530e1 4 | Revises: 00ea66754d06 5 | Create Date: 2016-06-14 10:33:50.685000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'd84f976530e1' 11 | down_revision = '00ea66754d06' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('events', sa.Column('organizer_name', sa.String())) 21 | op.add_column('events', sa.Column('organizer_description', sa.String())) 22 | ### end Alembic commands ### 23 | 24 | 25 | def downgrade(): 26 | ### commands auto generated by Alembic - please adjust! ### 27 | op.drop_column('events', 'organizer_name') 28 | op.drop_column('events', 'organizer_description') 29 | ### end Alembic commands ### 30 | -------------------------------------------------------------------------------- /migrations/versions/da47a767f2ef_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: da47a767f2ef 4 | Revises: ('c6b183975be9', '898490456115') 5 | Create Date: 2017-06-19 01:55:54.981710 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'da47a767f2ef' 11 | down_revision = ('c6b183975be9', '898490456115') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/dc0f787c88ae_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: dc0f787c88ae 4 | Revises: ('124271738482', '40911d5c6c5b') 5 | Create Date: 2016-07-11 17:34:27.602000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'dc0f787c88ae' 11 | down_revision = ('124271738482', '40911d5c6c5b') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/dd24d9e90809_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: dd24d9e90809 4 | Revises: ('c2e5de1111bd', 'dc0f787c88ae') 5 | Create Date: 2016-07-11 17:22:38.956432 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'dd24d9e90809' 11 | down_revision = ('c2e5de1111bd', 'dc0f787c88ae') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/dd97b5e8fa6b_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: dd97b5e8fa6b 4 | Revises: f6205b904315 5 | Create Date: 2016-12-31 15:52:24.331441 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'dd97b5e8fa6b' 11 | down_revision = 'f6205b904315' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('speaker', sa.Column('level', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('speaker', 'level') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/de41bffc4830_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: de41bffc4830 4 | Revises: c61a3c33adb5 5 | Create Date: 2017-06-20 11:04:16.344382 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'de41bffc4830' 11 | down_revision = 'c61a3c33adb5' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | # ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('event_invoices', sa.Column('invoice_pdf_url', sa.String(), nullable=True)) 21 | # ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | # ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('event_invoices', 'invoice_pdf_url') 27 | # ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/de59ac570231_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: de59ac570231 4 | Revises: ('de41bffc4830', 'abe953265132') 5 | Create Date: 2017-06-20 13:25:57.480298 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'de59ac570231' 11 | down_revision = ('de41bffc4830', 'abe953265132') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/df5729aed5d2_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: df5729aed5d2 4 | Revises: 3ddac4799fb1 5 | Create Date: 2016-06-17 11:41:46.306817 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'df5729aed5d2' 11 | down_revision = '3ddac4799fb1' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('user', sa.Column('is_admin', sa.Boolean(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('user', 'is_admin') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/e267d3b2a8f6_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: e267d3b2a8f6 4 | Revises: 20f17a744206 5 | Create Date: 2016-06-22 13:03:11.391000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'e267d3b2a8f6' 11 | down_revision = '20f17a744206' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('events', sa.Column('timezone', sa.String(), nullable=False, server_default='UTC')) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('events', 'timezone') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/e42e322f7ffb_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: e42e322f7ffb 4 | Revises: 3e2141df9b6f 5 | Create Date: 2016-06-24 09:47:15.405504 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'e42e322f7ffb' 11 | down_revision = '3e2141df9b6f' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('role_invite', sa.Column('hash', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('role_invite', 'hash') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/e8222a407dd5_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: e8222a407dd5 4 | Revises: 7b359f067e8e 5 | Create Date: 2017-01-04 20:59:32.624908 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'e8222a407dd5' 11 | down_revision = '7b359f067e8e' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | # ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('user_detail', sa.Column('instagram', sa.String(), nullable=True)) 21 | # ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | # ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('user_detail', 'instagram') 27 | # ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/e9d070685a1b_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: e9d070685a1b 4 | Revises: ('2eb08848b0e9', 'fea0fa56ded9') 5 | Create Date: 2016-08-10 13:32:24.139657 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'e9d070685a1b' 11 | down_revision = ('2eb08848b0e9', 'fea0fa56ded9') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/eaa029ebb260_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: eaa029ebb260 4 | Revises: f6e303f33d28 5 | Create Date: 2018-06-30 17:28:43.694615 6 | 7 | """ 8 | 9 | from alembic import op 10 | import sqlalchemy as sa 11 | 12 | 13 | # revision identifiers, used by Alembic. 14 | revision = 'eaa029ebb260' 15 | down_revision = 'f6e303f33d28' 16 | 17 | 18 | def upgrade(): 19 | # ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('orders', sa.Column('order_notes', sa.String(), nullable=True)) 21 | # ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | # ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('orders', 'order_notes') 27 | # ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/eba5ba85d240_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: eba5ba85d240 4 | Revises: ('37ba223cec70', '79e54124b415') 5 | Create Date: 2016-08-30 07:36:00.565449 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'eba5ba85d240' 11 | down_revision = ('37ba223cec70', '79e54124b415') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/ec7d4c35740b_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: ec7d4c35740b 4 | Revises: 4e143b2ac72a 5 | Create Date: 2016-07-24 00:32:18.755000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'ec7d4c35740b' 11 | down_revision = '4e143b2ac72a' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('session', sa.Column('timezone', sa.String())) 21 | op.add_column('session_version', sa.Column('timezone', sa.String(), autoincrement=False, nullable=True)) 22 | ### end Alembic commands ### 23 | 24 | 25 | def downgrade(): 26 | ### commands auto generated by Alembic - please adjust! ### 27 | op.drop_column('session_version', 'timezone') 28 | op.drop_column('session', 'timezone') 29 | ### end Alembic commands ### 30 | -------------------------------------------------------------------------------- /migrations/versions/ecb671d1eb4b_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: ecb671d1eb4b 4 | Revises: ('e38935822969', 'f55fde3d62b1') 5 | Create Date: 2016-06-14 17:16:46.015641 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'ecb671d1eb4b' 11 | down_revision = ('e38935822969', 'f55fde3d62b1') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/efa8f2dbf092_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: efa8f2dbf092 4 | Revises: 5108f7608918 5 | Create Date: 2016-08-07 13:13:49.502000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'efa8f2dbf092' 11 | down_revision = '5108f7608918' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('orders', sa.Column('paypal_token', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('orders', 'paypal_token') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/f07fed8f60e5_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: f07fed8f60e5 4 | Revises: 1552f7bafb5b 5 | Create Date: 2016-06-16 20:54:35.573548 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'f07fed8f60e5' 11 | down_revision = '1552f7bafb5b' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.drop_column('eventsusers', 'role') 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.add_column('eventsusers', sa.Column('role', sa.VARCHAR(), autoincrement=False, nullable=False)) 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/f2b4430d9e57_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: f2b4430d9e57 4 | Revises: aa4b21539f5b 5 | Create Date: 2016-06-16 22:49:42.269000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'f2b4430d9e57' 11 | down_revision = 'aa4b21539f5b' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('events', sa.Column('ticket_url', sa.String(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column('events', 'ticket_url') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/f4417da578e5_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: f4417da578e5 4 | Revises: df5729aed5d2 5 | Create Date: 2016-06-17 10:55:51.582098 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'f4417da578e5' 11 | down_revision = 'df5729aed5d2' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('events', sa.Column('creator_id', sa.Integer(), nullable=True)) 21 | op.create_foreign_key(None, 'events', 'user', ['creator_id'], ['id']) 22 | ### end Alembic commands ### 23 | 24 | 25 | def downgrade(): 26 | ### commands auto generated by Alembic - please adjust! ### 27 | op.drop_constraint(None, 'events', type_='foreignkey') 28 | op.drop_column('events', 'creator_id') 29 | ### end Alembic commands ### 30 | -------------------------------------------------------------------------------- /migrations/versions/f55fde3d62b1_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: f55fde3d62b1 4 | Revises: 00ea66754d06 5 | Create Date: 2016-06-14 16:35:37.817737 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'f55fde3d62b1' 11 | down_revision = '00ea66754d06' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('events', sa.Column('topic', sa.String(), nullable=True)) 21 | op.add_column('events', sa.Column('type', sa.String(), nullable=True)) 22 | ### end Alembic commands ### 23 | 24 | 25 | def downgrade(): 26 | ### commands auto generated by Alembic - please adjust! ### 27 | op.drop_column('events', 'type') 28 | op.drop_column('events', 'topic') 29 | ### end Alembic commands ### 30 | -------------------------------------------------------------------------------- /migrations/versions/f6205b904315_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: f6205b904315 4 | Revises: 5155b2a9f3fc 5 | Create Date: 2016-12-31 14:02:28.927938 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'f6205b904315' 11 | down_revision = '5155b2a9f3fc' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('speaker', sa.Column('city', sa.String(), nullable=True)) 21 | op.add_column('speaker', sa.Column('sponsorship_required', sa.String(), nullable=True)) 22 | ### end Alembic commands ### 23 | 24 | 25 | def downgrade(): 26 | ### commands auto generated by Alembic - please adjust! ### 27 | op.drop_column('speaker', 'sponsorship_required') 28 | op.drop_column('speaker', 'city') 29 | ### end Alembic commands ### 30 | -------------------------------------------------------------------------------- /migrations/versions/f873b99e5be3_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: f873b99e5be3 4 | Revises: 047f7c3db184 5 | Create Date: 2016-07-15 22:54:20.423244 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'f873b99e5be3' 11 | down_revision = '047f7c3db184' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column(u'pages', sa.Column('index', sa.Integer(), nullable=True)) 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.drop_column(u'pages', 'index') 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/f94439299737_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: f94439299737 4 | Revises: ('16e4da58dcbe', '526dec6f4aff') 5 | Create Date: 2017-07-18 01:27:49.757715 6 | 7 | """ 8 | 9 | from alembic import op 10 | import sqlalchemy as sa 11 | import sqlalchemy_utils 12 | 13 | 14 | # revision identifiers, used by Alembic. 15 | revision = 'f94439299737' 16 | down_revision = ('16e4da58dcbe', '526dec6f4aff') 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/fb3114b70f3c_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: fb3114b70f3c 4 | Revises: ('2a9e2f32ed34', '4132f684e5f1') 5 | Create Date: 2016-08-06 03:34:42.407181 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'fb3114b70f3c' 11 | down_revision = ('2a9e2f32ed34', '4132f684e5f1') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/fd0a931e7493_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: fd0a931e7493 4 | Revises: ('c79e6d36a194', '1b9c8698c632') 5 | Create Date: 2017-06-16 21:25:14.501897 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'fd0a931e7493' 11 | down_revision = ('c79e6d36a194', '1b9c8698c632') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /migrations/versions/fd3b97c8cc9a_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: fd3b97c8cc9a 4 | Revises: 3a9c159811ae 5 | Create Date: 2016-08-05 22:38:02.060000 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'fd3b97c8cc9a' 11 | down_revision = '3a9c159811ae' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.drop_column('discount_codes', 'tickets_number') 21 | ### end Alembic commands ### 22 | 23 | 24 | def downgrade(): 25 | ### commands auto generated by Alembic - please adjust! ### 26 | op.add_column('discount_codes', sa.Column('tickets_number', sa.BOOLEAN(), autoincrement=False, nullable=True)) 27 | ### end Alembic commands ### 28 | -------------------------------------------------------------------------------- /migrations/versions/fea0fa56ded9_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: fea0fa56ded9 4 | Revises: 4163ebc03101 5 | Create Date: 2016-08-09 16:53:57.433514 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'fea0fa56ded9' 11 | down_revision = '4163ebc03101' 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | ### commands auto generated by Alembic - please adjust! ### 20 | op.add_column('ticket_tag', sa.Column('event_id', sa.Integer(), nullable=True)) 21 | op.create_foreign_key(None, 'ticket_tag', 'events', ['event_id'], ['id']) 22 | ### end Alembic commands ### 23 | 24 | 25 | def downgrade(): 26 | ### commands auto generated by Alembic - please adjust! ### 27 | op.drop_constraint(None, 'ticket_tag', type_='foreignkey') 28 | op.drop_column('ticket_tag', 'event_id') 29 | ### end Alembic commands ### 30 | -------------------------------------------------------------------------------- /migrations/versions/ffbb4d4dad39_.py: -------------------------------------------------------------------------------- 1 | """empty message 2 | 3 | Revision ID: ffbb4d4dad39 4 | Revises: ('bf894430e0a9', 'bc2e43a3c3ea') 5 | Create Date: 2016-06-28 06:14:03.874061 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = 'ffbb4d4dad39' 11 | down_revision = ('bf894430e0a9', 'bc2e43a3c3ea') 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | import sqlalchemy_utils 16 | 17 | 18 | def upgrade(): 19 | pass 20 | 21 | 22 | def downgrade(): 23 | pass 24 | -------------------------------------------------------------------------------- /postgres-initdb.d/create_db.sql: -------------------------------------------------------------------------------- 1 | -- Open Event database 2 | CREATE USER john WITH PASSWORD 'start'; 3 | CREATE DATABASE oevent_2 WITH OWNER john; 4 | 5 | -- Test database 6 | CREATE USER open_event_user WITH PASSWORD 'test'; 7 | CREATE DATABASE opev_test WITH OWNER open_event_user; 8 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | -r requirements/prod.txt 2 | -------------------------------------------------------------------------------- /requirements/dev.txt: -------------------------------------------------------------------------------- 1 | -r common.txt 2 | nose>=1.3.7,<2 3 | pylint>=1.6.4,<2 4 | pep8>=1.7.0,<2 5 | -------------------------------------------------------------------------------- /requirements/prod.txt: -------------------------------------------------------------------------------- 1 | -r common.txt 2 | -------------------------------------------------------------------------------- /requirements/tests.txt: -------------------------------------------------------------------------------- 1 | -r dev.txt 2 | 3 | coverage>=4.2,<5 4 | dredd_hooks==0.1.0 5 | -------------------------------------------------------------------------------- /runtime.txt: -------------------------------------------------------------------------------- 1 | python-3.6.5 2 | -------------------------------------------------------------------------------- /scripts/check_error.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | pylint app 3 | pep8 app 4 | #path = pwd 5 | export PYTHONPATH=${PYTHONPATH}:/home/user/.../open-event-server 6 | find . -name "*.pyc" -exec rm -rf {} \; 7 | nosetests --with-coverage --cover-erase --cover-package=app --cover-html 8 | -------------------------------------------------------------------------------- /scripts/docker_run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | export INTEGRATE_SOCKETIO=false 3 | celery worker -A app.celery --loglevel=info & 4 | unset INTEGRATE_SOCKETIO 5 | gunicorn -b 0.0.0.0:5000 app:app --worker-class eventlet -w 1 6 | -------------------------------------------------------------------------------- /scripts/heroku.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | python3 manage.py db upgrade 3 | python3 populate_db.py 4 | export INTEGRATE_SOCKETIO=false 5 | # socketio has problems with celery "blocking" tasks 6 | # also socketio is not used in a celery task so no problem to turn it off 7 | chmod -R 0777 ./static 8 | celery worker -A app.celery --loglevel=info & 9 | gunicorn app:app -w 1 10 | # if not running on free dyno 11 | # define a separate worker and scale 12 | # https://devcenter.heroku.com/articles/celery-heroku 13 | -------------------------------------------------------------------------------- /scripts/init.sh: -------------------------------------------------------------------------------- 1 | set -e 2 | python3 create_db.py $ADMIN_EMAIL $ADMIN_PASSWORD 3 | python3 manage.py db stamp head 4 | -------------------------------------------------------------------------------- /scripts/opev_orga.enc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/scripts/opev_orga.enc -------------------------------------------------------------------------------- /scripts/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | export DATABASE_URL=postgresql://open_event_user:start@127.0.0.1:5432/test 3 | postgres -D /usr/local/pgsql/data >logfile 2>&1 & 4 | service postgresql restart 5 | python3 create_db.py 6 | # download and run redis 7 | if [ ! -d redis-3.2.1/src ]; then 8 | wget http://download.redis.io/releases/redis-3.2.1.tar.gz 9 | tar xzf redis-3.2.1.tar.gz 10 | rm redis-3.2.1.tar.gz 11 | cd redis-3.2.1 12 | make 13 | cd .. 14 | fi 15 | 16 | redis-3.2.1/src/redis-server & 17 | # run worker 18 | celery worker -A app.celery & 19 | # run app 20 | python3 manage.py runserver -h 0.0.0.0 -p 5000 21 | -------------------------------------------------------------------------------- /scripts/test_multiple_heads.sh: -------------------------------------------------------------------------------- 1 | lines=`python3 manage.py db heads | wc | awk '{print $1}'` 2 | if [ $lines -ne 1 ] 3 | then 4 | echo "Error: Multiple Migration Heads" 5 | exit 1 6 | else 7 | exit 0 8 | fi 9 | 10 | -------------------------------------------------------------------------------- /scripts/upgrade.sh: -------------------------------------------------------------------------------- 1 | set -e 2 | python3 manage.py db upgrade 3 | -------------------------------------------------------------------------------- /static/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | */ 3 | !.gitignore -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/tests/__init__.py -------------------------------------------------------------------------------- /tests/unittests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/tests/unittests/__init__.py -------------------------------------------------------------------------------- /tests/unittests/api/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/tests/unittests/api/__init__.py -------------------------------------------------------------------------------- /tests/unittests/api/helpers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/tests/unittests/api/helpers/__init__.py -------------------------------------------------------------------------------- /tests/unittests/api/validation/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/tests/unittests/api/validation/__init__.py -------------------------------------------------------------------------------- /tests/unittests/auth_helper.py: -------------------------------------------------------------------------------- 1 | from app.api.helpers.db import save_to_db 2 | from app.models.user import User 3 | 4 | 5 | def create_user(email, password, is_verified=True): 6 | """ 7 | Registers the user but not logs in 8 | """ 9 | user = User(email=email, 10 | password=password, 11 | is_verified=is_verified) 12 | save_to_db(user, "User created") 13 | return user 14 | 15 | 16 | def create_super_admin(email, password): 17 | user = create_user(email, password, is_verified=True) 18 | user.is_super_admin = True 19 | user.is_admin = True 20 | save_to_db(user, "User updated") 21 | return user 22 | -------------------------------------------------------------------------------- /tests/unittests/test_migrations.py: -------------------------------------------------------------------------------- 1 | from app import current_app as app 2 | from tests.unittests.utils import OpenEventTestCase 3 | from tests.unittests.setup_database import Setup 4 | from app.views.healthcheck import check_migrations 5 | 6 | 7 | class TestMigrations(OpenEventTestCase): 8 | def setUp(self): 9 | self.app = Setup.create_app() 10 | 11 | def test_migrations(self): 12 | with app.test_request_context(): 13 | result = check_migrations().split(',') 14 | self.assertEqual(result[0], 'success') 15 | -------------------------------------------------------------------------------- /tests/unittests/utils.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | 3 | from tests.unittests.setup_database import Setup 4 | 5 | from app.models.user import User 6 | from tests.unittests.auth_helper import create_super_admin 7 | 8 | 9 | def get_or_create_super_admin(): 10 | user = User.query.filter_by(email="test_super_admin@email.com").first() 11 | if not user: 12 | user = create_super_admin("test_super_admin@email.com", "test_super_admin") 13 | return user 14 | 15 | 16 | class OpenEventTestCase(unittest.TestCase): 17 | def setUp(self): 18 | self.app = Setup.create_app() 19 | 20 | def tearDown(self): 21 | Setup.drop_db() 22 | -------------------------------------------------------------------------------- /utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kreijstal-contributions/open-event-api/0efee54f6df7e9bfbf98539c8590d6033d9fb318/utils/__init__.py --------------------------------------------------------------------------------