def get(self):
     template = main.jinja_env.get_template("templates/insert_item.html")
     urlsafe_entity_key = self.request.get('item-entity-key')
     if "user_info" in self.session:
         user_info = json.loads(self.session["user_info"])
         if len(urlsafe_entity_key) > 0:
             item_key = ndb.Key(urlsafe=urlsafe_entity_key)
             item = item_key.get()
             self.response.out.write(
                 template.render({
                     "user_info":
                     user_info,
                     "form_action":
                     blobstore.create_upload_url('/insert-item'),
                     "item":
                     item
                 }))
         else:
             self.response.out.write(
                 template.render({
                     "user_info":
                     user_info,
                     "form_action":
                     blobstore.create_upload_url('/insert-item')
                 }))
     else:
         self.response.out.write(template.render())
示例#2
0
def create_challenge_set_donation(request, template_id, state, club_id, club_class):
    club = get_object_or_404(club_class, id=club_id)
    template = get_object_or_404(ChallengeTemplate, id=template_id)
    form = ChallengeConfigureForm()
    upload_url = blobstore.create_upload_url('/challenges/create/%s/%s/%s/%s' % (
        template_id, state, 'o' if club_class == Club else 't', club_id))
    if request.method == 'POST':
        form = ChallengeConfigureForm(request.POST)
        if form.is_valid():
            uploaded_file = None
            if request.FILES:
                upload_form = UploadForm(request.POST, request.FILES)
                uploaded_file = upload_form.save()
            challenge = _create_challenge(club_class, club_id, form, request, template, image=uploaded_file)
            redirect_url = '/challenges/%s/share' % challenge.id
            if request.is_ajax():
                return HttpResponse(redirect_url)
            return redirect(redirect_url)
        if request.is_ajax():
            return HttpResponse("%s|%s" % (
                blobstore.create_upload_url(upload_url),
                '<br/>'.join(['<br/>'.join([_e for _e in e]) for e in form.errors.values()])))
    template_data = {
        'club': club,
        'club_class': club_class.__name__,
        'form': form,
        'state': state,
        'template': template,
        'upload_url': upload_url}
    return render(
        request,
        'spudderspuds/challenges/pages/create_challenge_configure.html',
        template_data)
示例#3
0
def edit_image(request, challenge_id):
    """
    Allows the owner of a challenge to change the related image
    :param request: any request
    :param challenge_id: a valid ID of a Challenge object
    :return: a simple form page
    """
    challenge = Challenge.objects.get(id=challenge_id)
    form = ChallengeImageEditForm()
    upload_url = blobstore.create_upload_url('/challenges/edit_image/%s' % challenge_id)

    if request.method == 'POST':
        form = ChallengeConfigureForm(request.POST)
        if form.is_valid():
            uploaded_file = None
            if request.FILES:
                upload_form = UploadForm(request.POST, request.FILES)
                uploaded_file = upload_form.save()
            challenge.image = uploaded_file
            redirect_url = '/fan'
            if request.is_ajax():
                return HttpResponse(redirect_url)
            return redirect(redirect_url)
        if request.is_ajax():
            return HttpResponse("%s|%s" % (
                blobstore.create_upload_url(upload_url),
                '<br/>'.join(['<br/>'.join([_e for _e in e]) for e in form.errors.values()])))

    return render(request, 'spudderspuds/challenges/pages/edit_image.html', {
        'upload_url': upload_url,
        'form': form,
        'image_url': '/file/serve/%s' % challenge.image if challenge.image else None,
        'challenge_name': challenge.name
    })
示例#4
0
def _state_engine_process_upload(request, challenge, engine, state,
                                 template_data):
    response = None
    template = challenge.template
    beneficiary = EntityController.GetWrappedEntityByTypeAndId(
        challenge.recipient_entity_type, challenge.recipient_entity_id,
        EntityBase.EntityWrapperByEntityType(challenge.recipient_entity_type))
    participation = ChallengeParticipation.objects.get(
        challenge=challenge,
        participating_entity_id=request.current_role.entity.id,
        participating_entity_type=request.current_role.entity_type)
    redirect_url = '/challenges/%s/%s/4?just_pledged=True' % (challenge.id,
                                                              engine)
    action_upload_image = 'upload_image'
    image_form = UploadImageForm(initial={'action': action_upload_image})
    upload_url = '/challenges/%s/accept' % challenge.id
    if request.method == 'POST':
        action = request.POST.get('action')
        if action == action_upload_image:
            if request.FILES:
                upload_form = UploadForm(request.POST, request.FILES)
                file = upload_form.save()
                participation.image = file
                participation.state = ChallengeParticipation.ACCEPTED_STATE
                participation.state_engine = engine
                participation.save()
                if feature_is_enabled('tracking_pixels'):
                    EventController.RegisterEvent(
                        request, EventController.CHALLENGE_ACCEPTED)
            if request.is_ajax():
                response = HttpResponse(redirect_url)
                return response, state
            response = redirect(redirect_url)
            return response, state
        if request.is_ajax():
            response = HttpResponse(
                "%s|%s" %
                (blobstore.create_upload_url(upload_url), '<br/>'.join([
                    '<br/>'.join([_e for _e in e])
                    for e in image_form.errors.values()
                ])))
            return response, state
    template_data['template'] = template
    template_data['beneficiary'] = beneficiary
    template_data['participation'] = participation
    template_data['redirect_url'] = redirect_url
    template_data['upload_url'] = blobstore.create_upload_url(upload_url)
    response = render(
        request,
        'spudderspuds/challenges/pages_ajax/challenge_accept_upload.html',
        template_data)
    return response, state
