def notify_of_activation(self, user_email):
     for user in self.users_to_notify:
         self.registration_backend.email_message(
             user,
             self.admin_notification_subject,
             self.admin_notification_body,
             user_email=user_email,
             config=fetch_aristotle_settings(),
         ).send()
Esempio n. 2
0
 def notify_of_activation(self, user_email):
     for user in self.users_to_notify:
         self.registration_backend.email_message(
             user,
             self.admin_notification_subject,
             self.admin_notification_body,
             user_email=user_email,
             config=fetch_aristotle_settings(),
         ).send()
Esempio n. 3
0
 def send_activation(self, user):
     # Send Activation Email
     token = self.registration_backend.get_token(user)
     self.registration_backend.email_message(
         user,
         self.activation_subject,
         self.activation_body,
         token=token,
         user_id=user.id,
         accept_url_name=self.accept_url_name,
         config=fetch_aristotle_settings(),
         request=self.request).send()
 def send_activation(self, user):
     # Send Activation Email
     token = self.registration_backend.get_token(user)
     self.registration_backend.email_message(
         user,
         self.activation_subject,
         self.activation_body,
         token=token,
         user_id=user.id,
         accept_url_name=self.accept_url_name,
         config=fetch_aristotle_settings(),
         request=self.request
     ).send()
 def send_invitation(self, user, sender=None, **kwargs):
     """An intermediary function for sending an invitation email that
     selects the templates, generating the token, and ensuring that the user
     has not already joined the site.
     """
     if user.is_active:
         return False
     token = self.get_token(user)
     aristotle_settings = fetch_aristotle_settings()
     kwargs.update({
         'token': token,
         'sender': sender,
         'user_id': user.pk,
         'config': aristotle_settings,
     })
     self.email_message(user, self.invitation_subject, self.invitation_body, **kwargs).send()
     return True
Esempio n. 6
0
    def get_signup_settings(self, request):
        aristotle_settings = fetch_aristotle_settings()

        try:
            signup_settings = aristotle_settings['SELF_SIGNUP']
        except KeyError:
            signup_settings = None

        if signup_settings:
            # Check if user self signup is enabled
            self.signup_enabled = signup_settings.get('enabled', False)
            self.allowed_suffixes = signup_settings.get('emails', None)
        else:
            self.signup_enabled = False
            self.allowed_suffixes = None

        return self.signup_enabled
    def get_signup_settings(self, request):
        aristotle_settings = fetch_aristotle_settings()

        try:
            signup_settings = aristotle_settings['SELF_SIGNUP']
        except KeyError:
            signup_settings = None

        if signup_settings:
            # Check if user self signup is enabled
            self.signup_enabled = signup_settings.get('enabled', False)
            self.allowed_suffixes = signup_settings.get('emails', None)
        else:
            self.signup_enabled = False
            self.allowed_suffixes = None

        return self.signup_enabled
Esempio n. 8
0
 def send_invitation(self, user, sender=None, **kwargs):
     """An intermediary function for sending an invitation email that
     selects the templates, generating the token, and ensuring that the user
     has not already joined the site.
     """
     if user.is_active:
         return False
     token = self.get_token(user)
     aristotle_settings = fetch_aristotle_settings()
     kwargs.update({
         'token': token,
         'sender': sender,
         'user_id': user.pk,
         'config': aristotle_settings,
     })
     self.email_message(user, self.invitation_subject, self.invitation_body,
                        **kwargs).send()
     return True
Esempio n. 9
0
 def handle(self, *args, **options):
     try:
         fetch_aristotle_settings()
         self.stdout.write('Aristotle Settings are valid! :)')
     except:
         raise
Esempio n. 10
0
        d=d.split()
        if len(d) > 100:
            d = d[0:100] + ["..."]
        return " ".join(d)


class MultiSerializerViewSetMixin(viewsets.ReadOnlyModelViewSet):
    serializers = {
        'default': None,
    }

    def get_serializer_class(self):
        return self.serializers.get(self.action,self.serializers['default'])


