class MapsFindIp(TemplateView): template_name = 'maps/findip.html' @method_decorator(login_required(login_url='/')) @method_decorator(group_required(group='maps', redirect_url='/begin/access-refused')) def dispatch(self, request, *args, **kwargs): self.request = request self.session = request.session self.user = request.user return super(MapsFindIp, self).dispatch(request, *args, **kwargs) def get_context_data(self, **kwargs): context = super(MapsFindIp, self).get_context_data(**kwargs) if self.session.has_key('tz'): context['tz']= self.session['tz'] else: context['tz']= 'UTC' return context
class DevicesIp(ListView): model = devices template_name = "inventory/devicesip.html" paginate_by = 0 @method_decorator(login_required(login_url='/')) @method_decorator(group_required(group='inventory',redirect_url='/mainmenu/')) def dispatch(self, request, *args, **kwargs): self.request = request self.session = request.session self.user = request.user return super(ListView, self).dispatch(request, *args, **kwargs) def get_context_data(self, **kwargs): context = super(DevicesIp, self).get_context_data(**kwargs) context['tz']= self.session['tz'] if self.session.has_key('tz') else 'UTC' return context
class EditDevice(UpdateView): model = deviceslist form_class = EditDeviceForm template_name = "electro/editdevice.html" success_url = '/electro/deviceslist/1/' @method_decorator(login_required(login_url='/')) @method_decorator( group_required(group='electro', redirect_url='/begin/access-refused/')) def dispatch(self, request, *args, **kwargs): self.request = request self.session = request.session self.user = request.user return super(EditDevice, self).dispatch(request, *args, **kwargs) def get_context_data(self, **kwargs): context = super(EditDevice, self).get_context_data(**kwargs) context["device"] = self.get_object() return context def form_valid(self, form): form.instance.rowsum = form.instance.price * form.instance.count return super(EditDevice, self).form_valid(form)
class MapsAccidents(TemplateView): template_name = 'maps/accidents.html' @method_decorator(login_required(login_url='/')) @method_decorator(group_required(group='maps', redirect_url='/begin/access-refused')) def dispatch(self, request, *args, **kwargs): self.request = request self.session = request.session self.user = request.user return super(MapsAccidents, self).dispatch(request, *args, **kwargs) def get_context_data(self, **kwargs): context = super(MapsAccidents, self).get_context_data(**kwargs) if self.session.has_key('tz'): context['tz']= self.session['tz'] else: context['tz']= 'UTC' city_list = address_city.objects.order_by('name') for item in city_list: item.geo_ok = item.geo_ok() context['accidents'] = accidents.objects.filter(acc_start__gt=start).order_by('-acc_start') context['city_list'] = city_list return context
class Reports(ListView): #model = reestr_proj template_name = "working/reports.html" paginate_by = 100 @method_decorator(login_required(login_url='/')) @method_decorator( group_required(group='working', redirect_url='/begin/access-refused/')) def dispatch(self, request, *args, **kwargs): self.request = request self.session = request.session self.user = request.user return super(ListView, self).dispatch(request, *args, **kwargs) def get_queryset(self): data = working_reports.objects.order_by("-datetime_create") return data def get_context_data(self, **kwargs): context = super(Reports, self).get_context_data(**kwargs) context['tz'] = self.session['tz'] if self.session.has_key( 'tz') else 'UTC' return context
class GraphHistory(TemplateView): template_name = "working/graph.html" @method_decorator(login_required(login_url='/')) @method_decorator( group_required(group='working', redirect_url='/mainmenu/')) def dispatch(self, request, *args, **kwargs): self.request = request self.session = request.session self.user = request.user return super(GraphHistory, self).dispatch(request, *args, **kwargs) def get_context_data(self, **kwargs): context = super(GraphHistory, self).get_context_data(**kwargs) context["events"] = marks.objects.filter( visible=True).order_by('order') context["users"] = working_log.objects.filter( datetime_create__gte=(now() - datetime.timedelta(days=90) )).order_by("user__first_name").distinct( "user__first_name", "user__last_name") if self.session.has_key('tz'): context['tz'] = self.session['tz'] else: context['tz'] = 'UTC' return context
class NetElement(TemplateView): template_name = 'inventory/edit_netelement.html' @method_decorator(login_required(login_url='/')) @method_decorator(group_required(group='inventory',redirect_url='/mainmenu/')) def dispatch(self, request, *args, **kwargs): self.request = request self.session = request.session self.user = request.user self.pk = kwargs.get('pk') return super(NetElement, self).dispatch(request, *args, **kwargs) def get_context_data(self, **kwargs): context = super(NetElement, self).get_context_data(**kwargs) if self.session.has_key('tz'): context['tz']= self.session['tz'] else: context['tz']= 'UTC' context["interface_prop_list"] = logical_interfaces_prop_list.objects.all() #context["elem"] = self.session["netelemid"] context["elem"] = self.pk return context
class FootNodeList(ListView): model = footnodes template_name = "equipment/footnode_list.html" paginate_by = 100 @method_decorator(login_required(login_url='/')) @method_decorator( group_required(group='devices', redirect_url='/mainmenu/')) def dispatch(self, request, *args, **kwargs): self.session = request.session return super(ListView, self).dispatch(request, *args, **kwargs) def get_queryset(self): return footnodes.objects.all().order_by("ipaddress") def get_context_data(self, **kwargs): context = super(FootNodeList, self).get_context_data(**kwargs) ii = [] for i in devices_ip.objects.all().distinct('device_domen'): ii.append(i.device_domen) context['domen'] = ii if self.session.has_key('tz'): context['tz'] = self.session['tz'] else: context['tz'] = 'UTC' return context
class QuestionUpdate(TemplateView): template_name = 'exams/question_data.html' @method_decorator(login_required(login_url='/')) @method_decorator(group_required(group='exams', redirect_url='/mainmenu/')) def dispatch(self, request, *args, **kwargs): request.session['question_id'] = kwargs.get('question') request.session['page'] = kwargs.get('page') self.request = request self.session = request.session self.user = request.user return super(QuestionUpdate, self).dispatch(request, *args, **kwargs) def get_context_data(self, **kwargs): context = super(QuestionUpdate, self).get_context_data(**kwargs) q = questions.objects.get(pk=self.session['question_id']) context['question_id'] = q.id form = QuestionForm(instance=q) form.fields['section'].widget.attrs['disabled'] = True context['form'] = form context['page'] = self.session['page'] return context
class QuestionsList(ListView): model = questions template_name = "exams/questions_list.html" paginate_by = 30 @method_decorator(login_required(login_url='/')) @method_decorator(group_required(group='exams',redirect_url='/mainmenu/')) def dispatch(self, request, *args, **kwargs): request.session['page'] = kwargs.get('page') self.request = request self.session = request.session self.user = request.user return super(ListView, self).dispatch(request, *args, **kwargs) def get_queryset(self): if self.session.has_key('exams-section'): section = sections.objects.get(pk=int(self.session["exams-section"], 10)) data = questions.objects.filter(section=section).order_by('name') else: data = [] n = 1 ### Порядковый номер for item in data: item.truth = item.answers_set.filter(truth=True).count() item.order = n n += 1 return data def get_context_data(self, **kwargs): context = super(QuestionsList, self).get_context_data(**kwargs) context['tz']= self.session['tz'] if self.session.has_key('tz') else 'UTC' context['sections'] = sections.objects.order_by('name') context['section'] = self.session['exams-section'] if self.session.has_key('exams-section') else "0" context['page'] = self.session['page'] return context
class TaskList(ListView): model = proj_stages template_name = "regions/workertask.html" paginate_by = 100 @method_decorator(login_required(login_url='/')) @method_decorator(group_required(group='project',redirect_url='/mainmenu/')) def dispatch(self, request, *args, **kwargs): self.request = request self.session = request.session self.user = request.user return super(ListView, self).dispatch(request, *args, **kwargs) def get_queryset(self): begin = self.session['begin_date'] if self.session.has_key('begin_date') else datetime.datetime.today() - datetime.timedelta(days=30) end = self.session['end_date'] if self.session.has_key('end_date') else datetime.datetime.today() + datetime.timedelta(days=30) data = proj_stages.objects.filter( (Q(begin__gte=begin) & Q(end__lte=end)) | (Q(begin__gte=begin) & Q(begin__lte=end)) | (Q(end__gte=begin) & Q(end__lte=end)) ).order_by('-begin') data2 = [] if self.session.has_key('user_id'): u = User.objects.get(pk=self.session['user_id']) for i in data: if u in i.workers.all(): data2.append(i) return data2 else: return data def get_context_data(self, **kwargs): context = super(TaskList, self).get_context_data(**kwargs) context['tz']= self.session['tz'] if self.session.has_key('tz') else 'UTC' context['begin_date'] = self.session['begin_date'] if self.session.has_key('begin_date') else datetime.datetime.today() - datetime.timedelta(days=30) context['end_date'] = self.session['end_date'] if self.session.has_key('end_date') else datetime.datetime.today() + datetime.timedelta(days=30) context['user_id'] = self.session['user_id'] if self.session.has_key('user_id') else "" context['user_list'] = User.objects.order_by('first_name') return context
class DevicesList(ListView): model = deviceslist template_name = "electro/deviceslist.html" paginate_by = 50 @method_decorator(login_required(login_url='/')) @method_decorator( group_required(group='electro', redirect_url='/begin/access-refused/')) def dispatch(self, request, *args, **kwargs): self.request = request self.session = request.session self.user = request.user return super(ListView, self).dispatch(request, *args, **kwargs) def get_queryset(self): data = deviceslist.objects.order_by('devicetype', 'placement', 'name') if self.session.has_key('filter-deviceslist-d'): try: data = data.filter(devicetype__in=devicestypes.objects.get( pk=int(self.session['filter-deviceslist-d'])). get_descendants(include_self=True)) except: del self.session['filter-deviceslist-d'] if self.session.has_key('filter-deviceslist-p'): try: data = data.filter(placement__in=placements.objects.get(pk=int( self.session['filter-deviceslist-p'])).get_descendants( include_self=True)) except: del self.session['filter-deviceslist-p'] return data def get_context_data(self, **kwargs): context = super(DevicesList, self).get_context_data(**kwargs) context['tz'] = self.session['tz'] if self.session.has_key( 'tz') else 'UTC' context['filter'] = FilterDevicesForm() context['search_d'] = self.session[ 'filter-deviceslist-d'] if self.session.has_key( 'filter-deviceslist-d') else "" context['search_p'] = self.session[ 'filter-deviceslist-p'] if self.session.has_key( 'filter-deviceslist-p') else "" return context
class NetElementsList(ListView): model = netelems template_name = "inventory/netelements_list.html" paginate_by = 50 @method_decorator(login_required(login_url='/')) @method_decorator(group_required(group='inventory',redirect_url='/mainmenu/')) def dispatch(self, request, *args, **kwargs): self.request = request self.session = request.session self.user = request.user return super(ListView, self).dispatch(request, *args, **kwargs) def get_queryset(self): if self.session.has_key("search_netelem") and self.session["search_netelem"] != "": data = netelems.objects.filter(name__icontains=self.session["search_netelem"]) else: data = netelems.objects.order_by('name') return data def get_context_data(self, **kwargs): context = super(NetElementsList, self).get_context_data(**kwargs) if self.session.has_key('tz'): context['tz']= self.session['tz'] else: context['tz']= 'UTC' if self.session.has_key("search_netelem") and self.session["search_netelem"] != "": context["netelemsearch"] = self.session["search_netelem"] else: context["netelemsearch"] = "" return context
class ResultsList(ListView): model = tests_results template_name = "exams/results_list.html" paginate_by = 50 @method_decorator(login_required(login_url='/')) @method_decorator(group_required(group='exams',redirect_url='/mainmenu/')) def dispatch(self, request, *args, **kwargs): self.request = request self.session = request.session self.user = request.user return super(ListView, self).dispatch(request, *args, **kwargs) def get_queryset(self): if self.session.has_key('exams-section'): section = sections.objects.get(pk=int(self.session["exams-section"], 10)) # Поиск if self.session.has_key('search_result'): data = tests_results.objects.filter(test__section=section, learning=False, worker__icontains=self.session['search_result']).exclude(end=None).order_by('-end') else: data = tests_results.objects.filter(test__section=section, learning=False).exclude(end=None).order_by('-end') else: data = [] return data def get_context_data(self, **kwargs): context = super(ResultsList, self).get_context_data(**kwargs) context['sections'] = sections.objects.order_by('name') context['section'] = self.session['exams-section'] if self.session.has_key('exams-section') else "0" context['reportlist'] = self.session['reportlist'] if self.session.has_key('reportlist') else [] context['form'] = ResultForm() context['search_result'] = self.session['search_result'] if self.session.has_key('search_result') else "" return context
class MessageList(ListView): model = events template_name = "monitor/message_list.html" paginate_by = 50 @method_decorator(login_required(login_url='/')) @method_decorator(group_required(group='monitor',redirect_url='/mainmenu/')) def dispatch(self, request, *args, **kwargs): self.request = request self.session = request.session self.user = request.user return super(ListView, self).dispatch(request, *args, **kwargs) def get_queryset(self): data = messages.objects.order_by('-datetime_message') for row in data: if row.send_done: m = pickle.loads(row.mail_body) row.subject = m.subject row.body = m.body return data def get_context_data(self, **kwargs): context = super(MessageList, self).get_context_data(**kwargs) if self.session.has_key('tz'): context['tz']= self.session['tz'] else: context['tz']= 'UTC' return context
class Topology(ListView): model = agregators template_name = "equipment/topology.html" paginate_by = 100 @method_decorator(login_required(login_url='/')) @method_decorator( group_required(group='devices', redirect_url='/mainmenu/')) def dispatch(self, request, *args, **kwargs): self.session = request.session return super(ListView, self).dispatch(request, *args, **kwargs) def get_queryset(self): return [] def get_context_data(self, **kwargs): context = super(Topology, self).get_context_data(**kwargs) if self.session.has_key('tz'): context['tz'] = self.session['tz'] else: context['tz'] = 'UTC' domen = [] for i in devices_ip.objects.all().distinct('device_domen'): domen.append(i.device_domen) context['domen'] = domen footnode = [] for i in footnodes.objects.all(): footnode.append(i) context['footnode'] = footnode agregator = [] for i in agregators.objects.all(): agregator.append(i) context['agregator'] = agregator return context
class MakeReports(ListView): #model = reestr_proj template_name = "working/makereports.html" paginate_by = 100 @method_decorator(login_required(login_url='/')) @method_decorator( group_required(group='working', redirect_url='/begin/access-refused/')) def dispatch(self, request, *args, **kwargs): self.request = request self.session = request.session self.user = request.user return super(ListView, self).dispatch(request, *args, **kwargs) def get_queryset(self): if self.session.has_key("worker"): worker_id = self.session["worker"] data = working_time.objects.filter( user_id=worker_id).order_by('-datetime_begin') else: data = working_time.objects.order_by('-datetime_begin') return data def get_context_data(self, **kwargs): context = super(MakeReports, self).get_context_data(**kwargs) context['tz'] = self.session['tz'] if self.session.has_key( 'tz') else 'UTC' context['include_report'] = pickle.loads( self.session["include_report"]) if self.session.has_key( "include_report") else [] context["users"] = working_log.objects.filter( datetime_create__gte=(now() - datetime.timedelta(days=90) )).order_by("user__first_name").distinct( "user__first_name", "user__last_name") context["worker"] = self.session["worker"] if self.session.has_key( "worker") else "" return context
class DeviceSchemeList(ListView): model = devices_scheme template_name = "inventory/devicescheme_list.html" paginate_by = 50 @method_decorator(login_required(login_url='/')) @method_decorator(group_required(group='inventory',redirect_url='/mainmenu/')) def dispatch(self, request, *args, **kwargs): self.request = request self.session = request.session self.user = request.user return super(ListView, self).dispatch(request, *args, **kwargs) def get_queryset(self): data = devices_scheme.objects.order_by('name') return data def get_context_data(self, **kwargs): context = super(DeviceSchemeList, self).get_context_data(**kwargs) if self.session.has_key('tz'): context['tz']= self.session['tz'] else: context['tz']= 'UTC' return context
class ProjList(ListView): model = proj template_name = "regions/projlist.html" paginate_by = 100 @method_decorator(login_required(login_url='/')) @method_decorator(group_required(group='project',redirect_url='/mainmenu/')) def dispatch(self, request, *args, **kwargs): self.request = request self.session = request.session self.user = request.user return super(ListView, self).dispatch(request, *args, **kwargs) def get_queryset(self): data = proj.objects.order_by('-datetime_create') return data def get_context_data(self, **kwargs): context = super(ProjList, self).get_context_data(**kwargs) context['tz']= self.session['tz'] if self.session.has_key('tz') else 'UTC' context['form']= ProjForm() return context
class Placements(ListView): model = placements template_name = "electro/placements.html" paginate_by = 0 @method_decorator(login_required(login_url='/')) @method_decorator( group_required(group='electro', redirect_url='/begin/access-refused/')) def dispatch(self, request, *args, **kwargs): self.request = request self.session = request.session self.user = request.user return super(ListView, self).dispatch(request, *args, **kwargs) def get_queryset(self): data = [] return data def get_context_data(self, **kwargs): context = super(Placements, self).get_context_data(**kwargs) context['tz'] = self.session['tz'] if self.session.has_key( 'tz') else 'UTC' if self.session.has_key('filter-placement'): context['all_nodes'] = placements.objects.get( pk=self.session["filter-placement"]).get_descendants( include_self=True) else: context['all_nodes'] = placements.objects.all() context['form'] = PlacementForm() context['filter'] = FilterPlacementForm() context['search'] = self.session[ 'filter-placement'] if self.session.has_key( 'filter-placement') else "" return context
class Events(ListView): #model = reestr_proj template_name = "working/events.html" paginate_by = 0 @method_decorator(login_required(login_url='/')) @method_decorator( group_required(group='working', redirect_url='/begin/access-refused/')) def dispatch(self, request, *args, **kwargs): request.session['events_id'] = kwargs.get('pk') self.request = request self.session = request.session self.user = request.user self.working = working_time.objects.get( pk=request.session['events_id']) return super(ListView, self).dispatch(request, *args, **kwargs) def get_queryset(self): data = self.working.working_log_set.order_by("-datetime_create") return data def get_context_data(self, **kwargs): context = super(Events, self).get_context_data(**kwargs) context['tz'] = self.session['tz'] if self.session.has_key( 'tz') else 'UTC' context['user'] = self.working.user context['worktime'] = self.working.get_work_hour() context['relaxtime'] = self.working.get_relax_min() context['events'] = self.working.working_log_set.count() return context
class Device(TemplateView): template_name = 'inventory/edit_device.html' @method_decorator(login_required(login_url='/')) @method_decorator(group_required(group='inventory',redirect_url='/mainmenu/')) def dispatch(self, request, *args, **kwargs): self.request = request self.session = request.session self.user = request.user self.dev = kwargs.get('pk') #if self.request.GET.has_key("dev"): # self.session["dev"] = self.request.GET["dev"] return super(Device, self).dispatch(request, *args, **kwargs) def get_context_data(self, **kwargs): context = super(Device, self).get_context_data(**kwargs) if self.session.has_key('tz'): context['tz']= self.session['tz'] else: context['tz']= 'UTC' context['status_port_list'] = port_status.objects.all() context['status_slot_list'] = slot_status.objects.all() context['status_device_list'] = device_status.objects.all() context["device"] = self.dev return context
class Zkl(TemplateView): template_name = 'monitor/zkl.html' @method_decorator(login_required(login_url='/')) @method_decorator(group_required(group='monitor',redirect_url='/mainmenu/')) def dispatch(self, request, *args, **kwargs): self.request = request self.session = request.session self.user = request.user #if self.request.GET.has_key("dev"): # self.session["dev"] = self.request.GET["dev"] request.session["device_zkl_list"] = pickle.dumps([]) return super(Zkl, self).dispatch(request, *args, **kwargs) def get_context_data(self, **kwargs): context = super(Zkl, self).get_context_data(**kwargs) if self.session.has_key('tz'): context['tz']= self.session['tz'] else: context['tz']= 'UTC' #context['status_port_list'] = port_status.objects.all() #context['status_slot_list'] = slot_status.objects.all() #context['status_device_list'] = device_status.objects.all() return context
class AgregatorsList(ListView): model = agregators template_name = "equipment/agregators_list.html" paginate_by = 100 @method_decorator(login_required(login_url='/')) @method_decorator( group_required(group='devices', redirect_url='/mainmenu/')) def dispatch(self, request, *args, **kwargs): self.session = request.session return super(ListView, self).dispatch(request, *args, **kwargs) def get_queryset(self): q = [] if self.session.has_key("search"): if len(self.session['search']) >= 3: for search in self.session['search'].split(" "): print search if search != " ": q.append( "(Q(ipaddress__icontains='%s') | Q(name__icontains='%s') | Q(location__icontains='%s') | Q(descr__icontains='%s') | Q(chassisid__icontains='%s') | Q(serial__icontains='%s'))" % (search, search, search, search, search, search)) if len(q) == 0: return agregators.objects.all().order_by('ipaddress') else: str_q = " & ".join(q) str_sql = "agregators.objects.filter(%s).order_by('ipaddress')" % str_q return eval(str_sql) def get_context_data(self, **kwargs): context = super(AgregatorsList, self).get_context_data(**kwargs) ii = [] for i in devices_ip.objects.all().distinct('device_domen'): ii.append(i.device_domen) context['domen'] = ii fn = [] for node in footnodes.objects.all(): fn.append({ 'id': node.id, 'name': "%s %s" % (node.ipaddress, node.location), 'domen': node.domen }) context['footnodes'] = fn if self.session.has_key('tz'): context['tz'] = self.session['tz'] else: context['tz'] = 'UTC' # search if self.session.has_key('search'): context['search'] = self.session['search'] else: context['search'] = "" return context
class AccidentList(ListView): model = events template_name = "monitor/accident_list.html" paginate_by = 50 @method_decorator(login_required(login_url='/')) @method_decorator(group_required(group='monitor',redirect_url='/mainmenu/')) def dispatch(self, request, *args, **kwargs): self.request = request self.session = request.session self.user = request.user return super(ListView, self).dispatch(request, *args, **kwargs) def get_queryset(self): q = [] if self.session.has_key("searchaccident"): if len(self.session['searchaccident']) >= 3: for search in self.session['searchaccident'].split(" "): if search != " ": q.append("(Q(acc_name__icontains='%s') | Q(acc_comment__icontains='%s') | Q(acc_address__icontains='%s') | Q(acc_start__icontains='%s') | Q(acc_end__icontains='%s') | Q(acc_reason__icontains='%s') | Q(acc_repair__icontains='%s'))" % (search,search,search,search,search,search,search)) if len(q) == 0: return accidents.objects.all().order_by("-acc_start") else: str_q = " & ".join(q) str_sql = "accidents.objects.filter(%s).order_by('-acc_start')" % str_q return eval(str_sql) def get_context_data(self, **kwargs): context = super(AccidentList, self).get_context_data(**kwargs) if self.session.has_key('tz'): context['tz']= self.session['tz'] else: context['tz']= 'UTC' # Категории аварий context["accident_cats"] = accident_cats.objects.all().distinct('cat') # Вид аварии context["accident_list"] = accident_list.objects.all() if self.session.has_key("searchaccident"): context["searchaccident"] = self.session["searchaccident"] else: context["searchaccident"] = "" return context
class DevicesAuditPorts(ListView): model = devices template_name = "inventory/audit_ports.html" paginate_by = 0 @method_decorator(login_required(login_url='/')) @method_decorator(group_required(group='inventory',redirect_url='/mainmenu/')) def dispatch(self, request, *args, **kwargs): self.request = request self.session = request.session self.user = request.user return super(ListView, self).dispatch(request, *args, **kwargs) def get_queryset(self): if self.session.has_key("address_id") and self.session["address_id"] != 'undefined': addr = address_house.objects.get(pk=int(self.session["address_id"],10)) ### Когда определен только город if addr.city and addr.street == None and addr.house == None: return devices.objects.filter(address__city = addr.city,status=dev_use).order_by('address__street__name') ### Когда определен город и улица elif addr.city and addr.street and addr.house == None: return devices.objects.filter(address__city = addr.city,address__street = addr.street,status=dev_use).order_by('address__house') ### Когда определены город, улица, дом elif addr.city and addr.street and addr.house: return devices.objects.filter(address__city=addr.city, address__street=addr.street, address__house=addr.house,status=dev_use).all() else: return [] else: return [] def get_context_data(self, **kwargs): context = super(DevicesAuditPorts, self).get_context_data(**kwargs) context['tz']= self.session['tz'] if self.session.has_key('tz') else 'UTC' context["address_label"] = self.session["address_label"] if self.session.has_key("address_label") else '' return context
class DevicesList(ListView): model = devices template_name = "inventory/devices_list.html" paginate_by = 50 @method_decorator(login_required(login_url='/')) @method_decorator(group_required(group='inventory',redirect_url='/mainmenu/')) def dispatch(self, request, *args, **kwargs): self.request = request self.session = request.session self.user = request.user return super(ListView, self).dispatch(request, *args, **kwargs) def get_queryset(self): q = [] if self.session.has_key("search_device"): if len(self.session['search_device']) >= 3: for search in self.session['search_device'].split(" "): if search != " ": q.append("Q(device_scheme__name__icontains='%s') | Q(serial__icontains='%s') | Q(address__street__name__icontains='%s') | Q(address__house__icontains='%s')" % (search,search,search,search)) if len(q) == 0: return devices.objects.order_by('address') else: str_q = " & ".join(q) str_sql = "devices.objects.filter(%s).order_by('address')" % str_q return eval(str_sql) def get_context_data(self, **kwargs): context = super(DevicesList, self).get_context_data(**kwargs) if self.session.has_key('tz'): context['tz']= self.session['tz'] else: context['tz']= 'UTC' # Справочник схем context['scheme'] = devices_scheme.objects.order_by('name') # Справочник компаний context['company'] = address_companies.objects.order_by('name') # search if self.session.has_key('search_device'): context['search_device'] = self.session['search_device'] else: context['search_device'] = "" return context
class EventList(ListView): model = events template_name = "monitor/event_list.html" paginate_by = 0 @method_decorator(login_required(login_url='/')) @method_decorator(group_required(group='monitor',redirect_url='/mainmenu/')) def dispatch(self, request, *args, **kwargs): self.request = request self.session = request.session self.user = request.user return super(ListView, self).dispatch(request, *args, **kwargs) def my_fields_order(self): # Чередование полей pk_user = self.user.pk u = User.objects.get(pk=pk_user) if Profile.objects.filter(user=u).count() == 1: p = Profile.objects.get(user=u) data = p.settings if data.has_key("monitor-settings"): if data["monitor-settings"].has_key("head_order"): return data["monitor-settings"]["head_order"] else: return head_order else: return head_order else: return head_order ### Через сколько обновлять таблицу def my_refresh_table(self): pk_user = self.user.pk u = User.objects.get(pk=pk_user) if Profile.objects.filter(user=u).count() == 1: p = Profile.objects.get(user=u) data = p.settings if data.has_key("monitor-settings"): if data["monitor-settings"].has_key("refresh_data"): return data["monitor-settings"]["refresh_data"] else: return 0 else: return 0 else: return 0 #### Сколько событий на странице def my_row_page_table(self): pk_user = self.user.pk u = User.objects.get(pk=pk_user) if Profile.objects.filter(user=u).count() == 1: p = Profile.objects.get(user=u) data = p.settings if data.has_key("monitor-settings"): if data["monitor-settings"].has_key("row_page_data"): return data["monitor-settings"]["row_page_data"] else: return 50 else: return 50 else: return 50 def get_queryset(self): q = [] # Показывать архивные if self.session.has_key("filterhistory"): q.append("Q(finished_date__isnull=False)") # Показывать события с заведенными авариями if self.session.has_key("filteraccident"): q.append("Q(accident=%s)" % True) # Показывать группировки if self.session.has_key("filtergroup"): q.append("Q(agregator=%s)" % True) # Фильтр по статусам if self.session.has_key("status_id") and self.session.has_key("filterhistory") == False and self.session.has_key("filteraccident") == False and self.session.has_key("filtergroup") == False: if pickle.loads(self.session["status_id"]) != []: qs = [] for s in pickle.loads(self.session["status_id"]): qs.append("Q(status_id=Status.objects.get(pk=%s))" % s) q.append("("+" | ".join(qs)+")") # Фильтр по важности if self.session.has_key("severity_id") and self.session.has_key("filterhistory") == False and self.session.has_key("filteraccident") == False and self.session.has_key("filtergroup") == False: if pickle.loads(self.session["severity_id"]) != []: qv = [] for v in pickle.loads(self.session["severity_id"]): qv.append("Q(severity_id=Severity.objects.get(pk=%s))" % v) q.append("("+" | ".join(qv)+")") # Фильтр по источникам if self.session.has_key("source"): if pickle.loads(self.session["source"]) != []: qm = [] for m in pickle.loads(self.session["source"]): qm.append("Q(source='%s')" % m) q.append("("+" | ".join(qm)+")") # Поиск if self.session.has_key("search"): if len(self.session['search']) >= 3: for search in self.session['search'].split(" "): if search != " ": q.append("(Q(device_net_address__icontains='%s') | Q(device_system__icontains='%s') | Q(device_group__icontains='%s') | Q(device_class__icontains='%s') | Q(device_location__icontains='%s') | Q(event_class__icontains='%s') | Q(source__icontains='%s'))" % (search,search,search,search,search,search,search)) if self.session.has_key("first_seen"): if self.session["first_seen"] != "": try: q.append("Q(first_seen__gte='%s')" % datetime.datetime.strptime(self.session["first_seen"],"%d.%m.%Y").replace(tzinfo=timezone('UTC'))) except: pass if self.session.has_key("last_seen"): if self.session["last_seen"] != "": try: q.append("Q(last_seen__lte='%s')" % datetime.datetime.strptime(self.session["last_seen"],"%d.%m.%Y").replace(tzinfo=timezone('UTC'))) except: pass if len(q) == 0: data = events.objects.filter(agregation=False).order_by('-first_seen').select_related()[:1000] else: str_q = " & ".join(q) str_sql = "events.objects.filter(%s).filter(agregation=False).order_by('-first_seen').select_related()" % str_q data = (eval(str_sql))[:1000] #for i in data: # i.field1 = eval(("i.%s") % (self.my_fields_order()[0]["name"])) return data ### Строк на странице - переопределение def get_paginate_by(self, queryset): p = self.my_row_page_table() return self.request.GET.get('paginate_by', p) def get_context_data(self, **kwargs): context = super(EventList, self).get_context_data(**kwargs) # Статус if self.session.has_key('status_id'): status = pickle.loads(self.session['status_id']) else: status = [1,2,3] self.session['status_id'] = pickle.dumps(status) # Список статусов status_list = [] for row in Status.objects.all().order_by("id"): status_list.append("<option value='%s'>%s</option>" % (row.id, row.name)) context['status'] = status_list context['selected_status'] = status # Важность if self.session.has_key('severity_id'): severity = pickle.loads(self.session['severity_id']) else: severity = [5,] self.session['severity_id'] = pickle.dumps(severity) # Список важности severity_list = [] for row in Severity.objects.all().order_by("id"): severity_list.append("<option value='%s'>%s</option>" % (row.id,row.name)) context['severity'] = severity_list context['selected_severity'] = severity # last_seen if self.session.has_key('last_seen'): context['last_seen'] = self.session['last_seen'] else: context['last_seen'] = "" # first_seen if self.session.has_key('first_seen'): context['first_seen'] = self.session['first_seen'] else: context['first_seen'] = "" # search if self.session.has_key('search'): context['search'] = self.session['search'] else: context['search'] = "" # Source if self.session.has_key('source'): sources = pickle.loads(self.session['source']) else: sources = [] # Список источников source_list = [] for row in sources_dict: source_list.append("<option value='%s'>%s</option>" % (row['id'],row['name'])) context['source'] = source_list context['selected_source'] = sources context['members'] = 0 if self.session.has_key('containergroup'): g = events.objects.get(pk=self.session['containergroup']) data = g.data if data.has_key('containergroup'): context['members'] = len(data['containergroup']) context['containergroup'] = events.objects.get(pk=self.session['containergroup']) else: context['containergroup'] = False if self.session.has_key('tz'): context['tz']= self.session['tz'] else: context['tz']= 'UTC' if self.session.has_key('filtergroup'): context["filtergroup"] = True else: context["filtergroup"] = False if self.session.has_key('filteraccident'): context["filteraccident"] = True else: context["filteraccident"] = False if self.session.has_key('filterhistory'): context["filterhistory"] = True else: context["filterhistory"] = False # Чередование полей context['head_order'] = self.my_fields_order() # Категории аварий context["accident_cats"] = accident_cats.objects.all().distinct('cat') # Вид аварии context["accident_list"] = accident_list.objects.all() ## Шаблоны сообщений context["email_templates"] = email_templates.objects.all() # Значение через сколько обновлять таблицу context["refresh_table"] = "%s" % self.my_refresh_table() # Сколько событий на странице context["row_page_table"] = "%s" % self.my_row_page_table() return context
class EquipmentList(ListView): model = devices_ip template_name = "equipment/devices_list.html" paginate_by = 100 @method_decorator(login_required(login_url='/')) @method_decorator( group_required(group='devices', redirect_url='/mainmenu/')) def dispatch(self, request, *args, **kwargs): self.session = request.session return super(ListView, self).dispatch(request, *args, **kwargs) def get_queryset(self): q = [] if self.session.has_key("notaccess"): q.append("Q(access=%s)" % False) if self.session.has_key("norewrite"): q.append("Q(no_rewrite=%s)" % True) if self.session.has_key("search"): if len(self.session['search']) >= 3: for search in self.session['search'].split(" "): print search if search != " ": q.append( "(Q(ipaddress__icontains='%s') | Q(device_name__icontains='%s') | Q(device_location__icontains='%s') | Q(device_descr__icontains='%s') | Q(device_location__icontains='%s') | Q(chassisid__icontains='%s') | Q(device_serial__icontains='%s'))" % (search, search, search, search, search, search, search)) if len(q) == 0: return devices_ip.objects.all().order_by('ipaddress') else: str_q = " & ".join(q) str_sql = "devices_ip.objects.filter(%s).order_by('ipaddress')" % str_q return eval(str_sql) def get_context_data(self, **kwargs): context = super(EquipmentList, self).get_context_data(**kwargs) if self.session.has_key('tz'): context['tz'] = self.session['tz'] else: context['tz'] = 'UTC' if self.session.has_key('notaccess'): context["notaccess"] = True else: context["notaccess"] = False if self.session.has_key('norewrite'): context["norewrite"] = True else: context["norewrite"] = False # search if self.session.has_key('search'): context['search'] = self.session['search'] else: context['search'] = "" return context
class ProjStagesList(ListView): model = proj_stages template_name = "regions/projstageslist.html" paginate_by = 0 @method_decorator(login_required(login_url='/')) @method_decorator(group_required(group='project',redirect_url='/mainmenu/')) def dispatch(self, request, *args, **kwargs): request.session["proj_id"] = kwargs.get('project') self.request = request self.session = request.session self.user = request.user self.proj = proj.objects.get(pk=int(self.session["proj_id"], 10)) self.actions = [] return super(ListView, self).dispatch(request, *args, **kwargs) def get_queryset(self): data = proj_stages.objects.filter(proj=self.proj) ### Вычисление пунктов исполнения rows = self.proj.make_dict() G = self.proj.make_graph(rows) G = self.proj.graph_edge_order(G, rows) self.actions = self.proj.actions(G) for item in data: item.order = ".".join(["%s" % x for x in item.stage_order]) item.depend = ".".join(["%s" % x for x in item.depend_on["stages"]]) item.action = True if item.id in self.actions else False return data def get_context_data(self, **kwargs): context = super(ProjStagesList, self).get_context_data(**kwargs) context['tz']= self.session['tz'] if self.session.has_key('tz') else 'UTC' context['form']= ProjForm2(instance=self.proj) context['user_list']= User.objects.order_by('first_name') context['stageform']= StageForm() context['project']= self.session["proj_id"] ### Вычисление пунктов исполнения context['actions'] = self.actions return context