Example #1
0
    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)
Example #2
0
 def get_nav_items(self):
     nav_role = Task.get_nav_role(self.config.app)
     if (not nav_role) or (nav_role == self.config.cur_view_group.view_id):
         return None
     href = self.request.path
     if ('pk' in self.kwargs):
         pk = str(self.kwargs['pk']) + '/'
         if (pk in href):
             href = href.split(pk)[0]
     sort = 'name'
     nav_item_group = detect_group(self.request.user, self.config.app,
                                   'role', nav_role, '')
     if nav_item_group and nav_item_group.items_sort:
         sort = nav_item_group.items_sort
     ret = []
     for item in Task.get_role_tasks(self.request.user.id, self.config.app,
                                     nav_role).order_by(sort):
         ret.append({
             'id':
             item.id,
             'name':
             item.name,
             'qty':
             len(
                 Task.get_role_tasks(self.request.user.id, self.config.app,
                                     self.config.cur_view_group.view_id,
                                     item)),
             'href':
             href,
         })
     return ret
Example #3
0
    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
Example #4
0
 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
Example #5
0
    def set_view(self, request, detail=False):
        if not self.app:
            return
        self.cur_view_group = None
        self.nav_item = None
        determinator = 'view'
        view_id = ''
        if (self.app == APP_ALL):
            common_url = reverse('index')
            view_id = 'search'
        else:
            common_url = reverse(self.app + ':list')
        if self.main_view:
            view_id = self.main_view
        if (request.path != common_url):
            view_id = request.path.split(common_url)[1].split('?')[0].split(
                '/')[0]
            if detail and self.is_num(view_id):
                view_id = request.path.split(common_url)[1].split(
                    '?')[0].split(view_id)[0]

            if view_id and (view_id in self.views):
                if ('page_url' in self.views[view_id]) and (
                        self.views[view_id]['page_url'] == view_id):
                    determinator = 'view'
                else:
                    determinator = 'role'

        if (not view_id):
            view_id = self.main_view

        if ('view' in request.GET):
            view_name = request.GET.get('view')
            if view_name:
                view_id = view_name
        nav_role = Task.get_nav_role(self.app)
        if (not nav_role) and (self.group_entity in request.GET):
            group_id = request.GET.get(self.group_entity)
            if group_id and int(group_id) and Group.objects.filter(
                    user=request.user.id, id=int(group_id)).exists():
                determinator = 'group'
                view_id = group_id
                self.title = Group.objects.filter(user=request.user.id,
                                                  id=int(group_id)).get().name
                self.role_icon = self.app_icon
                self.view_icon = self.app_icon
        self.view_sorts = None
        if (determinator != 'group') and (view_id in self.views):
            if (determinator == 'role') and ('role' in self.views[view_id]):
                self.role_icon = self.check_property(self.views[view_id],
                                                     'icon', self.role_icon)
                self.view_icon = self.check_property(self.views[view_id],
                                                     'icon', self.view_icon)
            else:
                self.role_icon = self.app_icon
            if (determinator == 'view'):
                self.view_icon = self.check_property(self.views[view_id],
                                                     'icon', self.view_icon)
            self.title = self.check_property(self.views[view_id], 'title',
                                             self.title)
            self.use_selector = self.check_property(self.views[view_id],
                                                    'use_selector',
                                                    self.use_selector)
            self.use_important = self.check_property(self.views[view_id],
                                                     'use_important',
                                                     self.use_important)
            self.add_button = self.check_property(self.views[view_id],
                                                  'add_button',
                                                  self.add_button)
            self.item_name = self.check_property(self.views[view_id],
                                                 'item_name', self.item_name)
            self.event_in_name = self.check_property(self.views[view_id],
                                                     'event_in_name',
                                                     self.event_in_name)
            self.use_sub_groups = self.check_property(self.views[view_id],
                                                      'use_sub_groups',
                                                      self.use_sub_groups)
            self.limit_list = self.check_property(self.views[view_id],
                                                  'limit_list',
                                                  self.limit_list)
            if 'sort' in self.views[view_id]:
                self.view_sorts = self.views[view_id]['sort']

        if (determinator == 'group'):
            self.use_sub_groups = (self.app in (APP_TODO, APP_STORE))

        if determinator and view_id:
            self.cur_view_group = detect_group(request.user, self.app,
                                               determinator, view_id,
                                               _(self.title).capitalize())