示例#5
0
def challenge_challenge_accept_notice(request,
                                      state=None,
                                      club_entity_type=None,
                                      club_id=None,
                                      participation_id=None):
    if state and club_entity_type and club_id:
        ccp = ChallengeChallengeParticipation(
            participating_entity_id=request.current_role.entity.id,
            participating_entity_type=request.current_role.entity_type,
            recipient_entity_id=club_id,
            recipient_entity_type=club_entity_type)
        ccp.save()
        return redirect('/challenges/challenge_challenge/%s/upload' % ccp.id)
    participation = get_object_or_404(ChallengeChallengeParticipation,
                                      id=participation_id)
    form = ChallengeChallengeParticipationForm()
    upload_url = '/challenges/challenge_challenge/%s/upload' % participation_id
    if request.method == 'POST':
        form = ChallengeChallengeParticipationForm(request.POST)
        if form.is_valid():
            participation.youtube_video_id = form.cleaned_data.get(
                'youtube_video_id')
            participation.name = form.cleaned_data.get('challenge_name')
            participation.description = form.cleaned_data.get(
                'challenge_description')
            participation.state = ChallengeChallengeParticipation.STATE_COMPLETE
            if request.FILES:
                file = UploadForm(request.POST, request.FILES).save()
                participation.image = file
            participation.save()
            redirect_url = '/challenges/challenge_challenge/%s/thanks?just_submitted=True' % participation_id
            if feature_is_enabled('tracking_pixels'):
                EventController.RegisterEvent(
                    request, EventController.CHALLENGE_ACCEPTED)
            if request.is_ajax():
                return HttpResponse(redirect_url)
            return redirect(redirect_url)
        if request.is_ajax():
            return HttpResponse(
                "%s|%s" %
                (blobstore.create_upload_url(upload_url), '<br/>'.join([
                    '<br/>'.join([_e for _e in e])
                    for e in form.errors.values()
                ])))
    template_data = {
        'form': form,
        'upload_url': blobstore.create_upload_url(upload_url)
    }
    return render(
        request,
        'spudderspuds/challenges/pages/challenge_challenge_accept_upload.html',
        template_data)
示例#6
0
def get_template_parameters():
    values = {}
    email = get_user_email()
    if email:
        values['learner'] = data.is_learner(email)
        values['expert'] = data.is_expert(email)
        values['logout_url'] = users.create_logout_url('/')
        values['upload_url'] = blobstore.create_upload_url('/profile-save')
        values['user'] = email
    else:
        values['login_url'] = users.create_login_url('/welcome')
        values['upload_url'] = blobstore.create_upload_url('/profile-save')
    return values
示例#7
0
def edit_team_page(request, page_id):
    team_page = TeamPage.objects.select_related('image').get(pk=page_id)
    form = EditTeamForm(initial=team_page.__dict__, image=team_page.image)

    if request.method == 'POST':
        form = EditTeamForm(request.POST, team_id=team_page.id, image=team_page.image)

        if form.is_valid():

            upload_form = UploadForm(request.POST, request.FILES)
            uploaded_file_model = None
            if upload_form.is_valid():
                uploaded_file_model = upload_form.save()

            data = form.cleaned_data
            team_page.name = data.get('name')
            team_page.contact_details = data.get('contact_details')
            team_page.free_text = data.get('free_text')
            if uploaded_file_model:
                team_page.image = uploaded_file_model
            team_page.save()
            return HttpResponseRedirect('/team/%s' % page_id)

    return render(request, 'spudderspuds/teams/pages/edit_team.html', {
        'page': team_page,
        'form': form,
        'upload_url': blobstore.create_upload_url('/team/%s/edit' % page_id)
    })
示例#8
0
def edit_team_page(request, page_id):
    team_page = TeamPage.objects.select_related('image').get(pk=page_id)
    form = EditTeamForm(initial=team_page.__dict__, image=team_page.image)

    if request.method == 'POST':
        form = EditTeamForm(request.POST,
                            team_id=team_page.id,
                            image=team_page.image)

        if form.is_valid():

            upload_form = UploadForm(request.POST, request.FILES)
            uploaded_file_model = None
            if upload_form.is_valid():
                uploaded_file_model = upload_form.save()

            data = form.cleaned_data
            team_page.name = data.get('name')
            team_page.contact_details = data.get('contact_details')
            team_page.free_text = data.get('free_text')
            if uploaded_file_model:
                team_page.image = uploaded_file_model
            team_page.save()
            return HttpResponseRedirect('/team/%s' % page_id)

    return render(
        request, 'spudderspuds/teams/pages/edit_team.html', {
            'page': team_page,
            'form': form,
            'upload_url': blobstore.create_upload_url(
                '/team/%s/edit' % page_id)
        })
示例#9
0
 def get(self):
     stream_name = self.request.get('stream_name')
     if stream_name:
         key = ndb.Key('Stream', stream_name)
         stream = key.get()
     else:
         stream = None
     if stream:
         increment = self.request.get('increment')
         if increment:
             stream.views += int(increment)
             stream.recent_views.append(datetime.datetime.now())
             stream.put()
         cursor = self.request.get('cursor')
         cursor = int(cursor) if cursor else 0
         upload_url = blobstore.create_upload_url('/upload_photo')
         template_values = {
             'stream': stream,
             'cursor': cursor,
             'upload_url': upload_url
         }
         template = JINJA_ENVIRONMENT.get_template('views/view-stream.html')
         self.response.headers['Content-Type'] = 'text/html; charset=utf-8'
         self.response.write(template.render(template_values))
     else:
         streams = Stream.query().order(Stream.date).fetch()
         template_values = {
             'streams': streams,
         }
         template = JINJA_ENVIRONMENT.get_template(
             'views/view-streams.html')
         self.response.headers['Content-Type'] = 'text/html; charset=utf-8'
         self.response.write(template.render(template_values))
