def get_discount_code(discount_code): if represents_int(discount_code): return DiscountCode.query.filter_by(id=discount_code).filter_by( used_for=EVENT).first() else: return DiscountCode.query.filter_by(code=discount_code).filter_by( used_for=EVENT).first()
def get_credentials(event=None): if not event: settings = get_settings() if settings['stripe_secret_key'] and settings["stripe_publishable_key"] and settings[ 'stripe_secret_key'] != "" and \ settings["stripe_publishable_key"] != "": return { 'SECRET_KEY': settings['stripe_secret_key'], 'PUBLISHABLE_KEY': settings["stripe_publishable_key"] } else: return None else: if represents_int(event): authorization = StripeAuthorization.query.filter_by( event_id=event).first() else: authorization = event.stripe if authorization: return { 'SECRET_KEY': authorization.stripe_secret_key, 'PUBLISHABLE_KEY': authorization.stripe_publishable_key } else: return None
def get_credentials(event=None, override_mode=False, is_testing=False): if event and represents_int(event): event = DataGetter.get_event(event) settings = get_settings() if not override_mode: if settings['paypal_mode'] and settings['paypal_mode'] != "": if settings['paypal_mode'] == 'live': is_testing = False else: is_testing = True else: return None if is_testing: credentials = { 'USER': settings['paypal_sandbox_username'], 'PWD': settings['paypal_sandbox_password'], 'SIGNATURE': settings['paypal_sandbox_signature'], 'SERVER': 'https://api-3t.sandbox.paypal.com/nvp', 'CHECKOUT_URL': 'https://www.sandbox.paypal.com/cgi-bin/webscr', 'EMAIL': '' if not event or not event.paypal_email or event.paypal_email == "" else event.paypal_email } else: credentials = { 'USER': settings['paypal_live_username'], 'PWD': settings['paypal_live_password'], 'SIGNATURE': settings['paypal_live_signature'], 'SERVER': 'https://api-3t.paypal.com/nvp', 'CHECKOUT_URL': 'https://www.paypal.com/cgi-bin/webscr', 'EMAIL': '' if not event or not event.paypal_email or event.paypal_email == "" else event.paypal_email } if credentials['USER'] and credentials['USER'] and credentials['USER'] and credentials['USER'] != "" and \ credentials['USER'] != "" and credentials['USER'] != "": return credentials else: return None
def get_sponsors_json(event_id_or_sponsors): if represents_int(event_id_or_sponsors): sponsors = DataGetter.get_sponsors(event_id_or_sponsors) else: sponsors = event_id_or_sponsors data = [] for sponsor in sponsors: data.append(sponsor.serialize) return data
def get_event(event_id_or_identifier, should_abort=True): """Returns an Event given its id/identifier. Aborts with a 404 if event not found. """ if represents_int(event_id_or_identifier): event = Event.query.get(event_id_or_identifier) else: event = Event.query.filter_by(identifier=event_id_or_identifier).first() if event is None and should_abort: abort(404) return event
def get_event(event_id_or_identifier): """Returns an Event given its id/identifier. Aborts with a 404 if event not found. """ if represents_int(event_id_or_identifier): event = Event.query.get(event_id_or_identifier) else: event = Event.query.filter_by(identifier=event_id_or_identifier).first() if event is None: abort(404) return event
def get_event(event_id_or_identifier, should_abort=True): """Returns an Event given its id/identifier. Aborts with a 404 if event not found. :returns Event :rtype: Event """ if represents_int(event_id_or_identifier): event = Event.query.get(event_id_or_identifier) else: event = Event.query.filter_by(identifier=event_id_or_identifier).first() if event is None and should_abort: abort(404) return event
def wrapper(*args, **kwargs): event_id = kwargs.get('event_id') if not event_id: raise ServerError() # Check if event exists if not represents_int(event_id): event = EventModel.query.filter_by(identifier=event_id).first() else: event = EventModel.query.get(event_id) if event is None or event.deleted_at: raise NotFoundError(message='{} does not exist'.format(EventModel.__name__)) kwargs['event_id'] = event.id return func(*args, **kwargs)
def wrapper(*args, **kwargs): event_id = kwargs.get('event_id') if not event_id: raise ServerError() # Check if event exists if not represents_int(event_id): event = EventModel.query.filter_by(identifier=event_id).first() else: event = EventModel.query.get(event_id) if event is None or event.in_trash: raise NotFoundError( message='{} does not exist'.format(EventModel.__name__)) kwargs['event_id'] = event.id return func(*args, **kwargs)
def save_sponsors_from_json(json, event_id=None): event_id = event_id if event_id else json['event_id'] event = DataGetter.get_event(event_id) sponsors_enabled = json['sponsors_enabled'] if sponsors_enabled: ids = [] for sponsor in json['sponsors']: if sponsor['id'] and represents_int(sponsor['id']): item = Sponsor.query.get(sponsor['id']) else: item = Sponsor(event_id=event_id) if sponsor['name'].strip() == '': continue item.name = sponsor['name'] item.level = sponsor['level'] item.sponsor_type = sponsor['type'] item.url = sponsor['url'] item.description = sponsor['description'] save_to_db(item) if item.logo != sponsor['logo']: if sponsor['logo'] and sponsor['logo'] != '': item.logo = save_event_image( sponsor['logo'], UPLOAD_PATHS['sponsors']['logo'].format( event_id=int(event.id), id=int(item.id))) else: item.logo = '' save_to_db(item) ids.append(item.id) if len(ids) > 0: Sponsor.query.filter(~Sponsor.id.in_(ids)).filter_by( event_id=event_id).delete(synchronize_session='fetch') else: Sponsor.query.filter_by(event_id=event_id).delete( synchronize_session='fetch') event.state = json['state'] if event.location_name.strip( ) != '' else 'Draft' save_to_db(event) return {'event_id': event.id}
def save_sponsors_from_json(json, event_id=None): event_id = event_id if event_id else json['event_id'] event = DataGetter.get_event(event_id) sponsors_enabled = json['sponsors_enabled'] if sponsors_enabled: ids = [] for sponsor in json['sponsors']: if sponsor['id'] and represents_int(sponsor['id']): item = Sponsor.query.get(sponsor['id']) else: item = Sponsor(event_id=event_id) if sponsor['name'].strip() == '': continue item.name = sponsor['name'] item.level = sponsor['level'] item.sponsor_type = sponsor['type'] item.url = sponsor['url'] item.description = sponsor['description'] save_to_db(item) if item.logo != sponsor['logo']: if sponsor['logo'] and sponsor['logo'] != '': item.logo = save_event_image(sponsor['logo'], UPLOAD_PATHS['sponsors']['logo'].format( event_id=int(event.id), id=int(item.id) )) else: item.logo = '' save_to_db(item) ids.append(item.id) if len(ids) > 0: Sponsor.query.filter(~Sponsor.id.in_(ids)).filter_by(event_id=event_id).delete(synchronize_session='fetch') else: Sponsor.query.filter_by(event_id=event_id).delete(synchronize_session='fetch') event.state = json['state'] if event.location_name.strip() != '' else 'Draft' save_to_db(event) return { 'event_id': event.id }
def save_data(object, data, event_id, attrs): ids = [] for datum in data: if datum['id'] and represents_int(datum['id']): item = object.query.get(datum['id']) else: item = object(event_id=event_id) for attr in attrs: splitted = attr.split('-') if len(splitted) > 1: setattr(item, splitted[0], datum[splitted[0]] if str(datum[splitted[0]]).strip() != '' else None) else: setattr(item, attr, datum[attr]) save_to_db(item) ids.append(item.id) if len(ids) > 0: object.query.filter(~object.id.in_(ids)).filter_by(event_id=event_id).delete(synchronize_session=False)
def get_credentials(event=None): if not event: settings = get_settings() if settings['stripe_secret_key'] and settings["stripe_publishable_key"] and settings['stripe_secret_key'] != "" and \ settings["stripe_publishable_key"] != "": return { 'SECRET_KEY': settings['stripe_secret_key'], 'PUBLISHABLE_KEY': settings["stripe_publishable_key"] } else: return None else: if represents_int(event): authorization = StripeAuthorization.query.filter_by(event_id=event).first() else: authorization = event.stripe if authorization: return { 'SECRET_KEY': authorization.stripe_secret_key, 'PUBLISHABLE_KEY': authorization.stripe_publishable_key } else: return None
def save_event_from_json(json, event_id=None): """ Save an event from a wizard json :param event_id: :param json: :return: """ event_data = json['event'] state = json['state'] if event_id and represents_int(event_id): event = DataGetter.get_event(event_id) is_edit = True else: event = Event() is_edit = False start_time = get_event_time_field_format(event_data, 'start_time') end_time = get_event_time_field_format(event_data, 'end_time') if event_data['name'].strip() == '' or not start_time or not end_time: abort(400) if start_time > end_time: abort(400) event.name = event_data['name'] if event_data['event_url'].strip() != "": if not event_data['event_url'].startswith("http"): event.event_url = "https://" + event_data['event_url'] else: event.event_url = event_data['event_url'] else: event.event_url = "" event.location_name = event_data['location_name'] event.show_map = 1 if event_data['show_map'] else 0 event.start_time = start_time event.end_time = end_time event.timezone = event_data['timezone'] event.description = event_data['description'] event.privacy = event_data['privacy'] event.type = event_data['type'] event.topic = event_data['topic'] event.sub_topic = event_data['sub_topic'] event.latitude = event_data['latitude'] event.longitude = event_data['longitude'] event.searchable_location_name = get_searchable_location_name(event) event.state = state if event_data['location_name'].strip() != '' else 'Draft' event.organizer_description = event_data['organizer_description'] if event_data['has_organizer_info'] else '' event.organizer_name = event_data['organizer_name'] if event_data['has_organizer_info'] else '' event.code_of_conduct = event_data['code_of_conduct'] if event_data['has_code_of_conduct'] else '' save_to_db(event, "Event Saved") record_activity('create_event', event_id=event.id) db.session.add(event) db.session.flush() db.session.refresh(event) copyright = event.copyright if not event.copyright: copyright = EventCopyright(event=event) year = datetime.now().year copyright.licence = event_data['copyright']['licence'] _, _, licence_url, logo, _ = EVENT_LICENCES.get(copyright.licence, ('',) * 5) copyright.holder = event.organizer_name copyright.year = year copyright.logo = logo copyright.licence_url = licence_url save_social_links(event_data['social_links'], event) event.ticket_include = event_data['ticket_include'] if event.ticket_include: event.ticket_url = url_for('event_detail.display_event_detail_home', identifier=event.identifier, _external=True) save_tickets(event_data['tickets'], event) else: event.ticket_url = event_data['ticket_url'] event.discount_code_id = event_data['discount_code_id'] event.payment_country = event_data['payment_country'] event.payment_currency = event_data['payment_currency'] event.pay_by_paypal = event_data['pay_by_paypal'] event.pay_by_cheque = event_data['pay_by_cheque'] event.pay_by_bank = event_data['pay_by_bank'] event.pay_onsite = event_data['pay_onsite'] event.pay_by_stripe = event_data['pay_by_stripe'] event.cheque_details = event_data['cheque_details'] if event.pay_by_cheque else '' event.bank_details = event_data['bank_details'] if event.pay_by_bank else '' event.onsite_details = event_data['onsite_details'] if event.pay_onsite else '' if event.pay_by_paypal: event.paypal_email = event_data['paypal_email'] else: event.paypal_email = None if event.pay_by_stripe and event_data['stripe']['linked']: stripe_data = event_data['stripe'] stripe = event.stripe if not stripe: stripe = StripeAuthorization(event_id=event.id) stripe.stripe_secret_key = stripe_data['stripe_secret_key'] stripe.stripe_refresh_token = stripe_data['stripe_refresh_token'] stripe.stripe_publishable_key = stripe_data['stripe_publishable_key'] stripe.stripe_user_id = stripe_data['stripe_user_id'] stripe.stripe_email = stripe_data['stripe_email'] db.session.add(stripe) else: if event.stripe: db.session.delete(event.stripe) event.tax_allow = bool(event_data['tax_allow'] == 1) if event.tax_allow: tax_data = event_data['tax'] tax = event.tax if not tax: tax = Tax(event_id=event.id) tax.country = tax_data['country'] tax.tax_name = tax_data['tax_name'] tax.send_invoice = tax_data['send_invoice'] tax.tax_id = tax_data['tax_id'] tax.registered_company = tax_data['registered_company'] tax.address = tax_data['address'] tax.state = tax_data['state'] tax.zip = tax_data['zip'] tax.tax_include_in_price = tax_data['tax_include_in_price'] tax.invoice_footer = tax_data['invoice_footer'] db.session.add(tax) else: if event.tax: db.session.delete(event.tax) if event.logo != event_data['logo']: if event_data['logo'] and event_data['logo'].strip() != '': event.logo = save_logo(event_data['logo'], event.id) elif event.logo != '': event.logo = '' save_to_db(event) image_sizes = DataGetter.get_image_sizes_by_type(type='event') if not image_sizes: image_sizes = ImageSizes(full_width=1300, full_height=500, full_aspect='on', icon_width=75, icon_height=30, icon_aspect='on', thumbnail_width=500, thumbnail_height=200, thumbnail_aspect='on', type='event') save_to_db(image_sizes, "Image Sizes Saved") if event.background_url != event_data['background_url']: if event_data['background_url'] and event_data['background_url'].strip() != '': background_url = event_data['background_url'] jpg_image = convert_background_to_jpg(background_url) event.background_url = save_untouched_background(background_url, event.id) event.large = save_resized_background(jpg_image, event.id, 'large', image_sizes) event.thumbnail = save_resized_background(jpg_image, event.id, 'thumbnail', image_sizes) event.icon = save_resized_background(jpg_image, event.id, 'icon', image_sizes) os.remove(jpg_image) save_to_db(event) elif event.background_url != '': event.background_url = '' event.large = '' event.thumbnail = '' event.icon = '' save_to_db(event) if not is_edit: role = Role.query.filter_by(name=ORGANIZER).first() uer = UsersEventsRoles(login.current_user, event, role) if save_to_db(uer, "Event saved"): new_email_notification_setting = EmailNotification(next_event=1, new_paper=1, session_schedule=1, session_accept_reject=1, after_ticket_purchase=1, user_id=login.current_user.id, event_id=event.id) save_to_db(new_email_notification_setting, "EmailSetting Saved") return { 'event_id': event.id }
def get_event_json(event_id): """ Generate a json to seed the wizard with from an exisiting event :param event_id: :return: """ if represents_int(event_id): event = DataGetter.get_event(event_id) else: event = event_id result = { "id": event.id, "name": event.name, "location_name": event.location_name, "show_map": event.show_map, "start_time_date": event.start_time.strftime('%m/%d/%Y') if event.start_time else '', "start_time_time": event.start_time.strftime('%H:%M') if event.start_time else '', "end_time_date": event.end_time.strftime('%m/%d/%Y') if event.end_time else '', "end_time_time": event.end_time.strftime('%H:%M') if event.end_time else '', "timezone": event.timezone, "description": event.description, "background_url": event.background_url, "logo": event.logo, "has_organizer_info": (event.organizer_description != '' or event.organizer_name != ''), "organizer_name": event.organizer_name, "organizer_description": event.organizer_description, "event_url": event.event_url, "social_links": [], "ticket_include": event.ticket_include, "tickets": [], "ticket_url": event.ticket_url, "discount_code_id": event.discount_code_id, "discount_code": '', "payment_country": event.payment_country, "payment_currency": event.payment_currency, "pay_by_paypal": event.pay_by_paypal, "pay_by_stripe": event.pay_by_stripe, "paypal_email": event.paypal_email, "pay_by_cheque": event.pay_by_cheque, "pay_by_bank": event.pay_by_bank, "pay_onsite": event.pay_onsite, "privacy": event.privacy, "type": event.type, "topic": event.topic, "sub_topic": event.sub_topic, "has_code_of_conduct": event.code_of_conduct != '', "code_of_conduct": event.code_of_conduct, "copyright": event.copyright.serialize if event.copyright and event.copyright.licence else None, "tax_allow": 1 if event.tax_allow else 0, "tax": event.tax.serialize if event.tax else None, "latitude": event.latitude, "longitude": event.longitude, "stripe": event.stripe.serialize if event.stripe else None, "state": event.state, "cheque_details": event.cheque_details, "bank_details": event.bank_details, "onsite_details": event.onsite_details } for social_link in event.social_link: if social_link.name == 'External Event URL': result["event_url"] = social_link.link else: result["social_links"].append(social_link.serialize) for ticket in event.tickets: result["tickets"].append(ticket.serialize) if event.stripe: result['stripe']['linked'] = True return result
def get_discount_code(discount_code): if represents_int(discount_code): return DiscountCode.query.filter_by(id=discount_code).filter_by(used_for=EVENT).first() else: return DiscountCode.query.filter_by(code=discount_code).filter_by(used_for=EVENT).first()