コード例 #1
0
def list_group_by_tag(request, group_tag):

    groups = models.CommonGroup.objects.filter(tag_name=group_tag)
    if len(groups) > 0:
        group = groups[0]
        url = make_href(
            "/schreports/table/CommonGroup/%d/%d/form/tree/?only_content=1" %
            (group.id, group.id))
    else:
        url = make_href(
            "/schreports/table/CommonGroup/0/form/tree/?only_content=1")
    return HttpResponseRedirect(url)
コード例 #2
0
    def formfield(self, **kwargs):
        if type(self.to) == str:
            to = self.model
        else:
            to = self.to

        href1 = make_href(
            "/%s/table/%s/%s/form/get/?schtml=1" %
            (to._meta.app_label, to._meta.object_name, self.filter))
        href2 = make_href(
            "/%s/table/%s/%s/add/?schtml=1" %
            (to._meta.app_label, to._meta.object_name, self.filter))
        field = self

        if self.search_fields:
            _search_fields = self.search_fields
            _query = self.query

            class _Field(forms.ModelChoiceField):
                def __init__(self, queryset, *argi, **argv):
                    nonlocal _query, _search_fields
                    if _query:
                        if "Q" in _query:
                            queryset = queryset.filter(_query["Q"])
                        if "order" in _query:
                            queryset = queryset.order_by(*_query["order"])
                        if "limmit" in _query:
                            queryset = queryset[:_query["limit"]]

                    widget = ModelSelect2WidgetExt(
                        href1,
                        href2,
                        field.verbose_name,
                        queryset=queryset,
                        search_fields=_search_fields,
                    )
                    widget.attrs["style"] = "width:400px;"
                    argv["widget"] = widget
                    forms.ModelChoiceField.__init__(self, queryset, *argi,
                                                    **argv)

            defaults = {
                "form_class": _Field,
            }
        else:
            defaults = {}
        defaults.update(**kwargs)
        return super().formfield(**defaults)
コード例 #3
0
def new_group(request, group_type, parent_id):

    #new_group/(?P<group_type>\w+)/(?P<parent_id\d+)/$
    if parent_id and int(parent_id) > 0:
        parent = models.CommonGroup.objects.get(id=int(parent_id))
    else:
        parent = None
    group = models.CommonGroup()
    if parent:
        group.parent = parent
        gparent = parent
        while gparent.parent:
            gparent = gparent.parent
        group.gparent = gparent
        group.gp_group_def_name = gparent.group_def_name
    else:
        group.gp_group_def_name = group_type

    group.group_def_name = group_type
    group.save()

    if not group.gparent:
        group.gparent = group
        group.save()

    url = make_href("/schreports/table/CommonGroup/%d/edit__group/" % group.id)
    return HttpResponseRedirect(url)
コード例 #4
0
def template_edit(request, pk):
    
    table = models.SChTable.objects.get(id=pk)
    templates = models.SChTemplate.objects.filter(parent=table.parent).filter(name=table.name)
    if len(templates)==0:
        template=models.SChTemplate(parent=table.parent, name=table.name)
    
        generics =  table.schfield_set.filter(type__in=['GTreeForeignKey', 'GHiddenTreeForeignKey',])
        if len(generics) > 0:
            template_suffix = "tree"
        else:
            template_suffix = "tbl"
    
        file_name = settings.PRJ_PATH + ("/schdevtools/templates_src/schbuilder/wzr/new_generic_%s_template.ihtml" % template_suffix)
    
        f = open(file_name, "rt")
        template.template_code = f.read()
        f.close()
        template.save()
        id = template.id
    else:
        id = templates[0].id
    
    new_url = make_href("/schbuilder/table/SChTemplate/%s/template_code/py/editor/" % str(id))
    
    return HttpResponseRedirect(new_url)
コード例 #5
0
 def inner(request, *args, **kwargs):
     v = func(request, *args, **kwargs)
     if 'redirect' in v:
         return HttpResponseRedirect(make_href(v['redirect']))
     elif 'template_name' in v:
         return render_to_response(v['template_name'], v, request=request)
     else:
         return render_to_response(template_name, v, request=request)
コード例 #6
0
ファイル: views.py プロジェクト: JdeH/pytigon
def search(request, **argv):
    q = request.POST.get("q", "")
    q2 = b32encode(q.encode('utf-8')).decode('utf-8')
    print("Q:", q2)
    if hasattr(settings, "SEARCH_PATH"):
        return HttpResponseRedirect(
            make_href((settings.SEARCH_PATH % q2) + "?only_content=1"))
    else:
        return Http404()
