Beispiel #1
0
def habitat_comments(subject_code, region_code, dataset_id=None):
    from art17.habitat import get_dal

    dataset = get_dal(dataset_id)
    items = dataset.get_history(subject_code, region_code)
    subject = dataset.get_subject(subject_code)
    perm_view_history(subject).test()

    return flask.render_template(
        'history/comments.html', **{
            'history_items':
            items,
            'subject_category':
            'habitate',
            'subject_code':
            subject_code,
            'subject':
            subject,
            'region':
            get_biogeo_region(region_code),
            'dashboard_url':
            flask.url_for('dashboard.habitats') if dataset_id is None else '',
            'record_index_url':
            flask.url_for('habitat.index',
                          region=region_code,
                          habitat=subject_code) if dataset_id is None else '',
            'region_code':
            region_code,
        })
Beispiel #2
0
    def dispatch_request(self, record_id=None, comment_id=None,
                         dataset_id=None):

        self.dataset_id = dataset_id
        self.submit_for_evaluation = None
        self.setup_record_and_form(record_id=record_id, comment_id=comment_id)

        self.setup_template_context()
        next_url = flask.request.args.get('next') or self.get_next_url()
        self.template_ctx['blueprint'] = self.blueprint
        self.template_ctx['record_id'] = self.record.id
        self.template_ctx['record_obj'] = self.record
        self.template_ctx['perm_submit_for_evaluation'] = \
            perm_submit_for_evaluation(self.object)
        self.template_ctx['subject'] = self.record.subject
        self.template_ctx['region'] = dal.get_biogeo_region(self.record.region)
        self.template_ctx['dashboard_url'] = self.get_dashboard_url(
            self.record.subject
        )
        self.template_ctx['template_base'] = self.template_base

        if self.record.is_missing():
            flask.flash(u'Nu au existat date pentru agregarea acestei înregistrări', 'warning')
            # return flask.render_template(
            #     self.missing_template,
            #     **self.template_ctx
            # )

        if flask.request.method == 'POST':
            #perm_save_record().test()  why?
            if self.process_form():
                flask.flash(self.success_message, 'success')
                if flask.request.form.get('submit', '') == 'finalize':
                    if not self.form.final_validate():
                        errors = flatten_errors(self.form.errors)
                        flask.flash(u"Înregistrarea NU a fost finalizată, deoarece este"
                                    u" incompletă. Probleme:\n%s" % errors, 'danger')
                    else:
                        return flask.redirect(next_url)
                else:
                    return flask.redirect(next_url)

        self.template_ctx['form'] = self.form
        self.template_ctx['new_comment'] = self.new_record
        self.template_ctx['comment_history_view'] = self.comment_history_view

        addform_pressure = forms.PressureForm(prefix='addform_pressure.')
        addform_measure = forms.MeasuresForm(prefix='addform_measure.')

        self.template_ctx.update({
            'addform_pressure': addform_pressure,
            'addform_threat': forms.PressureForm(prefix='addform_threat.'),
            'addform_measure': addform_measure,
            'PRESSURES': dict(addform_pressure.pressure.choices),
            'MEASURES': dict(addform_measure.measurecode.choices)})
        return flask.render_template(self.template, **self.template_ctx)
Beispiel #3
0
 def dispatch_request(self, dataset_id, record_id):
     self.dataset_id = dataset_id
     self.record = self.model_cls.query.get_or_404(record_id)
     region = dal.get_biogeo_region(self.record.region)
     context = self.get_template_context()
     context.update(**{
         'dataset_id': self.dataset_id,
         'assessment': self.parse_record(self.record),
         'record': self.record,
         'region': region,
         'topic_template': self.topic_template,
     })
     return flask.render_template(self.template_name, **context)
Beispiel #4
0
 def dispatch_request(self, dataset_id, record_id):
     self.record = self.record_cls.query.get(record_id)
     context = self.get_context_data()
     context.update({
         'record': self.record_parser(self.record),
         'record_obj': self.record,
         'region': dal.get_biogeo_region(self.record.region),
         'subject': self.record.subject,
         'dataset_id': dataset_id,
         'pressures': self.record.get_pressures().all(),
         'threats': self.record.get_threats().all(),
         'measures': self.record.measures.all(),
         'template_base': self.template_base,
         'comment_history_view': self.comment_history_view,
         'finalized': self.record.is_agg_final(),
         'cons_closed': self.record.dataset.is_closed(),
     })
     return flask.render_template(self.template_name, **context)
