示例#1
0
    def update(self):
        self.execute(None)
        try:
            navbars = generate_navbars(self, self.context, self.request)
        except ObjectRemovedException:
            return HTTPFound(self.request.resource_url(getSite(), ''))

        result = {}
        schema = SOCIAL_APPLICATIONS.get(self.context.__class__)
        data = []
        for node in schema.children:
            if not getattr(node, 'private', False):
                data.append(
                    (node.title, getattr(self.context, node.name, None)))

        values = {
            'data': data,
            'object': self.context,

            'navbar_body': navbars['navbar_body'],
            'actions_bodies': navbars['body_actions'],
            'footer_body': navbars['footer_body'],
            }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        item['messages'] = navbars['messages']
        item['isactive'] = navbars['isactive']
        result.update(navbars['resources'])
        result['coordinates'] = {self.coordinates: [item]}
        return result
示例#2
0
    def update(self):
        self.execute(None)
        try:
            navbars = generate_navbars(self, self.context, self.request)
        except ObjectRemovedException:
            return HTTPFound(self.request.resource_url(getSite(), ''))

        result = {}
        user = get_current()
        site = get_site_folder(True)
        add_participants_view = False
        if not any(s in ('editable', 'rejected', 'submitted', 'prepublished')
                   for s in self.context.state):
            add_participants_view = has_any_roles(roles=(('GameResponsible',
                                                          site), 'Admin'))

        values = {
            'object':
            self.context,
            'state':
            get_states_mapping(
                user, self.context,
                getattr(self.context, 'state_or_none', [None])[0]),
            'navbar_body':
            navbars['navbar_body'],
            'add_participants_view':
            add_participants_view
        }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        item['messages'] = navbars['messages']
        item['isactive'] = navbars['isactive']
        result.update(navbars['resources'])
        result['coordinates'] = {self.coordinates: [item]}
        return result
示例#3
0
    def update(self):
        self.execute(None)
        root = getSite()
        try:
            navbars = generate_navbars(self, self.context, self.request)
        except ObjectRemovedException:
            return HTTPFound(self.request.resource_url(root, ''))

        result = {}
        user = get_current()
        parent = self.context.__parent__
        can_access_parent = False
        if not (parent is root) and can_access(user, parent):
            can_access_parent = True

        values = {'object': self.context,
                  'navbar_body': navbars['navbar_body'],
                  'can_access_parent': can_access_parent}
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        item['messages'] = navbars['messages']
        item['isactive'] = navbars['isactive']
        result.update(navbars['resources'])
        result['coordinates'] = {self.coordinates: [item]}
        return result
示例#4
0
    def update(self):
        self.execute(None)
        try:
            navbars = generate_navbars(self, self.context, self.request)
        except ObjectRemovedException:
            return HTTPFound(self.request.resource_url(getSite(), ''))

        result = {}
        user = get_current()
        related_contents, len_contents = self.get_related_contents(user)
        values = {
            'object': self.context,
            'state': get_states_mapping(user, self.context,
                                        self.context.state[0]),
            'related_contents': related_contents,
            'len_contents': len_contents,
            'navbar_body': navbars['navbar_body'],
            'actions_bodies': navbars['body_actions'],
            'footer_body': navbars['footer_body'],
            'get_oid': get_oid,
            'is_portalmanager': has_role(user=user, role=('PortalManager',))
        }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        item['messages'] = navbars['messages']
        item['isactive'] = navbars['isactive']
        result.update(navbars['resources'])
        result['coordinates'] = {self.coordinates: [item]}
        return result
示例#5
0
    def update(self):
        self.execute(None)
        try:
            navbars = generate_navbars(self, self.context, self.request)
        except ObjectRemovedException:
            return HTTPFound(self.request.resource_url(getSite(), ''))

        result = {}
        user = get_current()
        site = get_site_folder(True, self.request)
        diff_marker = "#diff"
        values = {
            'object': self.context,
            'state': get_states_mapping(
                user, self.context,
                getattr(self.context, 'state_or_none', [None])[0]),
            'navbar_body': navbars['navbar_body'],
            'services_body': navbars['services_body'],
            'footer_body': navbars['footer_body'],
            'is_portalmanager': has_role(user=user, role=('PortalManager',)),
            'tree_diff': json.dumps(
                tree_diff(site.tree, self.context.tree, diff_marker)),
            'diff_marker': diff_marker
        }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        item['messages'] = navbars['messages']
        item['isactive'] = navbars['isactive']
        result.update(navbars['resources'])
        result.update(self.requirements)
        result['coordinates'] = {self.coordinates: [item]}
        return result
