Exemple #1
0
def email_template_test_send(request, template_id):
    et = EMailTemplate.get_by_id(int(template_id))
    if et  is None:
        raise Http404

    if request.method == 'POST':
        form = EMailAddressForm(request.POST)
        if form.is_valid():
            to_a = form.cleaned_data['address']
            logging.info('test send template id %d, to: %s', et.key().id(), to_a)
            
            try:
                email = EmailMessage(et.data)
                email.sender = getConfig('DEFAULT_SENDER')
                email.to = to_a
                email.check_initialized()

                if getConfigBool("ENABLE_MAIL_TEST",False):
                    logging.info('sending...')
                    email.send()
                else:
                    logging.info('disabled')
        

            except:
                logging.info("can't init email! %s"%sys.exc_info()[1])
                return HttpResponse("can't init email - %s"%sys.exc_info()[1])


            return redirect('..')
    else:
        form = EMailAddressForm()
 
    return render_to_response('emails/email_template_test_send.html', RequestContext(request, { 'form' : form, 'et':et}))
Exemple #2
0
def pdf_test(request):
    from utils.pdf import pdftest
    from utils.config import getConfig
    pdf = pdftest(getConfig('PDF_TEST_TEXT'))
    r =  HttpResponse(pdf,mimetype='application/pdf')
    r['Content-Disposition'] = 'attachment; filename=pdf_test.pdf'
    return r
Exemple #3
0
def cron_daily(request):
    logging.info('cron daily')

    if getConfig('REPORT_DAILY_SUMMARY'):
        do_accounts_report()
    else:
        logging.info('daily summary report disabled (cfg key: REPORT_DAILY_SUMMARY)')

    if getConfig('REPORT_DAILY_TRANSACTIONS'):
        do_trans_reports()
    else:
        logging.info('daily transactions report disabled (cfg key: REPORT_DAILY_TRANSACTIONS)')
        
    if request.cron_request:
        logging.info('HttpResponse ok')
        return HttpResponse('ok')
    return render_to_response('reports/cron.html', RequestContext(request))
Exemple #4
0
def captcha_test(request):
    from utils.captcha import displayhtml,submit
    last_result = '?'
    if request.method == 'POST':
        challenge = request.POST['recaptcha_challenge_field']
        response  = request.POST['recaptcha_response_field']
        remoteip  = os.environ['REMOTE_ADDR']
        logging.info("challenge=%s, response=%s, remoteip=%s"%(challenge,response,remoteip))
        resp = submit(challenge, response, getConfig('CAPTCHA_PRIVATE_KEY',''), remoteip)
        if resp.is_valid:
            logging.info('OK')
            last_result = 'OK'
        else:
            logging.info('ERROR')
            last_result = 'ERROR'

    html_captcha = displayhtml(getConfig('CAPTCHA_PUBLIC_KEY',''))
    return render_to_response('utils/captcha.html', RequestContext(request, { 'html_captcha': html_captcha , 'last_result':last_result}))
Exemple #5
0
def parse_email(request, file_key):
    data = get_blob_data(file_key)
    if data is None:
        raise Http404

    r = ""
    email = EmailMessage(data)
#    fix_encoding(email)     
    email.check_initialized()
    email.sender = getConfig("MAIL_TEST_FROM")
    email.to = getConfig("MAIL_TEST_TO")

    if getConfigBool("ENABLE_MAIL_TEST",False):
        logging.info('sending email....')
        email.send()

    r = email.to_mime_message()

    return HttpResponse('parse ok - %s'%r)
Exemple #6
0
def send_mail_to_admins(subject='',message=''):
    logging.info('sending mail to admin') 
    sender = getConfig('ADMIN_EMAIL')
    if not sender:
        logging.info('missing admin email address (cfg key: ADMIN_EMAIL)')
        return

    if not mail.is_email_valid(sender):
        logging.info('admin email is not valid')


    #mail.send_mail(admin,admin,subject,message)
    mail.send_mail_to_admins(sender, subject,message)
        
    return
Exemple #7
0
def email_job_create(request):
    email_groups = EMailList.all()
    email_templates = EMailTemplate.all()


    if request.method == 'POST':
        form = EMailJobCreateForm(request.POST,email_groups=email_groups, email_templates=email_templates)
        if form.is_valid():
            logging.info('creating new job request')
            el = EMailList.get(form.cleaned_data['email_group_id'])
            if el is None:
                raise Http404
            et = EMailTemplate.get(form.cleaned_data['email_template_id'])
            if et is None:
                raise Http404

            job = EMailJob()
            job.name = "'%s' -> '%s'"%(et.name,el.name)
            job.save()

            job_data = EMailJobData(parent=job)             
            job_data.sender = getConfig('DEFAULT_SENDER')
            job_data.split_count = getConfigInt('MAIL_SPLIT_COUNT',10)
            job_data.emails = el.emails
            job_data.data =  et.data

            job_data.save()
            job.data_ref = job_data.key()
            job.save()

            logging.info('new job: %s'%job)

            taskqueue.add(url='/tasks/prepare_email_job/%d/'%job.key().id(), method='GET')

            return redirect('..')
    else:
        form = EMailJobCreateForm(email_groups=email_groups, email_templates=email_templates)

    return render_to_response('emails/email_job_create.html', RequestContext(request, { 'form': form}))
