Beispiel #1
0
def sponsor_logos_url_task(self, event_id):
    sponsors = Sponsor.query.filter_by(event_id=event_id, deleted_at=None).all()
    for sponsor in sponsors:
        try:
            logging.info('Sponsor logo url generation task started {}'.format(sponsor.logo_url))
            new_logo_url = create_save_resized_image(image_file=sponsor.logo_url, resize=False)
            sponsor.logo_url = new_logo_url
            save_to_db(sponsor)
            logging.info('Sponsor logo url successfully generated')
        except(urllib.error.HTTPError, urllib.error.URLError):
            logging.exception('Error encountered while logo generation')
    def test_create_save_resized_image(self):
        """Method to test create resized images"""

        with app.test_request_context():
            image_url_test = image_link
            width = 500
            height = 200
            aspect_ratio = False
            upload_path = 'test'
            resized_image_url = create_save_resized_image(image_url_test, width, aspect_ratio, height, upload_path, ext='png')
            resized_image_path = urlparse(resized_image_url).path
            resized_image_file = app.config.get('BASE_DIR') + resized_image_path
            resized_width, resized_height = self.getsizes(resized_image_file)
            self.assertTrue(os.path.exists(resized_image_file))
            self.assertEqual(resized_width, width)
            self.assertEqual(resized_height, height)
Beispiel #3
0
 def test_create_save_resized_image(self):
     with app.test_request_context():
         image_url_test = 'https://cdn.pixabay.com/photo/2014/09/08/17/08/hot-air-balloons-439331_960_720.jpg'
         width = 500
         height = 200
         aspect_ratio = False
         upload_path = 'test'
         resized_image_url = create_save_resized_image(image_url_test,
                                                       width,
                                                       aspect_ratio,
                                                       height,
                                                       upload_path,
                                                       ext='png')
         resized_image_file = app.config.get(
             'BASE_DIR') + resized_image_url.split('/localhost')[1]
         resized_width, resized_height = self.getsizes(resized_image_file)
         self.assertTrue(os.path.exists(resized_image_file))
         self.assertEqual(resized_width, width)
         self.assertEqual(resized_height, height)
    def test_create_save_resized_image(self):
        """Method to test create resized images"""

        with app.test_request_context():
            image_url_test = 'https://cdn.pixabay.com/photo/2017/06/17/10/55/hot-air-balloon-2411851_1280.jpg'
            width = 500
            height = 200
            aspect_ratio = False
            upload_path = 'test'
            resized_image_url = create_save_resized_image(image_url_test,
                                                          width,
                                                          aspect_ratio,
                                                          height,
                                                          upload_path,
                                                          ext='png')
            resized_image_path = urlparse(resized_image_url).path
            resized_image_file = app.config.get(
                'BASE_DIR') + resized_image_path
            resized_width, resized_height = self.getsizes(resized_image_file)
            self.assertTrue(os.path.exists(resized_image_file))
            self.assertEqual(resized_width, width)
            self.assertEqual(resized_height, height)
