示例#1
0
def dept_treeview():
    from mysite.iclock.models import Department
    vdata = filterdata_by_user(Department.objects.all(),threadlocals.get_current_user())
    for ii in vdata:
        if ii.parent_id is not None:
            l=[e for e in vdata if  e.id==ii.parent_id]
            if not l:ii.parent_id=None 
    return DeptTree(vdata).html_ul_li()
示例#2
0
def dept_treeview():
    from mysite.iclock.models import Department
    vdata = filterdata_by_user(Department.objects.all(),
                               threadlocals.get_current_user())
    for ii in vdata:
        if ii.parent_id is not None:
            l = [e for e in vdata if e.id == ii.parent_id]
            if not l: ii.parent_id = None
    return DeptTree(vdata).html_ul_li()
示例#3
0
    def render(self, name, data, attrs=None):
        from mysite.personnel.views import get_dept_tree_data
        from django.core.urlresolvers import reverse

        #print "ZDeptChoiceWidget_render data", data

        if data is not None:
            try:
                data = int(data)
            except:
                pass
            if type(data) in (int, long):
                data = self.choices.queryset.model.objects.get(pk=data)
        if attrs: self.attrs.update(attrs)
        if 'id' not in self.attrs: self.attrs['id'] = 'id_' + name
        self.attrs['class'] = self.attrs['class'] + ' filetree r'
        self.attrs = self.build_attrs(self.attrs, name=name)
        required = ""
        if hasattr(self.choices.field,
                   "required") and self.choices.field.required:
            required = "class='wZBaseCharField required input_showDeptTree'"
        try:
            vdata = filterdata_by_user(self.choices.queryset.all(),
                                       threadlocals.get_current_user())
            for ii in vdata:
                if ii.parent_id is not None:
                    l = [e for e in vdata if e.id == ii.parent_id]
                    if not l: ii.parent_id = None

            html = DeptTree(vdata).html_ul_li(data and [data.pk] or [])
            html_el = {
                "disp": data or "",
                "name": name,
                "value": data and data.pk or "",
                "attr": flatatt(self.attrs),
                "required": required,
                "id": self.attrs['id'],
                "uid": "%s" % id(self),
                "none": _(u"撤销选择").capitalize(),
                "items": html,
                "ok": _(u"确定")
            }
            if self.flat == False:  #平铺
                return ('<input %(required)s class="wZBaseCharField input_showDeptTree" type="text" readonly="readonly" value="%(disp)s"><input type=hidden name="%(name)s" value="%(value)s">'+\
                                u'<span class="btn_showDeptTree"><img onclick="render_dept_dropdown(this, false)" src="/media/img/sug_down_on.gif" id="id_drop_dept"><div  id="show_deptment" style="display: none;"><div class="title"><span class="span_selectNone Link_blue1" onclick="dept_tree_none(this)"><a href="javascript: void(0)">%(none)s</a>&nbsp;&nbsp;</span><span onclick="javascript:$(this).parent().parent().hide();" class="close btn">%(ok)s</span></div><div id="id_dept"><ul %(attr)s>%(items)s</ul></div></div></span>')%html_el
            else:
                return u'<input type=hidden><input value="%(disp)s" type=hidden>%(value)s<div id="show_deptment"><div id=%(uid)s><ul %(attr)s>%(items)s</ul></div><script>render_dept_($("#%(uid)s"),false,true)</script></div>' % html_el
        except:
            print_exc()
示例#4
0
 def limit_parent_to(self, queryset):
     #根区域不存在上级区域.
     if self.pk == 1:
         from django.db.models.query import QuerySet
         return Area.objects.none()
     valid_areas = filterdata_by_user(queryset, threadlocals.get_current_user())
     if self.pk:
         invalid_pks = [self.pk]#限制不能设置一个区域的上级区域为其自身
         
         for a in Area.objects.all():
             if self in a.parents():#限制不能设置一个区域的上级区域为子区域
                 invalid_pks.append(a.pk)
         return valid_areas.exclude(pk__in=invalid_pks)
     else:
         return valid_areas
