|
@@ -36,23 +36,23 @@ class OfferSubscriptionInline(admin.TabularInline):
|
|
|
model = OfferSubscription
|
|
|
extra = 0
|
|
|
|
|
|
- common_fields = ('subscription_date', 'resign_date', 'commitment', 'offer')
|
|
|
- all_fields = ('get_subscription_reference',) + common_fields
|
|
|
+ writable_fields = ('subscription_date', 'resign_date', 'commitment', 'offer')
|
|
|
+ all_fields = ('get_subscription_reference',) + writable_fields
|
|
|
|
|
|
def get_fields(self, request, obj=None):
|
|
|
if obj:
|
|
|
return self.all_fields
|
|
|
else:
|
|
|
- return self.common_fields
|
|
|
+ return self.writable_fields
|
|
|
|
|
|
- # création de membre : lecture écriture
|
|
|
- # modification d'un membre : lecture seule seulement
|
|
|
def get_readonly_fields(self, request, obj=None):
|
|
|
- if obj:
|
|
|
- return self.all_fields
|
|
|
+ # création ou superuser : lecture écriture
|
|
|
+ if not obj or request.user.is_superuser:
|
|
|
+ return ('get_subscription_reference',)
|
|
|
+ # modification : lecture seule seulement
|
|
|
else:
|
|
|
- return ()
|
|
|
-
|
|
|
+ return self.all_fields
|
|
|
+
|
|
|
show_change_link = True
|
|
|
|
|
|
def formfield_for_foreignkey(self, db_field, request, **kwargs):
|
|
@@ -60,8 +60,7 @@ class OfferSubscriptionInline(admin.TabularInline):
|
|
|
return super(OfferSubscriptionInline, self).formfield_for_foreignkey(db_field, request, **kwargs)
|
|
|
else:
|
|
|
if db_field.name == "offer":
|
|
|
- # pouah c'est pas beau, faut faire mieux, ça serait bien que get_manageable_offers renvoie un QuerrySet plutôt qu'une liste
|
|
|
- kwargs["queryset"] = Offer.objects.filter(id__in=[p.id for p in RowLevelPermission.get_manageable_offers(request.user)])
|
|
|
+ kwargs["queryset"] = RowLevelPermission.get_manageable_offers(request.user)
|
|
|
return super(OfferSubscriptionInline, self).formfield_for_foreignkey(db_field, request, **kwargs)
|
|
|
|
|
|
# pas très beau
|