def setTweets(request):
    #body_unicode = request.body.decode('utf-8')

    #body = json.loads(body_unicode)
    #content = body['tweet']
    #name = request.form['tweet']
    twitter = createAuthObj()
    form = forms.Form(request.POST)
    content = form.data['tweet']
    print(content)
    url = settings.TWITTER_CONFIG[
        'END_POINT'] + '/statuses/update.json?status=' + content
    response = twitter.post(url)
    return HttpResponse(response)
示例#2
0
def del_company(request: WSGIRequest, company_pk: int) -> HttpResponse:
    company = get_object_or_404(Company, pk=company_pk)

    form = forms.Form(request.POST or None)
    if form.is_valid():
        company.delete()

        return redirect("bags:main_index")

    context = {
        "company": company,
        "form": form,
    }
    return render(request, "bags/company/del_company.html", context)
    def get_filter_form(self, data):
        """
        Returns the filter form based on filter data.

        :param data: A dictionary with filters that should be used.
        :return: A filtering form for this report.
        """
        form=forms.Form(data=data)
        for q in self.query_params:
            control = FilterControl.create_from_datatype(q[2],q[0],q[1])
            fields = control.get_fields()
            form.fields.update(fields)
        form.full_clean()
        return form
示例#4
0
def dispatch(request):

    if request.method == 'POST' and request.POST != {}:
        requestObject = request.POST
        form = forms.Form(requestObject)

    if 'csv' in request.POST or 'downloadstats' in request.POST:

        if form.is_valid():
            try:
                context = {'searchValues': requestObject}
                csvformat, fieldset, csvitems = setupCSV(
                    request, requestObject, context, prmz)
                loginfo('search', 'csv', context, request)

                # create the HttpResponse object with the appropriate CSV header.
                response = HttpResponse(content_type='text/csv')
                response[
                    'Content-Disposition'] = 'attachment; filename="%s-%s.%s"' % (
                        prmz.CSVPREFIX,
                        datetime.datetime.utcnow().strftime("%Y%m%d%H%M%S"),
                        prmz.CSVEXTENSION)
                return writeCsv(response,
                                fieldset,
                                csvitems,
                                writeheader=True,
                                csvFormat=csvformat)
            except:
                messages.error(request, 'Problem creating .csv file. Sorry!')
                context['messages'] = messages
                return search(request)

    elif 'pdf' in request.POST:

        if form.is_valid():
            try:
                context = {'searchValues': requestObject}
                loginfo('search', 'pdf', context, request)
                return setup4PDF(request, context, prmz)

            except:
                messages.error(request, 'Problem creating .pdf file. Sorry!')
                context['messages'] = messages
                return search(request)

    elif 'preview' in request.POST:
        messages.error(request, 'Problem creating print version. Sorry!',
                       request)
        context = {'messages': messages}
        return search(request)
def test_field_title_quoting():
    with translation.override("en"):
        field = forms.ModelMultipleChoiceField(
            queryset=User.objects.all(),
            help_text="Something about \"Control\"")
        field.choices = []  # Don't bother with database stuff
        assert "\"Control\"" in force_text(field.help_text)
        form = forms.Form()
        form.fields["field1"] = field
        form.fields["field2"] = forms.CharField(label="An Unrelated Field")
        assert ""Control"" in force_text(
            AdminFieldRenderer(form["field1"]).render())
        assert "title=\"\"" not in force_text(
            AdminFieldRenderer(form["field2"]).render())
示例#6
0
文件: forms.py 项目: superf2t/bitte
class ContextForm(ModelForm):
    hiddenValues = forms.Form()
    hiddenValues.fields['lat_position'] = forms.DecimalField(
        widget=forms.widgets.HiddenInput())
    hiddenValues.fields['long_position'] = forms.DecimalField(
        widget=forms.widgets.HiddenInput())
    distance = forms.IntegerField()

    class Meta:
        model = Context
        fields = [
            'companion', 'motivation', 'date', 'lat_position', 'long_position'
        ]
        exclude = ['date', 'weather']

    def convert_grad_to_weather(self, grad):
        grad = int(grad)
        if grad <= 10:
            return 'VC'
        if ((grad > 10) and (grad <= 20)):
            return 'C'
        elif ((grad > 20) and (grad <= 25)):
            return 'A'
        elif ((grad > 25) and (grad <= 30)):
            return 'H'
        else:
            return 'VH'

    def save(self, request, commit=True):
        if request.user.is_authenticated():
            user = request.user
            contexto = super(ContextForm, self).save(commit=False)
            yahoo_result = pywapi.get_weather_from_yahoo('BRXX3272')
            grad = yahoo_result['condition']['temp']
            contexto.weather = self.convert_grad_to_weather(grad)
            contexto.lat_position = self.cleaned_data["lat_position"]
            contexto.long_position = self.cleaned_data["long_position"]
            distance = self.cleaned_data["distance"]
            if commit:
                contexto.save()
                CurrentContext.objects.filter(user=user).update(current=False)
                CurrentContext.objects.create(user=user,
                                              context=contexto,
                                              distance_max=distance)
            ctx = {'form': form}
            return distance

        else:
            return HttpResponse(u"precisa está logado")