示例#6
0
    def update(self):
        self.execute(None)
        try:
            navbars = generate_navbars(self, self.context, self.request)
        except ObjectRemovedException:
            return HTTPFound(self.request.resource_url(getSite(), ''))

        result = {}
        schema = SOCIAL_APPLICATIONS.get(self.context.__class__)
        data = []
        for node in schema.children:
            if not getattr(node, 'private', False):
                data.append((node.title, getattr(self.context, node.name,
                                                 None)))

        values = {
            'data': data,
            'object': self.context,
            'navbar_body': navbars['navbar_body'],
            'actions_bodies': navbars['body_actions'],
            'footer_body': navbars['footer_body'],
        }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        item['messages'] = navbars['messages']
        item['isactive'] = navbars['isactive']
        result.update(navbars['resources'])
        result['coordinates'] = {self.coordinates: [item]}
        return result
示例#7
0
    def update(self):
        self.execute(None)
        try:
            navbars = generate_navbars(self, self.context, self.request)
        except ObjectRemovedException:
            return HTTPFound(self.request.resource_url(getSite(), ''))

        result = {}
        user = get_current()
        related_contents, len_contents = self.get_related_contents(user)
        values = {
            'object': self.context,
            'state': get_states_mapping(user, self.context,
                                        self.context.state[0]),
            'related_contents': related_contents,
            'len_contents': len_contents,
            'navbar_body': navbars['navbar_body'],
            'actions_bodies': navbars['body_actions'],
            'footer_body': navbars['footer_body'],
            'get_oid': get_oid,
            'is_portalmanager': has_role(user=user, role=('PortalManager', ))
        }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        item['messages'] = navbars['messages']
        item['isactive'] = navbars['isactive']
        result.update(navbars['resources'])
        result['coordinates'] = {self.coordinates: [item]}
        return result
示例#8
0
    def update(self):
        self.execute(None)
        root = getSite()
        try:
            navbars = generate_navbars(self, self.context, self.request)
        except ObjectRemovedException:
            return HTTPFound(self.request.resource_url(root, ''))

        result = {}
        user = get_current()
        parent = self.context.__parent__
        can_access_parent = False
        if not (parent is root) and can_access(user, parent):
            can_access_parent = True

        values = {
            'object': self.context,
            'navbar_body': navbars['navbar_body'],
            'can_access_parent': can_access_parent
        }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        item['messages'] = navbars['messages']
        item['isactive'] = navbars['isactive']
        result.update(navbars['resources'])
        result['coordinates'] = {self.coordinates: [item]}
        return result
示例#9
0
    def update(self):
        self.execute(None)
        result = {}
        try:
            navbars = generate_navbars(self, self.context, self.request)
        except ObjectRemovedException:
            view = ''
            perimeter = self.context.perimeter
            context = getSite()
            if perimeter:
                context = perimeter
                view = '@@index'

            return HTTPFound(self.request.resource_url(context, view))

        values = {
            'object': self.context,
            'navbar_body': navbars['navbar_body']
        }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        item['messages'] = navbars['messages']
        item['isactive'] = navbars['isactive']
        result.update(navbars['resources'])
        result['coordinates'] = {self.coordinates: [item]}
        return result
示例#10
0
    def update(self):
        self.execute(None)
        try:
            navbars = generate_navbars(self, self.context, self.request)
        except ObjectRemovedException:
            return HTTPFound(self.request.resource_url(getSite(), ''))

        result = {}
        values = {
            'object':
            self.context,
            'files':
            self._update_files(),
            'filter':
            repr_filter(getattr(self.context, 'filters', []), self.request),
            'navbar_body':
            navbars['navbar_body'],
            'services_body':
            navbars['services_body']
        }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        item['messages'] = navbars['messages']
        item['isactive'] = navbars['isactive']
        result.update(navbars['resources'])
        result.update(self.requirements)
        result['coordinates'] = {self.coordinates: [item]}
        return result
