Пример #1
0
    def update(self):
        self.execute(None)
        user = get_current()
        objects = getattr(self.context.working_group, 'members', [])
        url = self.request.resource_url(self.context, self.name)
        batch = Batch(objects, self.request,
                      url=url,
                      default_size=BATCH_DEFAULT_SIZE)
        batch.target = "#results_proposal_members" + str(self.context.__oid__)
        len_result = batch.seqlen
        index = str(len_result)
        if len_result > 1:
            index = '*'

        result_body = render_small_listing_objs(
            self.request, batch, user)
        result = {}
        self.title = _(MEMBERS_MESSAGES[index], mapping={'number': len_result})
        values = {
            'bodies': result_body,
            'batch': batch,
            'empty_message': _("No members"),
            'empty_icon': 'glyphicon glyphicon-user'
        }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        result['coordinates'] = {self.coordinates: [item]}
        return result
Пример #2
0
    def get_similar_questions(self):
        user = get_current()
        # text = self.params('text')
        title = self.params('title')
        keywords = self.params('keywords')
        # text = text if text else ''
        title = title if title else ''
        keywords = keywords if keywords else []
        if not isinstance(keywords, list):
            keywords = [keywords]

        if not keywords and not title:  # and not text:
            return {'body': ''}

        title_keywords = extract_keywords(title)
        # text_keywords = extract_keywords(text)
        # keywords.extend(text_keywords[:5])
        keywords.extend(title_keywords)
        result = find_entities(
            interfaces=[IQuestion],
            user=user,
            text_filter={'text_to_search': ', '.join(keywords)},
            defined_search=True,
            generate_text_search=True)
        result_body = render_small_listing_objs(self.request,
                                                list(result)[:30], user)
        values = {'entities': result_body}
        body = self.content(args=values,
                            template=self.search_question_template)['body']
        return {'body': body}
Пример #3
0
    def update(self):
        self.execute(None)
        user = get_current()
        objects = getattr(self.context.working_group, 'members', [])
        url = self.request.resource_url(self.context, self.name)
        batch = Batch(objects,
                      self.request,
                      url=url,
                      default_size=BATCH_DEFAULT_SIZE)
        batch.target = "#results_proposal_members" + str(self.context.__oid__)
        len_result = batch.seqlen
        index = str(len_result)
        if len_result > 1:
            index = '*'

        result_body = render_small_listing_objs(self.request, batch, user)
        result = {}
        self.title = _(MEMBERS_MESSAGES[index], mapping={'number': len_result})
        values = {
            'bodies': result_body,
            'batch': batch,
            'empty_message': _("No members"),
            'empty_icon': 'glyphicon glyphicon-user'
        }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        result['coordinates'] = {self.coordinates: [item]}
        return result
Пример #4
0
    def get_similar_ideas(self):
        user = get_current()
        # text = self.params('text')
        title = self.params('title')
        tree = self.params('tree')
        # text = text if text else ''
        title = title if title else ''
        tree = tree if tree else {}
        if not isinstance(tree, dict):
            tree = json.loads(tree)

        if not tree and not title:  # and not text:
            return {'body': ''}

        title_keywords = extract_keywords(title)
        # text_keywords = extract_keywords(text)
        # keywords.extend(text_keywords[:5])
        result = find_entities(
            interfaces=[Iidea],
            user=user,
            metadata_filter={'tree': tree},
            text_filter={'text_to_search': ', '.join(title_keywords)},
            defined_search=True,
            generate_text_search=True)
        result_body = render_small_listing_objs(self.request,
                                                list(result)[:30], user)
        values = {'entities': result_body}
        body = self.content(args=values,
                            template=self.search_idea_template)['body']
        return {'body': body}
