本文整理汇总了Python中tendenci.apps.perms.utils.get_notice_recipients函数的典型用法代码示例。如果您正苦于以下问题:Python get_notice_recipients函数的具体用法?Python get_notice_recipients怎么用?Python get_notice_recipients使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了get_notice_recipients函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: add
def add(request, form_class=HelpFileForm, template_name="help_files/add.html"):
if has_perm(request.user,'help_files.add_helpfile'):
if request.method == "POST":
form = form_class(request.POST, user=request.user)
if form.is_valid():
help_file = form.save(commit=False)
# add all permissions and save the model
help_file = update_perms_and_save(request, form, help_file)
form.save_m2m()
msg_string = 'Successfully added %s' % help_file
messages.add_message(request, messages.SUCCESS, _(msg_string))
# send notification to administrator(s) and module recipient(s)
recipients = get_notice_recipients('module', 'help_files', 'helpfilerecipients')
# if recipients and notification:
# notification.send_emails(recipients,'help_file_added', {
# 'object': help_file,
# 'request': request,
# })
return HttpResponseRedirect(reverse('help_file.details', args=[help_file.slug]))
else:
form = form_class(user=request.user)
return render_to_response(template_name, {'form':form},
context_instance=RequestContext(request))
else:
raise Http403
示例2: delete
def delete(request, id, template_name="news/delete.html"):
news = get_object_or_404(News, pk=id)
# check permission
if not has_perm(request.user, 'news.delete_news'):
raise Http403
if request.method == "POST":
msg_string = 'Successfully deleted %s' % unicode(news)
messages.add_message(request, messages.SUCCESS, _(msg_string))
# send notification to administrators
recipients = get_notice_recipients('module', 'news', 'newsrecipients')
if recipients:
if notification:
extra_context = {
'object': news,
'request': request,
}
notification.send_emails(recipients, 'news_deleted', extra_context)
news.delete()
return HttpResponseRedirect(reverse('news.search'))
return render_to_response(template_name, {'news': news},
context_instance=RequestContext(request))
示例3: delete
def delete(request, id, template_name="articles/delete.html"):
article = get_object_or_404(Article, pk=id)
if has_perm(request.user, 'articles.delete_article'):
if request.method == "POST":
msg_string = 'Successfully deleted %s' % str(article)
messages.add_message(request, messages.SUCCESS, _(msg_string))
# send notification to administrators
recipients = get_notice_recipients('module', 'articles', 'articlerecipients')
if recipients:
if notification:
extra_context = {
'object': article,
'request': request,
}
notification.send_emails(recipients, 'article_deleted', extra_context)
article.delete()
return HttpResponseRedirect(reverse('article.search'))
return render_to_resp(request=request, template_name=template_name,
context={'article': article})
else:
raise Http403
示例4: delete
def delete(request, id, template_name="directories/delete.html"):
directory = get_object_or_404(Directory, pk=id)
if has_perm(request.user,'directories.delete_directory'):
if request.method == "POST":
msg_string = 'Successfully deleted %s' % directory
messages.add_message(request, messages.SUCCESS, _(msg_string))
# send notification to administrators
recipients = get_notice_recipients('module', 'directories', 'directoryrecipients')
if recipients:
if notification:
extra_context = {
'object': directory,
'request': request,
}
notification.send_emails(recipients,'directory_deleted', extra_context)
directory.delete()
return HttpResponseRedirect(reverse('directory.search'))
return render_to_response(template_name, {'directory': directory},
context_instance=RequestContext(request))
else:
raise Http403
示例5: delete
def delete(request, id, template_name="committees/delete.html"):
committee = get_object_or_404(Committee, pk=id)
if not has_perm(request.user, 'committees.delete_committee'):
raise Http403
if request.method == "POST":
EventLog.objects.log(instance=committee)
messages.add_message(request, messages.SUCCESS, 'Successfully deleted %s' % committee)
# send notification to administrators
recipients = get_notice_recipients('module', 'committees', 'committeerecipients')
if recipients:
if notification:
extra_context = {
'object': committee,
'request': request,
}
notification.send_emails(recipients, 'committee_deleted', extra_context)
committee.delete()
return HttpResponseRedirect(reverse('committees.search'))
return render_to_response(template_name, {'committee': committee},
context_instance=RequestContext(request))
示例6: save_model
def save_model(self, request, object, form, change):
instance = form.save(commit=False)
instance = update_perms_and_save(request, form, instance)
if instance.meta:
meta = instance.meta
else:
meta = MetaTags()
meta.title = form.cleaned_data["meta_title"]
meta.description = form.cleaned_data["meta_description"]
meta.keywords = form.cleaned_data["meta_keywords"]
meta.canonical_url = form.cleaned_data["meta_canonical_url"]
meta.save()
instance.meta = meta
instance.save()
# notifications
if not request.user.profile.is_superuser:
# send notification to administrators
recipients = get_notice_recipients("module", "pages", "pagerecipients")
notice_type = "page_added"
if change:
notice_type = "page_edited"
if recipients:
if notification:
extra_context = {"object": instance, "request": request}
notification.send_emails(recipients, notice_type, extra_context)
return instance
示例7: send_notifications
def send_notifications(scope, scope_category, name, label, extra_context=None):
"""
a small wrapper for sending notification emails to
recipients specified in site_settings.
"""
recipients = get_notice_recipients(scope, scope_category, name)
if recipients:
send_emails(recipients, label, extra_context)
示例8: group_add_edit
def group_add_edit(request, group_slug=None,
form_class=GroupForm,
template_name="user_groups/add_edit.html"):
add, edit = False, False
if group_slug:
group = get_object_or_404(Group, slug=group_slug)
if not has_perm(request.user,'user_groups.change_group',group):
raise Http403
title = _("Edit Group")
edit = True
else:
group = None
if not has_perm(request.user,'user_groups.add_group'):raise Http403
title = _("Add Group")
add = True
if request.method == 'POST':
if edit:
form = form_class(request.POST, instance=group, user=request.user)
else:
form = form_class(request.POST, user=request.user)
if form.is_valid():
group = form.save(commit=False)
if not group.id:
group.creator = request.user
group.creator_username = request.user.username
# set up user permission
group.allow_user_view, group.allow_user_edit = form.cleaned_data['user_perms']
group.owner = request.user
group.owner_username = request.user.username
group = form.save()
if add:
# send notification to administrators
recipients = get_notice_recipients('module', 'groups', 'grouprecipients')
if recipients:
if notification:
extra_context = {
'object': group,
'request': request,
}
notification.send_emails(recipients,'group_added', extra_context)
EventLog.objects.log(instance=group)
return HttpResponseRedirect(group.get_absolute_url())
else:
if edit:
form = form_class(instance=group, user=request.user)
else:
form = form_class(user=request.user)
return render_to_response(template_name, {'form':form, 'titie':title, 'group':group}, context_instance=RequestContext(request))
示例9: add
def add(request, form_class=ArticleForm,
category_form_class=CategoryForm,
template_name="articles/add.html"):
content_type = get_object_or_404(ContentType,
app_label='articles',
model='article')
if has_perm(request.user, 'articles.add_article'):
if request.method == "POST":
form = form_class(request.POST, request.FILES or None, user=request.user)
categoryform = category_form_class(content_type,
request.POST,)
if form.is_valid() and categoryform.is_valid():
article = form.save()
article.update_category_subcategory(
categoryform.cleaned_data['category'],
categoryform.cleaned_data['sub_category']
)
# add all permissions and save the model
update_perms_and_save(request, form, article)
msg_string = 'Successfully added %s' % str(article)
messages.add_message(request, messages.SUCCESS, _(msg_string))
# send notification to administrator(s) and module recipient(s)
recipients = get_notice_recipients('module', 'articles', 'articlerecipients')
if recipients and notification:
notification.send_emails(recipients, 'article_added', {
'object': article,
'request': request,
})
return HttpResponseRedirect(reverse('article', args=[article.slug]))
else:
form = form_class(user=request.user)
initial_category_form_data = {
'app_label': 'articles',
'model': 'article',
'pk': 0,
}
categoryform = category_form_class(content_type,
initial=initial_category_form_data,)
return render_to_resp(request=request, template_name=template_name,
context={'form': form,
'categoryform': categoryform,})
else:
raise Http403
示例10: delete
def delete(self, *args, **kwargs):
# Related objects
# Import related objects here to prevent circular references
from tendenci.apps.pages.models import Page
from tendenci.apps.events.models import Event
from tendenci.apps.stories.models import Story
pages = Page.objects.filter(header_image=self.pk)
events = Event.objects.filter(image=self.pk)
stories = Story.objects.filter(image=self.pk)
# Set foreign key of related objects to None
for page in pages:
page.header_image = None
page.save()
for event in events:
event.image = None
event.save()
for story in stories:
story.image = None
story.save()
# roll back the transaction to fix the error for postgresql
#"current transaction is aborted, commands ignored until
# end of transaction block"
#connection._rollback() # comment it out because this line of code leads to IntegrityError for files that inherit File's model.
# send notification to administrator(s) and module recipient(s)
if self.file:
recipients = get_notice_recipients('module', 'files', 'filerecipients')
site_display_name = get_setting('site', 'global', 'sitedisplayname')
if self.owner:
owner = self.owner.get_full_name() or self.owner
else:
owner = "Unknown"
if recipients and notification:
notification.send_emails(recipients, 'file_deleted', {
'object': self,
'author': owner,
'SITE_GLOBAL_SITEDISPLAYNAME': site_display_name,
})
# delete actual file; do not save() self.instance
self.file.delete(save=False)
# delete database record
super(File, self).delete(*args, **kwargs)
示例11: auto_update_paid_object
def auto_update_paid_object(self, request, payment):
"""
Update the object after online payment is received.
"""
# email to admin
try:
from tendenci.apps.notifications import models as notification
except:
notification = None
from tendenci.apps.perms.utils import get_notice_recipients
recipients = get_notice_recipients('module', 'donations', 'donationsrecipients')
if recipients:
if notification:
extra_context = {
'donation': self,
'invoice': payment.invoice,
'request': request,
}
notification.send_emails(recipients,'donation_added', extra_context)
示例12: save
def save(self, *args, **kwargs):
created = False
if not self.id:
self.guid = str(uuid.uuid4())
created = True
self.f_type = self.type()
if not self.group:
self.group_id = get_default_group()
super(File, self).save(*args, **kwargs)
if self.is_public_file():
set_s3_file_permission(self.file, public=True)
else:
set_s3_file_permission(self.file, public=False)
cache_set = cache.get("files_cache_set.%s" % self.pk)
if cache_set is not None:
# TODO remove cached images
cache.delete_many(cache.get("files_cache_set.%s" % self.pk))
cache.delete("files_cache_set.%s" % self.pk)
# send notification to administrator(s) and module recipient(s)
if created:
recipients = get_notice_recipients('module', 'files', 'filerecipients')
site_display_name = get_setting('site', 'global', 'sitedisplayname')
site_url = get_setting('site', 'global', 'siteurl')
if recipients and notification:
notification_params = {
'object': self,
'SITE_GLOBAL_SITEDISPLAYNAME': site_display_name,
'SITE_GLOBAL_SITEURL': site_url,
}
if self.owner:
notification_params['author'] = self.owner.get_full_name() or self.owner
notification.send_emails(recipients, 'file_added', notification_params)
示例13: group_delete
def group_delete(request, id, template_name="user_groups/delete.html"):
group = get_object_or_404(Group, pk=id)
if not has_perm(request.user,'user_groups.delete_group',group): raise Http403
if request.method == "POST":
# send notification to administrators
recipients = get_notice_recipients('module', 'groups', 'grouprecipients')
if recipients:
if notification:
extra_context = {
'object': group,
'request': request,
}
notification.send_emails(recipients,'group_deleted', extra_context)
EventLog.objects.log(instance=group)
group.delete()
return HttpResponseRedirect(reverse('group.search'))
(deleted_objects, count, perms_needed, protected) = get_deleted_objects(
[group], request.user)
object_name = group.label or group.name
if perms_needed or protected:
title = _("Cannot delete %(name)s") % {"name": object_name}
else:
title = _("Are you sure?")
return render_to_response(template_name,
{'group':group,
"title": title,
"object_name": object_name,
"deleted_objects": deleted_objects,
"perms_lacking": perms_needed,
"protected": protected,
"opts": group._meta,
},
context_instance=RequestContext(request))
示例14: request_new
def request_new(request, template_name="help_files/request_new.html"):
"Request new file form"
if request.method == 'POST':
form = RequestForm(request.POST)
if form.is_valid():
instance = form.save()
# send notification to administrators
recipients = get_notice_recipients('module', 'help_files', 'helpfilerecipients')
if recipients:
if notification:
extra_context = {
'object': instance,
'request': request,
}
notification.send_emails(recipients,'help_file_requested', extra_context)
messages.add_message(request, messages.INFO, _('Thanks for requesting a new help file!'))
EventLog.objects.log()
return HttpResponseRedirect(reverse('help_files'))
else:
form = RequestForm()
return render_to_resp(request=request, template_name=template_name,
context={'form': form})
示例15: delete
def delete(request, id, template_name="pages/delete.html"):
page = get_object_or_404(Page, pk=id)
if not has_perm(request.user, "pages.delete_page"):
raise Http403
if request.method == "POST":
EventLog.objects.log(instance=page)
messages.add_message(request, messages.SUCCESS, _("Successfully deleted %(p)s" % {"p": unicode(page)}))
# send notification to administrators
recipients = get_notice_recipients("module", "pages", "pagerecipients")
if recipients:
if notification:
extra_context = {"object": page, "request": request}
notification.send_emails(recipients, "page_deleted", extra_context)
# Soft delete
page.status = False
page.status_detail = "inactive"
page.save()
return HttpResponseRedirect(reverse("page.search"))
return render_to_response(template_name, {"page": page}, context_instance=RequestContext(request))