Beispiel #5
0
    def create_object(self, data, view_kwargs):
        identifier = 'identifier'

        if view_kwargs.get('identifier').isdigit():
            identifier = 'id'

        event = safe_query(
            Event, identifier, view_kwargs['identifier'], 'event_' + identifier
        )
        tickets = Ticket.query.filter_by(event_id=event.id).all()
        social_links = SocialLink.query.filter_by(event_id=event.id).all()
        sponsors = Sponsor.query.filter_by(event_id=event.id).all()
        microlocations = Microlocation.query.filter_by(event_id=event.id).all()
        tracks = Track.query.filter_by(event_id=event.id).all()
        custom_forms = CustomForms.query.filter_by(event_id=event.id).all()
        discount_codes = DiscountCode.query.filter_by(event_id=event.id).all()
        speaker_calls = SpeakersCall.query.filter_by(event_id=event.id).all()

        db.session.expunge(event)  # expunge the object from session
        make_transient(event)
        delattr(event, 'id')
        event.identifier = get_new_event_identifier()
        save_to_db(event)

        # Removes access_codes, order_tickets, ticket_tags for the new tickets created.
        for ticket in tickets:
            db.session.expunge(ticket)  # expunge the object from session
            make_transient(ticket)
            ticket.event_id = event.id
            delattr(ticket, 'id')
            save_to_db(ticket)

        for link in social_links:
            db.session.expunge(link)  # expunge the object from session
            make_transient(link)
            link.event_id = event.id
            delattr(link, 'id')
            save_to_db(link)

        for sponsor in sponsors:
            db.session.expunge(sponsor)  # expunge the object from session
            make_transient(sponsor)
            sponsor.event_id = event.id
            logo_url = create_save_resized_image(
                image_file=sponsor.logo_url, resize=False
            )
            delattr(sponsor, 'id')
            sponsor.logo_url = logo_url
            save_to_db(sponsor)

        for location in microlocations:
            db.session.expunge(location)  # expunge the object from session
            make_transient(location)
            location.event_id = event.id
            delattr(location, 'id')
            save_to_db(location)

        # No sessions are copied for new tracks
        for track in tracks:
            db.session.expunge(track)  # expunge the object from session
            make_transient(track)
            track.event_id = event.id
            delattr(track, 'id')
            save_to_db(track)

        for call in speaker_calls:
            db.session.expunge(call)  # expunge the object from session
            make_transient(call)
            call.event_id = event.id
            delattr(call, 'id')
            save_to_db(call)

        for code in discount_codes:
            db.session.expunge(code)  # expunge the object from session
            make_transient(code)
            code.event_id = event.id
            delattr(code, 'id')
            save_to_db(code)

        for form in custom_forms:
            db.session.expunge(form)  # expunge the object from session
            make_transient(form)
            form.event_id = event.id
            delattr(form, 'id')
            save_to_db(form)

        return event
