def get_base_dataset(self): nav_role = Task.get_nav_role(self.config.app) if nav_role and (nav_role != self.config.get_cur_role()): if (self.config.group_entity in self.request.GET): active_nav_item_id = self.request.GET[self.config.group_entity] Task.set_active_nav_item(self.request.user.id, self.config.app, active_nav_item_id) self.config.set_view(self.request) query = None if (self.request.method == 'GET'): query = self.request.GET.get('q') nav_item = None nav_role = Task.get_nav_role(self.config.app) cur_role = self.config.get_cur_role() if nav_role and (nav_role != cur_role): if (self.config.group_entity in self.request.GET): active_nav_item_id = self.request.GET[self.config.group_entity] nav_item = Task.set_active_nav_item(self.request.user.id, self.config.app, active_nav_item_id) else: nav_item = Task.get_active_nav_item(self.request.user.id, self.config.app) if nav_role and (nav_role != self.config.get_cur_role()): nav_item = Task.get_active_nav_item(self.request.user.id, self.config.app) return self.get_dataset(self.config.cur_view_group, query, nav_item)
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['add_item_template'] = 'fuel/add_service.html' nav_item = Task.get_active_nav_item(self.request.user.id, APP_FUEL) form = CreateForm(nav_item, self.request.user.id) context['form'] = form return context
def get_app_context(self, user_id, search_qty=None, icon=None, nav_items=None, **kwargs): context = {} if hasattr(self, 'object') and self.object: title = self.object.name else: if 'title' in kwargs: title = kwargs['title'] else: title = _(self.config.title).capitalize() nav_item = None if (Task.get_nav_role(self.config.app) != self.config.get_cur_role()): nav_item = Task.get_active_nav_item(user_id, self.config.app) if nav_item: title = (title, nav_item.name) context['nav_item'] = nav_item context.update( get_base_context(self.request, self.config.app, self.config.get_cur_role(), self.config.cur_view_group, (hasattr(self, 'object') and self.object != None), title, icon=icon)) context['fix_list'] = self.get_fixes(self.config.views, search_qty) context['group_form'] = CreateGroupForm() context['config'] = self.config context['params'] = extract_get_params(self.request, self.config.group_entity) if nav_items: context['nav_items'] = nav_items context['add_item_placeholder'] = '{} {}'.format( _('add').capitalize(), self.config.item_name if self.config.item_name else self.config.get_cur_role()) if self.config.add_button: context['add_item_template'] = 'base/add_item_button.html' else: context['add_item_template'] = 'base/add_item_input.html' if (self.config.group_entity in self.request.GET): context['current_group'] = self.request.GET[ self.config.group_entity] elif ('ret' in self.request.GET): context['current_group'] = self.request.GET['ret'] return context
def get(self, request, *args, **kwargs): if not request.user.is_authenticated: raise Http404 ret = super().get(request, *args, **kwargs) nav_role = Task.get_nav_role(self.config.app) cur_role = self.config.get_cur_role() if nav_role and (nav_role != cur_role): if (self.config.group_entity not in request.GET): nav_item = Task.get_active_nav_item(request.user.id, self.config.app) if nav_item: return HttpResponseRedirect(request.path + '?' + self.config.group_entity + '=' + str(nav_item.id)) return ret
def get_fixes(self, views, search_qty): fixes = [] if (self.config.app == APP_ALL): common_url = reverse('index') else: common_url = reverse(self.config.app + ':list') nav_item = Task.get_active_nav_item(self.request.user.id, self.config.app) for key, value in views.items(): url = common_url determinator = 'view' view_id = self.config.main_view if (view_id != key): if ('role' in value): determinator = 'role' view_id = value['role'] url += view_id + '/' else: view_id = key if (key != self.config.main_view): if ('page_url' in value): url += value['page_url'] + '/' else: url += '?view=' + key if (self.config.app in FOLDER_NAV_APPS): folder = '' if ('folder' in self.request.GET): folder = self.request.GET['folder'] if folder: if ('?' in url): url += '&' else: url += '?' url += 'folder=' + folder hide_qty = False if ('hide_qty' in value): hide_qty = value['hide_qty'] if hide_qty: qty = None else: if (view_id == self.config.group_entity): _nav_item = None else: _nav_item = nav_item fix_group = detect_group(self.request.user, self.config.app, determinator, view_id, _(value['title']).capitalize()) qty = self.get_view_qty(fix_group, _nav_item) active = (self.config.cur_view_group.determinator == determinator) and (self.config.cur_view_group.view_id == view_id) fix = { 'determinator': determinator, 'id': view_id, 'url': url, 'icon': value['icon'], 'title': _(value['title']).capitalize(), 'qty': qty, 'active': active, 'search_qty': search_qty, } fixes.append(fix) return fixes