예제 #1
0
def project_join_request(project, user, site=None):

    mail_content = "User '{0}' wants to join project '{1}'.  To approve this request, please goto: http://{2}/{3}/manage/.".format(
        user.username, project.title, site.domain, project.name,
    )
    mail_from = settings.EMAIL_HOST_USER
    mail_to = [settings.EMAIL_HOST_USER, ]

    try:

        send_mail(
            "ES-DOC Questionnaire project join request",
            mail_content,
            mail_from,
            mail_to,
            fail_silently=False
        )

        user.profile.add_pending_permissions(project)

        return True

    except Exception as e:
        q_logger.error(e)
        return False
예제 #2
0
def q_error(request, error_msg="", status_code=400):

    #  print error_msg...
    q_logger.error(error_msg)

    # gather all the extra information required by the template...
    context = {
        "error_msg": error_msg,
        "status_code": status_code,
    }

    return render(request, "questionnaire/q_error.html", context=context, status=status_code)
    def register(self, **kwargs):

        request = kwargs.get("request")

        if self.last_registered_version:
            last_registered_version_major = self.get_last_registered_version_major()
            last_registered_version_minor = self.get_last_registered_version_minor()
            current_version_major = self.get_version_major()
            current_version_minor = self.get_version_minor()
            if (
                last_registered_version_major != current_version_major
                or last_registered_version_minor != current_version_minor
            ):
                if request:
                    msg = "You are not allowed to re-register anything other than a new patch version."
                    messages.add_message(request, messages.ERROR, msg)
                return

        try:
            if self.is_schema():
                self.parse_schema()
            else:
                self.parse_specialization()
            self.is_registered = True
            self.last_registered_version = self.version
        except Exception as e:
            # if something goes wrong, record it in the logs and return immediately
            # (but don't crash)
            q_logger.error(e)
            if request:
                messages.add_message(request, messages.ERROR, str(e))
            return

        # # if I re-registered an ontology and there were existing customizations associated w/ it
        # # then I better update those customizations so that they have the right content
        # customizations_to_update = [customization for customization in QModelCustomization.objects.filter(proxy__ontology=self) if customization.proxy.is_document()]
        # for customization in customizations_to_update:
        #     registered_ontology_signal.send_robust(
        #         sender=self,
        #         customization=customization
        #     )
        #
        # # TODO: DO THE SAME THING FOR EXISTING DOCUMENTATIONS

        if request:
            msg = "Successfully registered ontology: {0}".format(self)
            messages.add_message(request, messages.SUCCESS, msg)
예제 #4
0
def q_error(request, error_msg="", status_code=400):

    #  print error_msg...
    q_logger.error(error_msg)

    # gather all the extra information required by the template...
    _dict = {
        "error_msg": error_msg,
        "status_code": status_code,
    }

    # configure the error page...
    template = loader.get_template('questionnaire/q_error.html')
    context = RequestContext(request, _dict)
    response = HttpResponse(template.render(context), status=status_code)

    return response
예제 #5
0
    def created(self):
        # this fns is referenced in "signals_users.py"
        mail_content = "User '{0}' created (on site '{1}').".format(
            self, get_site(),
        )
        mail_from = settings.EMAIL_HOST_USER
        mail_to = [settings.EMAIL_HOST_USER, ]

        try:

            send_mail(
                "ES-DOC Questionnaire user joined",
                mail_content,
                mail_from,
                mail_to,
                fail_silently=False
            )

        except Exception as e:
            q_logger.error(e)