示例#7
0
def GetFormField(key, ModelField, **kwargs):
    '''
    由模型字段构造表单字段,供前端灵活使用
    
    key                表单字段名称
    ModelField    定义的模型字段 如: EmpPoPMultForeignKey
    
    返回可直接供前端使用的表单字段 如: 选人控件
    '''
    from django import forms
    from dbapp.widgets import form_field
    form = forms.Form()
    m_formfield = form_field(ModelField, **kwargs)
    form.fields[key] = m_formfield
    return form[key]
示例#8
0
    def get_form(self):

        form_structure = FormSchema.objects.get(
            pk=self.kwargs["form_pk"]
        ).schema  # convert json string to a python object which is a dict as well
        custom_form = forms.Form(**self.get_form_kwargs(
        ))  # create an instance of the base django.forms.Form class

        for key, value in form_structure.items():
            field_class = self.get_field_class_from_type(value)
            if field_class is not None:
                custom_form.fields[key] = field_class()
            else:
                raise TypeError("invalid field type {}".format(value))
        return custom_form
示例#9
0
def del_giveaway(request: WSGIRequest, giveaway_pk: int) -> HttpResponse:
    giveaway: Giveaway = get_object_or_404(Giveaway, id=giveaway_pk)

    form = forms.Form(request.POST or None)
    if form.is_valid():
        giveaway.delete()
        return redirect("bags:list_grouped_giveaways")

    context = {
        "giveaway": giveaway,
        "form": form,
    }
    return render(request,
                  "bags/giveaways/giveaway/del_giveaway.html",
                  context=context)
示例#10
0
def sign_in(request):
    if request.method == 'POST':
        form = forms.Form(request.POST)
        username = form.data['username']
        password = form.data['password']
        if User.objects.filter(username=username).count() == 0:
            messages.error(request, '无法在数据库中找到' + username + '的信息')
            return render(request, 'sign_in.html')
        if password != User.objects.get(username=username).password:
            messages.error(request, '密码错误')
            return render(request, 'sign_in.html')
        request.session['username'] = username
        return redirect('library:function')
    else:
        return render(request, 'sign_in.html')
示例#11
0
 def getHtmlForUserPreferences(self, user):
     # First fill data for all preferences
     data = {}
     for up in user.preferences.all().order_by('module'):
         data[self.__nameFor(up.module, up.name)] = up.value
     res = ''
     for mod, v in sorted(six.iteritems(self._prefs)):
         form = forms.Form()
         for p in v['prefs']:
             name = self.__nameFor(mod, p.getName())
             val = data[name] if name in data else p.getDefValue()
             form.fields[name] = p.formField(val)
         res += '<fieldset class="prefset"><legend>' + v[
             'friendlyName'] + '</legend>' + form.as_p() + '</fieldset>'
     return res
示例#12
0
 def get(self, request, *args, **kwargs):
     if self.form_class:
         form = self.form_class(initial=self.initial)
     else:
         form = forms.Form()
     userProfile = None
     if request.user.is_authenticated:
         try:
             userProfile = UserProfile.objects.get(user=request.user)
         except UserProfile.DoesNotExist:
             userProfile = None
     return render(request, self.template_name, {
         'form': form,
         'userProfile': userProfile
     })
示例#13
0
def del_participant(request: WSGIRequest,
                    participant_pk: UUID) -> HttpResponse:
    participant = get_object_or_404(Participant, pk=participant_pk)

    form = forms.Form(request.POST or None)
    if form.is_valid():
        participant.delete()

        return redirect("fahrt:main_index")

    context = {
        "form": form,
        "participant": participant,
    }
    return render(request, "fahrt/participants/del_participant.html", context)
