def new(request): """Create a new Lets update.""" form = LetsForm(creator=request.user, data=request.POST) form_valid = form.is_valid() if form_valid: let = form.save() u = request.user let_entries = list(u.lets.all()[:3]) u.lets.invalidate(*let_entries) update_progress(u.profile, action='lets') update_rewards(u, 'lets') process_mojo_action(u, 'lets') if request.is_ajax(): data = {'is_valid': form_valid, 'errors': form.errors, 'msg': 'Saved'} if form_valid: data['user'] = { 'profile_url': reverse('users.profile', args=[request.user.username]), 'picture_url': pp_url(request.user), 'display_name': request.user.first_name, } data['letobj'] = { 'content': "Let's... " + raw_to_plain(let.content), 'category_url': let.get_category_url(), 'category_class': let.get_category_class(), 'category_display': let.get_category_display(), 'category_img': let.get_category_img(large=True), 'js_date': js_datetime(let.created), 'timesince': timesince(let.created), 'delete_url': reverse('lets.delete', args=[let.pk]), } return JSONResponse(data) next_url = reverse('lets.wall', args=[request.user.username]) return HttpResponseRedirect(next_url)
def delete(request, lets_id): """Delete a Lets object, only if logged in user is the creator.""" lets = get_object_or_404(Lets, pk=lets_id) if lets.creator != request.user: raise PermissionDenied lets.delete() # Coins profile = request.user.profile user_key = Lets.u_cache_key(request.user) lets_key = cache.get(user_key) if lets_key: if lets_key > 0: # No 250 - cache.decr(user_key) if lets_key <= 0: # Yes 250 - profile.update(coins=profile.coins - ucs.ACTIONS_COINS['lets']['daily']) cache.delete(user_key) else: # yes 250 - profile.update(coins=profile.coins - ucs.ACTIONS_COINS['lets']['daily']) update_progress(profile, action='lets') update_rewards(request.user, 'lets') process_mojo_action_down(request.user, 'lets') # TODO: return progress_data with ajax request. Modify js on lets side to # update profile completion widget next_url = reverse('lets.wall', args=[request.user.username]) if request.is_ajax(): return JSONResponse({'is_valid': True, 'msg': 'Deleted'}) return HttpResponseRedirect(next_url)