def activate_future_types(request, subscription_id): subscription = get_object_or_404(Subscription, id=subscription_id) for type in TSST.objects.filter(subscription=subscription): type.delete() for type in TFSST.objects.filter(subscription=subscription): TSST.objects.create(subscription=subscription, type=type.type) return return_to_previous_location(request)
def size_change(request, subscription_id): """ change the size of a subscription """ subscription = get_object_or_404(Subscription, id=subscription_id) parts_order_allowed = subscription.waiting or subscription.active if request.method == 'POST': if not parts_order_allowed: raise ValidationError( _('Für gekündigte {} können keine Bestandteile bestellt werden' ).format(Config.vocabulary('subscription_pl')), code='invalid') form = SubscriptionPartOrderForm(subscription, request.POST) if form.is_valid(): create_subscription_parts(subscription, form.get_selected()) return return_to_previous_location(request) else: form = SubscriptionPartOrderForm() renderdict = get_menu_dict(request) renderdict.update({ 'form': form, 'subscription': subscription, 'hours_used': Config.assignment_unit() == 'HOURS', 'next_cancel_date': temporal.next_cancelation_date(), 'parts_order_allowed': parts_order_allowed, }) return render(request, 'size_change.html', renderdict)
def set_change_date(request): if request.method != 'POST': raise Http404 raw_date = request.POST.get('date') date = timezone.datetime.strptime(raw_date, '%m/%d/%Y').date() request.session['changedate'] = date return return_to_previous_location(request)
def deactivate_subscription(request, subscription_id): subscription = get_object_or_404(Subscription, id=subscription_id) change_date = request.session.get('changedate', None) try: subscription.deactivate(change_date) except ValidationError as e: return error_page(request, e.message) return return_to_previous_location(request)
def deactivate_extra(request, extra_id): extra = get_object_or_404(ExtraSubscription, id=extra_id) change_date = request.session.get('changedate', None) if extra.active is True: extra.active = False extra.deactivation_date = change_date extra.save() return return_to_previous_location(request)
def cancel_extra(request, extra_id, subscription_id): extra = get_object_or_404(ExtraSubscription, id=extra_id) if extra.active is False: extra.delete() else: extra.canceled = True extra.save() return return_to_previous_location(request)
def cancel_part(request, part_id, subscription_id): part = get_object_or_404(SubscriptionPart, subscription__id=subscription_id, id=part_id) if part.activation_date is None: part.delete() else: part.cancel() return return_to_previous_location(request)
def cancel_extra(request, extra_id, subscription_id): extra = get_object_or_404(ExtraSubscription, main_subscription__id=subscription_id, id=extra_id) if extra.activation_date is None: extra.delete() else: extra.cancel() return return_to_previous_location(request)
def payout_share(request, share_id): share = get_object_or_404(Share, id=share_id) share.payback_date = timezone.now().date() share.save() member = share.member if member.active_shares_count == 0 and member.canceled is True: member.inactive = True member.save() return return_to_previous_location(request)
def activate_future_content(request, subscription_id): subscription = get_object_or_404(Subscription, id=subscription_id) for content in subscription.content.products.all(): content.delete() for content in subscription.content.future_products.all(): SubscriptionContentItem.objects.create( subscription_content=subscription.content, amount=content.amount, product=content.product) return return_to_previous_location(request)
def set_change_date(request): if request.method != 'POST': raise Http404 raw_date = request.POST.get('date') try: date = timezone.datetime.strptime(raw_date, '%m/%d/%Y').date() request.session['changedate'] = date except ValueError: return error_page(request, _('Bitte gib ein Datum im Format MM/TT/JJJJ ein.')) return return_to_previous_location(request)
def activate_future_depot(request, subscription_id): subscription = get_object_or_404(Subscription, id=subscription_id) subscription.depot = subscription.future_depot subscription.future_depot = None subscription.save() emails = [] for member in subscription.recipients: emails.append(member.email) membernotification.depot_changed(emails, subscription.depot) return return_to_previous_location(request)
def depot_change_confirm(request, subscription_id): # Cheap copy of juntagrico util/subs.py activate_future_depots sub = get_object_or_404(Subscription, id=subscription_id) sub.depot = sub.future_depot sub.future_depot = None sub.save() emails = [] for member in sub.recipients: emails.append(member.email) membernotification.depot_changed(emails, sub.depot) return return_to_previous_location(request)
def activate_future_types(request, subscription_id): subscription = get_object_or_404(Subscription, id=subscription_id) now = timezone.now().date() for part in SubscriptionPartDao.get_canceled_for_subscription( subscription): part.deactivation_date = now part.save() for part in SubscriptionPartDao.get_waiting_for_subscription(subscription): part.activation_date = now part.save() return return_to_previous_location(request)
def deactivate_subscription(request, subscription_id): subscription = get_object_or_404(Subscription, id=subscription_id) change_date = request.session.get('changedate', None) subscription.deactivate(change_date) for extra in subscription.extra_subscription_set.all(): extra.deactivate(change_date) for part in subscription.active_parts.all(): part.deactivate(change_date) for part in subscription.future_parts.all(): part.delete() return return_to_previous_location(request)
def activate_subscription(request, subscription_id): subscription = get_object_or_404(Subscription, id=subscription_id) change_date = request.session.get('changedate', None) try: subscription.activate(change_date) for part in subscription.future_parts.all(): part.activate(change_date) except ValidationError: renderdict = get_menu_dict(request) return render(request, 'activation_error.html', renderdict) return return_to_previous_location(request)
def activate_subscription(request, subscription_id): subscription = get_object_or_404(Subscription, id=subscription_id) change_date = request.session.get('changedate', None) if subscription.active is False and subscription.deactivation_date is None: try: subscription.active = True subscription.activation_date = change_date subscription.save() except ValidationError: renderdict = get_menu_dict(request) return render(request, 'activation_error.html', renderdict) return return_to_previous_location(request)
def deactivate_subscription(request, subscription_id): subscription = get_object_or_404(Subscription, id=subscription_id) change_date = request.session.get('changedate', None) if subscription.active is True: subscription.active = False subscription.deactivation_date = change_date subscription.save() for extra in subscription.extra_subscription_set.all(): if extra.active is True: extra.active = False extra.deactivation_date = change_date extra.save() return return_to_previous_location(request)
def activate_future_types(request, subscription_id): subscription = get_object_or_404(Subscription, id=subscription_id) changedate = request.session.get('changedate', timezone.now().date()) try: for part in SubscriptionPartDao.get_canceled_for_subscription( subscription): part.deactivation_date = changedate part.save() for part in SubscriptionPartDao.get_waiting_for_subscription( subscription): part.activation_date = changedate part.save() except ValidationError as e: return error_page(request, e.message) return return_to_previous_location(request)
def size_change(request, subscription_id): """ change the size of a subscription """ subscription = get_object_or_404(Subscription, id=subscription_id) if request.method == 'POST': form = SubscriptionPartOrderForm(subscription, request.POST) if form.is_valid(): create_subscription_parts(subscription, form.get_selected()) return return_to_previous_location(request) else: form = SubscriptionPartOrderForm() renderdict = get_menu_dict(request) renderdict.update({ 'form': form, 'subscription': subscription, 'hours_used': Config.assignment_unit() == 'HOURS', 'next_cancel_date': temporal.next_cancelation_date(), }) return render(request, 'size_change.html', renderdict)
def bills_notify(request): """ List of bills to send notification e-mails """ renderdict = get_menu_dict(request) bills_list = list(Bill.objects.filter(notification_sent=False)) if request.method == 'POST': for bill in bills_list: send_bill_notification(bill) bill.notification_sent = True bill.save() return return_to_previous_location(request) renderdict.update({ 'bills_list': bills_list, 'bills_count': len(bills_list), 'email_form_disabled': True, 'change_date_disabled': True, }) return render(request, "jb/bills_notify.html", renderdict)
def unset_change_date(request): request.session['changedate'] = None return return_to_previous_location(request)
def deactivate_member(request, member_id): member = get_object_or_404(Member, id=member_id) member.deactivation_date = timezone.now().date() member.save() return return_to_previous_location(request)
def cancel_share(request, share_id): share = get_object_or_404(Share, id=share_id, member=request.user.member) share.cancelled_date = timezone.now().date() share.save() return return_to_previous_location(request)
def bills_setyear(request): # determine chosen billing year year = request.POST.get('year') request.session['bills_businessyear'] = year return return_to_previous_location(request)
def activate_extra(request, extra_id): extra = get_object_or_404(ExtraSubscription, id=extra_id) change_date = request.session.get('changedate', None) if extra.activation_date is None and extra.deactivation_date is None: extra.activate(change_date) return return_to_previous_location(request)
def deactivate_member(request, member_id): member = get_object_or_404(Member, id=member_id) member.inactive = True member.save() return return_to_previous_location(request)