Changeset 230
- Timestamp:
- 03/09/10 18:09:09 (3 years ago)
- Location:
- trunk/clinicaltrials
- Files:
-
- 1 added
- 5 modified
-
assistance/admin.py (modified) (1 diff)
-
assistance/models.py (modified) (4 diffs)
-
polyglot/admin.py (added)
-
utilities.py (modified) (2 diffs)
-
vocabulary/admin.py (modified) (2 diffs)
-
vocabulary/models.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/clinicaltrials/assistance/admin.py
r165 r230 3 3 from utilities import safe_truncate 4 4 5 class FieldHelpAdmin(admin.ModelAdmin): 6 list_display = ('form','field','done','short_text') 5 from polyglot.admin import TranslationInline, TranslationAdmin 6 7 class FieldHelpTranslationInline(TranslationInline): 8 model = FieldHelpTranslation 9 10 class FieldHelpAdmin(TranslationAdmin): 11 list_display = ('form','field','short_text', 12 'translation_completed', 'missing_translations') 7 13 list_display_links = ('form','field') 8 14 search_fields = ('form','field') 9 15 list_filter = ('form',) 10 11 def done(self, obj): 12 return bool(obj.text.strip()) 13 done.boolean = True 14 16 inlines = [FieldHelpTranslationInline] 17 15 18 def short_text(self, obj): 16 return safe_truncate(obj.text, 80) 17 18 19 admin.site.register(Category) 20 admin.site.register(Question) 19 return safe_truncate(obj.text) 20 21 class CategoryTranslationInline(TranslationInline): 22 model = CategoryTranslation 23 24 class CategoryAdmin(TranslationAdmin): 25 inlines = [CategoryTranslationInline] 26 list_display = ('label', 27 'translation_completed', 'missing_translations') 28 29 class QuestionTranslationInline(TranslationInline): 30 model = QuestionTranslation 31 32 class QuestionAdmin(TranslationAdmin): 33 inlines = [QuestionTranslationInline] 34 list_display = ('title','short_text', 35 'translation_completed', 'missing_translations') 36 def short_text(self, obj): 37 return safe_truncate(obj.answer) 38 21 39 admin.site.register(FieldHelp, FieldHelpAdmin) 40 admin.site.register(Category, CategoryAdmin) 41 admin.site.register(Question, QuestionAdmin) -
trunk/clinicaltrials/assistance/models.py
r165 r230 1 1 from django.db import models 2 2 from django.utils.translation import ugettext_lazy as _ 3 from django.contrib.contenttypes import generic 4 5 from polyglot.models import Translation 6 3 7 from datetime import datetime 4 8 … … 8 12 9 13 label = models.CharField(_('Label'), max_length=255, unique=True) 10 14 translations = generic.GenericRelation('CategoryTranslation') 15 11 16 def __unicode__(self): 12 17 return self.label 13 18 19 class CategoryTranslation(Translation): 20 label = models.CharField(_('Label'), max_length=255, unique=True) 14 21 15 22 class Question(models.Model): 16 17 23 category = models.ForeignKey(Category) 18 title = models.TextField(_('Title'), max_length=2 000)19 answer = models.TextField(_('Answer'), max_length=20 00)24 title = models.TextField(_('Title'), max_length=255) 25 answer = models.TextField(_('Answer'), max_length=2048) 20 26 order = models.PositiveIntegerField(default=0) 21 27 created = models.DateTimeField(_('Date of Registration'), default=datetime.now, 22 28 editable=False) 29 translations = generic.GenericRelation('QuestionTranslation') 23 30 24 31 def save(self): … … 30 37 def __unicode__(self): 31 38 return self.title 32 39 40 class QuestionTranslation(Translation): 41 title = models.TextField(_('Title'), max_length=255) 42 answer = models.TextField(_('Answer'), max_length=2048) 43 33 44 class FieldHelp(models.Model): 34 45 class Meta: … … 36 47 unique_together = ('form', 'field') 37 48 ordering = ('id',) 38 49 39 50 form = models.CharField(max_length=255, db_index=True) 40 51 field = models.CharField(max_length=255, db_index=True) 41 text = models.TextField(max_length=2000, blank=True) 42 52 text = models.TextField(max_length=2048, blank=True) 53 example = models.TextField(max_length=255, blank=True) 54 55 translations = generic.GenericRelation('FieldHelpTranslation') 56 43 57 def __unicode__(self): 44 58 return self.text 45 59 60 class FieldHelpTranslation(Translation): 61 text = models.TextField(max_length=2048, blank=True) 62 example = models.TextField(max_length=255, blank=True) -
trunk/clinicaltrials/utilities.py
r150 r230 24 24 rows.append('<tr><th>%s</th><td>%s</td></tr>' % (k, request.POST[k])) 25 25 return HttpResponse(template % ('\n'.join(rows))) 26 26 27 27 28 28 ELLIPSIS = u'\u2026' 29 29 30 def safe_truncate(text, max_length , ellipsis=ELLIPSIS, encoding='utf-8',30 def safe_truncate(text, max_length=60, ellipsis=ELLIPSIS, encoding='utf-8', 31 31 raise_exc=False): 32 u'''truncate a string without breaking words 32 u'''truncate a string without breaking words 33 33 34 34 >>> safe_truncate(u'the time has come', 9, u'>') … … 75 75 return text[:pos] + ellipsis 76 76 77 77 78 78 if __name__=='__main__': 79 79 import doctest -
trunk/clinicaltrials/vocabulary/admin.py
r229 r230 1 #!/usr/bin/env python2 3 1 from django.contrib import admin 4 2 from django.contrib.contenttypes import generic … … 6 4 7 5 from vocabulary.models import * 6 from polyglot.admin import TranslationInline, TranslationAdmin 8 7 9 class VocabularyTranslationInline( generic.GenericStackedInline):8 class VocabularyTranslationInline(TranslationInline): 10 9 model = VocabularyTranslation 11 max_num = len(settings.TARGET_LANGUAGES)12 radio_fields = {'language': admin.HORIZONTAL}13 10 14 class SimpleVocabularyAdmin( admin.ModelAdmin):11 class SimpleVocabularyAdmin(TranslationAdmin): 15 12 list_display = ('label', 'description', 'translation_completed', 'missing_translations') 16 13 inlines = [VocabularyTranslationInline] 17 14 18 def translation_completed(self, obj): 19 return len(Translation.missing(obj)) == 0 20 translation_completed.boolean = True 21 22 class CountryCodeAdmin(SimpleVocabularyAdmin): 15 class CountryCodeAdmin(TranslationAdmin): 23 16 list_display = ('label', 'description', 'submission_language', 'translation_completed', 'missing_translations') 24 17 search_fields = ('label', 'description') 18 list_filter = ('submission_language',) 25 19 inlines = [VocabularyTranslationInline] 26 20 -
trunk/clinicaltrials/vocabulary/models.py
r229 r230 19 19 def __unicode__(self): 20 20 return self.label 21 22 def missing_translations(self):23 return ' '.join(sorted(Translation.missing(self)))24 21 25 22 @classmethod