コード例 #7
0
def edit__rep2(request, dochead_id):

    reps = models.Report.objects.filter(order=dochead_id)
    if reps.count() > 0:
        new_url = make_href("/schreports/table/Report/%d/edit__rep/" %
                            reps[0].id)
        return HttpResponseRedirect(new_url)
    else:
        return HttpResponse("Error - report doesn't exist")
コード例 #8
0
def repaction(request, dochead_id, rep_action):

    doc = DocHead.objects.get(pk=dochead_id)
    reps = models.Report.objects.filter(order=doc.id, parent=None)
    if reps.count() > 0:
        url = make_href("/schreports/table/Report/%d/%s/" %
                        (reps[0].id, rep_action.replace('__', '/')))
        return HttpResponseRedirect(url)
    else:
        return HttpResponse("Error - document: %d doesn't exists" % dochead_id)
コード例 #9
0
def new_subrep(request, parent_rep_id, rep_type):

    rep_parent = models.Report.objects.get(pk=parent_rep_id)
    rep = models.Report()
    rep.parent = rep_parent
    rep.order = 0
    rep.report_def_name = rep_parent.report_def_name + "/" + rep_type
    rep.date = datetime.datetime.now()
    rep.save()
    url = make_href("/schreports/table/Report/%d/edit__rep/" % rep.id)
    return HttpResponseRedirect(url)
コード例 #10
0
def edit_page(request, app_or_subject, page_name):

    page = Page.get_page(request, subject=app_or_subject, name=page_name)
    #page = Page.objects.get(name=page_name, subject=app_or_subject)
    if not page:
        page = Page(app=app, name=page_name, subject=app_or_subject)
        page.save()

    redir = make_href("/schwiki/table/Page/%d/edit/?childwin=1" % page.id)

    return HttpResponseRedirect(redir)
コード例 #11
0
def view_doc_items(request, parent_id):

    items = models.DocItem.objects.filter(parent=parent_id)
    if items.count() > 0:
        new_url = make_href("/schelements/table/DocHead/%s/%s/%slist" %
                            (filter, target, vtype))
        view, args, kwargs = resolve(new_url)
        kwargs['request'] = request
        return view(*args, **kwargs)
    else:
        return HttpResponse("Error - %s document register doesn't exists" %
                            filter)
コード例 #12
0
 def inner(request, *args, **kwargs):
     v = func(request, *args, **kwargs)
     if isinstance(v, HttpResponse):
         return v
     elif "redirect" in v:
         return HttpResponseRedirect(make_href(v["redirect"]))
     elif "template_name" in v:
         return render_to_response(v["template_name"],
                                   v,
                                   request=request)
     else:
         return render_to_response(template_name, v, request=request)
コード例 #13
0
ファイル: views.py プロジェクト: JdeH/pytigon
def change_password(request):
    """Change password view

    Args:
        request - django request
    """
    old_password = request.POST.get("current_password", "")
    new_password = request.POST.get("new_password", "")
    confirm_password = request.POST.get("confirm_password", ".")
    if new_password == confirm_password:
        user = authenticate(username=request.user, password=old_password)
        if user is not None and user.is_active:
            user.set_password(new_password)
            user.save()
            return HttpResponseRedirect(
                make_href("/schsys/do_logout/?schtml=1"))
        else:
            messages.add_message(request, messages.ERROR, 'Bad old password')
            return HttpResponseRedirect(make_href('/'))
    else:
        messages.add_message(request, messages.ERROR, 'Bad confirmed password')
        return HttpResponseRedirect(make_href('/'))