Exemple #8
0
def send_mail_to_user(subject='',message='', user=None):
    logging.info('sending mail to user') 
    sender = getConfig('ADMIN_EMAIL')
    if not sender:
        logging.info('missing admin email address (cfg key: ADMIN_EMAIL)')
        return

    if not mail.is_email_valid(sender):
        logging.info('admin email is not valid')
        return

    if not user:
        logging.info('missing recipient email address')
        return

    if not mail.is_email_valid(user):
        logging.info('recipient email is not valid')
        return

    mail.send_mail(sender, user, subject,message)
        
    return
def firstPlay(bank=None, type_='french', minimum_bet=1, maximum_bet=10000, break_=False):
    global currentBank, withColors

    # Get config
    conf = config.getConfig()

    # Override bank if necessary
    if bank:
        config.update('bank', bank)
    
    #LastPos = random.randint(0, 37)
    
    #CounterClock = True
    
    # Vars
    currentBank = float(conf['bank'])  # Set the default bank
    # Create the roulette wheel with colors
    withColors = addColors(french if type_ == 'french' else american)

    play(type_=type_,
         minimum_bet=minimum_bet,
         maximum_bet=maximum_bet,
         break_=break_)
Exemple #10
0
import json
import os
import random
import shutil
import time
import threading

import PIL
from PIL import Image
import requests

from utils.config import getConfig

__CONFIG_LOC__ = 'config/config.json'
config = getConfig(__CONFIG_LOC__)

extensions = set()


class ThreadClass(object):
    def __init__(self, interval=300):
        self.interval = interval

        thread = threading.Thread(target=self.run, args=())
        thread.daemon = True  # Daemonize thread
        thread.start()  # Start the execution

    def run(self):
        """ Method that runs forever """
        while True:
            get_list_files()