Beispiel #5
0
def habitat_comments(subject_code, region_code, dataset_id=None):
    from art17.habitat import get_dal

    dataset = get_dal(dataset_id)
    items = dataset.get_history(subject_code, region_code)
    subject = dataset.get_subject(subject_code)
    perm_view_history(subject).test()

    return flask.render_template('history/comments.html', **{
        'history_items': items,
        'subject_category': 'habitate',
        'subject_code': subject_code,
        'subject': subject,
        'region': get_biogeo_region(region_code),
        'dashboard_url':
            flask.url_for('dashboard.habitats') if dataset_id is None else '',
        'record_index_url':
            flask.url_for('habitat.index', region=region_code,
                          habitat=subject_code) if dataset_id is None else '',
        'region_code': region_code,
    })
Beispiel #6
0
    def dispatch_request(self):
        subject_code = flask.request.args[self.subject_name]
        region_code = flask.request.args['region']

        subject = self.dataset.get_subject(subject_code)
        region = dal.get_biogeo_region(region_code)

        if subject is None or region is None:
            flask.abort(404)

        reply_counts = self.dataset.get_reply_counts()

        user_id = flask.g.identity.id
        if user_id is not None:
            read_id_set = self.dataset.get_read_records(
                user_id,
                subject.id,
                region_code,
            )
        else:
            read_id_set = set()

        topic = {'comments': []}

        for record in self.dataset.get_topic_records(subject, region.code):
            if record.cons_role == 'assessment':
                topic['assessment'] = self.parse_record(record)

            elif record.cons_role in ('comment', 'comment-draft'):
                if not record.cons_deleted:
                    r = self.parse_record(record, is_comment=True)
                    topic['comments'].append(r)

            elif record.cons_role == 'final-draft':
                topic['final-draft'] = self.parse_record(record)

            elif record.cons_role == 'final':
                topic['final'] = self.parse_record(record)

        if 'assessment' not in topic:
            flask.abort(404)

        comment_next = self.get_comment_next_url(subject_code, region_code)
        final_comment_url = flask.url_for(
            self.blueprint + '.final_comment',
            record_id=topic['assessment']['id'],
            next=comment_next,
        )

        close_consultation_url = flask.url_for(
            self.blueprint + '.close',
            record_id=topic['assessment']['id'],
            next=comment_next,
        )
        if 'final' in topic:
            reopen_consultation_url = flask.url_for(
                self.blueprint + '.reopen',
                final_record_id=topic['final']['id'],
                next=comment_next,
            )
        else:
            reopen_consultation_url = None

        if 'final-draft' in topic:
            delete_draft_url = flask.url_for(
                self.blueprint + '.delete_draft',
                record_id=topic['final-draft']['id'],
                next=comment_next,
            )
        else:
            delete_draft_url = None

        return flask.render_template('common/indexpage.html', **{
            'subject': subject,
            'region': region,
            'topic_template': self.topic_template,
            'comment_next': comment_next,
            'blueprint': self.blueprint,
            'topic': topic,
            'reply_counts': reply_counts,
            'map_url': self.get_map_url(subject.code),
            'dashboard_url': self.get_dashboard_url(subject),
            'primary_data_url': self.get_primary_data_url(subject.code),
            'comment_history_view': self.comment_history_view,
            'final_comment_url': final_comment_url,
            'delete_draft_url': delete_draft_url,
            'close_consultation_url': close_consultation_url,
            'perm_edit_final_for_this': perm_edit_final(subject),
            'perm_redraft_comment': perm_redraft_comment,
            'reopen_consultation_url': reopen_consultation_url,
            'finalized': bool('final' in topic),
            'read_id_set': read_id_set,
        })
