Esempio n. 1
0
def primary_change(request, subscription_id):
    '''
    change primary member
    '''
    subscription = get_object_or_404(Subscription, id=subscription_id)
    if request.method == 'POST':
        new_primary = get_object_or_404(Member,
                                        id=int(request.POST.get('primary')))
        subscription.primary_member = new_primary
        subscription.save()
        return redirect('sub-detail-id', subscription_id=subscription.id)
    renderdict = get_menu_dict(request)
    if Config.enable_shares():
        co_members = [
            m for m in subscription.other_recipients()
            if m.is_cooperation_member
        ]
    else:
        co_members = subscription.other_recipients()
    renderdict.update({
        'subscription': subscription,
        'co_members': co_members,
        'has_comembers': len(co_members) > 0
    })
    return render(request, 'pm_change.html', renderdict)
Esempio n. 2
0
 def evaluate_ordered_shares(self, shares=None):
     if not Config.enable_shares():  # skip if no shares are needed
         return True
     shares = shares or self.count_shares()
     # count new shares
     new_main_member = getattr(self.main_member, 'new_shares', 0)
     new_co_members = self.get_co_member_shares()
     # evaluate
     return shares['existing_main_member'] + new_main_member > 0\
         and new_main_member + new_co_members >= shares['remaining_required']
Esempio n. 3
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     fields = list(self.base_layout)  # keep first 9 fields
     if Config.enable_shares():
         fields.append(Field('shares', css_class='col-md-2'))
     self.helper.layout = Layout(
         *fields,
         FormActions(
             self.get_submit_button(),
             LinkButton(_("Abbrechen"), reverse("sub-detail")),
         ))
Esempio n. 4
0
def create_share(member, amount=1):
    if amount and Config.enable_shares():
        for i in range(amount):
            share = Share.objects.create(member=member)
            send_share_created_mail(member, share)
Esempio n. 5
0
from juntagrico.entity.mailing import MailTemplate
from juntagrico.entity.member import Member
from juntagrico.entity.share import Share
from juntagrico.entity.subs import Subscription, ExtraSubBillingPeriod
from juntagrico.entity.subtypes import SubscriptionSize, SubscriptionType

admin.site.register(Depot, DepotAdmin)
admin.site.register(ExtraSubscription, ExtraSubscriptionAdmin)
admin.site.register(ExtraSubscriptionType, ExtraSubscriptionTypeAdmin)
admin.site.register(ExtraSubscriptionCategory, ExtraSubscriptionCategoryAdmin)
admin.site.register(SubscriptionSize, SubscriptionSizeAdmin)
admin.site.register(SubscriptionType, SubscriptionTypeAdmin)
admin.site.register(Assignment, AssignmentAdmin)
admin.site.register(Subscription, SubscriptionAdmin)
admin.site.register(Member, MemberAdmin)
admin.site.register(ActivityArea, AreaAdmin)
admin.site.register(MailTemplate)
admin.site.register(Delivery, DeliveryAdmin)
admin.site.register(JobExtra, JobExtraAdmin)
admin.site.register(JobExtraType, JobExtraTypeAdmin)
admin.site.register(JobType, JobTypeAdmin)
admin.site.register(RecuringJob, JobAdmin)
admin.site.register(OneTimeJob, OneTimeJobAdmin)
admin.site.register(ListMessage, ListMessageAdmin)
admin.site.register(ExtraSubBillingPeriod)
if Config.enable_shares():
    admin.site.register(Share, ShareAdmin)
if Config.billing():
    admin.site.register(Bill)
    admin.site.register(Payment)
Esempio n. 6
0
def create_share(member, amount=1):
    if amount and Config.enable_shares():
        shares = []
        for i in range(amount):
            shares.append(Share.objects.create(member=member))
        membernotification.shares_created(member, shares)
Esempio n. 7
0
from juntagrico.entity.subs import Subscription
from juntagrico.entity.subtypes import SubscriptionSize, SubscriptionType, SubscriptionProduct
from juntagrico.util import addons

# loading addons here so that we have the information about admin extensions stuff like inlines etc
addons.load_addons()