示例#11
0
    def update(self):
        self.execute(None)
        try:
            navbars = generate_navbars(self, self.context, self.request)
        except ObjectRemovedException:
            return HTTPFound(self.request.resource_url(getSite(), ''))

        site = get_site_folder(True)
        site_id = get_oid(site)
        user = get_current()
        result = {}
        subfolders = [
            sf for sf in self.context.children if can_access(user, sf)
        ]
        subfolders = sorted(subfolders, key=lambda e: e.get_order(site_id))
        values = {
            'folders': subfolders,
            'row_len': math.ceil(len(subfolders) / 6),
            'actions_bodies': []
        }
        subbody = self.content(args=values,
                               template=self.subfoldertemplate)['body']

        def get_title(control):
            try:
                obj = get_obj(int(control))
            except:
                return control

            return obj.title if obj else control

        access_control = [
            get_title(s)
            for s in getattr(self.context, 'access_control', [_('All sites')])
        ]
        values = {
            'object':
            self.context,
            'subfolders':
            subfolders,
            'filter':
            repr_filter(getattr(self.context, 'filters', []), self.request),
            'subfolders_body':
            subbody,
            'navbar_body':
            navbars['navbar_body'],
            'actions_bodies':
            navbars['body_actions'],
            'access_control':
            access_control
        }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        item['messages'] = navbars['messages']
        item['isactive'] = navbars['isactive']
        result.update(navbars['resources'])
        result.update(self.requirements)
        result['coordinates'] = {self.coordinates: [item]}
        return result
示例#12
0
    def update(self):
        self.execute(None)
        try:
            navbars = generate_navbars(self, self.context, self.request)
        except ObjectRemovedException:
            return HTTPFound(self.request.resource_url(getSite(), ''))

        result = {}
        user = get_current()
        related_cinema_review = find_related_cinema_review(self.context)
        related_cinema_review = [a for a in related_cinema_review]
        reviews_bodies = []
        for obj in related_cinema_review:
            object_values = {
                'object':
                obj,
                'current_user':
                user,
                'state':
                get_states_mapping(user, obj,
                                   getattr(obj, 'state_or_none', [None])[0])
            }
            body = self.content(args=object_values,
                                template=obj.templates['default'])['body']
            reviews_bodies.append(body)

        values = {
            'object':
            self.context,
            'reviews_bodies':
            reviews_bodies,
            'state':
            get_states_mapping(
                user, self.context,
                getattr(self.context, 'state_or_none', [None])[0]),
            'navbar_body':
            navbars['navbar_body'],
            'sync_operation':
            'address_coordinates_synchronizing',
            'url':
            self.request.resource_url(self.context,
                                      '@@culturaleventmanagement'),
            'get_oid':
            get_oid
        }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        item['messages'] = navbars['messages']
        item['isactive'] = navbars['isactive']
        result.update(navbars['resources'])
        result.update(self.requirements)
        result['coordinates'] = {self.coordinates: [item]}
        return result
示例#13
0
    def update(self):
        self.execute(None)
        try:
            navbars = generate_navbars(self, self.context, self.request)
        except ObjectRemovedException:
            return HTTPFound(self.request.resource_url(getSite(), ''))

        result = {}
        user = get_current()
        related_film_schedules = find_related_film_schedules(self.context)
        related_film_schedules = [a for a in related_film_schedules]
        films_body = ''
        if related_film_schedules:
            films_folder = generate_search_smart_folder(
                'fil schedules',
                ('city_classification', 'venue_classification'))
            films_body = films_folder.classifications.render(
                related_film_schedules, self.request, films_folder)

        site = get_site_folder(True, self.request)
        diff_marker = "#diff"
        values = {
            'object':
            self.context,
            'films_body':
            films_body,
            'state':
            get_states_mapping(
                user, self.context,
                getattr(self.context, 'state_or_none', [None])[0]),
            'navbar_body':
            navbars['navbar_body'],
            'footer_body':
            navbars['footer_body'],
            'services_body':
            navbars['services_body'],
            'is_portalmanager':
            has_role(user=user, role=('PortalManager', )),
            'tree_diff':
            json.dumps(tree_diff(site.tree, self.context.tree, diff_marker)),
            'diff_marker':
            diff_marker
        }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        item['messages'] = navbars['messages']
        item['isactive'] = navbars['isactive']
        result.update(navbars['resources'])
        result.update(self.requirements)
        result['coordinates'] = {self.coordinates: [item]}
        return result