예제 #6
0
def project_join(project, user, site=None):

    mail_content = "User '{0}' has joined project '{1}' [http://{2}/{3}].".format(
        user.username, project.title, site.domain, project.name,
    )
    mail_from = settings.EMAIL_HOST_USER
    mail_to = [user.email, project.email]
    try:

        send_mail(
            "ES-DOC Questionnaire project join response",
            mail_content,
            mail_from,
            mail_to,
            fail_silently=False
        )

        user.profile.join_project(project)

        return True

    except Exception as e:
        q_logger.error(e)
        return False
    def register(self, **kwargs):
        request = kwargs.get("request")

        # check the file is valid...
        try:
            self.file.open()
            ontology_content = json.load(self.file)
            self.file.close()
        except IOError as e:
            msg = "Error opening file: {0}".format(self.file)
            if request:
                messages.add_message(request, messages.ERROR, msg)
            raise e

        # check I'm allowed to re-register the ontology...
        if self.last_registered_version:
            last_registered_version_major = self.get_last_registered_version_major()
            last_registered_version_minor = self.get_last_registered_version_minor()
            current_version_major = self.get_version_major()
            current_version_minor = self.get_version_minor()
            if last_registered_version_major != current_version_major or last_registered_version_minor != current_version_minor:
                if request:
                    msg = "You are not allowed to re-register anything other than a new patch version."
                    messages.add_message(request, messages.ERROR, msg)
                return

        # check if a registered parent exists...
        if self.parent and not self.parent.is_registered:
            if request:
                msg = "You are not allowed to register an ontology whose parent has not yet been registered."
                messages.add_message(request, messages.ERROR, msg)
            return

        try:
            self.parse_ontology_content(ontology_content)
            # record that registration occurred...
            self.last_registered_version = self.version
            self.is_registered = True
        except Exception as e:
            # if something goes wrong, record it in the logs and return immediately (but don't crash)...
            q_logger.error(e)
            if request:
                messages.add_message(request, messages.ERROR, str(e))
            return

        # update any existing customizations & realizations...
        # customizations_to_update = [
        #     customization for customization in QModelCustomization.objects.filter(proxy__ontology=self)
        #     if customization.proxy.is_meta
        # ]
        # for customization in customizations_to_update:
        #     registered_ontology_signal.send_robust(
        #         sender=self,
        #         customization=customization
        #     )
        # realizations_to_update = [
        #     realization for realization in QModel.objects.filter(proxy__ontology=self)
        #     if realization.proxy.is_meta
        # ]
        # for realization in realizations_to_update:
        #     registered_ontology_signal.send_robust(
        #         sender=self,
        #         realization=realization
        #     )

        # hooray, you're done...
        if request:
            msg = "Successfully registered ontology: {0}".format(self)
            messages.add_message(request, messages.SUCCESS, msg)
예제 #8
0
def q_send_mail(mail_subject, mail_content, mail_from=settings.EMAIL_HOST_USER, mail_to=[settings.EMAIL_HOST_USER]):
    try:
        send_mail(mail_subject, mail_content, mail_from, mail_to, fail_silently=False)
    except Exception as e:
        q_logger.error(e)
예제 #9
0
    def register(self, **kwargs):
        request = kwargs.get("request")

        # check the file is valid...
        try:
            self.file.open()
            ontology_content = json.load(self.file)
            self.file.close()
        except IOError as e:
            msg = "Error opening file: {0}".format(self.file)
            if request:
                messages.add_message(request, messages.ERROR, msg)
            raise e

        # check I'm allowed to re-register the ontology...
        if self.last_registered_version:
            last_registered_version_major = self.get_last_registered_version_major(
            )
            last_registered_version_minor = self.get_last_registered_version_minor(
            )
            current_version_major = self.get_version_major()
            current_version_minor = self.get_version_minor()
            if last_registered_version_major != current_version_major or last_registered_version_minor != current_version_minor:
                if request:
                    msg = "You are not allowed to re-register anything other than a new patch version."
                    messages.add_message(request, messages.ERROR, msg)
                return

        # # check if a registered parent exists...
        # if self.parent and not self.parent.is_registered:
        #     if request:
        #         msg = "You are not allowed to register an ontology whose parent has not yet been registered."
        #         messages.add_message(request, messages.ERROR, msg)
        #     return

        try:
            self.parse_ontology_content(ontology_content)
            # record that registration occurred...
            self.last_registered_version = self.version
            self.is_registered = True
        except Exception as e:
            # if something goes wrong, record it in the logs and return immediately (but don't crash)...
            q_logger.error(e)
            if request:
                messages.add_message(request, messages.ERROR, str(e))
            return

        # update any existing customizations & realizations...
        # customizations_to_update = [
        #     customization for customization in QModelCustomization.objects.filter(proxy__ontology=self)
        #     if customization.proxy.is_meta
        # ]
        # for customization in customizations_to_update:
        #     registered_ontology_signal.send_robust(
        #         sender=self,
        #         customization=customization
        #     )
        # realizations_to_update = [
        #     realization for realization in QModel.objects.filter(proxy__ontology=self)
        #     if realization.proxy.is_meta
        # ]
        # for realization in realizations_to_update:
        #     registered_ontology_signal.send_robust(
        #         sender=self,
        #         realization=realization
        #     )

        # hooray, you're done...
        if request:
            msg = "Successfully registered ontology: {0}".format(self)
            messages.add_message(request, messages.SUCCESS, msg)