Пример #5
0
    def get_similar_questions(self):
        user = get_current()
        # text = self.params('text')
        title = self.params('title')
        keywords = self.params('keywords')
        # text = text if text else ''
        title = title if title else ''
        keywords = keywords if keywords else []
        if not isinstance(keywords, list):
            keywords = [keywords]

        if not keywords and not title:# and not text:
            return {'body': ''}

        title_keywords = extract_keywords(title)
        # text_keywords = extract_keywords(text)
        # keywords.extend(text_keywords[:5])
        keywords.extend(title_keywords)
        result = find_entities(
            interfaces=[IQuestion],
            user=user,
            text_filter={'text_to_search': ', '.join(keywords)},
            defined_search=True,
            generate_text_search=True)
        result_body = render_small_listing_objs(
            self.request, list(result)[:30], user)
        values = {'entities': result_body}
        body = self.content(args=values,
                            template=self.search_question_template)['body']
        return {'body': body}
Пример #6
0
    def update(self):
        self.execute(None)
        user = get_current()
        objects = [obj for obj
                   in self.context.get_sub_nodes()
                   if can_access(user, obj)]
        objects = sorted(
            objects,
            key=lambda e: getattr(e, 'modified_at'),
            reverse=True)
        url = self.request.resource_url(self.context, self.name)
        batch = Batch(objects, self.request,
                      url=url,
                      default_size=BATCH_DEFAULT_SIZE)
        batch.target = "#results_node_dependencies_" + str(self.context.__oid__)
        len_result = batch.seqlen
        index = str(len_result)
        if len_result > 1:
            index = '*'

        self.title = _(WG_MESSAGES[index], mapping={'number': len_result})
        result = {}
        result_body = render_small_listing_objs(
            self.request, batch, user)

        values = {
            'bodies': result_body,
            'batch': batch,
            'empty_message': _("No association"),
            'empty_icon': 'glyphicon glyphicon-link'
        }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        result['coordinates'] = {self.coordinates: [item]}
        return result
Пример #7
0
    def update(self):
        self.execute(None)
        user = get_current()
        objects = [proposal for proposal
                   in self.context.related_proposals
                   if proposal.working_group and
                   'archived' not in proposal.state and
                   'censored' not in proposal.state and
                   can_access(user, proposal)]
        objects = sorted(
            objects,
            key=lambda e: getattr(e, 'modified_at'),
            reverse=True)
        is_small = True
        current_is_small = self.params('is_small')
        if current_is_small is not None:
            current_is_small = current_is_small.lower()
            is_small = current_is_small == 'true'
        elif self.parent or self.request.view_name == self.name:
            is_small = False

        url = self.request.resource_url(
            self.context, self.name, query={'is_small': str(is_small)})
        batch = Batch(objects, self.request,
                      url=url,
                      default_size=BATCH_DEFAULT_SIZE)
        batch.target = "#results_idea_working_groups" + \
            str(self.context.__oid__) + \
            (is_small and 'is_small' or '')
        len_result = batch.seqlen
        index = str(len_result)
        if len_result > 1:
            index = '*'

        self.title = _(WG_MESSAGES[index], mapping={'number': len_result})
        result = {}
        if is_small:
            result_body = render_small_listing_objs(
                self.request, batch, user)
        else:
            result_body, result = render_listing_objs(
                self.request, batch, user)

        values = {
            'bodies': result_body,
            'batch': batch,
            'empty_message': _("No working group created"),
            'empty_icon': 'novaideo-icon icon-wg'
        }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        result['coordinates'] = {self.coordinates: [item]}
        return result
Пример #8
0
    def update(self):
        self.execute(None)
        user = get_current()
        objects = [
            proposal for proposal in self.context.related_proposals
            if proposal.working_group and 'archived' not in proposal.state and
            'censored' not in proposal.state and can_access(user, proposal)
        ]
        objects = sorted(objects,
                         key=lambda e: getattr(e, 'modified_at'),
                         reverse=True)
        is_small = True
        current_is_small = self.params('is_small')
        if current_is_small is not None:
            current_is_small = current_is_small.lower()
            is_small = current_is_small == 'true'
        elif self.parent or self.request.view_name == self.name:
            is_small = False

        url = self.request.resource_url(self.context,
                                        self.name,
                                        query={'is_small': str(is_small)})
        batch = Batch(objects,
                      self.request,
                      url=url,
                      default_size=BATCH_DEFAULT_SIZE)
        batch.target = "#results_idea_working_groups" + \
            str(self.context.__oid__) + \
            (is_small and 'is_small' or '')
        len_result = batch.seqlen
        index = str(len_result)
        if len_result > 1:
            index = '*'

        self.title = _(WG_MESSAGES[index], mapping={'number': len_result})
        result = {}
        if is_small:
            result_body = render_small_listing_objs(self.request, batch, user)
        else:
            result_body, result = render_listing_objs(self.request, batch,
                                                      user)

        values = {
            'bodies': result_body,
            'batch': batch,
            'empty_message': _("No working group created"),
            'empty_icon': 'novaideo-icon icon-wg'
        }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        result['coordinates'] = {self.coordinates: [item]}
        return result
