Пример #1
0
    def post(self):
        if not dao.test_current_user_registered():
            webapp2.abort(401)

        current_user = users.get_current_user()
        current_email = current_user.email().lower()

        # Attempt to create a new template
        try:
            name = self.request.get(u'name').strip()
            if not name:
                raise Exception(u'You must provide a name for your template')
            for template in dao.get_private_template_by_name(name):
                if dao.test_email_is_template_owner(template, current_email):
                    raise Exception(u'Sorry, you already own a template by that name')

            # Create the new Project entity
            template = dao.Project(name=name, project_type=dao.PRIVATE_TEMPLATE,
                                   description=self.request.get(u'description'))
            template_key = template.put()

            # Create a ProjectUser entity, making the current user owner of the new template
            dao.ProjectUser(email=dao.get_current_site_user().email, permissions=[dao.TEMPLATE_OWN],
                            parent=template_key).put()

            self.redirect("/template?template_id={}".format(template_key.id()))
            return
        except Exception as e:
            error_msg = u'Creating template failed: {}'.format(e)

        # Display the webpage
        self.render(error_msg)
Пример #2
0
    def get(self):
        if not dao.test_current_user_registered():
            webapp2.abort(401)

        jinja_template = ui.get_template(self,
                                         u'project_admin/new_project.html')
        jinja_template_values = dao.get_standard_site_values()

        public_template_list = list()
        for template in dao.get_public_templates():
            if template.status == dao.STATUS_ACTIVE:
                template_view = dict()
                template_view[u'template_id'] = template.key.id()
                template_view[u'name'] = template.name
                template_view[u'description'] = template.description
                template_view[u'document_count'] = dao.get_document_count(
                    template)
                template_view[u'status'] = template.status
                public_template_list.append(template_view)
        jinja_template_values[u'public_templates'] = public_template_list

        private_template_list = list()
        for template in dao.get_private_templates():
            template_view = dict()
            template_view[u'template_id'] = template.key.id()
            template_view[u'name'] = template.name
            template_view[u'description'] = template.description
            template_view[u'document_count'] = dao.get_document_count(template)
            private_template_list.append(template_view)
        jinja_template_values[u'private_templates'] = private_template_list

        self.response.out.write(jinja_template.render(jinja_template_values))
Пример #3
0
    def get(self):
        if not dao.test_current_user_registered():
            webapp2.abort(401)

        # Create template and template values, render the page
        jinja_template = ui.get_template(self, u'my_account/preferences.html')

        jinja_template_values = dao.get_standard_site_values()
        self.response.out.write(jinja_template.render(jinja_template_values))
Пример #4
0
    def get(self):
        if dao.test_current_user_registered():
            jinja_template = ui.get_template(self, u'index.html')
            jinja_template_values = dao.get_standard_site_values()
        elif users.get_current_user():
            if ENABLE_AUTOREGISTER in os.environ.keys(
            ) and os.environ[ENABLE_AUTOREGISTER].lower() == u'true':
                dao.SiteUser(
                    email=users.get_current_user().email().lower()).put()
                jinja_template = ui.get_template(self, u'register.html')
                jinja_template_values = dao.get_standard_site_values()
            else:
                jinja_template = ui.get_template(self, u'register_closed.html')
                jinja_template_values = dao.get_standard_site_values()
        else:
            jinja_template = ui.get_template(self, u'login.html')
            jinja_template_values = {
                u'url': users.create_login_url(self.request.uri)
            }

        self.response.out.write(jinja_template.render(jinja_template_values))
Пример #5
0
    def get(self):
        if not dao.test_current_user_registered():
            webapp2.abort(401)

        # Display the webpage
        self.render()
    def post(self):
        if not dao.test_current_user_registered():
            webapp2.abort(401)

        current_user = users.get_current_user()
        current_email = current_user.email().lower()

        # Attempt to create a new project
        try:
            name = self.request.get(u'name').strip()
            if not name:
                raise Exception(u'You must provide a name for your project')
            for project in dao.get_projects_by_name(name):
                if dao.test_email_is_project_owner(project, current_email):
                    raise Exception(
                        u'Sorry, you already own a project by that name')

            # Create the new Project entity
            project = dao.Project(name=name,
                                  project_type=dao.PROJECT,
                                  description=self.request.get(u'description'))
            project_key = project.put()

            # Create a ProjectUser entity, making the current user owner of the new project
            dao.ProjectUser(email=dao.get_current_site_user().email,
                            permissions=[dao.PROJECT_OWN],
                            parent=project_key).put()

            # Get the selected template ID
            template_id = self.request.get(u'template_id')

            if template_id:
                # Generate HTML for the template
                template_entity = dao.get_template_by_id(template_id)
                html_generator_service = HtmlGeneratorService(template_entity)
                html_generator_service.generate_all_html()

                # Copy entities owned by the template entity into the project
                for assignment_entity in dao.get_assignments(template_entity):
                    assignment_entity.clone(project).put()

                for document_entity in dao.get_documents(template_entity):
                    template_document_entity = document_entity.clone(project)
                    template_document_entity.put()
                    for document_item_entity in dao.get_document_items(
                            document_entity):
                        document_item_entity.clone(
                            template_document_entity).put()

                for interview_entity in dao.get_interviews(template_entity):
                    cloned_interview_entity = interview_entity.clone(project)
                    if cloned_interview_entity.auto_assign:
                        cloned_interview_entity.assigned_email = current_email
                    cloned_interview_entity.put()

                for style_entity in dao.get_styles(template_entity):
                    style_entity.clone(project).put()

                for variable_entity in dao.get_variables(template_entity):
                    variable_entity.clone(project).put()

            self.redirect("/project?project_id={}".format(project_key.id()))
            return
        except Exception as e:
            error_msg = u'Creating project failed: {}'.format(e)

        # Display the webpage
        self.render(error_msg)