示例#1
0
 def test_personas_landing(self):
     """Show landing page if there are greater than 4 Personas."""
     for i in xrange(3):
         a = Addon(type=amo.ADDON_PERSONA)
         a.name = 'persona-%s' % i
         a.all_categories = []
         a.save()
         v = Version.objects.get(addon=Addon.objects.get(id=15679))
         v.addon = a
         v.pk = None
         v.save()
         p = Persona(addon_id=a.id, persona_id=i)
         p.save()
         a.persona = p
         a._current_version = v
         a.status = amo.STATUS_PUBLIC
         a.save()
     base = (Addon.objects.public().filter(type=amo.ADDON_PERSONA)
             .extra(select={'_app': amo.FIREFOX.id}))
     eq_(base.count(), 5)
     r = self.client.get(reverse('browse.personas'))
     self.assertTemplateUsed(r, 'browse/personas/category_landing.html')
示例#2
0
    def save(self, commit=False):
        from .tasks import create_persona_preview_image, save_persona_image
        # We ignore `commit`, since we need it to be `False` so we can save
        # the ManyToMany fields on our own.
        addon = super(NewPersonaForm, self).save(commit=False)
        addon.status = amo.STATUS_UNREVIEWED
        addon.type = amo.ADDON_PERSONA
        addon.save()
        addon._current_version = Version.objects.create(addon=addon,
                                                        version='0')
        addon.save()
        amo.log(amo.LOG.CREATE_ADDON, addon)
        log.debug('New persona %r uploaded' % addon)

        data = self.cleaned_data

        header = data['header_hash']
        footer = data['footer_hash']

        header = os.path.join(settings.TMP_PATH, 'persona_header', header)
        footer = os.path.join(settings.TMP_PATH, 'persona_footer', footer)
        dst = os.path.join(settings.PERSONAS_PATH, str(addon.id))

        # Save header, footer, and preview images.
        save_persona_image(src=header, dst=dst, img_basename='header.jpg')
        save_persona_image(src=footer, dst=dst, img_basename='footer.jpg')
        create_persona_preview_image(src=header, dst=dst,
                                     img_basename='preview.jpg',
                                     set_modified_on=[addon])

        # Save user info.
        user = self.request.amo_user
        AddonUser(addon=addon, user=user).save()

        p = Persona()
        p.persona_id = 0
        p.addon = addon
        p.header = 'header.jpg'
        p.footer = 'footer.jpg'
        if data['accentcolor']:
            p.accentcolor = data['accentcolor'].lstrip('#')
        if data['textcolor']:
            p.textcolor = data['textcolor'].lstrip('#')
        p.license_id = data['license']
        p.submit = datetime.now()
        p.author = user.name
        p.display_username = user.username
        p.save()

        # Save tags.
        for t in data['tags']:
            Tag(tag_text=t).save_tag(addon)

        # Save categories.
        tb_c = Category.objects.get(application=amo.THUNDERBIRD.id,
                                    name__id=data['category'].name_id)
        AddonCategory(addon=addon, category=data['category']).save()
        AddonCategory(addon=addon, category=tb_c).save()

        return addon
示例#3
0
    def save(self, commit=False):
        from addons.tasks import (create_persona_preview_images,
                                  save_persona_image)
        data = self.cleaned_data
        addon = Addon.objects.create(id=None, name=data['name'],
            slug=data['slug'], description=data['summary'],
            status=amo.STATUS_PENDING, type=amo.ADDON_PERSONA)
        addon._current_version = Version.objects.create(addon=addon,
                                                        version='0')
        addon.save()

        # Save header, footer, and preview images.
        try:
            header = data['header_hash']
            footer = data['footer_hash']
            header = os.path.join(settings.TMP_PATH, 'persona_header', header)
            footer = os.path.join(settings.TMP_PATH, 'persona_footer', footer)
            dst_root = os.path.join(settings.PERSONAS_PATH, str(addon.id))

            save_persona_image.delay(src=header,
                full_dst=os.path.join(dst_root, 'header.png'))
            save_persona_image.delay(src=footer,
                full_dst=os.path.join(dst_root, 'footer.png'))
            create_persona_preview_images.delay(src=header,
                full_dst=[os.path.join(dst_root, 'preview.png',
                          os.path.join(dst_root, 'icon.png'))],
                set_modified_on=[addon])
        except IOError:
            addon.delete()
            raise IOError

        # Save user info.
        user = self.request.amo_user
        AddonUser(addon=addon, user=user).save()

        # Create Persona instance.
        p = Persona()
        p.persona_id = 0
        p.addon = addon
        p.header = 'header'
        p.footer = 'footer'
        if data['accentcolor']:
            p.accentcolor = data['accentcolor'].lstrip('#')
        if data['textcolor']:
            p.textcolor = data['textcolor'].lstrip('#')
        p.license_id = data['license']
        p.submit = datetime.now()
        p.author = user.name
        p.display_username = user.username
        p.save()

        # Save categories.
        tb_c, created = Category.objects.get_or_create(
            application_id=amo.THUNDERBIRD.id,
            name__id=data['category'].name.id, type=amo.ADDON_PERSONA)
        AddonCategory(addon=addon, category=data['category']).save()
        AddonCategory(addon=addon, category=tb_c).save()

        return addon