Beispiel #6
0
def create_event_copy(identifier):
    id = 'identifier'

    if identifier.isdigit():
        id = 'id'

    event = safe_query(db, Event, id, identifier, 'event_' + id)

    if not has_access('is_coorganizer', event_id=event.id):
        return abort(make_response(jsonify(error="Access Forbidden"), 403))
    tickets = Ticket.query.filter_by(event_id=event.id).all()
    social_links = SocialLink.query.filter_by(event_id=event.id).all()
    sponsors = Sponsor.query.filter_by(event_id=event.id).all()
    microlocations = Microlocation.query.filter_by(event_id=event.id).all()
    tracks = Track.query.filter_by(event_id=event.id).all()
    custom_forms = CustomForms.query.filter_by(event_id=event.id).all()
    discount_codes = DiscountCode.query.filter_by(event_id=event.id).all()
    speaker_calls = SpeakersCall.query.filter_by(event_id=event.id).all()

    db.session.expunge(event)  # expunge the object from session
    make_transient(event)
    delattr(event, 'id')
    event.identifier = get_new_event_identifier()
    db.session.add(event)
    db.session.commit()

    # Removes access_codes, order_tickets, ticket_tags for the new tickets created.
    for ticket in tickets:
        ticket_id = ticket.id
        db.session.expunge(ticket)  # expunge the object from session
        make_transient(ticket)
        ticket.event_id = event.id
        delattr(ticket, 'id')
        db.session.add(ticket)
        db.session.commit()

    for link in social_links:
        link_id = link.id
        db.session.expunge(link)  # expunge the object from session
        make_transient(link)
        link.event_id = event.id
        delattr(link, 'id')
        db.session.add(link)
        db.session.commit()

    for sponsor in sponsors:
        sponsor_id = sponsor.id
        db.session.expunge(sponsor)  # expunge the object from session
        make_transient(sponsor)
        sponsor.event_id = event.id
        logo_url = create_save_resized_image(image_file=sponsor.logo_url,
                                             resize=False)
        delattr(sponsor, 'id')
        sponsor.logo_url = logo_url
        db.session.add(sponsor)
        db.session.commit()

    for location in microlocations:
        location_id = location.id
        db.session.expunge(location)  # expunge the object from session
        make_transient(location)
        location.event_id = event.id
        delattr(location, 'id')
        db.session.add(location)
        db.session.commit()

    # No sessions are copied for new tracks
    for track in tracks:
        track_id = track.id
        db.session.expunge(track)  # expunge the object from session
        make_transient(track)
        track.event_id = event.id
        delattr(track, 'id')
        db.session.add(track)
        db.session.commit()

    for call in speaker_calls:
        call_id = call.id
        db.session.expunge(call)  # expunge the object from session
        make_transient(call)
        call.event_id = event.id
        delattr(call, 'id')
        db.session.add(call)
        db.session.commit()

    for code in discount_codes:
        code_id = code.id
        db.session.expunge(code)  # expunge the object from session
        make_transient(code)
        code.event_id = event.id
        delattr(code, 'id')
        db.session.add(code)
        db.session.commit()

    for form in custom_forms:
        form_id = form.id
        db.session.expunge(form)  # expunge the object from session
        make_transient(form)
        form.event_id = event.id
        delattr(form, 'id')
        db.session.add(form)
        db.session.commit()

    return jsonify({
        'id': event.id,
        'identifier': event.identifier,
        "copied": True
    })
    def create_object(self, data, view_kwargs):
        identifier = 'identifier'

        if view_kwargs.get('identifier').isdigit():
            identifier = 'id'

        event = safe_query(db, Event, identifier, view_kwargs['identifier'], 'event_'+identifier)
        tickets = Ticket.query.filter_by(event_id=event.id).all()
        social_links = SocialLink.query.filter_by(event_id=event.id).all()
        sponsors = Sponsor.query.filter_by(event_id=event.id).all()
        microlocations = Microlocation.query.filter_by(event_id=event.id).all()
        tracks = Track.query.filter_by(event_id=event.id).all()
        custom_forms = CustomForms.query.filter_by(event_id=event.id).all()
        discount_codes = DiscountCode.query.filter_by(event_id=event.id).all()
        speaker_calls = SpeakersCall.query.filter_by(event_id=event.id).all()

        db.session.expunge(event)  # expunge the object from session
        make_transient(event)
        delattr(event, 'id')
        event.identifier = get_new_event_identifier()
        db.session.add(event)
        db.session.commit()

        # Removes access_codes, order_tickets, ticket_tags for the new tickets created.
        for ticket in tickets:
            ticket_id = ticket.id
            db.session.expunge(ticket)  # expunge the object from session
            make_transient(ticket)
            ticket.event_id = event.id
            delattr(ticket, 'id')
            db.session.add(ticket)
            db.session.commit()

        for link in social_links:
            link_id = link.id
            db.session.expunge(link)  # expunge the object from session
            make_transient(link)
            link.event_id = event.id
            delattr(link, 'id')
            db.session.add(link)
            db.session.commit()

        for sponsor in sponsors:
            sponsor_id = sponsor.id
            db.session.expunge(sponsor)  # expunge the object from session
            make_transient(sponsor)
            sponsor.event_id = event.id
            logo_url = create_save_resized_image(image_file=sponsor.logo_url, resize=False)
            delattr(sponsor, 'id')
            sponsor.logo_url = logo_url
            db.session.add(sponsor)
            db.session.commit()

        for location in microlocations:
            location_id = location.id
            db.session.expunge(location)  # expunge the object from session
            make_transient(location)
            location.event_id = event.id
            delattr(location, 'id')
            db.session.add(location)
            db.session.commit()

        # No sessions are copied for new tracks
        for track in tracks:
            track_id = track.id
            db.session.expunge(track)  # expunge the object from session
            make_transient(track)
            track.event_id = event.id
            delattr(track, 'id')
            db.session.add(track)
            db.session.commit()

        for call in speaker_calls:
            call_id = call.id
            db.session.expunge(call)  # expunge the object from session
            make_transient(call)
            call.event_id = event.id
            delattr(call, 'id')
            db.session.add(call)
            db.session.commit()

        for code in discount_codes:
            code_id = code.id
            db.session.expunge(code)  # expunge the object from session
            make_transient(code)
            code.event_id = event.id
            delattr(code, 'id')
            db.session.add(code)
            db.session.commit()

        for form in custom_forms:
            form_id = form.id
            db.session.expunge(form)  # expunge the object from session
            make_transient(form)
            form.event_id = event.id
            delattr(form, 'id')
            db.session.add(form)
            db.session.commit()

        return event