コード例 #14
0
ファイル: exsyntax.py プロジェクト: JdeH/pytigon
def get_table_row(context, field_or_name, app_name=None, table_name=None, search_fields=None, filter=None, label = None,
                   initial = None, is_get_button=True, is_new_button=False, get_target="popup_edit", new_target="inline"):
    if type(field_or_name) in (SafeText, str,):
        model = import_model(app_name, table_name)
        _name = field_or_name
        _app_name = app_name
        _table_name = table_name
        _initial = initial
        _label = label if label else table_name
        _queryset = None
        _search_fields = search_fields
    else:
        _queryset = field_or_name.field.queryset
        model = _queryset.model
        _name = field_or_name.name
        _app_name = app_name if app_name else _queryset.model._meta.app_label
        _table_name = table_name if table_name else _queryset.model._meta.object_name
        _initial = initial if initial else field_or_name.initial
        _label = label if label else field_or_name.label
        if search_fields:
            _search_fields = search_fields
        else:
            if hasattr(field_or_name, 'search_fields'):
                _search_fields = field_or_name.search_fields
            else:
                _search_fields = "name__icontains"

    if 'formformat' in context:
        formformat = context['formformat']
    else:
        formformat = "12:3:3/12:12:12"

    if TreeModel in model.__bases__:
        if filter:
            href1 = make_href("/%s/table/%s/%s/0/form/gettree/?schtml=1" % (_app_name, _table_name, filter))
            href2 = make_href("/%s/table/%s/-/add/?schtml=1" % (_app_name, _table_name))
        else:
            href1 = make_href("/%s/table/%s/0/form/gettree/?schtml=1" % (_app_name, _table_name))
            href2 = make_href("/%s/table/%s/-/add/?schtml=1" % (_app_name, _table_name))
    else:
        _filter = filter if filter else "-"
        href1 = make_href("/%s/table/%s/%s/form/get/?schtml=1" % (_app_name, _table_name, _filter))
        href2 = make_href("/%s/table/%s/%s/add/?schtml=1" % (_app_name, _table_name, _filter))

    class _Form(forms.Form):
        def __init__(self, *args, **kwargs):
            super().__init__(*args, **kwargs)

            self.fields[_name] = forms.ChoiceField(
                label = _label,
                widget=ModelSelect2WidgetExt(href1, href2, is_new_button, is_get_button, _label,
                    model=model,
                    search_fields=[_search_fields, "description__icontains"],
                    queryset = _queryset,
                ),
            )
    form = _Form(initial = { _name: _initial })
    return { 'form': form, 'field': form[_name], "formformat": formformat, }
コード例 #15
0
ファイル: views.py プロジェクト: JdeH/pytigon
def auth(request, key, path):
    
    objects = models.UrlWithAuth.objects.filter(key=key)
    if len(objects) == 1:
        username = objects[0].username
        users = User.objects.filter(username=username)
        if len(users)==1:
            login(request, users[0])
            if path:
                new_url = make_href(path)
            else:
                new_url = make_href(objects[0].redirect_to)
                if not new_url.startswith('/'):
                    new_url = '/' + new_url
    else:
        new_url = make_href('/')
    
    p = request.get_full_path()
    if '?' in p:
        x = p.split('?', 1)
        if x[1]:
            new_url += '?' + x[1]
    
    return HttpResponseRedirect(new_url)
コード例 #16
0
def template_edit3(request, pk):
    
    view = models.SChView.objects.get(id=pk)
    templates = models.SChTemplate.objects.filter(parent=view.parent).filter(name='v_'+view.name)
    if len(templates)==0:
        template=models.SChTemplate(parent=view.parent, name='v_'+view.name)
    
        file_name = settings.PRJ_PATH + "/schdevtools/templates_src/schbuilder/wzr/new_generic_form_template.ihtml"
        f = open(file_name, "rt")
        template.template_code = f.read()
        f.close()
        template.save()
        id = template.id
    else:
        id = templates[0].id
    new_url = make_href("/schbuilder/table/SChTemplate/%s/template_code/py/editor/" % str(id))
    return HttpResponseRedirect(new_url)
コード例 #17
0
def view_doc_heads(request, filter, target, vtype):

    regs = models.DocReg.objects.filter(name=filter.replace('_', '/'))
    if regs.count() > 0:
        new_url = make_href("/schelements/table/DocHead/%s/%s/%slist/" %
                            (filter, target, vtype))
        view, args, kwargs = resolve(new_url)
        kwargs['request'] = request

        #def init(view_obj):
        #    view_obj.template_name = "abc"
        #kwargs['init'] = init

        return view(*args, **kwargs)
    else:
        return HttpResponse("Error - %s document register doesn't exists" %
                            filter)
コード例 #18
0
def new_rep(request, rep_type, doc_type_name):

    #new_rep/(?P<rep_type>\w+)/(?P<doc_type_name>\w+)/$
    doc_type = DocType.objects.filter(name=doc_type_name)
    if len(doc_type) == 1:
        doc = DocHead()
        doc.doc_type_parent = doc_type[0]
        doc.date = datetime.datetime.now()
        doc.status = 'edit'
        doc.operator = request.user.username
        doc.save()

        rep = models.Report()
        rep.parent = None
        rep.order = doc.id
        rep.report_def_name = rep_type
        rep.date = datetime.datetime.now()
        rep.save()
        url = make_href("/schreports/table/Report/%d/edit__rep/" % rep.id)
        return HttpResponseRedirect(url)
    else:
        return HttpResponse("Error - document type: %s doesn't exists" %
                            doc_type_name)