示例#14
0
def screenShot(request):
    if request.method == 'POST':
        myform = forms.Form(request.POST, request.FILES)
        if myform.is_valid():
            print(myform.cleaned_data.keys())
            config = ('-l eng --oem 1 --psm 3')
            text = pytesseract.image_to_string(Image.open(
                myform.files['screenshot']),
                                               config=config)
            emotion = predict(text)
            print(f"text : {text}")
            print(f"emotion : {emotion}")
            f = open("static/audiofy/emotion.txt", "w")
            f.write(emotion)
            f.close()
            return JsonResponse({"success": True}, status=200)
示例#15
0
def update(request):
    if request.method == 'POST':
        form = forms.Form(request.POST)
        IMEI = form.data['IMEI']
        if len(IMEI) != 32:
            messages.error(request, 'IMEI长度应为32位, 请重新输入')
            return render(request, 'ham/update.html')
        obj = Ham.objects.get(username=request.session['username'])
        if IMEI == obj.IMEI:
            messages.error(request, '新IMEI不能与旧IMEI相同')
            return render(request, 'ham/update.html')
        obj.IMEI = IMEI
        messages.success(request, 'IMEI更新成功,即将跳转到登录页面')
        return redirect(reverse('ham:sign_in'))
    else:
        return render(request, 'ham/update.html')
示例#16
0
    def test_markdown_widget(self):
        """test MarkdownWidget.render"""

        form = forms.Form()
        form.fields['test_field'] = forms.CharField(
            label='test',
            widget=MarkdownWidget
        )

        template = Template(
            '{% load django_markdown %}<html>{{ form }}</html>'
        )
        context = Context({'form': form})
        html = template.render(context)

        self.assertIn('"previewParserPath": "/markdown/preview/"', html)
示例#17
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self._bound_fields_cache = {}

        initial = self.form.initial.get(self.name, self.field.initial)
        if isinstance(initial, CompositeType):
            initial = initial.__to_dict__()

        if self.form.is_bound:
            data = self.form.data
        else:
            data = None

        self.composite_form = forms.Form(
            data=data, initial=initial, prefix=self.form.add_prefix(self.name))
        self.composite_form.fields = copy.deepcopy(self.field.fields)
示例#18
0
def retrieveResults(request):
    if request.method == 'POST' and request.POST != {}:
        requestObject = request.POST
        form = forms.Form(requestObject)

        if form.is_valid():
            context = {'searchValues': requestObject}
            context = doSearch(SOLRSERVER, SOLRCORE, context)

            global SEARCHRESULTS
            SEARCHRESULTS = context

            context = setConstants(context)

        loginfo('results.%s' % context['displayType'], context, request)
        return render(request, 'public_searchResults.html', context)
示例#19
0
def bmapper(request):
    if request.method == 'POST' and request.POST != {}:
        requestObject = request.POST
        form = forms.Form(requestObject)

        if form.is_valid():
            context = {'searchValues': requestObject}

            if 'kml' in request.path:
                response = setupKML(request, requestObject, context, prmz)
                loginfo('internal', 'kml', context, request)
                return response
            else:
                context = setupBMapper(request, requestObject, context, prmz)
                loginfo('internal', 'bmapper', context, request)
                return HttpResponse(context['bmapperurl'])
示例#20
0
    def render(self, context):
        request = context.get('request')
        if not request.user.is_staff:
            return ''
        template_name = context.get('template_name')
        placeholders = get_placeholders(template_name)
        page = context.get('current_page')
        lang = context.get('lang', pages_settings.PAGE_DEFAULT_LANGUAGE)
        form = forms.Form()
        for p in placeholders:
            field = p.get_field(page, lang)
            form.fields[p.name] = field

        link = '<link href="{}" type="text/css" media="all" rel="stylesheet" />'.format(
            static('pages/css/inline-edit.css'))

        return "{}{}".format(form.media, link)
示例#21
0
文件: mixins.py 项目: zjw2011/pretix
 def invoice_form(self):
     if not self.address_asked and self.request.event.settings.invoice_name_required:
         return self.invoice_name_form_class(
             data=self.request.POST if self.request.method == "POST" else None,
             event=self.request.event,
             instance=self.invoice_address, validate_vat_id=False,
             all_optional=self.all_optional
         )
     if self.address_asked:
         return self.invoice_form_class(
             data=self.request.POST if self.request.method == "POST" else None,
             event=self.request.event,
             instance=self.invoice_address, validate_vat_id=False,
             all_optional=self.all_optional,
         )
     else:
         return forms.Form(data=self.request.POST if self.request.method == "POST" else None)