aristotle_apps = fetch_aristotle_settings().get('CONTENT_EXTENSIONS', [])
aristotle_apps += ["aristotle_mdr"]

api_excluded_fields = [
    "_concept_ptr",
    "_is_locked",
    "_is_public",
    "packages",
    "relatedDiscussions",
    "superseded_by",
    "supersedes",
    "version",
    "workgroup",
    'submitter',
]
    def __init__(self, *args, **kwargs):
        from comet.managers import FrameworkDimensionQuerySet
        super().__init__(*args, **kwargs)

        if 'aristotle_mdr_backwards' not in fetch_aristotle_settings().get(
                'CONTENT_EXTENSIONS', []):
            bc_fields = self._meta.model.backwards_compatible_fields
            for fname in bc_fields:
                if fname in self.fields:
                    del self.fields[fname]

        for f in self.fields:
            # Add workgroup
            if f == "workgroup":
                self.fields[f].widget = widgets.WorkgroupAutocompleteSelect()
                self.fields[f].widget.choices = self.fields[f].choices
                if not self.user.is_superuser:
                    self.fields[
                        'workgroup'].queryset = self.user.profile.editable_workgroups

            # Add foreign keys and m2m key widgets
            elif hasattr(self.fields[f], 'queryset') and type(
                    self.fields[f].queryset) == ConceptQuerySet:
                if hasattr(self.fields[f].queryset, 'visible'):
                    if f in [
                            m2m.name
                            for m2m in self._meta.model._meta.many_to_many
                    ]:
                        field_widget = widgets.ConceptAutocompleteSelectMultiple
                    else:
                        field_widget = widgets.ConceptAutocompleteSelect
                    self.fields[f].queryset = self.fields[f].queryset.all(
                    ).visible(self.user)
                    self.fields[f].widget = field_widget(
                        model=self.fields[f].queryset.model)
                    self.fields[f].widget.choices = self.fields[f].choices

            elif hasattr(self.fields[f], 'queryset') and type(
                    self.fields[f].queryset) == FrameworkDimensionQuerySet:
                if f in [
                        m2m.name for m2m in self._meta.model._meta.many_to_many
                ]:
                    field_widget = widgets.FrameworkDimensionAutocompleteSelectMultiple
                    self.fields[f].widget = field_widget(
                        model=self.fields[f].queryset.model)
                    self.fields[f].queryset = self.fields[f].queryset.all()

            # Add date field
            elif type(self.fields[f]) == forms.fields.DateField:
                self.fields[f].widget = BootstrapDateTimePicker(
                    options={"format": "YYYY-MM-DD"})
            elif type(self.fields[f]) == forms.fields.DateTimeField:
                self.fields[f].widget = BootstrapDateTimePicker(
                    options={"format": "YYYY-MM-DD"})

        # Add the name suggestion button
        aristotle_settings = fetch_aristotle_settings()
        self.fields['name'].widget = NameSuggestInput(
            name_suggest_fields=self._meta.model.name_suggest_fields,
            separator=aristotle_settings['SEPARATORS'].get(
                self._meta.model.__name__, '-'))
        d=d.split()
        if len(d) > 100:
            d = d[0:100] + ["..."]
        return " ".join(d)


class MultiSerializerViewSetMixin(viewsets.ReadOnlyModelViewSet):
    serializers: dict = {
        'default': None,
    }

    def get_serializer_class(self):
        return self.serializers.get(self.action,self.serializers['default'])


aristotle_apps = fetch_aristotle_settings().get('CONTENT_EXTENSIONS', [])
aristotle_apps += ["aristotle_mdr"]

api_excluded_fields = [
    "_concept_ptr",
    "_is_locked",
    "_is_public",
    "packages",
    "relatedDiscussions",
    "superseded_by",
    "supersedes",
    "version",
    "workgroup",
    'submitter',
]