Example #1
0
 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()
Example #2
0
 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
Example #3
0
    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_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)
Example #10
0
    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)
Example #14
0
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, 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_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
Example #17
0
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
    }
Example #18
0
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()