示例#4
0
文件: forms.py 项目: magopian/olympia
    def save(self, commit=False):
        data = self.cleaned_data
        addon = Addon.objects.create(
            slug=data.get('slug'),
            status=amo.STATUS_PENDING, type=amo.ADDON_PERSONA)
        addon.name = {'en-US': data['name']}
        if data.get('description'):
            addon.description = data['description']
        addon._current_version = Version.objects.create(addon=addon,
                                                        version='0')
        addon.save()

        # Create Persona instance.
        p = Persona()
        p.persona_id = 0
        p.addon = addon
        p.header = 'header.png'
        if data['footer_hash']:
            p.footer = 'footer.png'
        if data['accentcolor']:
            p.accentcolor = data['accentcolor'].lstrip('#')
        if data['textcolor']:
            p.textcolor = data['textcolor'].lstrip('#')
        p.license = data['license']
        p.submit = datetime.now()
        user = self.request.amo_user
        p.author = user.username
        p.display_username = user.name
        p.save()

        # Save header, footer, and preview images.
        save_theme.delay(data['header_hash'], data['footer_hash'], addon)

        # Save user info.
        addon.addonuser_set.create(user=user, role=amo.AUTHOR_ROLE_OWNER)

        # Save tags.
        for t in data['tags']:
            Tag(tag_text=t).save_tag(addon)

        # Save categories.
        AddonCategory(addon=addon, category=data['category']).save()

        return addon
示例#5
0
文件: forms.py 项目: lissyx/zamboni
    def save(self, commit=False):
        data = self.cleaned_data
        addon = Addon.objects.create(slug=data.get('slug'),
                                     status=amo.STATUS_PENDING,
                                     type=amo.ADDON_PERSONA)
        addon.name = {'en-US': data['name']}
        if data.get('description'):
            addon.description = data['description']
        addon._current_version = Version.objects.create(addon=addon,
                                                        version='0')
        addon.save()

        # Create Persona instance.
        p = Persona()
        p.persona_id = 0
        p.addon = addon
        p.header = 'header.png'
        p.footer = 'footer.png'
        if data['accentcolor']:
            p.accentcolor = data['accentcolor'].lstrip('#')
        if data['textcolor']:
            p.textcolor = data['textcolor'].lstrip('#')
        p.license = data['license']
        p.submit = datetime.now()
        user = self.request.amo_user
        p.author = user.username
        p.display_username = user.name
        p.save()

        # Save header, footer, and preview images.
        save_theme.delay(data['header_hash'], data['footer_hash'], addon)

        # Save user info.
        addon.addonuser_set.create(user=user, role=amo.AUTHOR_ROLE_OWNER)

        # Save tags.
        for t in data['tags']:
            Tag(tag_text=t).save_tag(addon)

        # Save categories.
        AddonCategory(addon=addon, category=data['category']).save()

        return addon
示例#6
0
    def save(self, commit=False):
        from .tasks import create_persona_preview_image, save_persona_image
        # We ignore `commit`, since we need it to be `False` so we can save
        # the ManyToMany fields on our own.
        addon = super(NewPersonaForm, self).save(commit=False)
        addon.status = amo.STATUS_UNREVIEWED
        addon.type = amo.ADDON_PERSONA
        addon.save()
        addon._current_version = Version.objects.create(addon=addon,
                                                        version='0')
        addon.save()
        amo.log(amo.LOG.CREATE_ADDON, addon)
        log.debug('New persona %r uploaded' % addon)

        data = self.cleaned_data

        header = data['header_hash']
        footer = data['footer_hash']

        header = os.path.join(settings.TMP_PATH, 'persona_header', header)
        footer = os.path.join(settings.TMP_PATH, 'persona_footer', footer)
        dst = os.path.join(settings.PERSONAS_PATH, str(addon.id))

        # Save header, footer, and preview images.
        save_persona_image(src=header, dst=dst, img_basename='header.jpg')
        save_persona_image(src=footer, dst=dst, img_basename='footer.jpg')
        create_persona_preview_image(src=header,
                                     dst=dst,
                                     img_basename='preview.jpg',
                                     set_modified_on=[addon])

        # Save user info.
        user = self.request.amo_user
        AddonUser(addon=addon, user=user).save()

        p = Persona()
        p.persona_id = 0
        p.addon = addon
        p.header = 'header'
        p.footer = 'footer'
        if data['accentcolor']:
            p.accentcolor = data['accentcolor'].lstrip('#')
        if data['textcolor']:
            p.textcolor = data['textcolor'].lstrip('#')
        p.license_id = data['license']
        p.submit = datetime.now()
        p.author = user.name
        p.display_username = user.username
        p.save()

        # Save tags.
        for t in data['tags']:
            Tag(tag_text=t).save_tag(addon)

        # Save categories.
        tb_c = Category.objects.get(application=amo.THUNDERBIRD.id,
                                    name__id=data['category'].name_id)
        AddonCategory(addon=addon, category=data['category']).save()
        AddonCategory(addon=addon, category=tb_c).save()

        return addon