示例#14
0
    def update(self):
        self.execute(None)
        try:
            navbars = generate_navbars(self, self.context, self.request)
        except ObjectRemovedException:
            return HTTPFound(self.request.resource_url(getSite(), ''))

        result = {}
        user = get_current()
        related_schedules, len_schedules = self.get_related_contents(
            user, IFilmSchedule)
        related_events, len_events = self.get_related_contents(
            user, ICulturalEvent)
        values = {
            'object':
            self.context,
            'state':
            get_states_mapping(
                user, self.context,
                getattr(self.context, 'state_or_none', [None])[0]),
            'sync_operation':
            'venue_address_coordinates_synchronizing',
            'url':
            self.request.resource_url(self.context,
                                      '@@culturaleventmanagement'),
            'related_events':
            related_events,
            'related_schedules':
            related_schedules,
            'len_schedules':
            len_schedules,
            'len_events':
            len_events,
            'navbar_body':
            navbars['navbar_body'],
            'actions_bodies':
            navbars['body_actions'],
            'footer_body':
            navbars['footer_body'],
            'get_oid':
            get_oid,
            'is_portalmanager':
            has_role(user=user, role=('PortalManager', ))
        }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        item['messages'] = navbars['messages']
        item['isactive'] = navbars['isactive']
        result.update(navbars['resources'])
        result['coordinates'] = {self.coordinates: [item]}
        return result
示例#15
0
    def update(self):
        self.execute(None)
        try:
            navbars = generate_navbars(self, self.context, self.request)
        except ObjectRemovedException:
            return HTTPFound(self.request.resource_url(getSite(), ''))

        result = {}
        user = get_current()
        sites = self.context.sites
        result_sitesbody = []
        for obj in sites:
            object_values = {'object': obj}
            body = self.content(args=object_values,
                                template=obj.templates['default'])['body']
            result_sitesbody.append(body)

        services = self.context.services
        result_servicesbody = []
        for obj in services:
            object_values = {'object': obj,
                             'state': get_states_mapping(user, obj,
                                   getattr(obj, 'state_or_none', [None])[0])}
            body = self.content(args=object_values,
                                template=obj.templates['default'])['body']
            result_servicesbody.append(body)

        result_ordersbody = []
        for obj in self.context.orders:
            object_values = {'object': obj,
                             'state': get_states_mapping(user, obj,
                                   getattr(obj, 'state_or_none', [None])[0])}
            body = self.content(args=object_values,
                                template=obj.templates['default'])['body']
            result_ordersbody.append(body)

        values = {'navbar_body': navbars['navbar_body'],
                  'row_len_services': math.ceil(len(services)/4),
                  'row_len_sites': math.ceil(len(sites)/6),
                  'services': result_servicesbody,
                  'orders': result_ordersbody,
                  'sites': result_sitesbody}
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        item['messages'] = navbars['messages']
        item['isactive'] = navbars['isactive']
        result.update(navbars['resources'])
        result['coordinates'] = {self.coordinates: [item]}
        return result
示例#16
0
    def update(self):
        self.execute(None)
        try:
            navbars = generate_navbars(self, self.context, self.request)
        except ObjectRemovedException:
            return HTTPFound(self.request.resource_url(getSite(), ''))

        user = self.context
        current_user = get_current()
        objects = self.context.members
        batch = Batch(objects, self.request, default_size=BATCH_DEFAULT_SIZE)
        batch.target = "#results_contents"
        len_result = batch.seqlen
        result_body = []
        result = {}
        for obj in batch:
            object_values = {
                'object': obj,
                'current_user': current_user,
                'state': None
            }
            body = self.content(args=object_values,
                                template=obj.templates['default'])['body']
            result_body.append(body)

        values = {'bodies': result_body, 'length': len_result, 'batch': batch}
        contents_body = self.content(
            args=values, template=SearchResultView.template)['body']

        values = {
            'contents': (result_body and contents_body) or None,
            'proposals':
            None,
            'user':
            self.context,
            'state':
            get_states_mapping(current_user, user,
                               getattr(user, 'state_or_none', [None])[0]),
            'navbar_body':
            navbars['navbar_body']
        }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        item['messages'] = navbars['messages']
        item['isactive'] = navbars['isactive']
        result.update(navbars['resources'])
        result['coordinates'] = {self.coordinates: [item]}
        return result