示例#10
0
 def addCommon(self):
     # get all the guide items from datastore
     self.addTemplateValue('items', AppGuide.get_all())
     self.addTemplateValue(
         'form_action',
         blobstore.create_upload_url(success_path='/guide/create',
                                     gs_bucket_name=self.get_gs_bucket()))
 def show(self,event_id):
   self.template = 'sessions_edit'
   user = users.get_current_user()
   event = CEvent(event_id).get()
   form = SessionsTracksForm()
   # check permissions...
   if user and event and (user in event.organizers or users.is_current_user_admin()):
     # get list of event sessions
     sessions = CSessionList(event_id).get()
     for s in sessions:
       s.session = str(s.key())
     # get list of event tracks
     tracks = CTrackList(event_id).get()
     for t in tracks:
       t.track = str(t.key())
     # we need to store the event
     self.values['event'] = event
     form = SessionsTracksForm(sessions=sessions,tracks=tracks)
     speakers = CSpeakerList(event_id).get()
     SessionFormHelper.add_speakers(form,speakers)
     slots = CSlotList(event_id).get()
     SessionFormHelper.add_slots(form, slots)
     SessionFormHelper.add_tracks(form, tracks)
   elif not user:
     return self.redirect(
                  users.create_login_url("/event/sessions/edit/" + event_id))
   else:
     return self.redirect("/event/create");
   self.values['current_navigation'] = 'sessions'
   self.values['form_url'] = blobstore.create_upload_url('/event/sessiontrack/upload')
   self.values['form'] = form
示例#12
0
    def get(self):
        guestbook_name = self.request.get('guestbook_name',
                                          DEFAULT_GUESTBOOK_NAME)
        greetings_query = Greeting.query(
            ancestor=guestbook_key(guestbook_name)).order(-Greeting.date)
        greetings = greetings_query.fetch(10)

        user = users.get_current_user()
        if user:
            url = users.create_logout_url(self.request.uri)
            url_linktext = 'Logout'
        else:
            url = users.create_login_url(self.request.uri)
            url_linktext = 'Login'

        template_values = {
            'user': user,
            'greetings': greetings,
            'guestbook_name': urllib.quote_plus(guestbook_name),
            'url': url,
            'url_linktext': url_linktext,
            'upload_url_image': blobstore.create_upload_url('/sign'),
        }

        template = JINJA_ENVIRONMENT.get_template('index.html')
        self.response.write(template.render(template_values))
示例#13
0
def fan_profile_edit(request, page_id):
    fan_page = get_object_or_404(FanPage, pk=page_id)
    profile_form = FanPageForm(initial=fan_page.__dict__, image=fan_page.avatar)
    social_accounts_form = BasicSocialMediaForm(initial=fan_page.__dict__)
    if request.method == 'POST':
        profile_form = FanPageForm(request.POST, image=fan_page.avatar)
        social_accounts_form = BasicSocialMediaForm(request.POST)
        if profile_form.is_valid() and social_accounts_form.is_valid():
            for attr in ('name', 'date_of_birth', 'state', ):
                fan_page.__setattr__(attr, profile_form.cleaned_data[attr])

            set_social_media(fan_page, social_accounts_form)

            upload_form = UploadForm(request.POST, request.FILES)
            if upload_form.is_valid():
                fan_page.avatar = upload_form.save()

            fan_page.save()
        redirect_to = request.session.pop('redirect_after_auth', '/fan/%s' % fan_page.id)
        return redirect(redirect_to)
    return render(request, 'spudderspuds/fans/pages/fan_page_edit.html', {
        'profile_form': profile_form,
        'social_accounts_form': social_accounts_form,
        'page': fan_page,
        'new_registration': request.GET.get('new_registration', False),
        'upload_url': blobstore.create_upload_url('/fan/%s/edit' % page_id)
    })
示例#14
0
def dashboard_edit(request):
    club = request.current_role.entity.club
    club_entity = EntityController.GetWrappedEntityByTypeAndId(
        EntityController.ENTITY_CLUB,
        club.id,
        EntityBase.EntityWrapperByEntityType(EntityController.ENTITY_CLUB))
    basic_details_form = ClubProfileBasicDetailsForm(club=club, initial=club.__dict__)

    if request.method == 'POST':
        if request.FILES:
            icon = UploadForm(request.POST, request.FILES).save()
            club.thumbnail = icon
            club.save()
        basic_details_form = ClubProfileBasicDetailsForm(club=club, data=request.POST)
        if basic_details_form.is_valid():
            for attr in ('name', ):
                setattr(club, attr, basic_details_form.cleaned_data.get(attr))
            club.save()
            messages.success(request, 'Team details updated.')
        return redirect('/club/dashboard/edit')

    template_data = {
        'upload_url': blobstore.create_upload_url('/club/dashboard/edit'),
        'club_entity': club_entity,
        'basic_details_form': basic_details_form}
    return render(request, 'spudderspuds/clubs/pages/dashboard_edit.html', template_data)
示例#15
0
def fan_profile_edit(request, page_id):
    fan_page = get_object_or_404(FanPage, pk=page_id)
    profile_form = FanPageForm(initial=fan_page.__dict__,
                               image=fan_page.avatar)
    social_accounts_form = BasicSocialMediaForm(initial=fan_page.__dict__)
    if request.method == 'POST':
        profile_form = FanPageForm(request.POST, image=fan_page.avatar)
        social_accounts_form = BasicSocialMediaForm(request.POST)
        if profile_form.is_valid() and social_accounts_form.is_valid():
            for attr in (
                    'name',
                    'date_of_birth',
                    'state',
            ):
                fan_page.__setattr__(attr, profile_form.cleaned_data[attr])

            set_social_media(fan_page, social_accounts_form)

            upload_form = UploadForm(request.POST, request.FILES)
            if upload_form.is_valid():
                fan_page.avatar = upload_form.save()

            fan_page.save()
        redirect_to = request.session.pop('redirect_after_auth',
                                          '/fan/%s' % fan_page.id)
        return redirect(redirect_to)
    return render(
        request, 'spudderspuds/fans/pages/fan_page_edit.html', {
            'profile_form': profile_form,
            'social_accounts_form': social_accounts_form,
            'page': fan_page,
            'new_registration': request.GET.get('new_registration', False),
            'upload_url': blobstore.create_upload_url('/fan/%s/edit' % page_id)
        })
