Removed unused code, cleaned up field names

This commit is contained in:
Oscar Vilaplana 2013-05-25 15:20:01 +02:00
parent ff55b71b83
commit f85d891238
4 changed files with 16 additions and 25 deletions

View File

@ -72,18 +72,6 @@ def readable_date_formats(formats):
return humanize_strptime(format) return humanize_strptime(format)
def humanize_form_fields(form):
"""Return a humanized description of all the fields in a form.
:param form: A Django form.
:return: A dictionary of {field_label: humanized description}
"""
fields = SortedDict([(name, humanize_field(field))
for name, field in form.fields.iteritems()])
return fields
def readable_time_formats(formats): def readable_time_formats(formats):
format = ', '.join(formats).replace(ISO_8601, 'hh:mm[:ss[.uuuuuu]]') format = ', '.join(formats).replace(ISO_8601, 'hh:mm[:ss[.uuuuuu]]')
return humanize_strptime(format) return humanize_strptime(format)
@ -204,9 +192,10 @@ class Field(object):
@property @property
def humanized(self): def humanized(self):
humanized = { humanized = {
'type': self.type_name,
'required': getattr(self, 'required', False), 'required': getattr(self, 'required', False),
} }
if self.type_name is not None:
humanized['type'] = self.type_name.replace('Field', '')
optional_attrs = ['read_only', 'help_text', 'label', optional_attrs = ['read_only', 'help_text', 'label',
'min_length', 'max_length'] 'min_length', 'max_length']
for attr in optional_attrs: for attr in optional_attrs:

View File

@ -8,14 +8,13 @@ from decimal import Decimal
from uuid import uuid4 from uuid import uuid4
import datetime import datetime
from django import forms
from django.core import validators from django.core import validators
from django.db import models from django.db import models
from django.test import TestCase from django.test import TestCase
from django.utils.datastructures import SortedDict from django.utils.datastructures import SortedDict
from rest_framework import serializers from rest_framework import serializers
from rest_framework.fields import Field, CharField from rest_framework.fields import Field, CharField, IntegerField
from rest_framework.serializers import Serializer from rest_framework.serializers import Serializer
from rest_framework.tests.models import RESTFrameworkModel from rest_framework.tests.models import RESTFrameworkModel
@ -827,16 +826,21 @@ class URLFieldTests(TestCase):
class HumanizedField(TestCase): class HumanizedField(TestCase):
def setUp(self): def setUp(self):
self.required_field = Field() self.required_field = Field()
self.required_field.type_name = 'IntegerField'
self.required_field.label = uuid4().hex self.required_field.label = uuid4().hex
self.required_field.required = True self.required_field.required = True
self.optional_field = Field() self.optional_field = Field()
self.optional_field.type_name = 'CharField'
self.optional_field.label = uuid4().hex self.optional_field.label = uuid4().hex
self.optional_field.required = False self.optional_field.required = False
self.integer_field = IntegerField()
self.char_field = CharField()
def test_type(self): def test_type(self):
for field in (self.required_field, self.optional_field): self.assertEqual(self.char_field.humanized['type'], 'Char')
self.assertEqual(field.humanized['type'], field.type_name) self.assertEqual(self.integer_field.humanized['type'], 'Integer')
def test_required(self): def test_required(self):
self.assertEqual(self.required_field.humanized['required'], True) self.assertEqual(self.required_field.humanized['required'], True)
@ -863,11 +867,11 @@ class HumanizedSerializer(TestCase):
expected = { expected = {
'field1': {u'required': True, 'field1': {u'required': True,
u'max_length': 3, u'max_length': 3,
u'type': u'CharField', u'type': u'Char',
u'read_only': False}, u'read_only': False},
'field2': {u'required': False, 'field2': {u'required': False,
u'max_length': 10, u'max_length': 10,
u'type': u'CharField', u'type': u'Char',
u'read_only': False}} u'read_only': False}}
self.assertEqual(set(expected.keys()), set(humanized.keys())) self.assertEqual(set(expected.keys()), set(humanized.keys()))
for k, v in humanized.iteritems(): for k, v in humanized.iteritems():

View File

@ -130,12 +130,12 @@ class TestRootView(TestCase):
'max_length': 100, 'max_length': 100,
'read_only': False, 'read_only': False,
'required': True, 'required': True,
'type': 'CharField', 'type': 'Char',
}, },
'id': { 'id': {
'read_only': True, 'read_only': True,
'required': False, 'required': False,
'type': 'IntegerField', 'type': 'Integer',
}, },
} }
self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.status_code, status.HTTP_200_OK)
@ -264,12 +264,12 @@ class TestInstanceView(TestCase):
'max_length': 100, 'max_length': 100,
'read_only': False, 'read_only': False,
'required': True, 'required': True,
'type': 'CharField', 'type': 'Char',
}, },
'id': { 'id': {
'read_only': True, 'read_only': True,
'required': False, 'required': False,
'type': 'IntegerField', 'type': 'Integer',
}, },
} }
self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.status_code, status.HTTP_200_OK)

View File

@ -9,7 +9,6 @@ from django.views.decorators.csrf import csrf_exempt
from rest_framework import status, exceptions from rest_framework import status, exceptions
from rest_framework.compat import View from rest_framework.compat import View
from rest_framework.fields import humanize_form_fields
from rest_framework.request import clone_request, Request from rest_framework.request import clone_request, Request
from rest_framework.response import Response from rest_framework.response import Response
from rest_framework.settings import api_settings from rest_framework.settings import api_settings
@ -62,7 +61,6 @@ class APIView(View):
'parses': [parser.media_type for parser in self.parser_classes], 'parses': [parser.media_type for parser in self.parser_classes],
} }
content['actions'] = self.action_metadata(request) content['actions'] = self.action_metadata(request)
return content return content
def action_metadata(self, request): def action_metadata(self, request):