示例#17
0
    def update(self):
        self.execute(None)
        result = {}
        try:
            navbars = generate_navbars(self, self.context, self.request)
        except ObjectRemovedException:
            return HTTPFound(self.request.resource_url(getSite(), ''))

        values = {'object': self.context,
                  'navbar_body': navbars['navbar_body']}
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        item['messages'] = navbars['messages']
        item['isactive'] = navbars['isactive']
        result.update(navbars['resources'])
        result['coordinates'] = {self.coordinates: [item]}
        return result
示例#18
0
    def update(self):
        self.execute(None)
        try:
            navbars = generate_navbars(self, self.context, self.request)
        except ObjectRemovedException:
            return HTTPFound(self.request.resource_url(getSite(), ''))

        user = self.context
        current_user = get_current()
        objects = self.context.members
        batch = Batch(objects, self.request, default_size=BATCH_DEFAULT_SIZE)
        batch.target = "#results_contents"
        len_result = batch.seqlen
        result_body = []
        result = {}
        for obj in batch:
            object_values = {'object': obj,
                             'current_user': current_user,
                             'state': None
                             }
            body = self.content(args=object_values,
                                template=obj.templates['default'])['body']
            result_body.append(body)

        values = {'bodies': result_body,
                  'length': len_result,
                  'batch': batch
                  }
        contents_body = self.content(args=values,
                                     template=SearchResultView.template)['body']

        values = {'contents': (result_body and contents_body) or None,
                  'proposals': None,
                  'user': self.context,
                  'state': get_states_mapping(current_user, user,
                                getattr(user, 'state_or_none', [None])[0]),
                  'navbar_body': navbars['navbar_body']}
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        item['messages'] = navbars['messages']
        item['isactive'] = navbars['isactive']
        result.update(navbars['resources'])
        result['coordinates'] = {self.coordinates: [item]}
        return result
示例#19
0
    def update(self):
        self.execute(None)
        try:
            navbars = generate_navbars(self, self.context, self.request)
        except ObjectRemovedException:
            return HTTPFound(self.request.resource_url(getSite(), ''))

        values = {
            'registration': self.context,
            'footer_body': navbars['footer_body'],
            'navbar_body': navbars['navbar_body']
        }
        result = {}
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        item['messages'] = navbars['messages']
        item['isactive'] = navbars['isactive']
        result.update(navbars['resources'])
        result['coordinates'] = {self.coordinates: [item]}
        return result
示例#20
0
    def update(self):
        self.execute(None)
        try:
            navbars = generate_navbars(self, self.context, self.request)
        except ObjectRemovedException:
            return HTTPFound(self.request.resource_url(getSite(), ''))

        result = {}
        user = get_current()
        related_cinema_review = find_related_cinema_review(self.context)
        related_cinema_review = [a for a in related_cinema_review]
        reviews_bodies = []
        for obj in related_cinema_review:
            object_values = {'object': obj,
                             'current_user': user,
                             'state': get_states_mapping(user, obj,
                                   getattr(obj, 'state_or_none', [None])[0])}
            body = self.content(args=object_values,
                                template=obj.templates['default'])['body']
            reviews_bodies.append(body)

        values = {
            'object': self.context,
            'reviews_bodies': reviews_bodies,
            'state': get_states_mapping(
                user, self.context,
                getattr(self.context, 'state_or_none', [None])[0]),
            'navbar_body': navbars['navbar_body'],
            'sync_operation': 'address_coordinates_synchronizing',
            'url': self.request.resource_url(self.context,
                                             '@@culturaleventmanagement'),
            'get_oid': get_oid
        }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        item['messages'] = navbars['messages']
        item['isactive'] = navbars['isactive']
        result.update(navbars['resources'])
        result.update(self.requirements)
        result['coordinates'] = {self.coordinates: [item]}
        return result