Пример #9
0
    def update(self):
        self.execute(None)
        user = get_current()
        objects = [
            event for event in self.context.events
            if 'published' in event.state and can_access(user, event)
        ]
        objects = sorted(objects,
                         key=lambda e: getattr(e, 'modified_at'),
                         reverse=True)
        is_small = True
        current_is_small = self.params('is_small')
        if current_is_small is not None:
            current_is_small = current_is_small.lower()
            is_small = current_is_small == 'true'
        elif self.parent or self.request.view_name == self.name:
            is_small = False

        url = self.request.resource_url(self.context,
                                        self.name,
                                        query={'is_small': str(is_small)})
        batch = Batch(objects,
                      self.request,
                      url=url,
                      default_size=BATCH_DEFAULT_SIZE)
        batch.target = "#results_eventobject_events" + \
            str(self.context.__oid__) + \
            (is_small and 'is_small' or '')
        len_result = batch.seqlen
        index = str(len_result)
        if len_result > 1:
            index = '*'

        self.title = _(EVENTS_MESSAGES[index], mapping={'number': len_result})
        result = {}
        if is_small:
            result_body = render_small_listing_objs(self.request, batch, user)
        else:
            result_body, result = render_listing_objs(self.request, batch,
                                                      user)

        values = {
            'bodies': result_body,
            'batch': batch,
            'empty_message': _("No organized event"),
            'empty_icon': 'glyphicon glyphicon-calendar'
        }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        result['coordinates'] = {self.coordinates: [item]}
        return result
Пример #10
0
    def find_entities(self):
        name = self.params('text_to_search')
        contents = self.params('checkbox')
        if contents and not isinstance(contents, (list, tuple)):
            contents = [contents]

        if not contents:
            contents = get_default_searchable_content(self.request)
            contents = [c[0] for c in contents]

        if name:
            states = ['published', 'active']
            user = get_current()
            root = getSite()
            result = []
            if is_all_values_key(name):
                result = find_entities(metadata_filter={
                    'content_types': contents,
                    'states': states
                },
                                       user=user)
            else:
                result = find_entities(metadata_filter={
                    'content_types': contents,
                    'states': states
                },
                                       user=user,
                                       text_filter={'text_to_search': name})

            result_body = render_small_listing_objs(self.request,
                                                    list(result)[:NBRESULT],
                                                    user)
            values = {
                'entities':
                result_body,
                'all_url':
                self.request.resource_url(root,
                                          '@@search_result',
                                          query={
                                              'text_to_search': name,
                                              'content_types': contents
                                          }),
                'advenced_search_url':
                self.request.resource_url(root, '@@advanced_search')
            }
            body = self.content(args=values,
                                template=self.search_template)['body']
            return {'body': body}

        return {'body': ''}