示例#16
0
 def get(self):
     stream_name = self.request.get('stream_name')
     if stream_name:
         key = ndb.Key('Stream', stream_name)
         stream = key.get()
     else:
         stream = None
     if stream:
         increment = self.request.get('increment')
         if increment:
             stream.views += int(increment)
             stream.recent_views.append(datetime.datetime.now())
             stream.put()
         cursor = self.request.get('cursor')
         cursor = int(cursor) if cursor else 0
         upload_url = blobstore.create_upload_url('/upload_photo')
         template_values = {
             'stream': stream,
             'cursor': cursor,
             'upload_url': upload_url
         }
         template = JINJA_ENVIRONMENT.get_template('views/view-stream.html')
         self.response.headers['Content-Type'] = 'text/html; charset=utf-8'
         self.response.write(template.render(template_values))
     else:
         streams = Stream.query().order(Stream.date).fetch()
         template_values = {
             'streams': streams,
         }
         template = JINJA_ENVIRONMENT.get_template('views/view-streams.html')
         self.response.headers['Content-Type'] = 'text/html; charset=utf-8'
         self.response.write(template.render(template_values))
示例#17
0
文件: views.py 项目: gmist/1businka
def admin_index(request):
    photos = GramPhoto.query().order(-GramPhoto.add_time)
    url = blobstore.create_upload_url(url_for('gram/admin/add'))
    return render_to_response(
        'gram/admin/index.html', {
            'photos': photos,
            'url': url
        })
示例#18
0
 def imageStore(self, view, query):
     if query.getvalue('imageId'):
         view.currentImage = dbImageStore.ImageStore.get_by_id(int(query.getvalue('imageId')))
         view.currentImageDescription = dbImageStore.ImageDescription.gql('WHERE imageEntry = :imageEntry', imageEntry = view.currentImage.key())
     
     view.uploadUrl = blobstore.create_upload_url('/edit/action/AddUpdateImageStore')
     view.imageList = dbImageStore.ImageStore.all()
     view.templateFile = 'edit/' + self.pathList[0] + '.html'
示例#19
0
def create_challenge_set_donation(request, template_id, state, club_id,
                                  club_class):
    club = get_object_or_404(club_class, id=club_id)
    template = get_object_or_404(ChallengeTemplate, id=template_id)
    form = ChallengeConfigureForm()
    upload_url = blobstore.create_upload_url(
        '/challenges/create/%s/%s/%s/%s' %
        (template_id, state, 'o' if club_class == Club else 't', club_id))
    if request.method == 'POST':
        form = ChallengeConfigureForm(request.POST)
        if form.is_valid():
            uploaded_file = None
            if request.FILES:
                upload_form = UploadForm(request.POST, request.FILES)
                uploaded_file = upload_form.save()
            challenge = _create_challenge(club_class,
                                          club_id,
                                          form,
                                          request,
                                          template,
                                          image=uploaded_file)
            redirect_url = '/challenges/%s/share' % challenge.id
            if request.is_ajax():
                return HttpResponse(redirect_url)
            return redirect(redirect_url)
        if request.is_ajax():
            return HttpResponse(
                "%s|%s" %
                (blobstore.create_upload_url(upload_url), '<br/>'.join([
                    '<br/>'.join([_e for _e in e])
                    for e in form.errors.values()
                ])))
    template_data = {
        'club': club,
        'club_class': club_class.__name__,
        'form': form,
        'state': state,
        'template': template,
        'upload_url': upload_url
    }
    return render(
        request,
        'spudderspuds/challenges/pages/create_challenge_configure.html',
        template_data)
示例#20
0
def _state_engine_process_upload(request, challenge, engine, state, template_data):
    response = None
    template = challenge.template
    beneficiary = EntityController.GetWrappedEntityByTypeAndId(
        challenge.recipient_entity_type,
        challenge.recipient_entity_id,
        EntityBase.EntityWrapperByEntityType(challenge.recipient_entity_type))
    participation = ChallengeParticipation.objects.get(
        challenge=challenge,
        participating_entity_id=request.current_role.entity.id,
        participating_entity_type=request.current_role.entity_type)
    redirect_url = '/challenges/%s/%s/4?just_pledged=True' % (challenge.id, engine)
    action_upload_image = 'upload_image'
    image_form = UploadImageForm(initial={'action': action_upload_image})
    upload_url = '/challenges/%s/accept' % challenge.id
    if request.method == 'POST':
        action = request.POST.get('action')
        if action == action_upload_image:
            if request.FILES:
                upload_form = UploadForm(request.POST, request.FILES)
                file = upload_form.save()
                participation.image = file
                participation.state = ChallengeParticipation.ACCEPTED_STATE
                participation.state_engine = engine
                participation.save()
                if feature_is_enabled('tracking_pixels'):
                    EventController.RegisterEvent(request, EventController.CHALLENGE_ACCEPTED)
            if request.is_ajax():
                response = HttpResponse(redirect_url)
                return response, state
            response = redirect(redirect_url)
            return response, state
        if request.is_ajax():
            response = HttpResponse("%s|%s" % (blobstore.create_upload_url(upload_url), '<br/>'.join(
                ['<br/>'.join([_e for _e in e]) for e in image_form.errors.values()])))
            return response, state
    template_data['template'] = template
    template_data['beneficiary'] = beneficiary
    template_data['participation'] = participation
    template_data['redirect_url'] = redirect_url
    template_data['upload_url'] = blobstore.create_upload_url(upload_url)
    response = render(request, 'spudderspuds/challenges/pages_ajax/challenge_accept_upload.html', template_data)
    return response, state
