def save(self, addon, commit=True): if (self.cleaned_data.get('DELETE') and 'upload_hash' not in self.changed_data and self.promo.id): self.promo.delete() elif self.promo and 'upload_hash' in self.changed_data: self.promo.delete() elif self.cleaned_data.get('upload_hash'): super(AdminSettingsForm, self).save(addon, True) updates = { 'vip_app': self.cleaned_data.get('vip_app'), } contact = self.cleaned_data.get('mozilla_contact') if contact is not None: updates['mozilla_contact'] = contact if (self.cleaned_data.get('priority_review') and not addon.priority_review): # addon.priority_review gets updated within prioritize_app(). prioritize_app(addon, self.request.user) else: updates['priority_review'] = self.cleaned_data.get( 'priority_review') addon.update(**updates) index_webapps.delay([addon.id]) return addon
def app_summary(request, addon_id): if unicode(addon_id).isdigit(): query = {'pk': addon_id} else: query = {'app_slug': addon_id} app = get_object_or_404(Webapp.with_deleted, **query) if request.FILES: promo_img_form = PromoImgForm(request.POST, request.FILES) else: promo_img_form = PromoImgForm() if 'promo_img' in request.FILES and promo_img_form.is_valid(): promo_img_form.save(app) messages.success( request, 'Promo image successfully uploaded.' ' You may have to refresh the page again to see it below.') return redirect(reverse('lookup.app_summary', args=[app.pk])) if 'prioritize' in request.POST and not app.priority_review: prioritize_app(app, request.user) authors = (app.authors.filter(addonuser__role__in=(mkt.AUTHOR_ROLE_DEV, mkt.AUTHOR_ROLE_OWNER)) .order_by('display_name')) if app.premium and app.premium.price: price = app.premium.price else: price = None purchases, refunds = _app_purchases_and_refunds(app) provider_portals = get_payment_provider_portals(app=app) versions = None status_form = APIStatusForm(initial={ 'status': mkt.STATUS_CHOICES_API[app.status] }) version_status_forms = {} if app.is_packaged: versions = app.versions.all().order_by('-created') for v in versions: version_status_forms[v.pk] = APIFileStatusForm(initial={ 'status': mkt.STATUS_CHOICES_API[v.all_files[0].status] }) permissions = {} if app.latest_version: permissions = app.latest_version.manifest.get('permissions', {}) return render(request, 'lookup/app_summary.html', { 'abuse_reports': app.abuse_reports.count(), 'app': app, 'authors': authors, 'purchases': purchases, 'refunds': refunds, 'price': price, 'provider_portals': provider_portals, 'status_form': status_form, 'versions': versions, 'is_tarako': app.tags.filter(tag_text=QUEUE_TARAKO).exists(), 'version_status_forms': version_status_forms, 'permissions': permissions, 'promo_img_form': promo_img_form, })
def save(self, addon, commit=True): if (self.cleaned_data.get('DELETE') and 'upload_hash' not in self.changed_data and self.promo.id): self.promo.delete() elif self.promo and 'upload_hash' in self.changed_data: self.promo.delete() elif self.cleaned_data.get('upload_hash'): super(AdminSettingsForm, self).save(addon, True) updates = { 'vip_app': self.cleaned_data.get('vip_app'), } contact = self.cleaned_data.get('mozilla_contact') if contact is not None: updates['mozilla_contact'] = contact if (self.cleaned_data.get('priority_review') and not addon.priority_review): # addon.priority_review gets updated within prioritize_app(). prioritize_app(addon, self.request.user) else: updates['priority_review'] = self.cleaned_data.get( 'priority_review') addon.update(**updates) geodata = addon.geodata geodata.banner_regions = self.cleaned_data.get('banner_regions') geodata.banner_message = self.cleaned_data.get('banner_message') geodata.save() uses_flash = self.cleaned_data.get('flash') af = addon.get_latest_file() if af is not None: af.update(uses_flash=bool(uses_flash)) index_webapps.delay([addon.id]) return addon
def app_summary(request, addon_id): if unicode(addon_id).isdigit(): query = {'pk': addon_id} else: query = {'app_slug': addon_id} app = get_object_or_404(Webapp.with_deleted, **query) if request.FILES: promo_img_form = PromoImgForm(request.POST, request.FILES) else: promo_img_form = PromoImgForm() if 'promo_img' in request.FILES and promo_img_form.is_valid(): promo_img_form.save(app) messages.success( request, 'Promo image successfully uploaded.' ' You may have to refresh the page again to see it below.') return redirect(reverse('lookup.app_summary', args=[app.pk])) if 'prioritize' in request.POST and not app.priority_review: prioritize_app(app, request.user) authors = (app.authors.filter(addonuser__role__in=(mkt.AUTHOR_ROLE_DEV, mkt.AUTHOR_ROLE_OWNER)) .order_by('display_name')) if app.premium and app.premium.price: price = app.premium.price else: price = None purchases, refunds = _app_purchases_and_refunds(app) provider_portals = get_payment_provider_portals(app=app) versions = None status_form = APIStatusForm(initial={ 'status': mkt.STATUS_CHOICES_API[app.status] }) version_status_forms = {} if app.is_packaged: versions = app.versions.all().order_by('-created') for v in versions: version_status_forms[v.pk] = APIFileStatusForm(initial={ 'status': mkt.STATUS_CHOICES_API[v.all_files[0].status] }) permissions = {} if app.latest_version: permissions = app.latest_version.manifest.get('permissions', {}) return render(request, 'lookup/app_summary.html', { 'abuse_reports': app.abuse_reports.count(), 'app': app, 'authors': authors, 'purchases': purchases, 'refunds': refunds, 'price': price, 'provider_portals': provider_portals, 'status_form': status_form, 'versions': versions, 'is_tarako': app.tags.filter(tag_text=QUEUE_TARAKO).exists(), 'tarako_review': app.additionalreview_set.latest_for_queue(QUEUE_TARAKO), 'version_status_forms': version_status_forms, 'permissions': permissions, 'promo_img_form': promo_img_form, })