Пример #11
0
    def update(self):
        self.execute(None)
        user = get_current()
        objects = [content for content in
                   self.context.related_ideas
                   if can_access(user, content)]
        objects = sorted(
            objects,
            key=lambda e: getattr(e, 'modified_at'),
            reverse=True)
        is_small = True
        current_is_small = self.params('is_small')
        if current_is_small is not None:
            current_is_small = current_is_small.lower()
            is_small = current_is_small == 'true'
        elif self.parent or self.request.view_name == self.name:
            is_small = False

        url = self.request.resource_url(
            self.context, self.name, query={'is_small': str(is_small)})
        batch = Batch(objects, self.request,
                      url=url,
                      default_size=BATCH_DEFAULT_SIZE)
        batch.target = "#results_related_ideas" + \
            str(self.context.__oid__) + \
            (is_small and 'is_small' or '')
        len_result = batch.seqlen
        index = str(len_result)
        if len_result > 1:
            index = '*'
        result = {}
        if is_small:
            result_body = render_small_listing_objs(
                self.request, batch, user)
        else:
            result_body, result = render_listing_objs(
                self.request, batch, user)

        self.title = _(ADDIDEAS_MESSAGES[index],
                       mapping={'number': len_result})
        values = {
            'bodies': result_body,
            'batch': batch
        }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        result['coordinates'] = {self.coordinates: [item]}
        return result
Пример #12
0
    def find_entities(self):
        name = self.params('text_to_search')
        contents = self.params('checkbox')
        if contents and not isinstance(contents, (list, tuple)):
            contents = [contents]

        if not contents:
            contents = get_default_searchable_content(
                self.request)
            contents = [c[0] for c in contents]

        if name:
            states = ['published', 'active']
            user = get_current()
            root = getSite()
            result = []
            if is_all_values_key(name):
                result = find_entities(
                    metadata_filter={
                        'content_types': contents,
                        'states': states},
                    user=user)
            else:
                result = find_entities(
                    metadata_filter={
                        'content_types': contents,
                        'states': states},
                    user=user,
                    text_filter={'text_to_search': name})

            result_body = render_small_listing_objs(
                self.request, list(result)[:NBRESULT], user)
            values = {'entities': result_body,
                      'all_url': self.request.resource_url(
                          root, '@@search_result',
                          query={'text_to_search': name,
                                 'content_types': contents}),
                      'advenced_search_url': self.request.resource_url(
                          root, '@@advanced_search')}
            body = self.content(args=values,
                                template=self.search_template)['body']
            return {'body': body}

        return {'body': ''}
Пример #13
0
    def update(self):
        self.execute(None)
        user = get_current()
        objects = [member for member
                   in self.context.invited_users
                   if can_access(user, member)]
        objects = sorted(
            objects,
            key=lambda e: getattr(e, 'modified_at'),
            reverse=True)
        url = self.request.resource_url(self.context, self.name)
        batch = Batch(objects, self.request,
                      url=url,
                      default_size=BATCH_DEFAULT_SIZE)
        batch.target = "#results_challenge_members"
        len_result = batch.seqlen
        index = str(len_result)
        if len_result > 1:
            index = '*'

        self.title = _(WG_MESSAGES[index], mapping={'number': len_result})
        result = {}
        # if included in another view
        if self.parent or self.request.view_name == self.name:
            result_body, result = render_listing_objs(
                self.request, batch, user)
        else:
            result_body = render_small_listing_objs(
                self.request, batch, user)

        values = {
            'bodies': result_body,
            'batch': batch,
            'empty_message': _("No participant"),
            'empty_icon': 'ion-person-stalker'
        }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        result['coordinates'] = {self.coordinates: [item]}
        return result
Пример #14
0
    def update(self):
        self.execute(None)
        user = get_current()
        objects = [
            obj for obj in self.context.get_sub_nodes()
            if can_access(user, obj)
        ]
        objects = sorted(objects,
                         key=lambda e: getattr(e, 'modified_at'),
                         reverse=True)
        url = self.request.resource_url(self.context, self.name)
        batch = Batch(objects,
                      self.request,
                      url=url,
                      default_size=BATCH_DEFAULT_SIZE)
        batch.target = "#results_node_dependencies_" + str(
            self.context.__oid__)
        len_result = batch.seqlen
        index = str(len_result)
        if len_result > 1:
            index = '*'

        self.title = _(WG_MESSAGES[index], mapping={'number': len_result})
        result = {}
        result_body = render_small_listing_objs(self.request, batch, user)

        values = {
            'bodies': result_body,
            'batch': batch,
            'empty_message': _("No association"),
            'empty_icon': 'glyphicon glyphicon-link'
        }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        result['coordinates'] = {self.coordinates: [item]}
        return result