示例#21
0
def edit_image(request, challenge_id):
    """
    Allows the owner of a challenge to change the related image
    :param request: any request
    :param challenge_id: a valid ID of a Challenge object
    :return: a simple form page
    """
    challenge = Challenge.objects.get(id=challenge_id)
    form = ChallengeImageEditForm()
    upload_url = blobstore.create_upload_url('/challenges/edit_image/%s' %
                                             challenge_id)

    if request.method == 'POST':
        form = ChallengeConfigureForm(request.POST)
        if form.is_valid():
            uploaded_file = None
            if request.FILES:
                upload_form = UploadForm(request.POST, request.FILES)
                uploaded_file = upload_form.save()
            challenge.image = uploaded_file
            redirect_url = '/fan'
            if request.is_ajax():
                return HttpResponse(redirect_url)
            return redirect(redirect_url)
        if request.is_ajax():
            return HttpResponse(
                "%s|%s" %
                (blobstore.create_upload_url(upload_url), '<br/>'.join([
                    '<br/>'.join([_e for _e in e])
                    for e in form.errors.values()
                ])))

    return render(
        request, 'spudderspuds/challenges/pages/edit_image.html', {
            'upload_url':
            upload_url,
            'form':
            form,
            'image_url':
            '/file/serve/%s' % challenge.image if challenge.image else None,
            'challenge_name':
            challenge.name
        })
示例#22
0
 def post(self):
     rq_cid = self.request.form.get('cid')
     rq_token = self.request.form.get('token')
     rq_image = self.request.files.get('image')
     
     if rq_token is None or rq_cid is None:
         return MissingParams()
     else:
         profile = Profile.all().filter('token', rq_token).get()
         if profile is None:
             return InvalidToken()
         elif not profile.game.is_on:
             return NoGameOn()
         else:
             point = CheckinPoint.all().filter('cid', int(rq_cid)).get()
             if point is None:
                 return InvalidCid()
             else:
                 ckin = Checkin.all().filter('profile', profile)
                 if ckin.filter('achieved', False).count() == 0:
                     return render_json_response({'status':{'code':13,'message':'You have no unachieved checkins.'}})
                 else:
                     ckin = ckin.filter('point', point).get()
                     if ckin is None:
                         return render_json_response({'status':{'code':11,'message':'You are checked in at another location!'}})
                     else:
                         rq_image.seek(0,2)
                         img_content_length = rq_image.tell()
                         rq_image.seek(0,0)
                         if img_content_length == 0:
                             return render_json_response({'status':{'code':95,'message':'You have not included a picture!'}})
                         else:
                             params = []
                             params.append(
                                 MultipartParam(
                                     "file",
                                     filename=ckin.cid,
                                     value=rq_image.read()
                                 )
                             )
                             payloadgen, headers = multipart_encode(params)
                             payload = str().join(payloadgen)
                             url = blobstore.create_upload_url('/handle_upload')
                             try:
                                 result = urlfetch.fetch(
                                     url=url,
                                     payload=payload,
                                     method=urlfetch.POST,
                                     headers=headers,
                                     deadline=10,
                                     follow_redirects=False
                                 )
                                 return render_json_response({'status':{'code':0,'message':'Success'}})
                             except:
                                 return render_json_response({'status':{'code':81,'message':'There was a server error uploading the image.'}})
示例#23
0
def edit_images(key_id):
    product = Product.retrieve_by_id(key_id)
    if not product:
        return redirect('pages.catalogue')
    form = AddImageForm()
    add_img_url = blobstore.create_upload_url(
        url_for('admin.product.add_image', key_id=key_id))
    return render_template('product/admin/images_edit.html',
                           product=product,
                           form=form,
                           add_img_url=add_img_url)
示例#24
0
文件: admins.py 项目: gmist/1businka
def r_info_images(request, uid):
    r_info_obj = RetailInfo.get_by_id(uid)
    if not r_info_obj:
        return render_to_response('empty.html')
    images = RetailInfoImage.query(RetailInfoImage.news_ref == r_info_obj.key)
    url = blobstore.create_upload_url(url_for('page/admins/r_info/images/add', uid=r_info_obj.key.id()))
    return render_to_response('page/admins/r_info/images.html',{
        'images': images,
        'r_info': r_info_obj,
        'url': url
    })
示例#25
0
def admin_images(request, uid):
    showcase = Showcase.get_by_id(uid)
    if not showcase:
        return render_to_response('empty.html')
    images = showcase.images
    url = blobstore.create_upload_url(url_for('showcase/admin/images/add', uid=showcase.key().id()))
    return render_to_response('showcase/admin/images.html',{
        'images': images,
        'showcase': showcase,
        'url': url
        })
示例#26
0
文件: views.py 项目: gmist/1businka
def admin_images(request, uid):
    news = News.get_by_id(uid)
    if not news:
        return render_to_response('empty.html')
    images = NewsImage.query(NewsImage.news_ref == news.key)
    url = blobstore.create_upload_url(url_for('news/admin/images/add', uid=news.key.id()))
    return render_to_response('news/admin/images.html',{
        'images': images,
        'news': news,
        'url': url
        })
示例#27
0
文件: views.py 项目: gmist/3dhero.ru
def edit_images(key_id):
    product = Product.retrieve_by_id(key_id)
    if not product:
        return redirect('pages.catalogue')
    form = AddImageForm()
    add_img_url = blobstore.create_upload_url(url_for('admin.product.add_image', key_id=key_id))
    return render_template(
        'product/admin/images_edit.html',
        product=product,
        form=form,
        add_img_url=add_img_url
    )
示例#28
0
文件: context.py 项目: eladb/restapp
 def upload_url(self, query=None):
     """Creates a blob upload URL for this endpoint.
     For all endpoints, we assume that we have an /__upload URL that is bound
     to an blob upload endpoint. This makes implementing upload for an endpoint very easy.
     Args:
         query: query parameters to add (in URL format)
     """
     post_url = self.endpoint_class.construct_relative_url("__upload" + query)
     logging.info("constructed upload url: %s" % post_url)
     url = blobstore.create_upload_url(post_url)
     logging.info("url: %s" % url)
     return url