示例#7
0
 def test_image_urls(self):
     mypersona = Persona(id=1234, persona_id=9876)
     assert mypersona.thumb_url.endswith('/7/6/9876/preview.jpg')
     assert mypersona.preview_url.endswith('/7/6/9876/preview_large.jpg')
示例#8
0
 def test_update_url(self):
     p = Persona(id=1234, persona_id=9876)
     assert p.update_url.endswith('9876')
示例#9
0
    def save(self, commit=False):
        from addons.tasks import (create_persona_preview_images,
                                  save_persona_image)
        data = self.cleaned_data
        addon = Addon.objects.create(slug=data.get('slug'),
                                     status=amo.STATUS_PENDING,
                                     type=amo.ADDON_PERSONA)
        addon.name = {'en-US': data['name']}
        if data.get('summary'):
            addon.description = {'en-US': data['summary']}
        addon._current_version = Version.objects.create(addon=addon,
                                                        version='0')
        addon.save()

        # Save header, footer, and preview images.
        try:
            header = data['header_hash']
            footer = data['footer_hash']
            header = os.path.join(settings.TMP_PATH, 'persona_header', header)
            footer = os.path.join(settings.TMP_PATH, 'persona_footer', footer)
            dst_root = os.path.join(settings.ADDONS_PATH, str(addon.id))

            save_persona_image.delay(src=header,
                                     full_dst=os.path.join(
                                         dst_root, 'header.png'))
            save_persona_image.delay(src=footer,
                                     full_dst=os.path.join(
                                         dst_root, 'footer.png'))
            create_persona_preview_images.delay(
                src=header,
                full_dst=[
                    os.path.join(dst_root, 'preview.png'),
                    os.path.join(dst_root, 'icon.png')
                ],
                set_modified_on=[addon])
        except IOError:
            addon.delete()
            raise

        # Save user info.
        user = self.request.amo_user
        AddonUser(addon=addon, user=user).save()

        # Create Persona instance.
        p = Persona()
        p.persona_id = 0
        p.addon = addon
        p.header = 'header.png'
        p.footer = 'footer.png'
        if data['accentcolor']:
            p.accentcolor = data['accentcolor'].lstrip('#')
        if data['textcolor']:
            p.textcolor = data['textcolor'].lstrip('#')
        p.license = data['license']
        p.submit = datetime.now()
        p.author = user.name
        p.display_username = user.username
        p.save()

        # Save tags.
        for t in data['tags']:
            Tag(tag_text=t).save_tag(addon)

        # Save categories.
        AddonCategory(addon=addon, category=data['category']).save()

        return addon
示例#10
0
    def save(self, commit=False):
        from addons.tasks import create_persona_preview_image, save_persona_image

        data = self.cleaned_data
        addon = Addon.objects.create(
            id=None,
            name=data["name"],
            slug=data["slug"],
            description=data["summary"],
            status=amo.STATUS_PENDING,
            type=amo.ADDON_PERSONA,
        )
        addon._current_version = Version.objects.create(addon=addon, version="0")
        addon.save()

        # Save header, footer, and preview images.
        try:
            header = data["header_hash"]
            footer = data["footer_hash"]
            header = os.path.join(settings.TMP_PATH, "persona_header", header)
            footer = os.path.join(settings.TMP_PATH, "persona_footer", footer)
            dst = os.path.join(settings.PERSONAS_PATH, str(addon.id))
            save_persona_image(src=header, dst=dst, img_basename="header.jpg")
            save_persona_image(src=footer, dst=dst, img_basename="footer.jpg")
            create_persona_preview_image(src=header, dst=dst, img_basename="preview.jpg", set_modified_on=[addon])
        except IOError:
            addon.delete()
            raise IOError

        # Save user info.
        user = self.request.amo_user
        AddonUser(addon=addon, user=user).save()

        # Create Persona instance.
        p = Persona()
        p.persona_id = 0
        p.addon = addon
        p.header = "header"
        p.footer = "footer"
        if data["accentcolor"]:
            p.accentcolor = data["accentcolor"].lstrip("#")
        if data["textcolor"]:
            p.textcolor = data["textcolor"].lstrip("#")
        p.license_id = data["license"]
        p.submit = datetime.now()
        p.author = user.name
        p.display_username = user.username
        p.save()

        # Save categories.
        tb_c, created = Category.objects.get_or_create(
            application_id=amo.THUNDERBIRD.id, name__id=data["category"].name.id, type=amo.ADDON_PERSONA
        )
        AddonCategory(addon=addon, category=data["category"]).save()
        AddonCategory(addon=addon, category=tb_c).save()

        return addon