Exemple #11
0
def clearance_edit(request, clearance_id):
    clearance = Clearance.get_by_id(int(clearance_id))
    if clearance is None:
        raise Http404


    if getConfig('CLEARANCE_ALL_ORDER_ITEMS',0):
        logging.info('showing all order items!')
        order_item_query = OrderItem.objects.all().filter('date =', clearance.date)
    else:
        order_item_query = OrderItem.objects.all().filter('date =', clearance.date).filter('clearance_item_ref =', None)

    c_pick_form = None
    c_give_form = None
    c_del_form = None
    c_clear_form = None
    c_load_form = None
    c_deposit_form = None

    pick_accounts = Account.objects.all().filter('purpose =', 'user').fetch(100)
    give_accounts = Account.objects.all().filter('purpose =', 'credit').fetch(100)

    if request.method == 'POST':
        logging.info(request.POST) 
        if request.POST['action'] == 'update':
            c_form = ClearanceForm(request.POST)
            if c_form.is_valid():
                clearance.date = c_form.cleaned_data['date']
                clearance.desc = c_form.cleaned_data['desc']
                clearance.save()
        if request.POST['action'] == 'pick_item':
            order_items = order_item_query.fetch(100)
            c_pick_form = ClearanceItemPickForm(request.POST,accounts=pick_accounts,order_items=order_items)     
            if c_pick_form.is_valid():
                logging.info('c_pick_form is valid!')
                order_item = OrderItem.get(c_pick_form.cleaned_data['order_item_id'])
                account = Account.get(c_pick_form.cleaned_data['account_id'])
                logging.info('account = %s'%account)
                logging.info('order_item = %s'%order_item)
                if order_item is None:
                    raise Http404
                if account is None:
                    raise Http404

                ci = ClearanceItem(parent=clearance)
                ci.account = account
                ci.order_item = order_item
                ci.cost = order_item.cost
                ci.desc = order_item.name
                ci.purpose='pick'
                ci.save()

                order_item.clearance_item_ref = ci.key()
                order_item.save() 

                c_pick_form = None

        if request.POST['action'] == 'give_item':
            c_give_form = ClearanceItemGiveForm(request.POST, give_accounts)
            if c_give_form.is_valid():
                logging.info('c_give_form is valid!')
                account = Account.get(c_give_form.cleaned_data['account_id'])
                logging.info('account = %s'%account)
                if account is None:
                    raise Http404

                ci = ClearanceItem(parent=clearance)
                ci.account = account
                ci.cost = int(c_give_form.cleaned_data['cost'])
                ci.purpose='give'
                ci.save()
  
                c_give_form = None

        if request.POST['action'] == 'load_item':
            c_load_form = ClearanceItemLoadForm(request.POST, give_accounts)
            if c_load_form.is_valid():
                logging.info('c_load_form is valid!')
                account = Account.get(c_load_form.cleaned_data['account_id'])
                logging.info('account = %s'%account)
                if account is None:
                    raise Http404

                ci = ClearanceItem(parent=clearance)
                ci.account = account
                ci.cost = int(c_load_form.cleaned_data['cost'])
                ci.purpose='load'
                ci.desc = c_load_form.cleaned_data['desc']
                ci.save()
  
                c_load_form = None

        if request.POST['action'] == 'deposit_item':
            c_deposit_form = ClearanceItemDepositForm(request.POST, pick_accounts)
            if c_deposit_form.is_valid():
                logging.info('c_deposit_form is valid!')
                account = Account.get(c_deposit_form.cleaned_data['account_id'])
                logging.info('account = %s'%account)
                if account is None:
                    raise Http404

                ci = ClearanceItem(parent=clearance)
                ci.account = account
                ci.cost = int(c_deposit_form.cleaned_data['cost'])
                ci.purpose='deposit'
                ci.desc = c_deposit_form.cleaned_data['desc']
                ci.save()
  
                c_deposit_form = None



        if request.POST['action'] == 'del_item':
            c_list = ClearanceItem.objects.all().ancestor(clearance).fetch(100)
            c_del_form = ClearanceItemDelForm(request.POST, items = c_list)
            if c_del_form.is_valid():
                logging.info('c_del_form is valid!')
                clearance_item = ClearanceItem.get(c_del_form.cleaned_data['item_id'])
                if clearance_item is None:
                    raise Http404
                if not (clearance_item.order_item is None):
                    logging.info('unmark %s'%clearance_item.order_item)
                    clearance_item.order_item.clearance_item_ref=None
                    clearance_item.order_item.save()
                clearance_item.delete()
                c_del_form = None

        if request.POST['action'] == 'clear_item':
            c_list = ClearanceItem.objects.all().ancestor(clearance).fetch(100)
            c_clear_form = ClearanceItemClearForm(request.POST, items = c_list)
            if c_clear_form.is_valid():
                logging.info('c_clear_form is valid!')
                clearance_item = ClearanceItem.get(c_clear_form.cleaned_data['item_id'])
                if clearance_item is None:
                    raise Http404
                c_clear_form = None
 

 
    
    c_form = ClearanceForm({'date':clearance.date, 'desc':clearance.desc})

    c_list = ClearanceItem.objects.all().ancestor(clearance).fetch(100)
    cost_pick = sum([i.cost for i in c_list if i.purpose=='pick'])
    cost_give = sum([i.cost for i in c_list if i.purpose=='give'])
    cost_load = sum([i.cost for i in c_list if i.purpose=='load'])
    cost_deposit = sum([i.cost for i in c_list if i.purpose=='deposit'])
 
    cost_diff = cost_pick - cost_give
    cost_put_diff = cost_deposit - cost_load
    logging.info('cost_pick=%d, cost_give=%d'%(cost_pick,cost_give))

    if c_pick_form is None:
        order_items = order_item_query.fetch(100)
        c_pick_form = ClearanceItemPickForm(accounts=pick_accounts,order_items=order_items)

    if c_give_form is None:
        c_give_form = ClearanceItemGiveForm(accounts=give_accounts,cost = cost_pick-cost_give)

    if c_del_form is None:
        c_del_form = ClearanceItemDelForm(items = c_list)

    if c_clear_form is None:
        c_clear_form = ClearanceItemClearForm(items = c_list)

    if c_load_form is None:
        c_load_form = ClearanceItemLoadForm(accounts=give_accounts, cost = cost_put_diff)
    
    if c_deposit_form is None:
        c_deposit_form = ClearanceItemDepositForm(accounts=pick_accounts)





    return render_to_response('vital/clearance_edit.html', RequestContext(request, 
            {'c_form':c_form, 'c_list':c_list, 'c_pick_form': c_pick_form, 'c_give_form': c_give_form, 'c_del_form':c_del_form, 
             'cost_pick':cost_pick, 'cost_give':cost_give, 'cost_diff':cost_diff, 'c_clear_form':c_clear_form,
             'c_load_form':c_load_form, 'c_deposit_form':c_deposit_form,
             'cost_load':cost_load, 'cost_deposit':cost_deposit, 'cost_put_diff':cost_put_diff,
            }))