示例#29
0
def admin_images(parent_id= -1):
    """
        List all images from within a category
    """
    category_id = parent_id
    form = ImageForm(prefix='image')
    if form.validate_on_submit():
        is_new = False
        if len(form.key_id.data) > 0 and long(form.key_id.data) > 0:
            image = ImageModel.get_by_id(long(form.key_id.data))
        else:
            image = ImageModel()
            is_new = True
        v2m(form, image)
        category_id = long(form.category_id.data)
        if type(form.image.data) == FileStorage and (is_new or form.update_image.data):
            blob_key = form.image.data.mimetype_params['blob-key']
            #create a small
            (image.image_thumb_blob_key, image.width, image.height) = create_thumbnail(blob_key, 50, 50)
            #and a slightly larger version 
            (image.image_blob_key, image.width, image.height) = create_thumbnail(blob_key)
            #delete the uploaded (possibly 'uge file)
            blobstore.delete(blob_key)
        elif not is_new and form.update_image.data: # we set to update with an empty image so we delete the one in the db
            image.delete_images()
            image.image_blob_key = ''
            image.image_thumb_blob_key = ''
            image.width = 0
            image.height = 0
        try:
            image.put()
            image_id = image.key().id()
            flash(u'Image %s successfully saved.' % image_id, 'success')
            return redirect(url_for('admin_images_in_category', parent_id=category_id))
        except CapabilityDisabledError:
            image.delete_images()
            flash(u'App Engine Datastore is currently in read-only mode.', 'info')
            return redirect(url_for('admin_images_in_category', parent_id=category_id))
        pass
    elif form.is_submitted():
        category_id = long(form.category_id.data)  
    images = sorted(ImageModel.all().filter('category_id', category_id), key=lambda i: i.order)
    (categories, category_path, all_categories) = CategoryModel.get_categories_info(category_id)
    form.category_id.data = category_path[-1].key().id()
    return render_template('image/admin_images.html', images=images,
                           form=form,
                           categories=categories,
                           category_path=category_path,
                           current_category=category_path[-1],
                           all_categories=all_categories,
                           reset_image=ImageModel(category_id=category_id),
                           upload_url=blobstore.create_upload_url(url_for('admin_images')))
    def __init__(self, **kwargs):
        View.__init__(self, **kwargs)

        self.templateFile = 'imagestore.html'
        self.permissionLevel = 1
        self.isEdit = True
        self.toTemplate.uploadUrl = blobstore.create_upload_url('/edit/AddUpdateImageStore')
        self.toTemplate.imageList = PacImageStore.getAll()

        query = kwargs['query']
        if query.getvalue('item_id'):
            self.itemId = str(query.getvalue('item_id'))
            self.toTemplate.currentImage = PacImageStore.getByIdForEdit(self.itemId)
示例#31
0
def challenge_challenge_accept_notice(request, state=None, club_entity_type=None, club_id=None, participation_id=None):
    if state and club_entity_type and club_id:
        ccp = ChallengeChallengeParticipation(
            participating_entity_id=request.current_role.entity.id,
            participating_entity_type=request.current_role.entity_type,
            recipient_entity_id=club_id,
            recipient_entity_type=club_entity_type)
        ccp.save()
        return redirect('/challenges/challenge_challenge/%s/upload' % ccp.id)
    participation = get_object_or_404(ChallengeChallengeParticipation, id=participation_id)
    form = ChallengeChallengeParticipationForm()
    upload_url = '/challenges/challenge_challenge/%s/upload' % participation_id
    if request.method == 'POST':
        form = ChallengeChallengeParticipationForm(request.POST)
        if form.is_valid():
            participation.youtube_video_id = form.cleaned_data.get('youtube_video_id')
            participation.name = form.cleaned_data.get('challenge_name')
            participation.description = form.cleaned_data.get('challenge_description')
            participation.state = ChallengeChallengeParticipation.STATE_COMPLETE
            if request.FILES:
                file = UploadForm(request.POST, request.FILES).save()
                participation.image = file
            participation.save()
            redirect_url = '/challenges/challenge_challenge/%s/thanks?just_submitted=True' % participation_id
            if feature_is_enabled('tracking_pixels'):
                EventController.RegisterEvent(request, EventController.CHALLENGE_ACCEPTED)
            if request.is_ajax():
                return HttpResponse(redirect_url)
            return redirect(redirect_url)
        if request.is_ajax():
            return HttpResponse("%s|%s" % (
                blobstore.create_upload_url(upload_url),
                '<br/>'.join(['<br/>'.join([_e for _e in e]) for e in form.errors.values()])))
    template_data = {
        'form': form,
        'upload_url': blobstore.create_upload_url(upload_url)}
    return render(request, 'spudderspuds/challenges/pages/challenge_challenge_accept_upload.html', template_data)
示例#32
0
 def get(self):
   user = users.get_current_user()
   template_values = {
       'xsrf_token': frontend_utils.generate_token(),
       'upload_action': blobstore.create_upload_url(
           '/upload/',
           max_bytes_total=_BUNDLE_MAX_UPLOAD_BYTES),
       'x5_networks': sorted(self.x5_networks.values()),
       'x5_transforms': list(x5_transform.X5Transform.user_transforms(
           user.user_id()
       )),
       'flashes': self.session.get_flashes(key='index')
   }
   template = JINJA_ENVIRONMENT.get_template('index.html')
   self.response.write(template.render(template_values))
    def __init__(self, **kwargs):
        View.__init__(self, **kwargs)

        self.templateFile = 'imagestore.html'
        self.permissionLevel = 1
        self.isEdit = True
        self.toTemplate.uploadUrl = blobstore.create_upload_url(
            '/edit/AddUpdateImageStore')
        self.toTemplate.imageList = PacImageStore.getAll()

        query = kwargs['query']
        if query.getvalue('item_id'):
            self.itemId = str(query.getvalue('item_id'))
            self.toTemplate.currentImage = PacImageStore.getByIdForEdit(
                self.itemId)