示例#21
0
    def update(self):
        self.execute(None)
        try:
            navbars = generate_navbars(self, self.context, self.request)
        except ObjectRemovedException:
            return HTTPFound(self.request.resource_url(getSite(), ''))

        result = {}
        user = get_current()
        related_schedules, len_schedules = self.get_related_contents(
            user, IFilmSchedule)
        related_events, len_events = self.get_related_contents(
            user, ICulturalEvent)
        values = {
            'object': self.context,
            'state': get_states_mapping(
                user, self.context,
                getattr(self.context, 'state_or_none', [None])[0]),
            'sync_operation': 'venue_address_coordinates_synchronizing',
            'url': self.request.resource_url(self.context,
                                             '@@culturaleventmanagement'),
            'related_events': related_events,
            'related_schedules': related_schedules,
            'len_schedules': len_schedules,
            'len_events': len_events,
            'navbar_body': navbars['navbar_body'],
            'actions_bodies': navbars['body_actions'],
            'footer_body': navbars['footer_body'],
            'get_oid': get_oid,
            'is_portalmanager': has_role(user=user, role=('PortalManager',))
        }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        item['messages'] = navbars['messages']
        item['isactive'] = navbars['isactive']
        result.update(navbars['resources'])
        result['coordinates'] = {self.coordinates: [item]}
        return result
示例#22
0
    def update(self):
        self.execute(None)
        try:
            navbars = generate_navbars(self, self.context, self.request)
        except ObjectRemovedException:
            return HTTPFound(self.request.resource_url(getSite(), ''))

        result = {}
        user = get_current()
        related_film_schedules = find_related_film_schedules(self.context)
        related_film_schedules = [a for a in related_film_schedules]
        films_body = ''
        if related_film_schedules:
            films_folder = generate_search_smart_folder('fil schedules',
                                                 ('city_classification',
                                                  'venue_classification'))
            films_body = films_folder.classifications.render(
                related_film_schedules, self.request, films_folder)

        values = {
            'object': self.context,
            'films_body': films_body,

            'state': get_states_mapping(
                user, self.context,
                getattr(self.context, 'state_or_none', [None])[0]),
            'navbar_body': navbars['navbar_body'],
            'services_body': navbars['services_body'],
            'footer_body': navbars['footer_body'],
            'is_portalmanager': has_role(user=user, role=('PortalManager',))
        }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        item['messages'] = navbars['messages']
        item['isactive'] = navbars['isactive']
        result.update(navbars['resources'])
        result['coordinates'] = {self.coordinates: [item]}
        return result
    def update(self):
        self.execute(None)
        try:
            navbars = generate_navbars(self, self.context, self.request)
        except ObjectRemovedException:
            return HTTPFound(self.request.resource_url(getSite(), ''))

        result = {}
        user = get_current()
        values = {
            'object': self.context,
            'state': get_states_mapping(
                user, self.context,
                getattr(self.context, 'state_or_none', [None])[0]),
            'navbar_body': navbars['navbar_body']
        }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        item['messages'] = navbars['messages']
        item['isactive'] = navbars['isactive']
        result.update(navbars['resources'])
        result['coordinates'] = {self.coordinates: [item]}
        return result
示例#24
0
    def update(self):
        self.execute(None)
        try:
            navbars = generate_navbars(self, self.context, self.request)
        except ObjectRemovedException:
            return HTTPFound(self.request.resource_url(getSite(), ''))

        result = {}
        user = get_current()
        site = get_site_folder(True, self.request)
        diff_marker = "#diff"
        values = {
            'object':
            self.context,
            'state':
            get_states_mapping(
                user, self.context,
                getattr(self.context, 'state_or_none', [None])[0]),
            'navbar_body':
            navbars['navbar_body'],
            'footer_body':
            navbars['footer_body'],
            'is_portalmanager':
            has_role(user=user, role=('PortalManager', )),
            'tree_diff':
            json.dumps(tree_diff(site.tree, self.context.tree, diff_marker)),
            'diff_marker':
            diff_marker
        }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        item['messages'] = navbars['messages']
        item['isactive'] = navbars['isactive']
        result.update(navbars['resources'])
        result.update(self.requirements)
        result['coordinates'] = {self.coordinates: [item]}
        return result
