|
1 | 1 | from django.conf import settings |
2 | 2 | from django.contrib import admin |
| 3 | +from django.urls import path |
3 | 4 |
|
| 5 | +from mailing.views import MailingTemplateRender |
4 | 6 | from .helpers import send_verification_completed_email |
5 | 7 | from .models import ( |
6 | 8 | CustomUser, |
@@ -106,6 +108,7 @@ class CustomUserAdmin(admin.ModelAdmin): |
106 | 108 | ) |
107 | 109 |
|
108 | 110 | readonly_fields = ("ordering_score",) |
| 111 | + change_form_template = "users/admin/users_change_form.html" |
109 | 112 |
|
110 | 113 | def save_model(self, request, obj, form, change): |
111 | 114 | # if user_type changed, then delete all related fields |
@@ -146,6 +149,22 @@ def save_model(self, request, obj, form, change): |
146 | 149 |
|
147 | 150 | super().save_model(request, obj, form, change) |
148 | 151 |
|
| 152 | + def get_urls(self): |
| 153 | + default_urls = super(CustomUserAdmin, self).get_urls() |
| 154 | + custom_urls = [ |
| 155 | + path( |
| 156 | + "mailing/<int:user_object>/", |
| 157 | + self.admin_site.admin_view(self.mailing), |
| 158 | + name="user_mailing", |
| 159 | + ), |
| 160 | + ] |
| 161 | + return custom_urls + default_urls |
| 162 | + |
| 163 | + def mailing(self, request, user_object): |
| 164 | + user = CustomUser.objects.get(pk=user_object) |
| 165 | + users = [user] |
| 166 | + return MailingTemplateRender().render_template(request, None, users, None) |
| 167 | + |
149 | 168 |
|
150 | 169 | @admin.register(UserAchievement) |
151 | 170 | class UserAchievementAdmin(admin.ModelAdmin): |
|
0 commit comments