示例#5
0
 def limit_parent_to(self, queryset):
     #根部门不存在上级部门.
     if self.pk == 1:
         from django.db.models.query import QuerySet
         return Department.objects.none()
     valid_depts = filterdata_by_user(queryset, threadlocals.get_current_user())
     if self.pk:
         invalid_pks = [self.pk]#限制不能设置一个部门的上级部门为其自身
         
         for dept in Department.objects.all():
             if self in dept.parents():#限制不能设置一个部门的上级部门为子部门
                 invalid_pks.append(dept.pk)
         return valid_depts.exclude(pk__in=invalid_pks)
     else:
         return valid_depts
示例#6
0
    def limit_parent_to(self, queryset):
        #根区域不存在上级区域.
        if self.pk == 1:
            from django.db.models.query import QuerySet
            return Area.objects.none()
        valid_areas = filterdata_by_user(queryset,
                                         threadlocals.get_current_user())
        if self.pk:
            invalid_pks = [self.pk]  #限制不能设置一个区域的上级区域为其自身

            for a in Area.objects.all():
                if self in a.parents():  #限制不能设置一个区域的上级区域为子区域
                    invalid_pks.append(a.pk)
            return valid_areas.exclude(pk__in=invalid_pks)
        else:
            return valid_areas
示例#7
0
    def render(self, name, data, attrs=None):
        from mysite.personnel.views import get_dept_tree_data
        from django.core.urlresolvers import reverse
        
        #print "ZDeptChoiceWidget_render data", data
       
        if data is not None:
            try:
                data=int(data)
            except:
                pass            
            if type(data) in (int, long):
                data=self.choices.queryset.model.objects.get(pk=data)
        if attrs: self.attrs.update(attrs)
        if 'id' not in self.attrs: self.attrs['id']='id_'+name
        self.attrs['class']=self.attrs['class']+' filetree r'
        self.attrs = self.build_attrs(self.attrs, name=name)
        required=""
        if hasattr(self.choices.field,"required") and self.choices.field.required:
            required="class='wZBaseCharField required input_showDeptTree'"
        try:
            vdata =filterdata_by_user(self.choices.queryset.all(),threadlocals.get_current_user())
            for ii in vdata:
                if ii.parent_id is not None:
                    l=[e for e in vdata if  e.id==ii.parent_id]
                    if not l:ii.parent_id=None 

            html=DeptTree(vdata).html_ul_li(data and [data.pk] or [])
            html_el={"disp": data or "",
                "name": name, 
                "value": data and data.pk or "", 
                "attr": flatatt(self.attrs),
                "required":required, 
                "id": self.attrs['id'], 
                "uid":"%s"%id(self),
                "none": _(u"撤销选择").capitalize(),
                "items": html,
                "ok":_(u"确定")}
            if self.flat==False:#平铺
                return ('<input %(required)s class="wZBaseCharField input_showDeptTree" type="text" readonly="readonly" value="%(disp)s"><input type=hidden name="%(name)s" value="%(value)s">'+\
                                u'<span class="btn_showDeptTree"><img onclick="render_dept_dropdown(this, false)" src="/media/img/sug_down_on.gif" id="id_drop_dept"><div  id="show_deptment" style="display: none;"><div class="title"><span class="span_selectNone Link_blue1" onclick="dept_tree_none(this)"><a href="javascript: void(0)">%(none)s</a>&nbsp;&nbsp;</span><span onclick="javascript:$(this).parent().parent().hide();" class="close btn">%(ok)s</span></div><div id="id_dept"><ul %(attr)s>%(items)s</ul></div></div></span>')%html_el            
            else:
                return u'<input type=hidden><input value="%(disp)s" type=hidden>%(value)s<div id="show_deptment"><div id=%(uid)s><ul %(attr)s>%(items)s</ul></div><script>render_dept_($("#%(uid)s"),false,true)</script></div>'%html_el
        except:
            print_exc()