admin.site.register(Depot, DepotAdmin)
admin.site.register(ExtraSubscription, ExtraSubscriptionAdmin)
admin.site.register(ExtraSubscriptionType, ExtraSubscriptionTypeAdmin)
admin.site.register(ExtraSubscriptionCategory, BaseAdmin)
admin.site.register(SubscriptionSize, SubscriptionSizeAdmin)
admin.site.register(SubscriptionType, SubscriptionTypeAdmin)
admin.site.register(Assignment, AssignmentAdmin)
admin.site.register(Subscription, SubscriptionAdmin)
admin.site.register(Member, MemberAdminWithShares if Config.enable_shares() else MemberAdmin)
admin.site.register(SubscriptionMembership, BaseAdmin)
admin.site.register(ActivityArea, AreaAdmin)
admin.site.register(MailTemplate)
admin.site.register(Delivery, DeliveryAdmin)
admin.site.register(JobExtra, BaseAdmin)
admin.site.register(JobExtraType, BaseAdmin)
admin.site.register(JobType, JobTypeAdmin)
admin.site.register(RecuringJob, JobAdmin)
admin.site.register(OneTimeJob, OneTimeJobAdmin)
admin.site.register(ListMessage, ListMessageAdmin)
admin.site.register(SubscriptionProduct, BaseAdmin)
admin.site.register(ExtraSubBillingPeriod, BaseAdmin)
if Config.enable_shares():
    admin.site.register(Share, ShareAdmin)
 def __init__(self, *args, **kwargs):
     self.inlines.extend(get_extrasubtype_inlines())
     super(ExtraSubscriptionTypeAdmin, self).__init__(*args, **kwargs)
     if not Config.enable_shares():
         self.exclude.append('shares')
from juntagrico.admins import BaseAdmin
from juntagrico.config import Config


class ExtraSubscriptionTypeAdmin(BaseAdmin):
    exclude = []


if not Config.enable_shares():
    ExtraSubscriptionTypeAdmin.exclude.append('shares')
Esempio n. 10
0
 def __init__(self, model, admin_site):
     super().__init__(model, admin_site)
     if not Config.enable_shares():
         self.exclude.append('shares')
Esempio n. 11
0
 def get_exclude(self, request, obj=None):
     if not Config.enable_shares():
         return [
             'shares'
         ] if self.exclude is None else self.exclude.append('shares')
     return self.exclude
Esempio n. 12
0
from juntagrico.entity.subs import Subscription
from juntagrico.entity.subtypes import SubscriptionSize, SubscriptionType, SubscriptionProduct
from juntagrico.util import addons

# loading addons here so that we have the information about admin extensions stuff like inlines etc
addons.load_addons()

admin.site.register(Depot, DepotAdmin)
admin.site.register(ExtraSubscription, ExtraSubscriptionAdmin)
admin.site.register(ExtraSubscriptionType, ExtraSubscriptionTypeAdmin)
admin.site.register(ExtraSubscriptionCategory, BaseAdmin)
admin.site.register(SubscriptionSize, SubscriptionSizeAdmin)
admin.site.register(SubscriptionType, SubscriptionTypeAdmin)
admin.site.register(Assignment, AssignmentAdmin)
admin.site.register(Subscription, SubscriptionAdmin)
admin.site.register(
    Member, MemberAdminWithShares if Config.enable_shares() else MemberAdmin)
admin.site.register(ActivityArea, AreaAdmin)
admin.site.register(MailTemplate)
admin.site.register(Delivery, DeliveryAdmin)
admin.site.register(JobExtra, BaseAdmin)
admin.site.register(JobExtraType, BaseAdmin)
admin.site.register(JobType, JobTypeAdmin)
admin.site.register(RecuringJob, JobAdmin)
admin.site.register(OneTimeJob, OneTimeJobAdmin)
admin.site.register(ListMessage, ListMessageAdmin)
admin.site.register(SubscriptionProduct, BaseAdmin)
admin.site.register(ExtraSubBillingPeriod, BaseAdmin)
if Config.enable_shares():
    admin.site.register(Share, ShareAdmin)