コード例 #19
0
ファイル: views.py プロジェクト: JdeH/pytigon
def favicon(request):
    return HttpResponseRedirect(make_href("/static/favicon.ico"))
コード例 #20
0
def run_python_shell_task2(request):
    id = get_process_manager().put(request, "python-shell", "python3", '-i')
    new_url = make_href("../../schsys/thread/%d/edit/" % id)
    return HttpResponseRedirect(new_url)
コード例 #21
0
def run_python_shell_task(request, base_path, prj_name):
    id = run_python_shell_task_base(request, base_path, prj_name)
    new_url = make_href("../../schsys/thread/%d/edit/" % id)
    return HttpResponseRedirect(new_url)
コード例 #22
0
ファイル: subreport.py プロジェクト: JdeH/pytigon
def subrep(context, name, type):
    rep = context['rep']
    rep_def = context['rep_def']
    url = make_href("/schreports/edit_subrep/%d/%s/%s/" % (rep.id, name, type))
    return {'href': url}
コード例 #23
0
ファイル: urls.py プロジェクト: JdeH/pytigon
if settings.URL_ROOT_FOLDER:
    urlpatterns = [
        #path(settings.URL_ROOT_FOLDER+"/", include(urlpatterns)),
        url(settings.URL_ROOT_FOLDER + "/", include(_urlpatterns)),
    ]
else:
    urlpatterns = _urlpatterns

_urlpatterns.extend([
    url('schsys/jsi18n/$', django.views.i18n.JavaScriptCatalog, {'packages': ('django.conf', )}),
    url('schsys/i18n/', include(django.conf.urls.i18n)),
    url('schplugins/(?P<template_name>.*)', views.plugin_template),
    url('site_media/(.*)$', django.views.static.serve, {'document_root': settings.MEDIA_ROOT}),
    url('select2/', include(django_select2.urls)),
    url('favicon.ico', views.favicon),
    url(make_href('sw.js'), views.sw),
])

def app_description(prj):
    file_name = os.path.join(os.path.join(settings.PRJ_PATH, prj), 'settings_app.py')
    try:
        with open(file_name, "rt") as f:
            txt = f.read()
            for pos in txt.split('\n'):
                if pos.startswith('PRJ_TITLE'):
                    return pos.split('=')[1].split('\"')[1]
        return prj
    except:
        return prj

if len(settings.PRJS) > 0:
コード例 #24
0
    if 'from_pytigon' in request.GET:
        return HttpResponse("Error!")
    else:
        return HttpResponseRedirect(path_after_error)



urlpatterns = [
    url(r'^ok/$', views.ok, name='ok'),
    url(r'^(?P<id>.+)/(?P<title>.+)/ret_ok/$', views.ret_ok, name='ret_ok'),

    url(r'^login/$', TemplateView.as_view(template_name='schapp/login.html')),

    url(r'^do_login/$', sch_login), #, { 'template_name': 'schapp/index.html'}),
    url(r'^do_logout/$', django.contrib.auth.views.LogoutView.as_view(next_page = make_href("/") ) ),
    url(r'^change_password/$', views.change_password),

    url(r'^accounts/', include('allauth.urls')),

    url(r'^message/(?P<titleid>.+)/(?P<messageid>.+)/(?P<id>\d+)/$', views.message),

    url(r'^datedialog/(?P<action>\w+)/$', views.datedialog),
    url(r'^listdialog/(?P<action>\w+)/$', views.listdialog),
    url(r'^treedialog/(?P<app>\w+)/(?P<tab>\w+)/(?P<id>[\d-]*)/(?P<action>\w+)/$',
        views.treedialog),
    url(r'^tabdialog/(?P<app>\w+)/(?P<tab>\w+)/(?P<id>[\d-]*)/(?P<action>\w+)/$', views.tabdialog),
    url(r'^table/(?P<app>\w+)/(?P<tab>\w+)/grid/$', views.tbl),

    url(r'^widget_web$', TemplateView.as_view(template_name='schsys/widget_web.html') ),
    url(r'^plugins/(?P<app>\w+)/(?P<plugin_name>[\w_]+)/$', views.plugins),