예제 #1
0
파일: welcome.py 프로젝트: stomanin/indico
 def _process(self):
     if not User.has_rows():
         self._redirect(url_for('bootstrap.index'))
     else:
         wfReg = webFactoryRegistry.WebFactoryRegistry()
         p = welcome.WPWelcome(self, self._target, wfReg)
         return p.display()
예제 #2
0
    def _process_POST(self):
        if User.has_rows():
            return redirect(url_for('misc.index'))
        setup_form = BootstrapForm(request.form)
        if not setup_form.validate():
            flash(_("Some fields are invalid. Please, correct them and submit the form again."), 'error')
            return redirect(url_for('bootstrap.index'))

        # Creating new user
        user = User()
        user.first_name = to_unicode(setup_form.first_name.data)
        user.last_name = to_unicode(setup_form.last_name.data)
        user.affiliation = to_unicode(setup_form.affiliation.data)
        user.email = to_unicode(setup_form.email.data)
        user.is_admin = True

        identity = Identity(provider='indico', identifier=setup_form.username.data, password=setup_form.password.data)
        user.identities.add(identity)

        db.session.add(user)
        db.session.flush()

        user.settings.set('timezone', Config.getInstance().getDefaultTimezone())
        user.settings.set('lang', to_unicode(setup_form.language.data))

        login_user(user, identity)
        full_name = user.full_name  # needed after the session closes

        transaction.commit()

        # Configuring server's settings
        minfo = HelperMaKaCInfo.getMaKaCInfoInstance()
        minfo.setOrganisation(setup_form.affiliation.data)
        minfo.setLang(setup_form.language.data)

        message = get_template_module('bootstrap/flash_messages.html').bootstrap_success(name=full_name)
        flash(Markup(message), 'success')

        # Activate instance tracking
        if setup_form.enable_tracking.data:
            contact_name = setup_form.contact_name.data
            contact_email = setup_form.contact_email.data

            try:
                register_instance(contact_name, contact_email)
            except (HTTPError, ValueError) as err:
                message = get_template_module('bootstrap/flash_messages.html').community_error(err=err)
                category = 'error'
            except Timeout:
                message = get_template_module('bootstrap/flash_messages.html').community_timeout()
                category = 'error'
            except RequestException as exc:
                message = get_template_module('bootstrap/flash_messages.html').community_exception(exc=exc)
                category = 'error'
            else:
                message = get_template_module('bootstrap/flash_messages.html').community_success()
                category = 'success'
            flash(Markup(message), category)

        return redirect(url_for('misc.index'))
예제 #3
0
파일: controllers.py 프로젝트: fph/indico
 def _process_GET(self):
     if User.has_rows():
         return redirect(url_for_index())
     return render_template('bootstrap/bootstrap.html',
                            form=BootstrapForm(),
                            timezone=Config.getInstance().getDefaultTimezone(),
                            indico_version=MaKaC.__version__,
                            python_version=python_version())
예제 #4
0
 def _process_GET(self):
     if User.has_rows():
         return redirect(url_for_index())
     return render_template(
         'bootstrap/bootstrap.html',
         form=BootstrapForm(),
         timezone=Config.getInstance().getDefaultTimezone(),
         indico_version=MaKaC.__version__,
         python_version=python_version())
예제 #5
0
 def _process_GET(self):
     if User.has_rows():
         return redirect(url_for('misc.index'))
     return render_template('bootstrap/bootstrap.html',
                            selected_lang_name=parse_locale(get_current_locale()).language_name,
                            language_options=sorted(get_all_locales().items(), key=itemgetter(1)),
                            form=BootstrapForm(language=session.lang),
                            timezone=Config.getInstance().getDefaultTimezone(),
                            indico_version=MaKaC.__version__,
                            python_version=python_version())
예제 #6
0
 def _process_GET(self):
     if User.has_rows():
         return redirect(url_for('misc.index'))
     return render_template(
         'bootstrap/bootstrap.html',
         selected_lang_name=parse_locale(
             get_current_locale()).language_name,
         language_options=sorted(get_all_locales().items(),
                                 key=itemgetter(1)),
         form=BootstrapForm(language=session.lang),
         timezone=Config.getInstance().getDefaultTimezone(),
         indico_version=MaKaC.__version__,
         python_version=python_version())
예제 #7
0
    def _process_POST(self):
        if User.has_rows():
            return redirect(url_for_index())
        setup_form = BootstrapForm(request.form)
        if not setup_form.validate():
            flash(
                _("Some fields are invalid. Please, correct them and submit the form again."
                  ), 'error')
            return redirect(url_for('bootstrap.index'))

        # Creating new user
        user = User()
        user.first_name = to_unicode(setup_form.first_name.data)
        user.last_name = to_unicode(setup_form.last_name.data)
        user.affiliation = to_unicode(setup_form.affiliation.data)
        user.email = to_unicode(setup_form.email.data)
        user.is_admin = True

        identity = Identity(provider='indico',
                            identifier=setup_form.username.data,
                            password=setup_form.password.data)
        user.identities.add(identity)

        db.session.add(user)
        db.session.flush()

        user.settings.set('timezone',
                          Config.getInstance().getDefaultTimezone())
        user.settings.set(
            'lang', session.lang or Config.getInstance().getDefaultLocale())

        login_user(user, identity)
        full_name = user.full_name  # needed after the session closes

        transaction.commit()

        # Configuring server's settings
        minfo = HelperMaKaCInfo.getMaKaCInfoInstance()
        minfo.setOrganisation(setup_form.affiliation.data)

        message = get_template_module(
            'bootstrap/flash_messages.html').bootstrap_success(name=full_name)
        flash(Markup(message), 'success')

        # Activate instance tracking
        if setup_form.enable_tracking.data:
            contact_name = setup_form.contact_name.data
            contact_email = setup_form.contact_email.data

            try:
                register_instance(contact_name, contact_email)
            except (HTTPError, ValueError) as err:
                message = get_template_module(
                    'bootstrap/flash_messages.html').community_error(err=err)
                category = 'error'
            except Timeout:
                message = get_template_module(
                    'bootstrap/flash_messages.html').community_timeout()
                category = 'error'
            except RequestException as exc:
                message = get_template_module('bootstrap/flash_messages.html'
                                              ).community_exception(exc=exc)
                category = 'error'
            else:
                message = get_template_module(
                    'bootstrap/flash_messages.html').community_success()
                category = 'success'
            flash(Markup(message), category)

        return redirect(url_for_index())