def create_entry_from_dict(data):
    p = Entry(
        address=data.get('address').decode('utf8'),
        email=data.get('email').decode('utf8'),
        phone=data.get('tlf').decode('utf8'),
    )
    last_address_line = p.address.split(',')[-1]
    m = re.match('\W(\d{4})\W(.+)$', last_address_line)
    if m:
        try:
            postnr = Postnummer.objects.get(postnr=m.group(1))
            place = m.group(2)
            if postnr.poststad.lower() == place.lower():
                p.postnummer = postnr
            else:
                print("Expected place {}, got {} for {}."
                      .format(postnr.poststad, place, p.address))
        except Postnummer.DoesNotExist:
            print("Could not find postnr %s, for address %s" %
                  (m.group(1), p.address))
    if data['smth']:
        p.phone += " / %s" % data['smth']
    name = data['name'].decode('utf8')
    if ',' in name:
        try:
            p.last_name, p.first_name = name.split(',')
        except ValueError:
            print("Couldn't split name %s" % name)
            p.shown_name = name
    else:
        p.shown_name = name

    return p
Exemple #2
0
def on_incoming_message(request):
    if request.method == 'POST':

        try:
            data = json.loads(request.body)
        except:
            data = request.POST

        try:
            sender = data['sender']
            stripped_text = data['stripped-text']
        except:
            sender = None
            stripped_text = None

        if stripped_text is not None:

            try:
                user = User.objects.get(email=sender)
            except User.DoesNotExist:
                user = None

            if user is not None:
                user_tz = pytz.timezone(user.timezone)
                local_time = datetime.now(user_tz)

                todays_day = local_time.day
                todays_month = local_time.month
                todays_year = local_time.year

                try:
                    todays_prompt = Prompt.objects.get(
                        mail_day__day=todays_day,
                        mail_day__month=todays_month,
                        mail_day__year=todays_year)
                except Prompt.DoesNotExist:
                    todays_prompt = None

                if todays_prompt is not None:
                    try:
                        entry_exists = Entry.objects.get(
                            pub_date__day=todays_day,
                            pub_date__month=todays_month,
                            pub_date__year=todays_year,
                            author=user)
                    except Entry.DoesNotExist:
                        entry_exists = None

                    if entry_exists is None:
                        entry = Entry(content=stripped_text,
                                      author=user,
                                      prompt=todays_prompt,
                                      pub_date=timezone.now())
                        entry.save()

    return HttpResponse('OK')
Exemple #3
0
def api_putJSON(request):
    logger.info('function_call api_putJSON(request) ->')

    if request.POST:
        entry = Entry(id = request.POST.get('id'), json = request.POST.get('json'))
        entry.save()
        response = 'OK'
    else:
        response = 'No POST'

    return HttpResponse(response, content_type="application/json")
 def create_entry_from_dict(self, data):
     postnr = data.pop('postnummer', None)
     pay_postnr = data.pop('pay_postnummer', None)
     p = Entry(**data)
     def getpostnr(postnr):
         if not postnr:
             return
         try:
             return Postnummer.objects.get(postnr=postnr)
         except Postnummer.DoesNotExist:
             print("Could not find postnr %s, for address %s" %
                   (postnr, p.address))
     p.postnummer = getpostnr(postnr)
     p.pay_postnummer = getpostnr(pay_postnr)
     return p
Exemple #5
0
 def bulk_insert_approach(self):
     batch_size = 500
     objs = (Entry(name='Test %s' % i) for i in range(1000000))
     while True:
         batch = list(islice(objs, batch_size))
         if not batch:
             break
         Entry.objects.bulk_create(batch, batch_size)
Exemple #6
0
def add_entry(request):
    data = _get_default_template_data(request)
    if not data['user']:
        return HttpResponseRedirect(users.create_login_url(request.path))
    if request.method == "POST":
        form = EntryForm(request.POST)
        if form.is_valid():
            data = form.cleaned_data
            instance = Entry(title=data['title'], 
                             content=data['content'], 
                             labels=data['labels'].split(' '))
            instance.put()
        return HttpResponseRedirect("/entry/%s" % instance.key().id())
    else:
        form = EntryForm()
        data['form'] = form
        data.update(csrf(request))
        return render_to_response('edit.html', data)
Exemple #7
0
def index(request):
    label = request.GET.get('label', '')
    entries = Entry.all()
    if label:
        entries.filter("labels =", label)
    entries.order('-created_date')
    data = _get_default_template_data(request)
    data['entries'] = entries
    return render_to_response('index.html', data)
Exemple #8
0
def edit_entry(request, entry_id):
    data = _get_default_template_data(request)
    if not data['user']:
        return HttpResponseRedirect(users.create_login_url(request.path))
    entry = Entry.get_by_id(long(entry_id))
    if request.method == "POST":
        form = EntryForm(request.POST)
        if form.is_valid():
            entry.title = form.cleaned_data['title']
            entry.content = form.cleaned_data['content']
            entry.put()
            return HttpResponseRedirect("/entry/%s/" % entry_id)
    else:
        form = EntryForm(initial={'title': entry.title, 'content': entry.content})
        data['form'] = form
        data.update(csrf(request))
        return render_to_response('edit.html', data)
Exemple #9
0
def entry(request, entry_id):
    data = _get_default_template_data(request)
    data['entry'] = Entry.get_by_id(long(entry_id))
    return render_to_response('entry.html', data)
Exemple #10
0
 def common_insert_approach(self):
     for i in range(100000):
         entry = Entry()
         entry.name = "Test {}".format(i)
         entry.save()