示例#25
0
    def update(self):
        self.execute(None)
        try:
            navbars = generate_navbars(self, self.context, self.request)
        except ObjectRemovedException:
            return HTTPFound(self.request.resource_url(getSite(), ''))

        user = self.context
        current_user = get_current()
        objects = []
        is_current_user = current_user is user
        if is_current_user:
            objects = [
                o for o in getattr(user, 'all_contributions', [])
                if 'archived' not in o.state
            ]

        else:
            objects = [
                o for o in getattr(user, 'all_contributions', [])
                if 'archived' not in o.state and can_access(current_user, o)
            ]

        objects = sorted(
            objects,
            key=lambda e: getattr(e, 'release_date', e.modified_at),
            reverse=True)
        batch = Batch(objects, self.request, default_size=BATCH_DEFAULT_SIZE)
        batch.target = "#results_contents"
        len_result = batch.seqlen
        result_body = []
        result = {}
        for obj in batch:
            object_values = {'object': obj,
                             'current_user': current_user,
                             'state': is_current_user and \
                                      get_states_mapping(current_user, obj,
                                            getattr(obj, 'state_or_none', [None])[0]) or \
                                      None
                             }
            body = self.content(args=object_values,
                                template=obj.templates['default'])['body']
            result_body.append(body)

        values = {'bodies': result_body, 'length': len_result, 'batch': batch}
        contents_body = self.content(
            args=values, template=SearchResultView.template)['body']
        values = {
            'contents': (result_body and contents_body) or None,
            'proposals':
            None,
            'user':
            self.context,
            'state':
            get_states_mapping(current_user, user,
                               getattr(user, 'state_or_none', [None])[0]),
            'navbar_body':
            navbars['navbar_body'],
            'footer_body':
            navbars['footer_body'],
            'admin':
            has_role(role=('Admin', )),
            'is_portal_manager':
            has_role(role=('PortalManager', )),
            'len_contents':
            len_result
        }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        item['messages'] = navbars['messages']
        item['isactive'] = navbars['isactive']
        result.update(navbars['resources'])
        result['coordinates'] = {self.coordinates: [item]}
        return result
示例#26
0
    def update(self):
        self.execute(None)
        try:
            navbars = generate_navbars(self, self.context, self.request)
        except ObjectRemovedException:
            return HTTPFound(self.request.resource_url(getSite(), ''))

        user = self.context
        current_user = get_current()
        objects = []
        is_current_user = current_user is user
        if is_current_user:
            objects = [o for o in getattr(user, 'all_contributions', [])
                       if 'archived' not in o.state]

        else:
            objects = [o for o in getattr(user, 'all_contributions', [])
                       if 'archived' not in o.state and
                       can_access(current_user, o)]

        objects = sorted(
            objects,
            key=lambda e: getattr(e, 'release_date', e.modified_at),
            reverse=True)
        batch = Batch(objects, self.request, default_size=BATCH_DEFAULT_SIZE)
        batch.target = "#results_contents"
        len_result = batch.seqlen
        result_body = []
        result = {}
        for obj in batch:
            object_values = {'object': obj,
                             'current_user': current_user,
                             'state': is_current_user and \
                                      get_states_mapping(current_user, obj,
                                            getattr(obj, 'state_or_none', [None])[0]) or \
                                      None
                             }
            body = self.content(args=object_values,
                                template=obj.templates['default'])['body']
            result_body.append(body)

        values = {'bodies': result_body,
                  'length': len_result,
                  'batch': batch
                  }
        contents_body = self.content(args=values,
                                     template=SearchResultView.template)['body']
        values = {'contents': (result_body and contents_body) or None,
                  'proposals': None,
                  'user': self.context,
                  'state': get_states_mapping(current_user, user,
                                getattr(user, 'state_or_none', [None])[0]),
                  'navbar_body': navbars['navbar_body'],
                  'footer_body': navbars['footer_body'],
                  'admin': has_role(role=('Admin',)),
                  'is_portal_manager': has_role(role=('PortalManager',)),
                  'len_contents': len_result}
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        item['messages'] = navbars['messages']
        item['isactive'] = navbars['isactive']
        result.update(navbars['resources'])
        result['coordinates'] = {self.coordinates: [item]}
        return result