示例#34
0
def send_into_blobstore(img_data, filename):
    r"""
    Send data into blobstore.

    We need to create our own http request for it.
    """
    handler_url = url_for('assets.send_into_blobstore_handler')
    post_url = blobstore.create_upload_url(handler_url)

    r = crawler().post(post_url, files={'file': (filename, img_data)})
    r.raise_for_status()

    json = r.json()

    app.logger.info("Submitted asset into filestore: %s", repr(json))
    return json['blob_key']
示例#35
0
 def get(self):
     user = users.get_current_user()
     template_values = {
         'xsrf_token':
         frontend_utils.generate_token(),
         'upload_action':
         blobstore.create_upload_url(
             '/upload/', max_bytes_total=_BUNDLE_MAX_UPLOAD_BYTES),
         'x5_networks':
         sorted(self.x5_networks.values()),
         'x5_transforms':
         list(x5_transform.X5Transform.user_transforms(user.user_id())),
         'flashes':
         self.session.get_flashes(key='index')
     }
     template = JINJA_ENVIRONMENT.get_template('index.html')
     self.response.write(template.render(template_values))
示例#36
0
    def get(self):
        user = users.get_current_user()
        values = {}
        if not user:
            self.redirect("/")
            return
        if user:
            email = user.email().lower()

        values["user_email"] = email
        values["logout_url"] = users.create_logout_url("/")
        values["form_action"] = blobstore.create_upload_url('/insert-trip')
        values["states"] = STATE_VALUES

        self.update_values(email, values)

        template = main.jinja_env.get_template(self.get_template())
        self.response.out.write(template.render(values))
示例#37
0
def create_showcase(request):
    
    param = {}
    if request.method == 'POST':
        mode = request.POST['mode']
        if mode == "new":
            content_text = cgi.escape(request.POST['content'])
            showcaseItem = Showcase.objects.create(author=request.user,
                                                                    content=content_text,slugContent = slugify(content_text))
            showcase_dict = convert_showcase_to_dict(request,showcaseItem)
            param = {
                     'result' : showcase_dict,
                     'entityID' : showcaseItem.id
                     }
        return HttpResponse(simplejson.dumps(param), mimetype="application/json")
    elif request.method == 'GET':
        param["upload_url"] = blobstore.create_upload_url('/upload')

        return direct_to_template(request, 'showcase_editor.html',param)
示例#38
0
def change_delivery(request):
    url = blobstore.create_upload_url(url_for('partners/admins/change_delivery'))
    obj = PartnersPage.all().get()
    if obj:
        form = PartnersDeliveryForm(instance=obj, action=url)
    else:
        form = PartnersDeliveryForm(action=url)
    form.csrf_protected = False
    if request.method == 'POST' and form.validate(request.form):
        obj = form.save(commit=False)
        upload_files = get_uploads(request, 'delivery')
        if len(upload_files):
            blob_info = upload_files[0]
            if blob_info.size:
                obj.delivery = str(blob_info.key())
            else:
                blob_info.delete()
        else:
            obj.delete_delivery()
        obj.put()
        return redirect(url_for('admin/index'))
    return render_to_response('partners/admins/change.html',
            {'form':form.as_widget()})
示例#39
0
文件: main.py 项目: Doolan/AskASenior
    def get(self):
        is_self = False

        if "user_info" not in self.session:
            #            raise Exception("Missing user!")
            self.redirect("/")
            return

        else:
            user_utils.get_user_from_rosefire_user(self.user())
            username = self.request.get('username', 'none')
            if username == 'none':
                user_info = json.loads(self.session.get("user_info"))
                user = user_utils.get_user_from_username(user_info["username"])
                is_self = True
                print("user info", user_info)
            else:
                userResults = User.query(User.username == username).fetch(
                    limit=1)
                if len(userResults) == 0:
                    self.redirect(uri="/profile")
                    return
                else:
                    user = userResults[0]

            print("user", user)

            query = post_utils.get_query_for_all_nonanonymous_posts_by_user(
                user)
            values = {"post_query": query, "user": user, "is_self": is_self}

            values["form_action"] = blobstore.create_upload_url(
                '/update-profile')

            template = JINJA_ENV.get_template("templates/profile.html")

            self.response.out.write(template.render(values))
示例#40
0
文件: admins.py 项目: gmist/1businka
def index(request):
    url = blobstore.create_upload_url(url_for('price_list/admin'))
    form = PriceListForm(action=url)
    form.csrf_protected = False
    if request.method == 'POST' and form.validate(request.form):
        desc = form['description']
        upload_files = get_uploads(request, 'file')
        if len(upload_files):
            blob_info = upload_files[0]
            if blob_info.size:
                file = File(blob=blob_info.key())
                file.name = file.get_name
                file.put()

                price_list = PriceList(file=file.key, description=desc)
                price_list.put()
            else:
                blob_info.delete()

        return redirect(url_for('price_list/admin'))
    prices = PriceList.query()
    return render_to_response('price_list/admins/index.html',
                                {'form': form.as_widget(),
                                'prices': prices})
示例#41
0
 def update_values(self, email, values):
     values["route"] = "/item/view"
     values["item_update_url"] = blobstore.create_upload_url('/item/insert')
示例#42
0
 def update_values(self, email, values):
     values["route"] = "/profile/edit"
     values["profile_update_url"] = blobstore.create_upload_url(
         '/profile/update')
示例#43
0
 def get(self):
     body = {
         "upload_url": blobstore.create_upload_url("/sign")
     }
     self.response.headers.add("Content-Type", "application/json")
     self.response.write(json.dumps(body))
示例#44
0
文件: views.py 项目: jsa/pore
            'created': datetime.now().isoformat(),
            'message': msg,
        }
        email = request.POST.get('email')
        if email:
            msg['email'] = email
        entry['private_messages'] = [msg]

    entry = PhotoEntry(**entry)
    entry.put()
    logging.debug("Created %r" % entry.key)

    # authorize entry updating
    request.session['ups'] = request.session.get('ups', []) + [entry.key.id()]

    up_url = blobstore.create_upload_url(reverse(blobstore_callback, args=[entry.key.id()]))
    return http.HttpResponse(json.dumps({'url': up_url}), 'text/javascript')

