Exemplo n.º 1
0
    def test_get_profile_configs(self):
        c = get_profile_configs('simple1')
        rc = dju_settings.DJU_IMG_UPLOAD_PROFILES['simple1']
        self.assertEqual(c['PATH'], rc['PATH'])
        self.assertEqual(c['MAX_SIZE'], rc['MAX_SIZE'])
        self.assertEqual(len(c['VARIANTS']), len(rc['VARIANTS']))
        for i in xrange(len(rc['VARIANTS'])):
            for k in rc['VARIANTS'][i]:
                self.assertEqual(rc['VARIANTS'][i][k], c['VARIANTS'][i][k])

        self.assertEqual(get_profile_configs('default'), dju_settings.DJU_IMG_UPLOAD_PROFILE_DEFAULT)

        with self.assertRaises(ValueError):
            get_profile_configs('none')
Exemplo n.º 2
0
    def test_get_profile_configs(self):
        c = get_profile_configs('simple1')
        rc = dju_settings.DJU_IMG_UPLOAD_PROFILES['simple1']
        self.assertEqual(c['PATH'], rc['PATH'])
        self.assertEqual(c['MAX_SIZE'], rc['MAX_SIZE'])
        self.assertEqual(len(c['VARIANTS']), len(rc['VARIANTS']))
        for i in xrange(len(rc['VARIANTS'])):
            for k in rc['VARIANTS'][i]:
                self.assertEqual(rc['VARIANTS'][i][k], c['VARIANTS'][i][k])

        self.assertEqual(get_profile_configs('default'),
                         dju_settings.DJU_IMG_UPLOAD_PROFILE_DEFAULT)

        with self.assertRaises(ValueError):
            get_profile_configs('none')
Exemplo n.º 3
0
def upload_image(request):
    """
    Вюха, яка зберігає завантажений файл.
    Структура запиту:
        FILES
            images[]: файли зображеннь
        POST DATA
            profile: назва профілю (для визначення налаштувань збреження) (опціонально)
            label: додаток до назви файлу при збереженні (опціонально)
    Структура відповіді:
        Тип відповіді: JSON
        {
            'uploaded': [
                {
                    'url': 'повний url до головного файла',
                    'rel_url': 'відносний від MEDIA url головного файла',
                    'img_id': 'ідентифікатор для збереження в БД',  // 'profilename:abcdef_abcd_label.png',
                    'variants': {
                        'variant label': {
                            'url': 'повний url до варіанта',
                            'rel_url': 'відносний від MEDIA url головного файла'
                        },
                        ...
                    }
                },
                ...
            ],
            'errors': ['error message', ...]
        }
    """
    if request.method != 'POST':
        return HttpResponseNotAllowed(('POST',))
    result = {'uploaded': [], 'errors': []}
    files = request.FILES.getlist('images[]')
    if not files:
        result['errors'].append(unicode(ERROR_MESSAGES['no_uploaded_files']))
        return send_json(result)
    try:
        profile = request.POST.get('profile', 'default')
        conf = get_profile_configs(profile)
    except ValueError, e:
        result['errors'].append(unicode(e))
        return send_json(result)
Exemplo n.º 4
0
def upload_image(request):
    """
    Вюха, яка зберігає завантажений файл.
    Структура запиту:
        FILES
            images[]: файли зображеннь
        POST DATA
            profile: назва профілю (для визначення налаштувань збреження) (опціонально)
            label: додаток до назви файлу при збереженні (опціонально)
    Структура відповіді:
        Тип відповіді: JSON
        {
            'uploaded': [
                {
                    'url': 'повний url до головного файла',
                    'rel_url': 'відносний від MEDIA url головного файла',
                    'img_id': 'ідентифікатор для збереження в БД',  // 'profilename:abcdef_abcd_label.png',
                    'variants': {
                        'variant label': {
                            'url': 'повний url до варіанта',
                            'rel_url': 'відносний від MEDIA url головного файла'
                        },
                        ...
                    }
                },
                ...
            ],
            'errors': ['error message', ...]
        }
    """
    if request.method != "POST":
        return HttpResponseNotAllowed(("POST",))
    result = {"uploaded": [], "errors": []}
    files = request.FILES.getlist("images[]")
    if not files:
        result["errors"].append(unicode(ERROR_MESSAGES["no_uploaded_files"]))
        return send_json(result)
    try:
        profile = request.POST.get("profile", "default")
        conf = get_profile_configs(profile)
    except ValueError, e:
        result["errors"].append(unicode(e))
        return send_json(result)