示例#1
0
def create_easy(request, enc):
    (flowgram, new) = controller.get_working_flowgram(request.user)

    hash_parts = ["%s-%s" % (key, request.GET[key]) for key in sorted(request.GET.keys())]

    controller.record_stat(request, "view_create_website", "0", "")

    return helpers.redirect("/r/%s/%s" % (flowgram.id, "__".join(hash_parts)))
示例#2
0
def add_page(user, url, html, title):
    # Modifying the HTML to add a base tag, etc.
    (html, url) = fix.process_page(html, url)
    
    # Creating and saving the page.
    page = models.Page.objects.create(title=title, source_url=url)
    html = helpers.cache_css_files(page, html)

    (flowgram, is_new) = controller.get_working_flowgram(user)
    if is_new:
        log.action('Created new working Flowgram with ID %s as a result of calling get_working_flowgram in add_page.' % \
                       flowgram.id)
    page = controller.create_page_to_flowgram(flowgram, page, html)
        
    # Removing the user's 'just_published' attribute.
    profile = user.get_profile()
    profile.just_published = False
    profile.save()

    return (flowgram, page)
示例#3
0
def upload(request, enc):
    if request.FILES.has_key('file'):
        # do later in queue once per slide
        # adds a page to the fg
        # html will be like before but embed a swf that is centered
        # page = Page.objects.create(title=request.FILES['file']['filename'], position=255)
        # page = controller.create_page_to_flowgram(fg, page, html)

        (fg, new) = controller.get_working_flowgram(request.user)
        if new:
            log.debug("Action log: new working flowgram %s created during add_page" % fg.id)

        # create queue item
        ppt_import_request = models.PptImportRequest.objects.create(flowgram=fg)

        #     2. Send to S3
        ppt_import_request.save_ppt_to_s3(request.FILES['file']['content'])
        
        return data_response.create(enc, 'ok', ppt_import_request.id)
    else:
        return error_response.create(enc, 'No file was uploaded.')
示例#4
0
def file_upload(request):
    # Uses GET parameters instead of POST for passing data, handled by Flex.
    file = request.FILES['file']
    content = file['content']
    content_type = file['content-type']
    filename = file['filename']
    filetype = request.GET.get('filetype', '')
    enc = request.GET.get('enc', 'json')
    
    flowgram_id = request.GET.get('flowgram_id')
    flowgram = get_object_or_404(models.Flowgram, id=flowgram_id) \
                   if flowgram_id \
                   else controller.get_working_flowgram(request.user)
    if not permissions.can_edit(request.user, flowgram):
        return error_response.create(enc, 'Does not have edit_flowgram permission.' \
                                              if localsettings.DEBUG \
                                              else 'Permission violation')

    if filetype == 'image' or content_type.startswith('image'):
        return handle_file_upload_image(enc, content, content_type, filetype, filename, flowgram)
    elif filetype in DOC_TYPE_EXTENSIONS:
        return handle_file_upload_doc(enc, content, content_type, filetype, filename, flowgram)
    elif filetype == 'media':
        page = None
        try:
            page_id = request.GET.get('page_id')
            page = models.Page.objects.get(id=page_id)
        except:
            pass

        if page and not permissions.can_edit(request.user, page):
            return error_response.create(enc, 'Does not have edit_page permission.' \
                                                  if localsettings.DEBUG \
                                                  else 'Permission violation')

        return handle_file_upload_media(enc, content, content_type, filetype, filename, \
                                            page or flowgram)
    else:
        return error_response.create(enc, 'Unsupported file type')
示例#5
0
def get_working_fg(request):
    enc = helpers.get(request, 'enc', 'json')
    if not request.user.is_authenticated():
        return error_response.create(enc, 'Login required')
    return data_response.create(enc, 'ok', controller.get_working_flowgram(request.user)[0].id)
示例#6
0
    response = helpers.req_render_to_response(request, 'facebook/albums.html', {'html' : html})
    return response

@require_auth
@login_required
def create_fg_from_aid(request):
    facebook_token = request.session['facebook_token']
    
    try:
        photos = minifb.call("facebook.photos.get", localsettings.FACEBOOK_API_KEY, FACEBOOK_API_SECRET_MINIFB, session_key=facebook_token, aid=request.GET["aid"])
    except minifb.FacebookError, e:
        if e.error_code == 102:
            return HttpResponse("<script>top.location = \"%s\";</script>" % login_url())
        raise
    
    fg, new = controller.get_working_flowgram(request.user)
    
    for photo in photos:
        title = photo["caption"]
        link = photo["src_big"]
        
        if title == "":
            title = "photo"
        
        html = "<html><head><title>%s</title>" \
                    "<style>@import url(\"/media/css/photo_importers.css\");</style>" \
                "</head><body><img src=\"%s\" /></body></html>" % (title, link)

        page = Page(title=title, source_url=link)
        page = controller.create_page_to_flowgram(fg, page, html)