示例#11
0
    def save(self, commit=False):
        from addons.tasks import (create_persona_preview_image,
                                  save_persona_image)
        data = self.cleaned_data
        addon = Addon.objects.create(id=None,
                                     name=data['name'],
                                     slug=data['slug'],
                                     description=data['summary'],
                                     status=amo.STATUS_PENDING,
                                     type=amo.ADDON_PERSONA)
        addon._current_version = Version.objects.create(addon=addon,
                                                        version='0')
        addon.save()

        # Save header, footer, and preview images.
        try:
            header = data['header_hash']
            footer = data['footer_hash']
            header = os.path.join(settings.TMP_PATH, 'persona_header', header)
            footer = os.path.join(settings.TMP_PATH, 'persona_footer', footer)
            dst = os.path.join(settings.PERSONAS_PATH, str(addon.id))
            save_persona_image(src=header, dst=dst, img_basename='header.jpg')
            save_persona_image(src=footer, dst=dst, img_basename='footer.jpg')
            create_persona_preview_image(src=header,
                                         dst=dst,
                                         img_basename='preview.jpg',
                                         set_modified_on=[addon])
        except IOError:
            addon.delete()
            raise IOError

        # Save user info.
        user = self.request.amo_user
        AddonUser(addon=addon, user=user).save()

        # Create Persona instance.
        p = Persona()
        p.persona_id = 0
        p.addon = addon
        p.header = 'header'
        p.footer = 'footer'
        if data['accentcolor']:
            p.accentcolor = data['accentcolor'].lstrip('#')
        if data['textcolor']:
            p.textcolor = data['textcolor'].lstrip('#')
        p.license_id = data['license']
        p.submit = datetime.now()
        p.author = user.name
        p.display_username = user.username
        p.save()

        # Save categories.
        tb_c, created = Category.objects.get_or_create(
            application_id=amo.THUNDERBIRD.id,
            name__id=data['category'].name.id,
            type=amo.ADDON_PERSONA)
        AddonCategory(addon=addon, category=data['category']).save()
        AddonCategory(addon=addon, category=tb_c).save()

        return addon
示例#12
0
    def save(self, commit=False):
        from addons.tasks import (create_persona_preview_images,
                                  save_persona_image)
        data = self.cleaned_data
        addon = Addon.objects.create(slug=data.get('slug'),
            status=amo.STATUS_PENDING, type=amo.ADDON_PERSONA)
        addon.name = {'en-US': data['name']}
        if data.get('summary'):
            addon.description = {'en-US': data['summary']}
        addon._current_version = Version.objects.create(addon=addon,
                                                        version='0')
        addon.save()

        # Save header, footer, and preview images.
        try:
            header = data['header_hash']
            footer = data['footer_hash']
            header = os.path.join(settings.TMP_PATH, 'persona_header', header)
            footer = os.path.join(settings.TMP_PATH, 'persona_footer', footer)
            dst_root = os.path.join(settings.ADDONS_PATH, str(addon.id))

            save_persona_image.delay(src=header,
                full_dst=os.path.join(dst_root, 'header.png'))
            save_persona_image.delay(src=footer,
                full_dst=os.path.join(dst_root, 'footer.png'))
            create_persona_preview_images.delay(src=header,
                full_dst=[os.path.join(dst_root, 'preview.png'),
                          os.path.join(dst_root, 'icon.png')],
                set_modified_on=[addon])
        except IOError:
            addon.delete()
            raise

        # Save user info.
        user = self.request.amo_user
        addon.addonuser_set.create(user=user, role=amo.AUTHOR_ROLE_OWNER)

        # Create Persona instance.
        p = Persona()
        p.persona_id = 0
        p.addon = addon
        p.header = 'header.png'
        p.footer = 'footer.png'
        if data['accentcolor']:
            p.accentcolor = data['accentcolor'].lstrip('#')
        if data['textcolor']:
            p.textcolor = data['textcolor'].lstrip('#')
        p.license = data['license']
        p.submit = datetime.now()
        p.author = user.username
        p.display_username = user.name
        p.save()

        # Save tags.
        for t in data['tags']:
            Tag(tag_text=t).save_tag(addon)

        # Save categories.
        AddonCategory(addon=addon, category=data['category']).save()

        return addon