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
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)
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
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)
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)
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)
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)