示例#22
0
def renew(request):
    user = User.objects.get(username=request.session['username'])
    books = user.books.all()
    if request.method == 'POST':
        form = forms.Form(request.POST)
        id = form.data['id']
        if not id:
            messages.error(request, '图书ID不可为空!')
            return redirect(reverse('library:renew'))
        if books.filter(id=id).count() == 0:
            messages.error(request, '您未借阅ID为' + str(id) + '的图书')
            return redirect('library:renew')
        book = Book.objects.get(id=id)
        return_date = book.return_date
        today = timezone.localdate()
        if book.status == '续借':
            messages.error(request, '您已续借过该图书,无法连续续借')
            return redirect('library:renew')
        if return_date > today:
            book.status = '续借'
            borrower = User.objects.get(username=request.session['username'])
            book.borrower = borrower
            return_date = timezone.datetime.now() + timezone.timedelta(days=7)
            book.return_date = return_date.strftime("%Y-%m-%d")
            book.save()
            messages.error(
                request,
                '已成功续借《' + book.name + '》请在' + book.return_date + '之前归还图书')
            return redirect('library:function')
        else:
            messages.error(request, '抱歉,您未在规定时间内归还该图书,已失去该图书的续借资格')
            return redirect('library:renew')
    else:
        data = [[] for _ in range(len(books))]
        for i in range(len(books)):
            item = books[i]
            data[i].append(str(item.name))
            data[i].append(str(item.id))
            data[i].append(str(item.publish_house))
            data[i].append(str(item.release_date))
            data[i].append(str(item.author))
            data[i].append(item.category)
            data[i].append(item.status)
            data[i].append(str(item.return_date))
        return render(request, 'renew.html', {'data': data})
def mailer_synchronization_view(request):
    if request.method == "POST":
        try:
            sync_result = synchronize(settings.MAILER)
            notification = bread.layout.components.notification.InlineNotification(
                _("Sychronization successful"),
                _("Synchronized with mailer segment containing %s contacts. %s new persons were added to BasxConnect."
                  ) % (
                      sync_result.total_synchronized_persons,
                      sync_result.persons.filter(
                          sync_status=SynchronizationPerson.NEW).count(),
                  ),
                kind="success",
            )
        except Exception:
            notification = bread.layout.components.notification.InlineNotification(
                "Error",
                f"An error occured during synchronization. {traceback.format_exc()}",
                kind="error",
            )
    else:
        notification = None

    help_modal = sync_help_modal()
    return hg.BaseElement(
        Form(
            forms.Form(),
            bread.layout.grid.Grid(
                hg.H3(_("Synchronization of Email Subcriptions")),
                notification,
                gutter=False,
            ),
            help_modal,
            layout.forms.helpers.Submit(_("Download subscriptions"),
                                        style="display: inline-block;"),
            layout.button.Button(
                _("Help"),
                buttontype="ghost",
                style="margin-left: 1rem",
                icon="help",
                **help_modal.openerattributes,
            ),
        ),
        display_previous_execution(request),
    )
示例#24
0
 def get_form(self, data=None):
     form = forms.Form(data)
     form.fields['poll'] = \
         forms.CharField(widget=forms.HiddenInput, initial=self.pk)
     for question in self.questions.all():
         if question.multi_choice:
             form.fields['question_%d' % question.pk] = \
                 forms.ModelMultipleChoiceField(label=question.question,
                     queryset=question.answers,
                     error_messages={'required': u'Пожалуйста, выберите вариант ответа'},
                     widget=forms.CheckboxSelectMultiple)
         else:
             form.fields['question_%d' % question.pk] = \
                 forms.ModelChoiceField(label=question.question,
                     queryset=question.answers, empty_label=None,
                     error_messages={'required': u'Пожалуйста, выберите вариант ответа'},
                     widget=forms.RadioSelect)
     return form
