def edit_sortie(request, slug, template_name='sortie/sortie_edit.html'): sortie = Sortie.objects.get(titre_slug=slug) if request.method == 'POST': # If the form has been submitted... preview = request.POST.get('preview', None) editpreview = request.POST.get('editpreview', None) new_form = SortieForm(request.POST, instance=sortie) if not editpreview and new_form.is_valid(): new_sortie = new_form.save(commit=False) if not preview: new_sortie.save() new_sortie.generate_slug() new_sortie.activites.clear() for a in request.POST.getlist("activites"): new_sortie.activites.add(a) LogActivity.recordActivity(qui=request.user, quoi=new_sortie, comment="a modifié l'activité <a href='%s'>%s</a>" % (sortie.get_absolute_url(), sortie.titre)) # Redirect after POST return HttpResponseRedirect(sortie.get_absolute_url()) else: cat = Activite.objects.filter(pk__in=request.POST.getlist("activites")) return internal_view_sortie(request, new_sortie, urlretour=reverse("editsortie", kwargs={"slug": slug}), categories=cat) else: form = new_form else: form = SortieForm(instance=sortie) return render_to_response(template_name, RequestContext(request, {'form': form, 'sortie': sortie, 'full': True, }))
def link_galerie(request, template_name='galerie/galerie_link.html'): if request.method == 'POST': # If the form has been submitted... new_form = LinkGalerieForm(request.POST) if new_form.is_valid(): new_galerie = new_form.save(commit=False) new_galerie.generate_slug() new_galerie.local_path = os.path.join(settings.TOUPLOAD_ROOT, new_galerie.titre_slug) imgur_id = new_galerie.imgur_id if imgur_id.startswith("http://"): imgur_id = imgur_id[19:] if imgur_id.endswith("#0"): imgur_id = imgur_id[:-2] new_galerie.imgur_id = imgur_id new_galerie.save() sync_galerie_from_imgur(new_galerie) if not request.POST.get('notification'): LogActivity.recordActivity(qui=request.user, quoi=new_galerie, comment="a publié une nouvelle galerie : <a href='%s'>%s</a>" % (new_galerie.get_absolute_url(), new_galerie.titre)) ThreadMail(new_galerie).start() # Redirect after POST return HttpResponseRedirect(new_galerie.get_absolute_url()) else: form = new_form else: init = {} init['auteur'] = request.user.pk init['date_publication'] = datetime.datetime.now() form = LinkGalerieForm(initial=init) return render_to_response(template_name, RequestContext(request, {'form': form, 'full': True, }))
def add_sortie(request, template_name='sortie/sortie_add.html'): if request.method == 'POST': # If the form has been submitted... preview = request.POST.get('preview', None) editpreview = request.POST.get('editpreview', None) new_form = SortieForm(request.POST) if not editpreview and new_form.is_valid(): new_sortie = new_form.save(commit=False) if not preview: new_sortie.save() new_sortie.generate_slug() new_sortie.activites.clear() for a in request.POST.getlist("activites"): new_sortie.activites.add(a) LogActivity.recordActivity(qui=request.user, quoi=new_sortie, comment="a ajouté l'activité <a href='%s'>%s</a>" % (new_sortie.get_absolute_url(), new_sortie.titre)) subscribe_sortie(new_sortie.auteur.get_profile(), new_sortie) ThreadMail(new_sortie).start() # Redirect after POST return HttpResponseRedirect(new_sortie.get_absolute_url()) else: cat = Activite.objects.filter(pk__in=request.POST.getlist("activites")) return internal_view_sortie(request, new_sortie, urlretour=reverse("addsortie"), categories=cat) else: form = new_form else: init = {} init['auteur'] = request.user.pk form = SortieForm(initial=init) return render_to_response(template_name, RequestContext(request, {'form': form, 'full': True, }))
def create_message(auteur, contenu, thread, isnewthread=False): newmessage = Message(auteur=auteur, contenu=contenu, thread=thread) newmessage.save() LogActivity.recordActivity(qui=auteur, quoi=newmessage, comment="a publié un nouveau message : <a href='%s'>%s</a>" % (newmessage.thread.get_absolute_url(), newmessage.thread.titre)) subscribe_thread_message(newmessage) ThreadMail(message=newmessage, isnewthread=isnewthread).start() return newmessage
def edit_article(request, slug, template_name='article/article_edit.html'): article = Article.objects.get(titre_slug=slug) if request.method == 'POST': # If the form has been submitted... preview = request.POST.get('preview', None) editpreview = request.POST.get('editpreview', None) new_form = ArticleForm(request.POST, instance=article) if not editpreview and new_form.is_valid(): new_article = new_form.save(commit=False) if not preview: new_article.save() new_article.generate_slug() LogActivity.recordActivity(qui=request.user, quoi=new_article, comment="a modifié l'article : <a href='%s'>%s</a>" % (article.get_absolute_url(), article.titre)) # Redirect after POST return HttpResponseRedirect(article.get_absolute_url()) else: return internal_view_article(request, new_article, urlretour=reverse("editarticle", kwargs={'slug': slug})) else: form = new_form else: form = ArticleForm(instance=article) return render_to_response(template_name, RequestContext(request, {'form': form, 'full': True, 'article': article, }))
def create_new_article(request, template_name='article/article_add.html'): if request.method == 'POST': # If the form has been submitted... preview = request.POST.get('preview', None) editpreview = request.POST.get('editpreview', None) new_form = ArticleForm(request.POST) if not editpreview and new_form.is_valid(): new_article = new_form.save(commit=False) if not preview: new_article.save() new_article.generate_slug() LogActivity.recordActivity(qui=request.user, quoi=new_article, comment="a publié un nouvel article : <a href='%s'>%s</a>" % (new_article.get_absolute_url(), new_article.titre)) subscribe_article(new_article.auteur.get_profile(), new_article) ThreadMail(new_article).start() # Redirect after POST return HttpResponseRedirect(new_article.get_absolute_url()) else: return internal_view_article(request, new_article, urlretour=reverse("addarticle")) else: form = new_form else: init = {} init['auteur'] = request.user.pk form = ArticleForm(initial=init) return render_to_response(template_name, RequestContext(request, {'form': form, 'full': True, }))
def new_comment(request, pk, type, template_name='comment/new_comment_form.html'): article = None sortie = None galerie = None previ = None urlredirect = None if type == 'article': article = Article.objects.get(pk=pk) urlredirect = "%s#commentaires-posting" % article.get_absolute_url() if type == 'sortie': sortie = Sortie.objects.get(pk=pk) urlredirect = "%s#commentaires-posting" % sortie.get_absolute_url() if type == 'galerie': galerie = Galerie.objects.get(pk=pk) urlredirect = "%s#commentaires-posting" % galerie.get_absolute_url() if type == 'previ': previ = Prevision.objects.get(pk=pk) urlredirect = "%s#commentaires-posting" % previ.get_absolute_url() if request.method == 'POST': # If the form has been submitted... new_form = CommentForm(request.POST) if new_form.is_valid(): new_comment = new_form.save(commit=False) new_comment.save() if article: article.comments.add(new_comment) subscribe_article_comment(new_comment, article) LogActivity.recordActivity(qui=request.user, quoi=new_comment, comment="a posté un nouveau commentaire au sujet de l'article : <a href='%s'>%s</a>" % (article.get_absolute_url(), article.titre), surquoi=article) if sortie: sortie.comments.add(new_comment) subscribe_sortie_comment(new_comment, sortie) LogActivity.recordActivity(qui=request.user, quoi=new_comment, comment="a posté un nouveau commentaire au sujet de l'activité : <a href='%s'>%s</a>" % (sortie.get_absolute_url(), sortie.titre), surquoi=sortie) if galerie: galerie.comments.add(new_comment) subscribe_galerie_comment(new_comment, galerie) LogActivity.recordActivity(qui=request.user, quoi=new_comment, comment="a posté un nouveau commentaire au sujet de la galerie : <a href='%s'>%s</a>" % (galerie.get_absolute_url(), galerie.titre), surquoi=galerie) if previ: previ.comments.add(new_comment) LogActivity.recordActivity(qui=request.user, quoi=new_comment, comment="a posté un nouveau commentaire au sujet de la prévision : <a href='%s'>%s</a>" % (previ.get_absolute_url(), previ), surquoi=previ) ThreadMail(new_comment).start() # Redirect after POST return HttpResponseRedirect(urlredirect) else: init = {} init['auteur'] = request.user.pk form = CommentForm(initial=init) return render_to_response(template_name, RequestContext(request, {'form': form, 'type': type, 'pk': pk, }))
def _manage_participation(request, slug, statut): qui = request.user sortie = Sortie.objects.get(titre_slug=slug) pp = Participant.objects.filter(qui=qui, sortie=sortie) participant = None if pp and pp.count() > 0: participant = pp[0] if not participant: participant = Participant(qui=qui, sortie=sortie) if not participant.statut == statut: participant.statut = statut participant.date_update = datetime.datetime.now() participant.save() subscribe_sortie(qui.get_profile(), sortie) LogActivity.recordActivity(qui=qui, quoi=participant, comment="a modifié sa participation à l'activité <a href='%s'>%s</a> : %s" % (sortie.get_absolute_url(), sortie.titre, dict(Participant.STATUT)[statut]), surquoi=sortie) ThreadParticipationMail(sortie, qui, statut).start() return HttpResponseRedirect(sortie.get_absolute_url())
def edit_sortie_cr(request, slug, template_name='sortie/sortie_edit_cr.html'): sortie = Sortie.objects.get(titre_slug=slug) first_time = sortie.cr is None if request.method == 'POST': # If the form has been submitted... preview = request.POST.get('preview', None) editpreview = request.POST.get('editpreview', None) if first_time: new_form = CompteRenduSortieForm(request.POST) else: new_form = CompteRenduSortieForm(request.POST, instance=sortie.cr) if not editpreview and new_form.is_valid(): new_crsortie = new_form.save(commit=False) if first_time: new_crsortie.auteur = request.user if not preview: new_crsortie.save() sortie.cr = new_crsortie sortie.save() if first_time and not request.POST.get('notification'): ThreadCompteRenduMail(sortie, request.user).start() LogActivity.recordActivity(qui=request.user, quoi=sortie, comment="a modifié le compte-rendu de l'activité <a href='%s'>%s</a>" % (sortie.get_absolute_url(), sortie.titre)) # Redirect after POST return HttpResponseRedirect(sortie.get_absolute_url()) else: cat = sortie.activites.all() return internal_view_sortie(request, sortie, crsortie=new_crsortie, urlretour=reverse("editsortiecr", kwargs={"slug":slug}), categories=cat) else: form = new_form else: if first_time: form = CompteRenduSortieForm() else: form = CompteRenduSortieForm(instance=sortie.cr) return render_to_response(template_name, RequestContext(request, {'form': form, 'sortie': sortie, 'full': True, }))
def create_new_user(request, template_name="accounts/user_create_form.html"): form = CustomUserCreationForm() # if form was submitted, bind form instance. if request.method == "POST": form = CustomUserCreationForm(request.POST) if form.is_valid(): user = form.save(commit=False) # user must be active for login to work user.is_active = True user.email = request.POST.get("email") user.first_name = request.POST.get("first_name") user.last_name = request.POST.get("last_name") user.save() p = Profil(user=user) p.last_known_activity = LogActivity.getDefault() p.save() from_email = "Les Cannes A L'air <*****@*****.**>" text = ( "Nouvel inscrit chez les CAL : %s %s (%s)<br><br>L'invalidation du compte peut se faire <a href='http://cannesalair.fr/admin/auth/user/%s/'>ici</a>." % (user.first_name, user.last_name, user.email, user.id) ) to_users = User.objects.filter(groups__name="Admin") from core.mail import internal_sendmail internal_sendmail( ",".join([u.email for u in to_users]), from_email, text, "[CAL] %s vient de s'inscrire sur le site des CAL" % user.username, fail_silently=False, ) return HttpResponseRedirect(reverse("editprofil")) for f in form.fields: if not f == "captcha": form.fields[f].widget.attrs["class"] = "input-medium" form.fields[f].help_text = "" return render_to_response(template_name, RequestContext(request, {"form": form, "isstandalone": True}))
def forwards(self, orm): "Write your forwards methods here." activity = LogActivity.getDefault() for p in Profil.objects.all(): p.last_known_activity = activity p.save()
def markasread_notification(request): p = request.user.get_profile() p.last_known_activity = LogActivity.getDefault() p.save() return HttpResponseRedirect(reverse("viewnotification")+"?norefresh=1")
def internal_view_sortie(request, sortie, crsortie=None, template_name='sortie/sortie_view.html', urlretour=None, categories=None): date_publication = sortie.date_creation if sortie.date_creation else datetime.datetime.now() canbeedited = not urlretour and (request.user == sortie.auteur or request.user.is_superuser) if not crsortie: crsortie = sortie.cr caneditcr = canbeedited or (not urlretour and ((crsortie and request.user == crsortie.auteur) or request.user.is_superuser or request.user in [p.qui for p in sortie.participant_sortie_set.filter(statut='oui')])) canviewspecificcr = crsortie and request.user.is_authenticated() and (Group.objects.filter(user=request.user, name="Bureau").count() > 0 or request.user.is_superuser or crsortie.auteur == request.user) poui = sortie.participant_sortie_set.filter(statut='oui') if sortie.pk else [] pnon = sortie.participant_sortie_set.filter(statut='non') if sortie.pk else [] ppe = sortie.participant_sortie_set.filter(statut='peutetre') if sortie.pk else [] spoui = sortie.participant_special_sortie_set.filter(statut='oui') if sortie.pk else [] sppe = sortie.participant_special_sortie_set.filter(statut='peutetre') if sortie.pk else [] totalpe = ppe.count() + sppe.count() totalsur = poui.count() + spoui.count() totalfull = totalpe + totalsur issubscribed = False if request.user.is_authenticated() and sortie.pk: issubscribed = request.user.get_profile() in sortie.sorties_suivies_set.all() maparticipation = None mesinvites = None if request.user.is_authenticated() and sortie.pk: maparticipation = Participant.objects.filter(qui=request.user, sortie=sortie) mesinvites = SpecialParticipant.objects.filter(sortie=sortie, qui=request.user) if maparticipation.count() > 0: maparticipation = maparticipation[0] else: maparticipation = None spform = SpecialParticipantForm() if request.method == 'POST': # If the form has been submitted... spform = SpecialParticipantForm(request.POST) if spform.is_valid(): special_participant = spform.save(commit=False) special_participant.qui = request.user special_participant.sortie = sortie special_participant.statut = request.POST.get('statut') special_participant.date_update = datetime.datetime.now() special_participant.save() LogActivity.recordActivity(qui=request.user, quoi=sortie, comment="a ajouté un(e) participant(e) spécial(e) à l'activité <a href='%s'>%s</a>" % (sortie.get_absolute_url(), sortie.titre)) # Redirect after POST return HttpResponseRedirect(sortie.get_absolute_url()) return render_to_response(template_name, RequestContext(request, {'sortie': sortie, 'date_publication': date_publication, 'urlretour': urlretour, 'canbeedited': canbeedited, 'crsortie': crsortie, 'caneditcr': caneditcr, 'canviewspecificcr': canviewspecificcr, 'mesinvites': mesinvites, 'spform': spform, 'full': True, 'poui': poui, 'pouicount': poui.count(), 'pnon': pnon, 'pnoncount': pnon.count(), 'ppe': ppe, 'ppecount': ppe.count(), 'spoui': spoui, 'spouicount': spoui.count(), 'sppe': sppe, 'sppecount': sppe.count(), 'totalfull': totalfull, 'totalpe': totalpe, 'totalsur': totalsur, 'maparticipation': maparticipation, 'issubscribed': issubscribed, 'categories': categories, }))