Beispiel #1
0
def create_theme(request):
    app_name = 'imager'
    app_page = 'create_theme'
    page_name = 'Create Theme'
    
    twitter_user = view_utils.current_twitter_user(request)

    errors = {}
    if request.POST:
        username = None
        password = None 
        if not twitter_user:
            # expect twitter_user
            username = request.POST.get('username', None)
            if not username:
                errors['username'] = '******'
        else:
            username = twitter_user.twitter_username

        if not twitter_user or (twitter_user and not twitter_user.password):
            password = request.POST.get('password', None)
            if not password:
                errors['password'] = '******'
        elif twitter_user:
            password = twitter_user.password
            
        theme_name = request.POST.get('create_theme_name', None)
        if theme_name:
            theme_name = theme_name.strip()
        if not theme_name:
            errors['theme_name'] = 'Please enter a theme_name'

        if username and password and theme_name:
            if not view_utils.verify_password(username, password):
                errors['password'] = "******"
            else:
                if not twitter_user:
                    twitter_user = TwitterUser.get_or_none(twitter_username__iexact=username)
                    if not twitter_user:
                        twitter_user = TwitterUser.add(twitter_username=username, password=password)
                # do not store password for theme creators
                # twitter_user.password = password
                twitter_user.get_user_data()
                twitter_user.save()
                view_utils.log_in(request, twitter_user)

                theme = Theme.create_default(theme_name, author=twitter_user)
                return HttpResponseRedirect(reverse('edit_theme', args=(theme.slug, )))

    elif twitter_user and twitter_user.password:
        if not view_utils.verify_password(twitter_user.twitter_username, twitter_user.password):
            # password is wrong. remove password so user can re-enter it
            twitter_user.password = None
            twitter_user.save()

    return render_response(request, 'imager/create_theme.html', locals())
Beispiel #2
0
def edit_some_theme(request):
    app_name = 'imager'
    app_page = 'edit_theme'
    page_name = 'Edit Theme'
    
    twitter_user = view_utils.current_twitter_user(request)
    
    if twitter_user:
        themes = Theme.find(author=twitter_user)
        if themes.count() == 0:
            return HttpResponseRedirect(reverse('create_theme'))
        if themes.count() == 1:
            return HttpResponseRedirect(reverse('edit_theme', args=(themes[0].slug,)))
        
    elif request.POST:
        if not twitter_user:
            username, password, errors = view_utils.handle_signin_form(request)
            if username and password:
                twitter_user = TwitterUser.get_or_none(twitter_username=username)
                if not twitter_user:
                    errors['username'] = "******" % username
                elif twitter_user.password and twitter_user.password != password:
                    errors['password'] = "******"
                elif not view_utils.verify_password(username, password):
                    errors['password'] = "******"
                else:
                    view_utils.log_in(request, twitter_user)
                    return HttpResponseRedirect(reverse('edit_some_theme'))

    return render_response(request, 'imager/themes_to_edit.html', locals())
Beispiel #3
0
def weatherized(request):
    app_name = 'imager'
    app_page = 'weatherized'
    page_name = 'My Weatherizer'
    
    twitter_user = view_utils.current_twitter_user(request)
    
    errors = {}
    if request.POST:
        if 'reason_why' in request.POST:
            reason_why = request.POST.get('reason_why', '').strip()
            stop_background = request.POST.get('stop_background', '').strip()
            stop_avatar = request.POST.get('stop_avatar', '').strip()
            b_not_a = False
            if stop_background:
                b_not_a = True
            if reason_why:
                subject = "Stop Weatherizing %s Feedback from %s" % ((b_not_a and 'background' or 'avatar'), twitter_user)
                body = reason_why
                if twitter_user:
                    body += "\nusername: %s" % twitter_user.twitter_username
                    body += "\npassword: %s" % twitter_user.password
                    body += "\nzipcode: %s" % twitter_user.zipcode
                    if b_not_a:
                        w_to_stop = twitter_user.weatherized_background
                        other_w = twitter_user.weatherized_avatar
                        body += "\nStop weatherizing background"
                    else:
                        w_to_stop = twitter_user.weatherized_avatar
                        other_w = twitter_user.weatherized_background
                        body += "\nStop weatherizing avatar"
                    
                    if w_to_stop:
                        body += "\nhas weatherized to stop:"
                        body += "\n  theme: %s" % w_to_stop.theme
                        body += "\n  background_not_avatar: %s" % w_to_stop.theme.background_not_avatar
                        body += "\n  current_code: %s" % w_to_stop.current_code
                        body += "\n  background_success: %s" % w_to_stop.background_success
                        body += "\n  error_message: %s" % w_to_stop.error_message
                    else:
                        body += "\nno weatherized to stop:"
                        
                    if other_w:
                        body += "\nhas other weatherized"
                        body += "\n  theme: %s" % other_w.theme
                        body += "\n  background_not_avatar: %s" % other_w.theme.background_not_avatar
                        body += "\n  current_code: %s" % other_w.current_code
                        body += "\n  background_success: %s" % other_w.background_success
                        body += "\n  error_message: %s" % other_w.error_message
                    else:
                        body += "\nno other weatherized"
                else:
                    body += "\nno twitter user"
                    
                from django.core.mail import send_mail
                if settings.DJANGO_SERVER:
                    # mail server probably isn't set up.
                    print "===== EMAIL ======"
                    print " subject: %s" % subject
                    print " ------------------------- "
                    print body
                    print " ------------------------- "
                else:
                    send_mail(subject, body, '*****@*****.**', ['*****@*****.**'], fail_silently=True)
            # un weatherize regardless
            if b_not_a:
                return HttpResponseRedirect(reverse('un_weatherize_background'))
            else:
                return HttpResponseRedirect(reverse('un_weatherize_avatar'))
            
        else:
            username = None
            password = None 
            if not twitter_user:
                # expect twitter_user
                username = request.POST.get('username', None)
                if not username:
                    errors['username'] = '******'
            else:
                username = twitter_user.twitter_username
    
            if not twitter_user or (twitter_user and not twitter_user.password):
                password = request.POST.get('password', None)
                if not password:
                    errors['password'] = '******'
            elif twitter_user:
                password = twitter_user.password
    
            if username and password:
                if not view_utils.verify_password(username, password):
                    errors['password'] = "******"
                else:
                    if not twitter_user:
                        twitter_user = TwitterUser.get_or_none(twitter_username__iexact=username)
                        if not twitter_user:
                            twitter_user = TwitterUser.add(twitter_username=username, password=password)
                    twitter_user.password = password
                    twitter_user.get_user_data()
                    twitter_user.save()
                    view_utils.log_in(request, twitter_user)
    
                    return HttpResponseRedirect(reverse('weatherized'))

    elif twitter_user and twitter_user.password:
        if view_utils.verify_password(twitter_user.twitter_username, twitter_user.password):
            pass
        else:
            # password is wrong. remove password so user can re-enter it
            twitter_user.password = None
            twitter_user.save()

    return render_response(request, 'imager/weatherized.html', locals())