示例#8
0
    def render(self, name, data, attrs=None, choices=()):
        import time
        if data is not None:
            model = self.choices.queryset.model
            try:
                datapk = data
                data = [model.objects.get(pk=int(d)) for d in datapk]
            except:
                print_exc()
        if attrs: self.attrs.update(attrs)
        if 'id' not in self.attrs: self.attrs['id'] = 'id_' + name
        self.attrs['class'] = self.attrs['class'] + ' filetree'
        self.attrs = self.build_attrs(self.attrs, name=name)
        try:

            vdata = filterdata_by_user(self.choices.queryset.all(),
                                       threadlocals.get_current_user())
            for ii in vdata:
                if ii.parent_id is not None:
                    l = [e for e in vdata if e.id == ii.parent_id]
                    if not l: ii.parent_id = None
            html = DeptTree(vdata).html_ul_li(data=data and datapk or [])
            html_el={\
                "disp": data and ",".join([u"%s"%d for d in data]) or "",
                "name": name,
                "value": data and "".join(['<input type=hidden name="%s" value="%s">'%(name, d.pk) for d in data]) or "",
                "attr": flatatt(self.attrs),
                "id": self.attrs['id'],
                'uid': "%s"%id(self),
                "items": html,
                "ok":_(u"确定"),
                "selectchildren":_(u"包含下级")}
            if self.flat:  #平铺型
                return u'<input value="%(disp)s" type=hidden>%(value)s<div id="show_deptment"><div id="id_dept"><span id=%(uid)s></span><ul %(attr)s>%(items)s</ul></div><script>render_dept_tree("%(uid)s")</script></div>' % html_el
            else:  #下拉框型
                return ('<input type="text" class="wZBaseCharField input_showDeptTree" readonly="readonly" value="%(disp)s">%(value)s'+\
                u'<span class="btn_showDeptTree"><img onclick="render_dept_dropdown(this, true)"  src="/media/img/sug_down_on.gif" id="id_drop_dept"><div id="show_deptment" style="display: none;"><div class="title"><span class="span_selectchildren"><span><input type="checkbox" id="id_selectchildren" checked="checked" ></input></span><span class="title_selectchildren">%(selectchildren)s &nbsp;&nbsp;</span></span><span onclick="javascript:$(this).parent().parent().hide();" class="close btn">%(ok)s</span></div><div id="id_dept"><ul %(attr)s>%(items)s</ul></div></div></span>')%html_el
        except:
            print_exc()
示例#9
0
 def render(self, name, data, attrs=None, choices=()):
     import time
     if data is not None:
         model=self.choices.queryset.model
         try:
             datapk = data
             data=[model.objects.get(pk=int(d)) for d in datapk]
         except:
             print_exc()
     if attrs: self.attrs.update(attrs)
     if 'id' not in self.attrs: self.attrs['id']='id_'+name
     self.attrs['class']=self.attrs['class']+' filetree'
     self.attrs = self.build_attrs(self.attrs, name=name)
     try:
         
         vdata =filterdata_by_user(self.choices.queryset.all(),threadlocals.get_current_user())
         for ii in vdata:
             if ii.parent_id is not None:
                 l=[e for e in vdata if  e.id==ii.parent_id]
                 if not l:ii.parent_id=None
         html=DeptTree(vdata).html_ul_li(data=data and datapk or [])
         html_el={\
             "disp": data and ",".join([u"%s"%d for d in data]) or "", 
             "name": name, 
             "value": data and "".join(['<input type=hidden name="%s" value="%s">'%(name, d.pk) for d in data]) or "",
             "attr": flatatt(self.attrs),
             "id": self.attrs['id'],
             'uid': "%s"%id(self),
             "items": html,
             "ok":_(u"确定"),
             "selectchildren":_(u"包含下级")}
         if self.flat: #平铺型
             return u'<input value="%(disp)s" type=hidden>%(value)s<div id="show_deptment"><div id="id_dept"><span id=%(uid)s></span><ul %(attr)s>%(items)s</ul></div><script>render_dept_tree("%(uid)s")</script></div>'%html_el
         else: #下拉框型
             return ('<input type="text" class="wZBaseCharField input_showDeptTree" readonly="readonly" value="%(disp)s">%(value)s'+\
             u'<span class="btn_showDeptTree"><img onclick="render_dept_dropdown(this, true)"  src="/media/img/sug_down_on.gif" id="id_drop_dept"><div id="show_deptment" style="display: none;"><div class="title"><span class="span_selectchildren"><span><input type="checkbox" id="id_selectchildren" checked="checked" ></input></span><span class="title_selectchildren">%(selectchildren)s &nbsp;&nbsp;</span></span><span onclick="javascript:$(this).parent().parent().hide();" class="close btn">%(ok)s</span></div><div id="id_dept"><ul %(attr)s>%(items)s</ul></div></div></span>')%html_el
     except:
         print_exc()