Beispiel #7
0
    def dispatch_request(self,
                         record_id=None,
                         comment_id=None,
                         dataset_id=None):

        self.dataset_id = dataset_id
        self.submit_for_evaluation = None
        self.setup_record_and_form(record_id=record_id, comment_id=comment_id)

        self.setup_template_context()
        next_url = flask.request.args.get('next') or self.get_next_url()
        self.template_ctx['blueprint'] = self.blueprint
        self.template_ctx['record_id'] = self.record.id
        self.template_ctx['record_obj'] = self.record
        self.template_ctx['perm_submit_for_evaluation'] = \
            perm_submit_for_evaluation(self.object)
        self.template_ctx['subject'] = self.record.subject
        self.template_ctx['region'] = dal.get_biogeo_region(self.record.region)
        self.template_ctx['dashboard_url'] = self.get_dashboard_url(
            self.record.subject)
        self.template_ctx['template_base'] = self.template_base

        if self.record.is_missing():
            flask.flash(
                u'Nu au existat date pentru agregarea acestei înregistrări',
                'warning')
            # return flask.render_template(
            #     self.missing_template,
            #     **self.template_ctx
            # )

        if flask.request.method == 'POST':
            #perm_save_record().test()  why?
            if self.process_form():
                flask.flash(self.success_message, 'success')
                if flask.request.form.get('submit', '') == 'finalize':
                    if not self.form.final_validate():
                        errors = flatten_errors(self.form.errors)
                        flask.flash(
                            u"Înregistrarea NU a fost finalizată, deoarece este"
                            u" incompletă. Probleme:\n%s" % errors, 'danger')
                    else:
                        return flask.redirect(next_url)
                else:
                    return flask.redirect(next_url)

        self.template_ctx['form'] = self.form
        self.template_ctx['new_comment'] = self.new_record
        self.template_ctx['comment_history_view'] = self.comment_history_view

        addform_pressure = forms.PressureForm(prefix='addform_pressure.')
        addform_measure = forms.MeasuresForm(prefix='addform_measure.')

        self.template_ctx.update({
            'addform_pressure':
            addform_pressure,
            'addform_threat':
            forms.PressureForm(prefix='addform_threat.'),
            'addform_measure':
            addform_measure,
            'PRESSURES':
            dict(addform_pressure.pressure.choices),
            'MEASURES':
            dict(addform_measure.measurecode.choices)
        })
        return flask.render_template(self.template, **self.template_ctx)
Beispiel #8
0
    def dispatch_request(self):
        subject_code = flask.request.args[self.subject_name]
        region_code = flask.request.args['region']

        subject = self.dataset.get_subject(subject_code)
        region = dal.get_biogeo_region(region_code)

        if subject is None or region is None:
            flask.abort(404)

        reply_counts = self.dataset.get_reply_counts()

        user_id = flask.g.identity.id
        if user_id is not None:
            read_id_set = self.dataset.get_read_records(
                user_id,
                subject.id,
                region_code,
            )
        else:
            read_id_set = set()

        topic = {'comments': []}

        for record in self.dataset.get_topic_records(subject, region.code):
            if record.cons_role == 'assessment':
                topic['assessment'] = self.parse_record(record)

            elif record.cons_role in ('comment', 'comment-draft'):
                if not record.cons_deleted:
                    r = self.parse_record(record, is_comment=True)
                    topic['comments'].append(r)

            elif record.cons_role == 'final-draft':
                topic['final-draft'] = self.parse_record(record)

            elif record.cons_role == 'final':
                topic['final'] = self.parse_record(record)

        if 'assessment' not in topic:
            flask.abort(404)

        comment_next = self.get_comment_next_url(subject_code, region_code)
        final_comment_url = flask.url_for(
            self.blueprint + '.final_comment',
            record_id=topic['assessment']['id'],
            next=comment_next,
        )

        close_consultation_url = flask.url_for(
            self.blueprint + '.close',
            record_id=topic['assessment']['id'],
            next=comment_next,
        )
        if 'final' in topic:
            reopen_consultation_url = flask.url_for(
                self.blueprint + '.reopen',
                final_record_id=topic['final']['id'],
                next=comment_next,
            )
        else:
            reopen_consultation_url = None

        if 'final-draft' in topic:
            delete_draft_url = flask.url_for(
                self.blueprint + '.delete_draft',
                record_id=topic['final-draft']['id'],
                next=comment_next,
            )
        else:
            delete_draft_url = None

        return flask.render_template(
            'common/indexpage.html', **{
                'subject': subject,
                'region': region,
                'topic_template': self.topic_template,
                'comment_next': comment_next,
                'blueprint': self.blueprint,
                'topic': topic,
                'reply_counts': reply_counts,
                'map_url': self.get_map_url(subject.code),
                'dashboard_url': self.get_dashboard_url(subject),
                'primary_data_url': self.get_primary_data_url(subject.code),
                'comment_history_view': self.comment_history_view,
                'final_comment_url': final_comment_url,
                'delete_draft_url': delete_draft_url,
                'close_consultation_url': close_consultation_url,
                'perm_edit_final_for_this': perm_edit_final(subject),
                'perm_redraft_comment': perm_redraft_comment,
                'reopen_consultation_url': reopen_consultation_url,
                'finalized': bool('final' in topic),
                'read_id_set': read_id_set,
            })