@never_cache
def blobstore_callback(request, entry_id):
    info = None
    key_match = re.search(r"blob-key=([^;\r]+)[;\r]", request.body)
    if key_match:
        info = BlobInfo.get(key_match.group(1).strip('"'))
    if not info:
        return render(request, "upload.html", {'err': True})
    logging.info("Received file: %r" % ((info.filename, info.content_type, info.size, info.key()),))

    def tx(entry_id):
        entry = GalleryEntry.get_by_id(int(entry_id))
        if not entry:
  def show_post(self):
    self.template = 'sessions_edit'
    user = users.get_current_user()
    event_id = self.request.get('event')
    event = CEvent(event_id).get()
    form = SessionsTracksForm(self.request.POST)
    # check permissions...
    if user and event and (user in event.organizers or users.is_current_user_admin()):
      # add the speakers for validation
      speakers = CSpeakerList(event_id).get()
      SessionFormHelper.add_speakers(form,speakers)
      slots = CSlotList(event_id).get()
      SessionFormHelper.add_slots(form, slots)    
      tracks = CTrackList(event_id).get()
      for t in tracks:
        t.track = str(t.key())
      SessionFormHelper.add_tracks(form, tracks)      
      
      if form.validate():
        # start with the tracks as they are used by sessions
        for i in range(0,1024):
          prefix = 'tracks-' + str(i) + '-'
          if self.request.get(prefix + 'name'):
            # is this a modification of an existing track or a new one?
            track_id = self.request.get(prefix + 'track')
            if track_id in [t.track for t in tracks]:
              track = [t for t in tracks if t.track == track_id][0]
              # delete from old_session
              tracks = [t for t in tracks if t.track != track_id]
            else:
              track = Track()
            # fill in values for old/new session
            track.name = self.request.get(prefix + 'name')
            track.color = self.request.get(prefix + 'color')
            track.abstract = self.request.get(prefix + 'abstract')
            
            upload_files = self.get_uploads(prefix + 'icon')
            if len(upload_files) > 0:
              blob_info = upload_files[0]
              track.icon = '%s' % blob_info.key()

            track.event_key = event_id
            # update track
            track.put()
        # end for
        # now delete all tracks not mentioned yet
        for t in tracks:
          t.delete()
        CTrackList.remove_from_cache(event_id)
        
        # now the sessions...
        sessions = CSessionList(event_id).get()
        for s in sessions:
          s.session = s.key()
        for i in range(0,1024):
          prefix = 'sessions-' + str(i) + '-'
          if self.request.get(prefix + 'title'):
            # is this a modification of an existing session or a new one?
            session_id = self.request.get(prefix + 'session')
            if session_id in [s.session for s in sessions]:
              session = [s for s in sessions if s.session == session_id][0]
              # delete from session
              sessions = [s for s in sessions if s.session != session_id]
            else:
              session = Session()
            # fill in values for old/new session
            session.title = self.request.get(prefix + 'title')
            session.abstract = self.request.get(prefix + 'abstract')
            session.slot_key = self.request.get(prefix + 'slot_key')
            session.level = self.request.get(prefix + 'level')            
            session.room = self.request.get(prefix + 'room')
            session.track_key = self.request.get(prefix + 'track_key')
            session.live_url = self.request.get(prefix + 'live_url')
            session.youtube_url = self.request.get(prefix + 'youtube_url')
            session.event_key = event_id
            session.speakers_key = self.request.get_all(prefix + 'speakers_key')
            # update session
            session.put()
        # end for
        # now delete all sessions not mentioned yet
        for s in sessions:
          s.delete()
        # set info that modification was successful
        self.values['modified_successful'] = True
        # clear the cache for the event
        CSessionList.remove_from_cache(event_id)        
      # set event into form object
      self.values['event'] = event
    elif not user:
      return self.redirect(
                   users.create_login_url("/event/sessions/edit/" + event_id))
    else:
      return self.redirect("/event/create");
    self.values['current_navigation'] = 'sessions'
    self.values['form_url'] = blobstore.create_upload_url('/event/sessiontrack/upload')
    self.values['form'] = form
示例#46
0
 def get(self):
     upload_url = blobstore.create_upload_url('/_titan/file/finalizeblob')
     self.response.out.write(upload_url)
示例#47
0
def get_upload_url(request):
    return HttpResponse(
        blobstore.create_upload_url('/upload/upload_image_endpoint'))
示例#48
0
def get_avatar_upload_url():
    return blobstore.create_upload_url('/mobi/profile/avator/post')
示例#49
0
 def ParseImageListWithDescriptions(self):
     self.uploadUrl = blobstore.create_upload_url('/action/addSpot')
     for lang in self.pageData:
         list = self.pageData[lang]
         if 'ImageList' in list:
             self.pageData[lang]['ImageList'] = ImageStore.GetImageListDescriptions(self.pageData[lang]['ImageList'], lang)
示例#50
0
def get_croppic_upload(request):
    return HttpResponse(
        blobstore.create_upload_url('/upload/croppic_upload_endpoint'))
示例#51
0
def price_add(request):
    upload_url = blobstore.create_upload_url(url_for('admin/price_uploader'))
    return render_to_response('admin/price_add.html',{
                'upload_url': upload_url})
示例#52
0
 def get(self):
   upload_url = blobstore.create_upload_url('/_titan/finalizeblob')
   self.response.out.write(upload_url)
示例#53
0
def create_upload_url(application_name):
    return blobstore.create_upload_url(
        "/upload/finish/%s" % application_name,
        gs_bucket_name="%s/%s" % (app_identity.get_default_gcs_bucket_name(), application_name))