示例#25
0
 def get_filter_form(self, request):
     """Retrieves naive filter based upon list_filter and the queryset model fields.. will not follow __ relations i think"""
     # TODO iterate through list filter and create appropriate widget and prefill from request
     form = forms.Form(data=request.REQUEST)
     for f in self.list_filter:
         # Allow specification of custom filter control, or specify field name (and label?)
         if isinstance(f, FilterControl):
             control = f
         else:
             mfi, mfm = get_lookup_field(self.queryset.model,
                                         self.queryset.model, f)
             # TODO allow label as param 2
             control = FilterControl.create_from_modelfield(mfi, f)
         if control:
             fields = control.get_fields()
             form.fields.update(fields)
     form.full_clean()
     return form
示例#26
0
def statistics(request):
    if request.method == 'POST' and request.POST != {}:
        requestObject = request.POST
        form = forms.Form(requestObject)

        if form.is_valid():
            elapsedtime = time.time()
            try:
                context = {'searchValues': requestObject}
                loginfo('internal', 'statistics1', context, request)
                context = computeStats(request, requestObject, context, prmz)
                loginfo('internal', 'statistics2', context, request)
                context['summarytime'] = '%8.2f' % (time.time() - elapsedtime)
                # 'downloadstats' is handled in writeCSV, via post
                return render(request, 'statsResults.html', context)
            except:
                context['summarytime'] = '%8.2f' % (time.time() - elapsedtime)
                return HttpResponse('Please pick some values!')
示例#27
0
def test_percentage_field():
    field = PercentageField(min_value=0, max_value=Decimal("0.7"))
    assert Decimal(str(field.widget.attrs["max"])) == 70
    assert field.to_python("50") == Decimal("0.5")
    assert field.to_python(50) == Decimal("0.5")
    assert field.to_python(500) == Decimal(5)
    assert field.to_python("") is None
    assert field.prepare_value(Decimal("0.50")) == 50
    with pytest.raises(ValidationError):
        field.clean(-7)  # --> -0.07 (< min_value)
    with pytest.raises(ValidationError):
        field.clean("700")  # -> 7 (> max_value)

    frm = forms.Form(data={"x": "15"})
    frm.fields["x"] = field
    frm.full_clean()

    assert frm.cleaned_data["x"] == Decimal("0.15")
示例#28
0
 def render(self, form, request, step, context=None):
     "Renders the given Form object, returning an HttpResponse."
     old_data = request.POST
     prev_fields = []
     if old_data:
         for i in range(step):
             old_form = self.get_form(i, old_data)
             hash_name = 'hash_%s' % i
             if isinstance(old_form, BaseFormSet):
                 for _form in old_form.forms + [old_form.management_form]:
                     prev_fields.extend([bf for bf in _form])
             else:
                 prev_fields.extend([bf for bf in old_form])
             hash_field = forms.Field(initial=old_data.get(
                 hash_name, self.security_hash(request, old_form)))
             bf = BoundField(forms.Form(), hash_field, hash_name)
             prev_fields.append(bf)
     return self.render_template(request, form, prev_fields, step, context)
示例#29
0
def csv(request):
    if request.method == 'POST' and request.POST != {}:
        requestObject = request.POST
        form = forms.Form(requestObject)

        if form.is_valid():
            # context = {'searchValues': requestObject}
            # context = doSearch(SOLRSERVER, SOLRCORE, context)
            context = SEARCHRESULTS

            # Create the HttpResponse object with the appropriate CSV header.
            response = HttpResponse(content_type='text/csv')
            response['Content-Disposition'] = 'attachment; filename="%s-%s.%s"' % (CSVPREFIX,datetime.datetime.utcnow().strftime("%Y%m%d%H%M%S"),CSVEXTENSION)
            #response.write(u'\ufeff'.encode('utf8'))
            writeCsv(response, context['items'], writeheader=True)

            loginfo('csv', context, request)
            return response
示例#30
0
def facetJSON(request):
    if request.method == 'GET' and request.GET != {}:
        requestObject = dict(request.GET.iteritems())
        form = forms.Form(requestObject)

        if form.is_valid():
            context = {'searchValues': requestObject}
            context = doSearch(context, prmz, request)

            loginfo(logger, 'results.%s' % context['displayType'], context, request)
            #del context['FIELDS']
            #del context['facets']
            if not 'items' in context:
                return accesscontrolalloworigin(json.dumps('error'))
            else:
                return accesscontrolalloworigin(json.dumps({'facets': context['facets'],'fields': context['fields']}))
    else:
        return accesscontrolalloworigin(json.dumps('no data seen'))