From 980d4e6444a2f91171d9751b20efb2bd9438e97a Mon Sep 17 00:00:00 2001 From: Ole Laursen Date: Tue, 24 Jan 2012 17:17:24 +0000 Subject: [PATCH] Move new schema models from redesign/ to ietf/ - Legacy-Id: 3855 --- ietf/announcements/models.py | 4 +- ietf/announcements/tests.py | 4 +- ietf/announcements/views.py | 4 +- {redesign => ietf}/doc/__init__.py | 0 {redesign => ietf}/doc/admin.py | 6 +- {redesign => ietf}/doc/models.py | 8 +- {redesign => ietf}/doc/proxy.py | 10 +- {redesign => ietf}/doc/utils.py | 2 +- {redesign => ietf}/group/__init__.py | 0 {redesign => ietf}/group/admin.py | 0 {redesign => ietf}/group/models.py | 4 +- {redesign => ietf}/group/proxy.py | 6 +- {redesign => ietf}/group/utils.py | 2 +- ietf/idindex/views.py | 2 +- ietf/idrfc/expire.py | 6 +- ietf/idrfc/idrfc_wrapper.py | 4 +- ietf/idrfc/lastcall.py | 4 +- ietf/idrfc/mails.py | 4 +- ietf/idrfc/mirror_rfc_editor_queue.py | 10 +- ietf/idrfc/mirror_rfc_index.py | 18 +-- ietf/idrfc/models.py | 2 +- ietf/idrfc/templatetags/ballot_icon.py | 2 +- ietf/idrfc/testsREDESIGN.py | 8 +- ietf/idrfc/utils.py | 4 +- ietf/idrfc/views_ballot.py | 8 +- ietf/idrfc/views_doc.py | 4 +- ietf/idrfc/views_edit.py | 6 +- ietf/idrfc/views_search.py | 6 +- ietf/idtracker/models.py | 8 +- ietf/idtracker/templatetags/ietf_filters.py | 4 +- ietf/iesg/feeds.py | 2 +- ietf/iesg/tests.py | 10 +- ietf/iesg/views.py | 8 +- ietf/ietfauth/decorators.py | 4 +- ietf/ietfauth/forms.py | 2 +- ietf/ietfauth/models.py | 2 +- ietf/ietfauth/views.py | 4 +- ietf/ietfworkflows/accounts.py | 4 +- ietf/ietfworkflows/forms.py | 20 +-- ietf/ietfworkflows/models.py | 2 +- ietf/ietfworkflows/tests.py | 10 +- ietf/ietfworkflows/utils.py | 10 +- ietf/ietfworkflows/views.py | 8 +- ietf/ipr/models.py | 8 +- ietf/ipr/new.py | 8 +- ietf/ipr/related.py | 4 +- ietf/ipr/search.py | 12 +- ietf/liaisons/accountsREDESIGN.py | 6 +- ietf/liaisons/feeds.py | 2 +- ietf/liaisons/formsREDESIGN.py | 6 +- ietf/liaisons/mails.py | 2 +- .../commands/remind_update_sdo_list.py | 2 +- ietf/liaisons/models.py | 8 +- ietf/liaisons/proxy.py | 4 +- ietf/liaisons/tests.py | 4 +- ietf/liaisons/utilsREDESIGN.py | 10 +- ietf/meeting/models.py | 8 +- ietf/meeting/proxy.py | 4 +- ietf/meeting/views.py | 6 +- {redesign => ietf}/name/__init__.py | 0 {redesign => ietf}/name/admin.py | 0 {redesign => ietf}/name/fixtures/names.xml | 0 {redesign => ietf}/name/generate_fixtures.py | 12 +- {redesign => ietf}/name/models.py | 0 {redesign => ietf}/name/proxy.py | 10 +- {redesign => ietf}/name/utils.py | 0 {redesign => ietf}/person/__init__.py | 0 {redesign => ietf}/person/admin.py | 0 {redesign => ietf}/person/models.py | 2 +- {redesign => ietf}/person/name.py | 0 {redesign => ietf}/person/proxy.py | 2 +- ietf/proceedings/feeds.py | 2 +- ietf/settings.py | 9 +- ietf/submit/tests.py | 6 +- ietf/submit/utils.py | 6 +- .../proxy_utils.py => ietf/utils/proxy.py | 7 +- ietf/utils/test_data.py | 10 +- ietf/wgchairs/accounts.py | 2 +- ietf/wgchairs/forms.py | 12 +- ietf/wgchairs/models.py | 4 +- ietf/wgchairs/tests.py | 10 +- ietf/wgchairs/views.py | 12 +- ietf/wgcharter/feeds.py | 2 +- ietf/wgcharter/mails.py | 4 +- ietf/wgcharter/templatetags/wg_ballot_icon.py | 8 +- ietf/wgcharter/tests.py | 10 +- ietf/wgcharter/urls.py | 2 +- ietf/wgcharter/utils.py | 6 +- ietf/wgcharter/views.py | 6 +- ietf/wgcharter/views_ballot.py | 12 +- ietf/wgcharter/views_edit.py | 10 +- ietf/wgcharter/views_search.py | 10 +- ietf/wgcharter/views_submit.py | 6 +- ietf/wginfo/views.py | 10 +- redesign/importing/import-announcements.py | 8 +- redesign/importing/import-docs.py | 12 +- redesign/importing/import-groups.py | 14 +- redesign/importing/import-ipr.py | 2 +- redesign/importing/import-liaison.py | 10 +- redesign/importing/import-meetings.py | 10 +- redesign/importing/import-persons.py | 4 +- redesign/importing/import-roles.py | 10 +- redesign/importing/import-states.py | 2 +- redesign/importing/utils.py | 2 +- redesign/unaccent.py | 144 ------------------ redesign/util.py | 45 ------ 106 files changed, 300 insertions(+), 485 deletions(-) rename {redesign => ietf}/doc/__init__.py (100%) rename {redesign => ietf}/doc/admin.py (96%) rename {redesign => ietf}/doc/models.py (98%) rename {redesign => ietf}/doc/proxy.py (99%) rename {redesign => ietf}/doc/utils.py (98%) rename {redesign => ietf}/group/__init__.py (100%) rename {redesign => ietf}/group/admin.py (100%) rename {redesign => ietf}/group/models.py (98%) rename {redesign => ietf}/group/proxy.py (98%) rename {redesign => ietf}/group/utils.py (96%) rename {redesign => ietf}/name/__init__.py (100%) rename {redesign => ietf}/name/admin.py (100%) rename {redesign => ietf}/name/fixtures/names.xml (100%) rename {redesign => ietf}/name/generate_fixtures.py (78%) rename {redesign => ietf}/name/models.py (100%) rename {redesign => ietf}/name/proxy.py (85%) rename {redesign => ietf}/name/utils.py (100%) rename {redesign => ietf}/person/__init__.py (100%) rename {redesign => ietf}/person/admin.py (100%) rename {redesign => ietf}/person/models.py (98%) rename {redesign => ietf}/person/name.py (100%) rename {redesign => ietf}/person/proxy.py (97%) rename redesign/proxy_utils.py => ietf/utils/proxy.py (97%) delete mode 100644 redesign/unaccent.py delete mode 100644 redesign/util.py diff --git a/ietf/announcements/models.py b/ietf/announcements/models.py index 4a05d962b..460695018 100644 --- a/ietf/announcements/models.py +++ b/ietf/announcements/models.py @@ -91,8 +91,8 @@ class ScheduledAnnouncement(models.Model): if settings.USE_DB_REDESIGN_PROXY_CLASSES or hasattr(settings, "IMPORTING_FROM_OLD_SCHEMA"): import datetime - from person.models import Email, Person - from group.models import Group + from ietf.person.models import Email, Person + from ietf.group.models import Group class Message(models.Model): time = models.DateTimeField(default=datetime.datetime.now) diff --git a/ietf/announcements/tests.py b/ietf/announcements/tests.py index 6da201890..fbc23b921 100644 --- a/ietf/announcements/tests.py +++ b/ietf/announcements/tests.py @@ -68,7 +68,7 @@ class SendScheduledAnnouncementsTestCaseREDESIGN(django.test.TestCase): def test_send_plain_announcement(self): from ietf.announcements.models import Message, SendQueue - from redesign.person.models import Person + from ietf.person.models import Person make_test_data() @@ -100,7 +100,7 @@ class SendScheduledAnnouncementsTestCaseREDESIGN(django.test.TestCase): def test_send_mime_announcement(self): from ietf.announcements.models import Message, SendQueue - from redesign.person.models import Person + from ietf.person.models import Person make_test_data() diff --git a/ietf/announcements/views.py b/ietf/announcements/views.py index 0ecf13079..8decfcc4c 100644 --- a/ietf/announcements/views.py +++ b/ietf/announcements/views.py @@ -35,7 +35,7 @@ def nomcom(request): 'regimes' : regimes }) def nomcomREDESIGN(request): - from group.models import Group, GroupEvent + from ietf.group.models import Group, GroupEvent from ietf.announcements.models import Message address_re = re.compile("<.*>") @@ -74,7 +74,7 @@ if settings.USE_DB_REDESIGN_PROXY_CLASSES: def message_detail(request, object_id, queryset): - from group.models import Group + from ietf.group.models import Group from ietf.announcements.models import Message # restrict to nomcom announcements for the time being diff --git a/redesign/doc/__init__.py b/ietf/doc/__init__.py similarity index 100% rename from redesign/doc/__init__.py rename to ietf/doc/__init__.py diff --git a/redesign/doc/admin.py b/ietf/doc/admin.py similarity index 96% rename from redesign/doc/admin.py rename to ietf/doc/admin.py index ee3dd39b8..4ade8a8fa 100644 --- a/redesign/doc/admin.py +++ b/ietf/doc/admin.py @@ -3,8 +3,9 @@ from django.contrib import admin from django import forms from models import * -from redesign.person.models import * -from redesign.doc.utils import get_state_types +from ietf.person.models import * +from ietf.doc.utils import get_state_types +from ietf.utils.admin import admin_link class StateTypeAdmin(admin.ModelAdmin): list_display = ["slug", "label"] @@ -105,6 +106,7 @@ class DocAliasAdmin(admin.ModelAdmin): list_display = [ 'name', 'document_link', ] search_fields = [ 'name', 'document__name', ] raw_id_fields = ['document'] + document_link = admin_link("document") admin.site.register(DocAlias, DocAliasAdmin) diff --git a/redesign/doc/models.py b/ietf/doc/models.py similarity index 98% rename from redesign/doc/models.py rename to ietf/doc/models.py index 66a66181c..83b770d8d 100644 --- a/redesign/doc/models.py +++ b/ietf/doc/models.py @@ -4,10 +4,9 @@ from django.db import models from django.core.urlresolvers import reverse as urlreverse from django.conf import settings -from redesign.group.models import * -from redesign.name.models import * -from redesign.person.models import Email, Person -from redesign.util import admin_link +from ietf.group.models import * +from ietf.name.models import * +from ietf.person.models import Email, Person import datetime, os @@ -252,7 +251,6 @@ class DocAlias(models.Model): name = models.CharField(max_length=255, db_index=True) def __unicode__(self): return "%s-->%s" % (self.name, self.document.name) - document_link = admin_link("document") class Meta: verbose_name = "document alias" verbose_name_plural = "document aliases" diff --git a/redesign/doc/proxy.py b/ietf/doc/proxy.py similarity index 99% rename from redesign/doc/proxy.py rename to ietf/doc/proxy.py index 998451193..d21c82906 100644 --- a/redesign/doc/proxy.py +++ b/ietf/doc/proxy.py @@ -1,7 +1,7 @@ -from redesign.doc.models import * -from redesign.person.models import Email -from redesign.proxy_utils import TranslatingManager -from redesign.name.proxy import * +from ietf.doc.models import * +from ietf.person.models import Email +from ietf.utils.proxy import TranslatingManager +from ietf.name.proxy import * from django.conf import settings @@ -573,7 +573,7 @@ class InternetDraft(Document): def active_positions(self): """Returns a list of dicts, with AD and Position tuples""" from person.proxy import IESGLogin as IESGLoginProxy - from redesign.doc.utils import active_ballot_positions + from ietf.doc.utils import active_ballot_positions res = [] for ad, pos in active_ballot_positions(self).iteritems(): diff --git a/redesign/doc/utils.py b/ietf/doc/utils.py similarity index 98% rename from redesign/doc/utils.py rename to ietf/doc/utils.py index 0ad01ad1e..7a30959bd 100644 --- a/redesign/doc/utils.py +++ b/ietf/doc/utils.py @@ -1,4 +1,4 @@ -from redesign.doc.models import * +from ietf.doc.models import * def get_state_types(doc): res = [] diff --git a/redesign/group/__init__.py b/ietf/group/__init__.py similarity index 100% rename from redesign/group/__init__.py rename to ietf/group/__init__.py diff --git a/redesign/group/admin.py b/ietf/group/admin.py similarity index 100% rename from redesign/group/admin.py rename to ietf/group/admin.py diff --git a/redesign/group/models.py b/ietf/group/models.py similarity index 98% rename from redesign/group/models.py rename to ietf/group/models.py index 89d59fc97..5b8c62ca8 100644 --- a/redesign/group/models.py +++ b/ietf/group/models.py @@ -1,8 +1,8 @@ # Copyright The IETF Trust 2007, All Rights Reserved from django.db import models -from redesign.name.models import * -from redesign.person.models import Email, Person +from ietf.name.models import * +from ietf.person.models import Email, Person import datetime diff --git a/redesign/group/proxy.py b/ietf/group/proxy.py similarity index 98% rename from redesign/group/proxy.py rename to ietf/group/proxy.py index 44bd42542..595c6a6ea 100644 --- a/redesign/group/proxy.py +++ b/ietf/group/proxy.py @@ -1,7 +1,7 @@ -from redesign.proxy_utils import TranslatingManager, proxy_role_email +from ietf.utils.proxy import TranslatingManager, proxy_role_email from models import * -from doc.models import Document # for charter text +from ietf.doc.models import Document # for charter text from ietf.wgcharter.utils import get_charter_for_revision, approved_revision class Acronym(Group): @@ -176,7 +176,7 @@ class IETFWG(Group): return self.group_acronym.acronym def active_drafts(self): - from redesign.doc.proxy import InternetDraft + from ietf.doc.proxy import InternetDraft return InternetDraft.objects.filter(group=self, states__type="draft", states__slug="active") # def choices(): # return [(wg.group_acronym_id, wg.group_acronym.acronym) for wg in IETFWG.objects.all().filter(group_type__type='WG').select_related().order_by('acronym.acronym')] diff --git a/redesign/group/utils.py b/ietf/group/utils.py similarity index 96% rename from redesign/group/utils.py rename to ietf/group/utils.py index a8d0c2ca2..48ff289e3 100644 --- a/redesign/group/utils.py +++ b/ietf/group/utils.py @@ -1,4 +1,4 @@ -from redesign.group.models import * +from ietf.group.models import * def save_group_in_history(group): def get_model_fields_as_dict(obj): diff --git a/ietf/idindex/views.py b/ietf/idindex/views.py index 30b75d834..8ffc649b3 100644 --- a/ietf/idindex/views.py +++ b/ietf/idindex/views.py @@ -169,7 +169,7 @@ def redirect_filename(request, filename): def wgdocs_redirect_id(request, id): if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from group.models import Group + from ietf.group.models import Group group = get_object_or_404(Group, id=id) return HttpResponsePermanentRedirect("/wg/%s/" % group.acronym) diff --git a/ietf/idrfc/expire.py b/ietf/idrfc/expire.py index 636d6fe2d..ff40dfad1 100644 --- a/ietf/idrfc/expire.py +++ b/ietf/idrfc/expire.py @@ -9,9 +9,9 @@ import datetime, os, shutil, glob, re, itertools from ietf.idtracker.models import InternetDraft, IDDates, IDStatus, IDState, DocumentComment, IDAuthor, WGChair from ietf.utils.mail import send_mail, send_mail_subj from ietf.idrfc.utils import log_state_changed, add_document_comment -from redesign.doc.models import Document, DocEvent, save_document_in_history, State -from redesign.name.models import DocTagName -from redesign.person.models import Person, Email +from ietf.doc.models import Document, DocEvent, save_document_in_history, State +from ietf.name.models import DocTagName +from ietf.person.models import Person, Email from ietf.meeting.models import Meeting def in_id_expire_freeze(when=None): diff --git a/ietf/idrfc/idrfc_wrapper.py b/ietf/idrfc/idrfc_wrapper.py index caba95902..53a18a571 100644 --- a/ietf/idrfc/idrfc_wrapper.py +++ b/ietf/idrfc/idrfc_wrapper.py @@ -723,8 +723,8 @@ class BallotWrapper: self.old_init() return - from redesign.person.models import Person - from redesign.doc.models import BallotPositionDocEvent, NewRevisionDocEvent + from ietf.person.models import Person + from ietf.doc.models import BallotPositionDocEvent, NewRevisionDocEvent active_ads = Person.objects.filter(role__name="ad", role__group__state="active").distinct() diff --git a/ietf/idrfc/lastcall.py b/ietf/idrfc/lastcall.py index 11c70ff0d..8d885b629 100644 --- a/ietf/idrfc/lastcall.py +++ b/ietf/idrfc/lastcall.py @@ -8,8 +8,8 @@ from ietf.idtracker.models import InternetDraft, DocumentComment, BallotInfo from ietf.idrfc.mails import * from ietf.idrfc.utils import * -from doc.models import Document, DocEvent, LastCallDocEvent, WriteupDocEvent, save_document_in_history, State -from person.models import Person +from ietf.doc.models import Document, DocEvent, LastCallDocEvent, WriteupDocEvent, save_document_in_history, State +from ietf.person.models import Person def request_last_call(request, doc): try: diff --git a/ietf/idrfc/mails.py b/ietf/idrfc/mails.py index 4482346bc..3bac6bafc 100644 --- a/ietf/idrfc/mails.py +++ b/ietf/idrfc/mails.py @@ -13,8 +13,8 @@ from ietf.idtracker.models import * from ietf.ipr.search import iprs_from_docs from ietf.ietfworkflows.streams import (get_stream_from_draft) from ietf.ietfworkflows.models import (Stream) -from redesign.doc.models import WriteupDocEvent, BallotPositionDocEvent, LastCallDocEvent, DocAlias -from redesign.person.models import Person +from ietf.doc.models import WriteupDocEvent, BallotPositionDocEvent, LastCallDocEvent, DocAlias +from ietf.person.models import Person def email_state_changed(request, doc, text): to = [x.strip() for x in doc.idinternal.state_change_notice_to.replace(';', ',').split(',')] diff --git a/ietf/idrfc/mirror_rfc_editor_queue.py b/ietf/idrfc/mirror_rfc_editor_queue.py index 50399f0b8..af030f54d 100644 --- a/ietf/idrfc/mirror_rfc_editor_queue.py +++ b/ietf/idrfc/mirror_rfc_editor_queue.py @@ -197,8 +197,8 @@ import django.db.transaction def get_rfc_tag_mapping(): """Return dict with RFC Editor state name -> DocTagName""" - from redesign.name.models import DocTagName - from redesign.name.utils import name + from ietf.name.models import DocTagName + from ietf.name.utils import name return { 'IANA': name(DocTagName, 'iana-crd', 'IANA coordination', "RFC-Editor/IANA Registration Coordination"), @@ -208,7 +208,7 @@ def get_rfc_tag_mapping(): def get_rfc_state_mapping(): """Return dict with RFC Editor state name -> State""" - from redesign.doc.models import State, StateType + from ietf.doc.models import State, StateType t = StateType.objects.get(slug="draft-rfceditor") return { 'AUTH': State.objects.get_or_create(type=t, slug='auth', name='AUTH', desc="Awaiting author action")[0], @@ -227,8 +227,8 @@ def get_rfc_state_mapping(): @django.db.transaction.commit_on_success def insert_into_databaseREDESIGN(drafts, refs): - from doc.models import Document - from name.models import DocTagName + from ietf.doc.models import Document + from ietf.name.models import DocTagName tags = get_rfc_tag_mapping() states = get_rfc_state_mapping() diff --git a/ietf/idrfc/mirror_rfc_index.py b/ietf/idrfc/mirror_rfc_index.py index dcc633066..7e51d02ac 100644 --- a/ietf/idrfc/mirror_rfc_index.py +++ b/ietf/idrfc/mirror_rfc_index.py @@ -148,8 +148,8 @@ def insert_to_database(data): db.connection.close() def get_std_level_mapping(): - from name.models import StdLevelName - from name.utils import name + from ietf.name.models import StdLevelName + from ietf.name.utils import name return { "Standard": name(StdLevelName, "std", "Standard"), "Draft Standard": name(StdLevelName, "ds", "Draft Standard"), @@ -162,8 +162,8 @@ def get_std_level_mapping(): } def get_stream_mapping(): - from name.models import StreamName - from name.utils import name + from ietf.name.models import StreamName + from ietf.name.utils import name return { "Legacy": name(StreamName, "legacy", "Legacy"), @@ -178,11 +178,11 @@ import django.db.transaction @django.db.transaction.commit_on_success def insert_to_databaseREDESIGN(data): - from redesign.person.models import Person - from redesign.doc.models import Document, DocAlias, DocEvent, RelatedDocument, State - from redesign.group.models import Group - from redesign.name.models import DocTagName, DocRelationshipName - from redesign.name.utils import name + from ietf.person.models import Person + from ietf.doc.models import Document, DocAlias, DocEvent, RelatedDocument, State + from ietf.group.models import Group + from ietf.name.models import DocTagName, DocRelationshipName + from ietf.name.utils import name system = Person.objects.get(name="(System)") std_level_mapping = get_std_level_mapping() diff --git a/ietf/idrfc/models.py b/ietf/idrfc/models.py index c6fb882f0..7687eb2b0 100644 --- a/ietf/idrfc/models.py +++ b/ietf/idrfc/models.py @@ -101,4 +101,4 @@ class DraftVersions(models.Model): from django.conf import settings if settings.USE_DB_REDESIGN_PROXY_CLASSES: RfcIndexOld = RfcIndex - from redesign.doc.proxy import RfcIndex + from ietf.doc.proxy import RfcIndex diff --git a/ietf/idrfc/templatetags/ballot_icon.py b/ietf/idrfc/templatetags/ballot_icon.py index 89ae93392..98b176065 100644 --- a/ietf/idrfc/templatetags/ballot_icon.py +++ b/ietf/idrfc/templatetags/ballot_icon.py @@ -50,7 +50,7 @@ def get_user_adid(context): def get_user_name(context): if 'user' in context and context['user'].is_authenticated(): if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from person.models import Person + from ietf.person.models import Person try: return context['user'].get_profile().plain_name() except Person.DoesNotExist: diff --git a/ietf/idrfc/testsREDESIGN.py b/ietf/idrfc/testsREDESIGN.py index b91163f7d..5b2f5196f 100644 --- a/ietf/idrfc/testsREDESIGN.py +++ b/ietf/idrfc/testsREDESIGN.py @@ -41,10 +41,10 @@ from django.conf import settings from pyquery import PyQuery -from redesign.doc.models import * -from redesign.name.models import * -from redesign.group.models import * -from redesign.person.models import * +from ietf.doc.models import * +from ietf.name.models import * +from ietf.group.models import * +from ietf.person.models import * from ietf.meeting.models import Meeting, MeetingTypeName from ietf.iesg.models import TelechatDate from ietf.utils.test_utils import SimpleUrlTestCase, RealDatabaseTest, login_testing_unauthorized diff --git a/ietf/idrfc/utils.py b/ietf/idrfc/utils.py index ea8bdbfbd..a9f5a6138 100644 --- a/ietf/idrfc/utils.py +++ b/ietf/idrfc/utils.py @@ -63,7 +63,7 @@ def log_state_changed(request, doc, by, email_watch_list=True, note=''): return change def log_state_changedREDESIGN(request, doc, by, prev_iesg_state, prev_iesg_tag): - from doc.models import DocEvent + from ietf.doc.models import DocEvent state = doc.get_state("draft-iesg") @@ -130,7 +130,7 @@ def update_telechat(request, idinternal, new_telechat_date, new_returning_item=N idinternal.telechat_date = new_telechat_date def update_telechatREDESIGN(request, doc, by, new_telechat_date, new_returning_item=None): - from doc.models import TelechatDocEvent + from ietf.doc.models import TelechatDocEvent on_agenda = bool(new_telechat_date) diff --git a/ietf/idrfc/views_ballot.py b/ietf/idrfc/views_ballot.py index 140f24c1d..2e4d96271 100644 --- a/ietf/idrfc/views_ballot.py +++ b/ietf/idrfc/views_ballot.py @@ -25,8 +25,8 @@ from ietf.idrfc.utils import * from ietf.idrfc.lastcall import request_last_call from ietf.idrfc.idrfc_wrapper import BallotWrapper -from redesign.doc.models import * -from redesign.name.models import BallotPositionName +from ietf.doc.models import * +from ietf.name.models import BallotPositionName BALLOT_CHOICES = (("yes", "Yes"), @@ -242,7 +242,7 @@ def edit_positionREDESIGN(request, name): ad_id = request.GET.get('ad') if not ad_id: raise Http404() - from person.models import Person + from ietf.person.models import Person ad = get_object_or_404(Person, pk=ad_id) old_pos = doc.latest_event(BallotPositionDocEvent, type="changed_ballot_position", ad=ad, time__gte=started_process.time) @@ -451,7 +451,7 @@ def send_ballot_commentREDESIGN(request, name): ad_id = request.GET.get('ad') if not ad_id: raise Http404() - from person.models import Person + from ietf.person.models import Person ad = get_object_or_404(Person, pk=ad_id) pos = doc.latest_event(BallotPositionDocEvent, type="changed_ballot_position", ad=ad, time__gte=started_process.time) diff --git a/ietf/idrfc/views_doc.py b/ietf/idrfc/views_doc.py index 3a622cb1d..4ccbf6d09 100644 --- a/ietf/idrfc/views_doc.py +++ b/ietf/idrfc/views_doc.py @@ -241,7 +241,7 @@ def _get_versions(draft, include_replaced=True): draft_list = [draft] if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from redesign.doc.models import NewRevisionDocEvent + from ietf.doc.models import NewRevisionDocEvent for e in NewRevisionDocEvent.objects.filter(type="new_revision", doc__in=draft_list).select_related('doc').order_by("-time", "-id"): if not (e.doc.name == draft.name and e.rev == draft.rev): ov.append(dict(draft_name=e.doc.name, revision=e.rev, date=e.time.date())) @@ -260,7 +260,7 @@ def get_ballot(name): m = r.match(name) if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from doc.models import DocAlias + from ietf.doc.models import DocAlias alias = get_object_or_404(DocAlias, name=name) d = get_object_or_404(InternetDraft, name=alias.document.name) try: diff --git a/ietf/idrfc/views_edit.py b/ietf/idrfc/views_edit.py index a88cd2167..2300ddafe 100644 --- a/ietf/idrfc/views_edit.py +++ b/ietf/idrfc/views_edit.py @@ -27,9 +27,9 @@ from ietf.ietfworkflows.models import Stream from ietf.ietfworkflows.utils import update_stream from ietf.ietfworkflows.streams import get_stream_from_draft -from redesign.doc.models import * -from redesign.name.models import IntendedStdLevelName, DocTagName, StreamName -from redesign.person.models import Person, Email +from ietf.doc.models import * +from ietf.name.models import IntendedStdLevelName, DocTagName, StreamName +from ietf.person.models import Person, Email class ChangeStateForm(forms.Form): state = forms.ModelChoiceField(IDState.objects.all(), empty_label=None, required=True) diff --git a/ietf/idrfc/views_search.py b/ietf/idrfc/views_search.py index 907377ec4..55e15eac6 100644 --- a/ietf/idrfc/views_search.py +++ b/ietf/idrfc/views_search.py @@ -269,9 +269,9 @@ def search_query(query_original, sort_by=None): return (results,meta) if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from doc.models import * - from person.models import * - from group.models import * + from ietf.doc.models import * + from ietf.person.models import * + from ietf.group.models import * class SearchForm(forms.Form): name = forms.CharField(required=False) diff --git a/ietf/idtracker/models.py b/ietf/idtracker/models.py index 36c9c29f1..36198b67d 100644 --- a/ietf/idtracker/models.py +++ b/ietf/idtracker/models.py @@ -1155,10 +1155,10 @@ if settings.USE_DB_REDESIGN_PROXY_CLASSES: IETFWGOld = IETFWG IRTFOld = IRTF AreaGroupOld = AreaGroup - from redesign.doc.proxy import InternetDraft, IDInternal, BallotInfo, Rfc, IDState - from redesign.name.proxy import IDSubState - from redesign.group.proxy import Area, Acronym, IETFWG, IRTF, AreaGroup - from redesign.person.proxy import IESGLogin + from ietf.doc.proxy import InternetDraft, IDInternal, BallotInfo, Rfc, IDState + from ietf.name.proxy import IDSubState + from ietf.group.proxy import Area, Acronym, IETFWG, IRTF, AreaGroup + from ietf.person.proxy import IESGLogin # changes done by convert-096.py:changed maxlength to max_length diff --git a/ietf/idtracker/templatetags/ietf_filters.py b/ietf/idtracker/templatetags/ietf_filters.py index ed9c3b346..4bb35bc49 100644 --- a/ietf/idtracker/templatetags/ietf_filters.py +++ b/ietf/idtracker/templatetags/ietf_filters.py @@ -435,7 +435,7 @@ def stable_dictsort(value, arg): @register.filter def ad_area(user): if user and user.is_authenticated(): - from redesign.group.models import Group + from ietf.group.models import Group g = Group.objects.filter(role__name="ad", role__person__user=user) if g: return g[0].acronym @@ -455,7 +455,7 @@ def user_roles_json(user): roles = {} if user.is_authenticated(): if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from redesign.group.models import Role + from ietf.group.models import Role for r in Role.objects.filter(person__user=user).select_related(depth=1): if r.name_id == "secr" and r.group.acronym == "secretariat": roles["Secretariat"] = True diff --git a/ietf/iesg/feeds.py b/ietf/iesg/feeds.py index d76d81d73..ec077bd9a 100644 --- a/ietf/iesg/feeds.py +++ b/ietf/iesg/feeds.py @@ -13,7 +13,7 @@ class IESGAgenda(Feed): def items(self): if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from doc.models import TelechatDocEvent + from ietf.doc.models import TelechatDocEvent drafts = IDInternal.objects.filter(docevent__telechatdocevent__telechat_date__gte=datetime.date.min).distinct() for d in drafts: d.latest_telechat_event = d.latest_event(TelechatDocEvent, type="scheduled_for_telechat") diff --git a/ietf/iesg/tests.py b/ietf/iesg/tests.py index 719e97bc8..5a4573e5d 100644 --- a/ietf/iesg/tests.py +++ b/ietf/iesg/tests.py @@ -60,8 +60,8 @@ class RescheduleOnAgendaTestCaseREDESIGN(django.test.TestCase): def test_reschedule(self): from ietf.utils.test_data import make_test_data - from redesign.person.models import Person - from doc.models import TelechatDocEvent + from ietf.person.models import Person + from ietf.doc.models import TelechatDocEvent draft = make_test_data() @@ -365,7 +365,7 @@ class WorkingGroupActionsTestCaseREDESIGN(django.test.TestCase): def test_edit_wgaction(self): from ietf.utils.test_data import make_test_data - from redesign.person.models import Person + from ietf.person.models import Person make_test_data() @@ -400,8 +400,8 @@ class WorkingGroupActionsTestCaseREDESIGN(django.test.TestCase): def test_add_possible_wg(self): from ietf.utils.test_data import make_test_data - from redesign.person.models import Person - from redesign.group.models import Group + from ietf.person.models import Person + from ietf.group.models import Group make_test_data() diff --git a/ietf/iesg/views.py b/ietf/iesg/views.py index 102c35f47..c550c3152 100644 --- a/ietf/iesg/views.py +++ b/ietf/iesg/views.py @@ -213,7 +213,7 @@ if settings.USE_DB_REDESIGN_PROXY_CLASSES: def agenda_docs(date, next_agenda): if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from doc.models import TelechatDocEvent + from ietf.doc.models import TelechatDocEvent matches = IDInternal.objects.filter(docevent__telechatdocevent__telechat_date=date) @@ -342,7 +342,7 @@ def agenda_documents_txt(request): docs = [] for date in dates: if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from doc.models import TelechatDocEvent + from ietf.doc.models import TelechatDocEvent for d in IDInternal.objects.filter(docevent__telechatdocevent__telechat_date=date): if d.latest_event(TelechatDocEvent, type="scheduled_for_telechat").telechat_date == date: docs.append(d) @@ -405,7 +405,7 @@ def handle_reschedule_form(request, idinternal, dates): def agenda_documents(request): dates = TelechatDates.objects.all()[0].dates() if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from doc.models import TelechatDocEvent + from ietf.doc.models import TelechatDocEvent idinternals = [] for d in IDInternal.objects.filter(docevent__telechatdocevent__telechat_date__in=dates): if d.latest_event(TelechatDocEvent, type="scheduled_for_telechat").telechat_date in dates: @@ -451,7 +451,7 @@ def telechat_docs_tarfile(request,year,month,day): from tempfile import mkstemp date=datetime.date(int(year),int(month),int(day)) if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from doc.models import TelechatDocEvent + from ietf.doc.models import TelechatDocEvent docs = [] for d in IDInternal.objects.filter(docevent__telechatdocevent__telechat_date=date): if d.latest_event(TelechatDocEvent, type="scheduled_for_telechat").telechat_date == date: diff --git a/ietf/ietfauth/decorators.py b/ietf/ietfauth/decorators.py index 6f0646767..a5d74e12f 100644 --- a/ietf/ietfauth/decorators.py +++ b/ietf/ietfauth/decorators.py @@ -71,7 +71,7 @@ def has_role(user, role_names): if not user or not user.is_authenticated(): return False - from redesign.person.models import Person + from ietf.person.models import Person try: person = user.get_profile() @@ -90,7 +90,7 @@ def has_role(user, role_names): for r in role_names: filter_expr |= role_qs[r] - from redesign.group.models import Role + from ietf.group.models import Role return bool(Role.objects.filter(filter_expr)[:1]) def role_required(*role_names): diff --git a/ietf/ietfauth/forms.py b/ietf/ietfauth/forms.py index ae2cb3b63..4514395bc 100644 --- a/ietf/ietfauth/forms.py +++ b/ietf/ietfauth/forms.py @@ -11,7 +11,7 @@ from django.utils.translation import ugettext, ugettext_lazy as _ from ietf.utils.mail import send_mail from ietf.utils import debug -#from redesign.person.models import Person, Email +#from ietf.person.models import Person, Email class RegistrationForm(forms.Form): diff --git a/ietf/ietfauth/models.py b/ietf/ietfauth/models.py index 12b0ea73c..b302d38a6 100644 --- a/ietf/ietfauth/models.py +++ b/ietf/ietfauth/models.py @@ -81,7 +81,7 @@ class IetfUserProfile(models.Model): last_name=l.last_name) except IESGLogin.DoesNotExist, PersonOrOrgInfo.DoesNotExist: person = None - from person.models import Email + from ietf.person.models import Email return Email.objects.get(address=person.email()[1]) def __str__(self): diff --git a/ietf/ietfauth/views.py b/ietf/ietfauth/views.py index d24f35e3f..3a9962444 100644 --- a/ietf/ietfauth/views.py +++ b/ietf/ietfauth/views.py @@ -83,8 +83,8 @@ def ietf_loggedin(request): @login_required def profile(request): if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from person.models import Person - from group.models import Role + from ietf.person.models import Person + from ietf.group.models import Role roles = [] person = None diff --git a/ietf/ietfworkflows/accounts.py b/ietf/ietfworkflows/accounts.py index 7c26fb916..e44869ad9 100644 --- a/ietf/ietfworkflows/accounts.py +++ b/ietf/ietfworkflows/accounts.py @@ -3,7 +3,7 @@ from django.conf import settings from django.db.models import Q from ietf.ietfworkflows.streams import get_streamed_draft -from redesign.group.models import Role +from ietf.group.models import Role def get_person_for_user(user): @@ -84,7 +84,7 @@ def is_authorized_in_draft_streamREDESIGN(user, draft): return True # must be a chair or delegate of the stream group (or draft group) - from redesign.doc.models import Document + from ietf.doc.models import Document group_req = Q(group__acronym=super(Document, draft).stream.slug) if draft.group and super(Document, draft).stream.slug == "ietf": group_req |= Q(group=draft.group) diff --git a/ietf/ietfworkflows/forms.py b/ietf/ietfworkflows/forms.py index 952e8c248..2fd18bd5f 100644 --- a/ietf/ietfworkflows/forms.py +++ b/ietf/ietfworkflows/forms.py @@ -18,12 +18,12 @@ from ietf.ietfworkflows.accounts import is_secretariat from ietf.ietfworkflows.streams import (get_stream_from_draft, get_streamed_draft, get_stream_by_name, set_stream_for_draft) from ietf.ietfworkflows.constants import CALL_FOR_ADOPTION, IETF_STREAM -from redesign.doc.utils import get_tags_for_stream_id -from redesign.doc.models import save_document_in_history, DocEvent, Document -from redesign.name.models import DocTagName, StreamName, RoleName -from redesign.group.models import Group, GroupStateTransitions, Role -from redesign.group.utils import save_group_in_history -from redesign.person.models import Person, Email +from ietf.doc.utils import get_tags_for_stream_id +from ietf.doc.models import save_document_in_history, DocEvent, Document +from ietf.name.models import DocTagName, StreamName, RoleName +from ietf.group.models import Group, GroupStateTransitions, Role +from ietf.group.utils import save_group_in_history +from ietf.person.models import Person, Email class StreamDraftForm(forms.Form): @@ -129,7 +129,7 @@ class NoWorkflowStateForm(StreamDraftForm): streamed.save() if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from redesign.doc.models import State + from ietf.doc.models import State to_state = State.objects.get(slug="c-adopt", type="draft-stream-%s" % self.draft.stream_id) else: to_state = get_state_by_name(CALL_FOR_ADOPTION) @@ -199,7 +199,7 @@ class DraftTagsStateForm(StreamDraftForm): def get_next_states(self): if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from redesign.doc.models import State + from ietf.doc.models import State state_type = "draft-stream-%s" % self.draft.stream_id s = self.draft.get_state(state_type) next_states = [] @@ -226,7 +226,7 @@ class DraftTagsStateForm(StreamDraftForm): def get_states(self): if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from redesign.doc.models import State + from ietf.doc.models import State states = State.objects.filter(type="draft-stream-%s" % self.draft.stream_id) if self.draft.stream_id == "ietf" and self.draft.group: unused_states = self.draft.group.unused_states.values_list("pk", flat=True) @@ -265,7 +265,7 @@ class DraftTagsStateForm(StreamDraftForm): def save_state(self): comment = self.cleaned_data.get('comment') if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from redesign.doc.models import State + from ietf.doc.models import State state = State.objects.get(pk=self.cleaned_data.get('new_state')) weeks = self.cleaned_data.get('weeks') estimated_date = None diff --git a/ietf/ietfworkflows/models.py b/ietf/ietfworkflows/models.py index ba692235f..5a455a6b3 100644 --- a/ietf/ietfworkflows/models.py +++ b/ietf/ietfworkflows/models.py @@ -265,4 +265,4 @@ class StreamDelegate(models.Model): person = models.ForeignKey(PersonOrOrgInfo) if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from redesign.name.proxy import StreamProxy as Stream + from ietf.name.proxy import StreamProxy as Stream diff --git a/ietf/ietfworkflows/tests.py b/ietf/ietfworkflows/tests.py index cca1b41f9..e4337b76e 100644 --- a/ietf/ietfworkflows/tests.py +++ b/ietf/ietfworkflows/tests.py @@ -12,11 +12,11 @@ from ietf.utils.test_data import make_test_data from ietf.utils.mail import outbox if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from redesign.person.models import Person, Email - from redesign.group.models import Group, Role - from redesign.doc.models import Document, State - from redesign.doc.utils import * - from redesign.name.models import DocTagName + from ietf.person.models import Person, Email + from ietf.group.models import Group, Role + from ietf.doc.models import Document, State + from ietf.doc.utils import * + from ietf.name.models import DocTagName class EditStreamInfoTestCase(django.test.TestCase): fixtures = ['names'] diff --git a/ietf/ietfworkflows/utils.py b/ietf/ietfworkflows/utils.py index bed5e8683..65a5cf6a2 100644 --- a/ietf/ietfworkflows/utils.py +++ b/ietf/ietfworkflows/utils.py @@ -19,8 +19,8 @@ from ietf.ietfworkflows.models import (WGWorkflow, AnnotationTagObjectRelation, ObjectWorkflowHistoryEntry, ObjectStreamHistoryEntry) from ietf.idtracker.models import InternetDraft from ietf.utils.mail import send_mail -from redesign.doc.models import Document, DocEvent, save_document_in_history, DocReminder, DocReminderTypeName -from redesign.group.models import Role +from ietf.doc.models import Document, DocEvent, save_document_in_history, DocReminder, DocReminderTypeName +from ietf.group.models import Role WAITING_WRITEUP = 'WG Consensus: Waiting for Write-Up' FOLLOWUP_TAG = 'Doc Shepherd Follow-up Underway' @@ -108,7 +108,7 @@ def get_workflow_for_draft(draft): def get_workflow_history_for_draft(draft, entry_type=None): if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from redesign.doc.proxy import ObjectHistoryEntryProxy + from ietf.doc.proxy import ObjectHistoryEntryProxy return ObjectHistoryEntryProxy.objects.filter(doc=draft).order_by('-time', '-id').select_related('by') ctype = ContentType.objects.get_for_model(draft) @@ -124,8 +124,8 @@ def get_workflow_history_for_draft(draft, entry_type=None): def get_annotation_tags_for_draft(draft): if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from redesign.name.proxy import AnnotationTagObjectRelationProxy - from redesign.doc.utils import get_tags_for_stream_id + from ietf.name.proxy import AnnotationTagObjectRelationProxy + from ietf.doc.utils import get_tags_for_stream_id return AnnotationTagObjectRelationProxy.objects.filter(document=draft.pk, slug__in=get_tags_for_stream_id(draft.stream_id)) ctype = ContentType.objects.get_for_model(draft) diff --git a/ietf/ietfworkflows/views.py b/ietf/ietfworkflows/views.py index 49607fb31..a83aebc31 100644 --- a/ietf/ietfworkflows/views.py +++ b/ietf/ietfworkflows/views.py @@ -17,10 +17,10 @@ from ietf.ietfworkflows.utils import (get_workflow_history_for_draft, get_state_for_draft) from ietf.ietfworkflows.accounts import (can_edit_state, can_edit_stream, is_chair_of_stream, can_adopt) -from redesign.doc.utils import get_tags_for_stream_id -from redesign.name.models import DocTagName -from redesign.group.utils import save_group_in_history -from redesign.group.models import Group, Role +from ietf.doc.utils import get_tags_for_stream_id +from ietf.name.models import DocTagName +from ietf.group.utils import save_group_in_history +from ietf.group.models import Group, Role REDUCED_HISTORY_LEN = 20 diff --git a/ietf/ipr/models.py b/ietf/ipr/models.py index b716b228e..74cb5f220 100644 --- a/ietf/ipr/models.py +++ b/ietf/ipr/models.py @@ -207,7 +207,7 @@ class IprUpdate(models.Model): if settings.USE_DB_REDESIGN_PROXY_CLASSES or hasattr(settings, "IMPORTING_IPR"): - from doc.models import DocAlias + from ietf.doc.models import DocAlias class IprDocAlias(models.Model): ipr = models.ForeignKey(IprDetail, related_name='documents') @@ -223,7 +223,7 @@ if settings.USE_DB_REDESIGN_PROXY_CLASSES or hasattr(settings, "IMPORTING_IPR"): IprDraftOld = IprDraft IprRfcOld = IprRfc - from redesign.proxy_utils import TranslatingManager + from ietf.utils.proxy import TranslatingManager class IprDraftProxy(IprDocAlias): objects = TranslatingManager(dict(document="doc_alias__name")) @@ -232,7 +232,7 @@ if settings.USE_DB_REDESIGN_PROXY_CLASSES or hasattr(settings, "IMPORTING_IPR"): # document = models.ForeignKey(Rfc, db_column='rfc_number', related_name="ipr") @property def document(self): - from redesign.doc.proxy import DraftLikeDocAlias + from ietf.doc.proxy import DraftLikeDocAlias return DraftLikeDocAlias.objects.get(pk=self.doc_alias_id) #revision = models.CharField(max_length=2) @@ -252,7 +252,7 @@ if settings.USE_DB_REDESIGN_PROXY_CLASSES or hasattr(settings, "IMPORTING_IPR"): # document = models.ForeignKey(Rfc, db_column='rfc_number', related_name="ipr") @property def document(self): - from redesign.doc.proxy import DraftLikeDocAlias + from ietf.doc.proxy import DraftLikeDocAlias return DraftLikeDocAlias.objects.get(pk=self.doc_alias_id) #revision = models.CharField(max_length=2) diff --git a/ietf/ipr/new.py b/ietf/ipr/new.py index 7d360e71e..0aae2ed91 100644 --- a/ietf/ipr/new.py +++ b/ietf/ipr/new.py @@ -143,7 +143,7 @@ def new(request, type, update=None, submitter=None): for rfc in rfclist: try: if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from redesign.doc.models import DocAlias + from ietf.doc.models import DocAlias DocAlias.objects.get(name="rfc%s" % int(rfc)) else: Rfc.objects.get(rfc_number=int(rfc)) @@ -168,7 +168,7 @@ def new(request, type, update=None, submitter=None): rev = None try: if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from redesign.doc.models import DocAlias + from ietf.doc.models import DocAlias id = DocAlias.objects.get(name=filename) # proxy attribute for code below id.revision = id.document.rev @@ -285,7 +285,7 @@ def new(request, type, update=None, submitter=None): name = draft[:-3] rev = draft[-2:] - from redesign.doc.models import DocAlias + from ietf.doc.models import DocAlias models.IprDocAlias.objects.create( doc_alias=DocAlias.objects.get(name=name), ipr=instance, @@ -298,7 +298,7 @@ def new(request, type, update=None, submitter=None): # Save IprRfc(s) for rfcnum in form.cleaned_data["rfclist"].split(): if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from redesign.doc.models import DocAlias + from ietf.doc.models import DocAlias models.IprDocAlias.objects.create( doc_alias=DocAlias.objects.get(name="rfc%s" % int(rfcnum)), ipr=instance, diff --git a/ietf/ipr/related.py b/ietf/ipr/related.py index 2b4c68567..11304b25c 100644 --- a/ietf/ipr/related.py +++ b/ietf/ipr/related.py @@ -82,8 +82,8 @@ def related_docs(doc, found = []): def related_docsREDESIGN(alias, _): """Get related document aliases to given alias through depth-first search.""" - from redesign.doc.models import RelatedDocument - from redesign.doc.proxy import DraftLikeDocAlias + from ietf.doc.models import RelatedDocument + from ietf.doc.proxy import DraftLikeDocAlias mapping = dict( updates='that updated', diff --git a/ietf/ipr/search.py b/ietf/ipr/search.py index 2e5f1ef91..fc71f7de9 100644 --- a/ietf/ipr/search.py +++ b/ietf/ipr/search.py @@ -55,7 +55,7 @@ def patent_file_search(url, q): def search(request, type="", q="", id=""): if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from group.models import Group + from ietf.group.models import Group wgs = Group.objects.filter(type="wg").exclude(acronym="2000").select_related().order_by("acronym") else: wgs = IETFWG.objects.filter(group_type__group_type_id=1).exclude(group_acronym__acronym='2000').select_related().order_by('acronym.acronym') @@ -79,13 +79,13 @@ def search(request, type="", q="", id=""): if q: q = normalize_draftname(q) if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from redesign.doc.proxy import DraftLikeDocAlias + from ietf.doc.proxy import DraftLikeDocAlias start = DraftLikeDocAlias.objects.filter(name__contains=q, name__startswith="draft") else: start = InternetDraft.objects.filter(filename__contains=q) if id: if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from redesign.doc.proxy import DraftLikeDocAlias + from ietf.doc.proxy import DraftLikeDocAlias start = DraftLikeDocAlias.objects.filter(name=id) else: try: @@ -100,7 +100,7 @@ def search(request, type="", q="", id=""): except: q = -1 if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from redesign.doc.proxy import DraftLikeDocAlias + from ietf.doc.proxy import DraftLikeDocAlias start = DraftLikeDocAlias.objects.filter(name__contains=q, name__startswith="rfc") else: start = Rfc.objects.filter(rfc_number=q) @@ -163,7 +163,7 @@ def search(request, type="", q="", id=""): # Document list with IPRs elif type == "wg_search": if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from redesign.doc.proxy import DraftLikeDocAlias + from ietf.doc.proxy import DraftLikeDocAlias try: docs = list(DraftLikeDocAlias.objects.filter(document__group__acronym=q)) docs += list(DraftLikeDocAlias.objects.filter(document__relateddocument__target__in=docs, document__relateddocument__relationship="replaces")) @@ -187,7 +187,7 @@ def search(request, type="", q="", id=""): # Document list with IPRs elif type == "title_search": if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from redesign.doc.proxy import DraftLikeDocAlias + from ietf.doc.proxy import DraftLikeDocAlias try: docs = list(DraftLikeDocAlias.objects.filter(document__title__icontains=q)) except: diff --git a/ietf/liaisons/accountsREDESIGN.py b/ietf/liaisons/accountsREDESIGN.py index 816973138..b97496a4d 100644 --- a/ietf/liaisons/accountsREDESIGN.py +++ b/ietf/liaisons/accountsREDESIGN.py @@ -1,6 +1,6 @@ -from redesign.person.models import Person -from redesign.group.models import Role -from redesign.proxy_utils import proxy_personify_role +from ietf.person.models import Person +from ietf.group.models import Role +from ietf.utils.proxy import proxy_personify_role LIAISON_EDIT_GROUPS = ['Secretariat'] # this is not working anymore, refers to old auth model diff --git a/ietf/liaisons/feeds.py b/ietf/liaisons/feeds.py index 1158d371e..5b5e38716 100644 --- a/ietf/liaisons/feeds.py +++ b/ietf/liaisons/feeds.py @@ -10,7 +10,7 @@ from datetime import datetime, time import re if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from redesign.group.models import Group + from ietf.group.models import Group from ietf.liaisons.proxy import LiaisonDetailProxy as LiaisonDetail from ietf.liaisons.models import LiaisonStatement diff --git a/ietf/liaisons/formsREDESIGN.py b/ietf/liaisons/formsREDESIGN.py index c8d84ae79..91a689611 100644 --- a/ietf/liaisons/formsREDESIGN.py +++ b/ietf/liaisons/formsREDESIGN.py @@ -15,9 +15,9 @@ from ietf.liaisons.widgets import (FromWidget, ReadOnlyWidget, ButtonWidget, ShowAttachmentsWidget, RelatedLiaisonWidget) from ietf.liaisons.models import LiaisonStatement, LiaisonStatementPurposeName from ietf.liaisons.proxy import LiaisonDetailProxy -from redesign.group.models import Group -from redesign.person.models import Person -from redesign.doc.models import Document +from ietf.group.models import Group +from ietf.person.models import Person +from ietf.doc.models import Document class LiaisonForm(forms.Form): diff --git a/ietf/liaisons/mails.py b/ietf/liaisons/mails.py index fcc41eac4..c61721849 100644 --- a/ietf/liaisons/mails.py +++ b/ietf/liaisons/mails.py @@ -6,7 +6,7 @@ from django.core.urlresolvers import reverse as urlreverse from ietf.utils.mail import send_mail_text from ietf.liaisons.utils import role_persons_with_fixed_email -from redesign.group.models import Role +from ietf.group.models import Role def send_liaison_by_email(request, liaison, fake=False): if liaison.is_pending(): # this conditional should definitely be at the caller, not here diff --git a/ietf/liaisons/management/commands/remind_update_sdo_list.py b/ietf/liaisons/management/commands/remind_update_sdo_list.py index 3df4837a9..8c69093b8 100644 --- a/ietf/liaisons/management/commands/remind_update_sdo_list.py +++ b/ietf/liaisons/management/commands/remind_update_sdo_list.py @@ -63,7 +63,7 @@ class Command(BaseCommand): def send_reminders_to_sdos(sdo_pk=None): - from redesign.group.models import Group + from ietf.group.models import Group from ietf.liaisons.mails import send_sdo_reminder sdos = Group.objects.filter(type="sdo").order_by('pk') diff --git a/ietf/liaisons/models.py b/ietf/liaisons/models.py index bba570fed..55d805610 100644 --- a/ietf/liaisons/models.py +++ b/ietf/liaisons/models.py @@ -314,10 +314,10 @@ class Uploads(models.Model): # removed raw_id_admin if settings.USE_DB_REDESIGN_PROXY_CLASSES or hasattr(settings, "IMPORTING_FROM_OLD_SCHEMA"): - from redesign.name.models import LiaisonStatementPurposeName - from redesign.doc.models import Document - from redesign.person.models import Email - from redesign.group.models import Group + from ietf.name.models import LiaisonStatementPurposeName + from ietf.doc.models import Document + from ietf.person.models import Email + from ietf.group.models import Group class LiaisonStatement(models.Model): title = models.CharField(blank=True, max_length=255) diff --git a/ietf/liaisons/proxy.py b/ietf/liaisons/proxy.py index 22950528c..d74ed3d78 100644 --- a/ietf/liaisons/proxy.py +++ b/ietf/liaisons/proxy.py @@ -1,6 +1,6 @@ -from redesign.proxy_utils import TranslatingManager +from ietf.utils.proxy import TranslatingManager from ietf.liaisons.models import LiaisonStatement -from redesign.doc.models import Document +from ietf.doc.models import Document class LiaisonDetailProxy(LiaisonStatement): objects = TranslatingManager(dict(submitted_date="submitted", diff --git a/ietf/liaisons/tests.py b/ietf/liaisons/tests.py index 22e7a1b59..e93c1f600 100644 --- a/ietf/liaisons/tests.py +++ b/ietf/liaisons/tests.py @@ -24,8 +24,8 @@ class LiaisonsUrlTestCase(SimpleUrlTestCase): if settings.USE_DB_REDESIGN_PROXY_CLASSES: from ietf.liaisons.models import LiaisonStatement, LiaisonStatementPurposeName - from redesign.person.models import Person, Email - from redesign.group.models import Group, Role + from ietf.person.models import Person, Email + from ietf.group.models import Group, Role def make_liaison_models(): sdo = Group.objects.create( diff --git a/ietf/liaisons/utilsREDESIGN.py b/ietf/liaisons/utilsREDESIGN.py index b0a61a424..ed6fa446b 100644 --- a/ietf/liaisons/utilsREDESIGN.py +++ b/ietf/liaisons/utilsREDESIGN.py @@ -1,6 +1,6 @@ -from redesign.group.models import Group, Role -from redesign.person.models import Person -from redesign.proxy_utils import proxy_personify_role +from ietf.group.models import Group, Role +from ietf.person.models import Person +from ietf.utils.proxy import proxy_personify_role from ietf.liaisons.accounts import (is_ietfchair, is_iabchair, is_iab_executive_director, get_ietf_chair, get_iab_chair, get_iab_executive_director, @@ -278,7 +278,7 @@ class AreaEntityManager(EntityManager): def __init__(self, pk=None, name=None, queryset=None): super(AreaEntityManager, self).__init__(pk, name, queryset) - from redesign.group.proxy import Area + from ietf.group.proxy import Area if self.queryset == None: self.queryset = Area.active_areas() @@ -310,7 +310,7 @@ class WGEntityManager(EntityManager): def __init__(self, pk=None, name=None, queryset=None): super(WGEntityManager, self).__init__(pk, name, queryset) if self.queryset == None: - from redesign.group.proxy import IETFWG, Area + from ietf.group.proxy import IETFWG, Area self.queryset = IETFWG.objects.filter(group_type=1, status=IETFWG.ACTIVE, areagroup__area__status=Area.ACTIVE) def get_managed_list(self, query_filter=None): diff --git a/ietf/meeting/models.py b/ietf/meeting/models.py index 23b67d217..3791b47f5 100644 --- a/ietf/meeting/models.py +++ b/ietf/meeting/models.py @@ -6,10 +6,10 @@ from django.db import models from django.conf import settings from timedeltafield import TimedeltaField -from redesign.group.models import Group -from redesign.person.models import Person -from redesign.doc.models import Document -from redesign.name.models import MeetingTypeName, TimeSlotTypeName, SessionStatusName, ConstraintName +from ietf.group.models import Group +from ietf.person.models import Person +from ietf.doc.models import Document +from ietf.name.models import MeetingTypeName, TimeSlotTypeName, SessionStatusName, ConstraintName countries = pytz.country_names.items() countries.sort(lambda x,y: cmp(x[1], y[1])) diff --git a/ietf/meeting/proxy.py b/ietf/meeting/proxy.py index 50fc959fd..77df33811 100644 --- a/ietf/meeting/proxy.py +++ b/ietf/meeting/proxy.py @@ -2,7 +2,7 @@ import datetime from django.conf import settings -from redesign.proxy_utils import TranslatingManager +from ietf.utils.proxy import TranslatingManager from models import * class MeetingProxy(Meeting): @@ -521,7 +521,7 @@ class IESGHistoryProxy(Person): from ietf.utils.history import find_history_active_at personhistory = find_history_active_at(role.person, time) self.from_object(personhistory or role.person) - from redesign.group.proxy import Area + from ietf.group.proxy import Area self.area = Area().from_object(role.group) return self #area = models.ForeignKey(Area, db_column='area_acronym_id') diff --git a/ietf/meeting/views.py b/ietf/meeting/views.py index a32776991..34ee2f382 100644 --- a/ietf/meeting/views.py +++ b/ietf/meeting/views.py @@ -26,9 +26,9 @@ from ietf.utils.pipe import pipe from ietf.proceedings.models import Meeting, MeetingTime, WgMeetingSession, MeetingVenue, IESGHistory, Proceeding, Switches, WgProceedingsActivities, SessionConflict -from redesign.group.models import Group +from ietf.group.models import Group from ietf.utils.history import find_history_active_at -from redesign.doc.models import Document +from ietf.doc.models import Document @decorator_from_middleware(GZipMiddleware) @@ -71,7 +71,7 @@ def show_html_materials(request, meeting_num=None): seen_materials.add(t) queryset_list.append(item) - from redesign.doc.models import Document + from ietf.doc.models import Document cache_version = Document.objects.filter(session__meeting__number=meeting_num).aggregate(Max('time'))["time__max"] else: queryset_list = WgMeetingSession.objects.filter(Q(meeting=meeting_num, group_acronym_id__gte = -2, status__id=4), Q(irtf__isnull=True) | Q(irtf=0)) diff --git a/redesign/name/__init__.py b/ietf/name/__init__.py similarity index 100% rename from redesign/name/__init__.py rename to ietf/name/__init__.py diff --git a/redesign/name/admin.py b/ietf/name/admin.py similarity index 100% rename from redesign/name/admin.py rename to ietf/name/admin.py diff --git a/redesign/name/fixtures/names.xml b/ietf/name/fixtures/names.xml similarity index 100% rename from redesign/name/fixtures/names.xml rename to ietf/name/fixtures/names.xml diff --git a/redesign/name/generate_fixtures.py b/ietf/name/generate_fixtures.py similarity index 78% rename from redesign/name/generate_fixtures.py rename to ietf/name/generate_fixtures.py index f9f599bf8..c3307b049 100755 --- a/redesign/name/generate_fixtures.py +++ b/ietf/name/generate_fixtures.py @@ -29,17 +29,17 @@ def output(name, qs): # pick all name models directly out of the module objects = [] -import redesign.name.models -for n in dir(redesign.name.models): +import ietf.name.models +for n in dir(ietf.name.models): if n[:1].upper() == n[:1] and n.endswith("Name"): - model = getattr(redesign.name.models, n) + model = getattr(ietf.name.models, n) if not model._meta.abstract: objects.extend(model.objects.all()) -import redesign.doc.models # FIXME -objects += redesign.doc.models.StateType.objects.all() -objects += redesign.doc.models.State.objects.all() +import ietf.doc.models # FIXME +objects += ietf.doc.models.StateType.objects.all() +objects += ietf.doc.models.State.objects.all() output("names", objects) diff --git a/redesign/name/models.py b/ietf/name/models.py similarity index 100% rename from redesign/name/models.py rename to ietf/name/models.py diff --git a/redesign/name/proxy.py b/ietf/name/proxy.py similarity index 85% rename from redesign/name/proxy.py rename to ietf/name/proxy.py index 794a4bb80..dfe75371e 100644 --- a/redesign/name/proxy.py +++ b/ietf/name/proxy.py @@ -1,4 +1,4 @@ -from redesign.proxy_utils import TranslatingManager +from ietf.utils.proxy import TranslatingManager from models import * class IDSubStateManager(TranslatingManager): @@ -50,13 +50,13 @@ class AnnotationTagObjectRelationProxy(DocTagName): class StreamProxy(StreamName): def get_chairs(self): - from redesign.group.models import Role - from redesign.proxy_utils import proxy_personify_role + from ietf.group.models import Role + from ietf.utils.proxy import proxy_personify_role return [proxy_personify_role(r) for r in Role.objects.filter(group__acronym=self.slug, name="chair")] def get_delegates(self): - from redesign.group.models import Role - from redesign.proxy_utils import proxy_personify_role + from ietf.group.models import Role + from ietf.utils.proxy import proxy_personify_role return [proxy_personify_role(r) for r in Role.objects.filter(group__acronym=self.slug, name="delegate")] class Meta: diff --git a/redesign/name/utils.py b/ietf/name/utils.py similarity index 100% rename from redesign/name/utils.py rename to ietf/name/utils.py diff --git a/redesign/person/__init__.py b/ietf/person/__init__.py similarity index 100% rename from redesign/person/__init__.py rename to ietf/person/__init__.py diff --git a/redesign/person/admin.py b/ietf/person/admin.py similarity index 100% rename from redesign/person/admin.py rename to ietf/person/admin.py diff --git a/redesign/person/models.py b/ietf/person/models.py similarity index 98% rename from redesign/person/models.py rename to ietf/person/models.py index 1b808c59a..c1166c8dd 100644 --- a/redesign/person/models.py +++ b/ietf/person/models.py @@ -5,7 +5,7 @@ import datetime from django.db import models from django.contrib.auth.models import User -from redesign.person.name import name_parts +from ietf.person.name import name_parts class PersonInfo(models.Model): time = models.DateTimeField(default=datetime.datetime.now) # When this Person record entered the system diff --git a/redesign/person/name.py b/ietf/person/name.py similarity index 100% rename from redesign/person/name.py rename to ietf/person/name.py diff --git a/redesign/person/proxy.py b/ietf/person/proxy.py similarity index 97% rename from redesign/person/proxy.py rename to ietf/person/proxy.py index 65c176966..50a8ef117 100644 --- a/redesign/person/proxy.py +++ b/ietf/person/proxy.py @@ -1,4 +1,4 @@ -from redesign.proxy_utils import TranslatingManager +from ietf.utils.proxy import TranslatingManager from models import * diff --git a/ietf/proceedings/feeds.py b/ietf/proceedings/feeds.py index 0bf0f0bd9..7483df0d1 100644 --- a/ietf/proceedings/feeds.py +++ b/ietf/proceedings/feeds.py @@ -17,7 +17,7 @@ class LatestWgProceedingsActivity(Feed): def items(self): if settings.USE_DB_REDESIGN_PROXY_CLASSES: objs = [] - from redesign.doc.models import Document + from ietf.doc.models import Document for doc in Document.objects.filter(type__in=("agenda", "minutes", "slides")).order_by('-time')[:60]: obj = dict( title=doc.type_id, diff --git a/ietf/settings.py b/ietf/settings.py index d77f82bad..6a7f5d148 100644 --- a/ietf/settings.py +++ b/ietf/settings.py @@ -135,11 +135,10 @@ INSTALLED_APPS = ( 'south', 'workflows', 'permissions', - 'redesign.person', - 'redesign.name', - 'redesign.group', - 'redesign.doc', -# 'redesign.issue', + 'ietf.person', + 'ietf.name', + 'ietf.group', + 'ietf.doc', 'ietf.announcements', 'ietf.idindex', 'ietf.idtracker', diff --git a/ietf/submit/tests.py b/ietf/submit/tests.py index 99e509792..de9c6a1da 100644 --- a/ietf/submit/tests.py +++ b/ietf/submit/tests.py @@ -11,9 +11,9 @@ from ietf.utils.test_utils import login_testing_unauthorized from ietf.utils.test_data import make_test_data from ietf.utils.mail import outbox -from redesign.person.models import Person, Email -from redesign.group.models import Group, Role -from redesign.doc.models import Document, BallotPositionDocEvent +from ietf.person.models import Person, Email +from ietf.group.models import Group, Role +from ietf.doc.models import Document, BallotPositionDocEvent from ietf.submit.models import IdSubmissionDetail class SubmitTestCase(django.test.TestCase): diff --git a/ietf/submit/utils.py b/ietf/submit/utils.py index 9fe1a4919..5a9807519 100644 --- a/ietf/submit/utils.py +++ b/ietf/submit/utils.py @@ -12,9 +12,9 @@ from ietf.submit.models import TempIdAuthors from ietf.utils.mail import send_mail from ietf.utils import unaccent -from redesign.doc.models import * -from redesign.person.models import Person, Alias, Email -from redesign.doc.utils import active_ballot_positions +from ietf.doc.models import * +from ietf.person.models import Person, Alias, Email +from ietf.doc.utils import active_ballot_positions # Some useful states UPLOADED = 1 diff --git a/redesign/proxy_utils.py b/ietf/utils/proxy.py similarity index 97% rename from redesign/proxy_utils.py rename to ietf/utils/proxy.py index ce0f00508..3d445b738 100644 --- a/redesign/proxy_utils.py +++ b/ietf/utils/proxy.py @@ -1,3 +1,6 @@ +# some helpers for the proxy layer bridging the gap between the legacy +# and the redesigned schema, eventually this should all go + from django.db.models.manager import Manager from django.db.models.query import QuerySet @@ -14,9 +17,11 @@ def proxy_role_email(e): def chunks(l, n): """Split list l up in chunks of max size n.""" - return (l[i:i+n] for i in range(0, len(l), n)) + return (l[i:i+n] for i in xrange(0, len(l), n)) class TranslatingQuerySet(QuerySet): + """Query set that can do some simple mappings of the filter args.""" + def translated_args(self, args): trans = self.translated_attrs res = [] diff --git a/ietf/utils/test_data.py b/ietf/utils/test_data.py index ecd78c334..e008d7ee4 100644 --- a/ietf/utils/test_data.py +++ b/ietf/utils/test_data.py @@ -4,11 +4,11 @@ from django.contrib.auth.models import User from ietf.iesg.models import TelechatDate, WGAction from ietf.ipr.models import IprDetail, IprDocAlias from ietf.meeting.models import Meeting -from redesign.doc.models import * -from redesign.doc.utils import * -from redesign.name.models import * -from redesign.group.models import * -from redesign.person.models import * +from ietf.doc.models import * +from ietf.doc.utils import * +from ietf.name.models import * +from ietf.group.models import * +from ietf.person.models import * def make_test_data(): # telechat dates diff --git a/ietf/wgchairs/accounts.py b/ietf/wgchairs/accounts.py index a71a63448..0741f1189 100644 --- a/ietf/wgchairs/accounts.py +++ b/ietf/wgchairs/accounts.py @@ -1,5 +1,5 @@ from django.conf import settings -from redesign.group.models import Role +from ietf.group.models import Role def is_secretariat(user): if not user or not user.is_authenticated(): diff --git a/ietf/wgchairs/forms.py b/ietf/wgchairs/forms.py index e24d068fc..5e3992314 100644 --- a/ietf/wgchairs/forms.py +++ b/ietf/wgchairs/forms.py @@ -18,11 +18,11 @@ from ietf.utils.mail import send_mail_text from workflows.models import Transition -from redesign.doc.models import WriteupDocEvent -from redesign.person.models import Person, Email -from redesign.group.models import Role, RoleName -from redesign.group.utils import save_group_in_history -from redesign.name.models import DocTagName +from ietf.doc.models import WriteupDocEvent +from ietf.person.models import Person, Email +from ietf.group.models import Role, RoleName +from ietf.group.utils import save_group_in_history +from ietf.name.models import DocTagName class RelatedWGForm(forms.Form): @@ -191,7 +191,7 @@ def assign_shepherd(user, internetdraft, shepherd): if internetdraft.shepherd == shepherd: return - from redesign.doc.models import save_document_in_history, DocEvent, Document + from ietf.doc.models import save_document_in_history, DocEvent, Document # saving the proxy object is a bit of a mess, so convert it to a # proper document diff --git a/ietf/wgchairs/models.py b/ietf/wgchairs/models.py index 36115bde0..ea0a74c97 100644 --- a/ietf/wgchairs/models.py +++ b/ietf/wgchairs/models.py @@ -48,7 +48,7 @@ class ProtoWriteUp(models.Model): ) if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from redesign.group.models import Role + from ietf.group.models import Role class WGDelegateProxy(Role): #person = models.ForeignKey(PersonOrOrgInfo) # same name #wg = models.ForeignKey(IETFWG) @@ -62,7 +62,7 @@ if settings.USE_DB_REDESIGN_PROXY_CLASSES: class Meta: proxy = True - from redesign.doc.models import WriteupDocEvent + from ietf.doc.models import WriteupDocEvent class ProtoWriteUpProxy(WriteupDocEvent): #person = models.ForeignKey(PersonOrOrgInfo, blank=False, null=False) @property diff --git a/ietf/wgchairs/tests.py b/ietf/wgchairs/tests.py index 4395b9e9a..b091abe14 100644 --- a/ietf/wgchairs/tests.py +++ b/ietf/wgchairs/tests.py @@ -12,10 +12,10 @@ from ietf.utils.test_data import make_test_data from ietf.utils.mail import outbox if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from redesign.person.models import Person, Email - from redesign.group.models import Group, GroupHistory, Role, GroupStateTransitions - from redesign.doc.models import Document, State, WriteupDocEvent - from redesign.name.models import DocTagName + from ietf.person.models import Person, Email + from ietf.group.models import Group, GroupHistory, Role, GroupStateTransitions + from ietf.doc.models import Document, State, WriteupDocEvent + from ietf.name.models import DocTagName class ManageDelegatesTestCase(django.test.TestCase): fixtures = ['names'] @@ -111,7 +111,7 @@ class ManageShepherdsTestCase(django.test.TestCase): # setup test documents group = Group.objects.get(acronym="mars") - from redesign.doc.models import Document + from ietf.doc.models import Document common = dict(group=group, ad=Person.objects.get(user__username="ad"), type_id="draft") diff --git a/ietf/wgchairs/views.py b/ietf/wgchairs/views.py index 43df707b5..22648eb38 100644 --- a/ietf/wgchairs/views.py +++ b/ietf/wgchairs/views.py @@ -22,9 +22,9 @@ from ietf.ietfworkflows.utils import (get_workflow_for_wg, get_annotation_tags_for_draft, get_state_for_draft, WAITING_WRITEUP, FOLLOWUP_TAG) -from redesign.name.models import DocTagName -from redesign.doc.models import State -from redesign.doc.utils import get_tags_for_stream_id +from ietf.name.models import DocTagName +from ietf.doc.models import State +from ietf.doc.utils import get_tags_for_stream_id def manage_delegates(request, acronym): wg = get_object_or_404(IETFWG, group_acronym__acronym=acronym, group_type=1) @@ -94,8 +94,8 @@ def manage_workflow(request, acronym): }, RequestContext(request)) def manage_workflowREDESIGN(request, acronym): - from redesign.doc.models import State - from redesign.group.models import GroupStateTransitions + from ietf.doc.models import State + from ietf.group.models import GroupStateTransitions MANDATORY_STATES = ('c-adopt', 'wg-doc', 'sub-pub') @@ -254,7 +254,7 @@ def managing_writeup(request, acronym, name): if not can_manage_writeup_of_a_document(user, doc): return HttpResponseForbidden('You do not have permission to access this page') if settings.USE_DB_REDESIGN_PROXY_CLASSES: - from redesign.doc.models import State + from ietf.doc.models import State state = doc.get_state("draft-stream-%s" % doc.stream_id) can_edit = (state and state.slug == "writeupw") or can_manage_writeup_of_a_document_no_state(user, doc) else: diff --git a/ietf/wgcharter/feeds.py b/ietf/wgcharter/feeds.py index 6fccc6d46..9dd19e88a 100644 --- a/ietf/wgcharter/feeds.py +++ b/ietf/wgcharter/feeds.py @@ -7,7 +7,7 @@ from django.core.exceptions import ObjectDoesNotExist from django.core.urlresolvers import reverse from ietf.utils.history import find_history_active_at -from redesign.group.models import Group +from ietf.group.models import Group from ietf.wgcharter.views import _get_history, _get_html from wgcharter import markup_txt import datetime diff --git a/ietf/wgcharter/mails.py b/ietf/wgcharter/mails.py index bc7278989..d222db6a6 100644 --- a/ietf/wgcharter/mails.py +++ b/ietf/wgcharter/mails.py @@ -11,8 +11,8 @@ from django.core.urlresolvers import reverse as urlreverse from ietf.utils.mail import send_mail, send_mail_text from ietf.idtracker.models import * from ietf.ipr.search import iprs_from_docs -from redesign.doc.models import WriteupDocEvent, DocAlias, GroupBallotPositionDocEvent -from redesign.person.models import Person +from ietf.doc.models import WriteupDocEvent, DocAlias, GroupBallotPositionDocEvent +from ietf.person.models import Person # These become part of the subject of the email types = {} diff --git a/ietf/wgcharter/templatetags/wg_ballot_icon.py b/ietf/wgcharter/templatetags/wg_ballot_icon.py index 2cd1842e7..ffb6816b8 100644 --- a/ietf/wgcharter/templatetags/wg_ballot_icon.py +++ b/ietf/wgcharter/templatetags/wg_ballot_icon.py @@ -4,9 +4,9 @@ from django import template from django.core.urlresolvers import reverse as urlreverse from django.conf import settings from ietf.idtracker.templatetags.ietf_filters import in_group, timesince_days -from redesign.doc.models import GroupBallotPositionDocEvent -from redesign.person.models import Person -from redesign.group.models import Group +from ietf.doc.models import GroupBallotPositionDocEvent +from ietf.person.models import Person +from ietf.group.models import Group register = template.Library() @@ -18,7 +18,7 @@ def get_user_adid(context): def get_user_name(context): if 'user' in context and context['user'].is_authenticated(): - from person.models import Person + from ietf.person.models import Person try: return context['user'].get_profile().plain_name() except Person.DoesNotExist: diff --git a/ietf/wgcharter/tests.py b/ietf/wgcharter/tests.py index f910de574..93a5579aa 100644 --- a/ietf/wgcharter/tests.py +++ b/ietf/wgcharter/tests.py @@ -11,11 +11,11 @@ from ietf.utils.test_utils import login_testing_unauthorized from pyquery import PyQuery -from redesign.doc.models import * -from redesign.group.models import * -from redesign.group.utils import * -from redesign.name.models import * -from redesign.person.models import * +from ietf.doc.models import * +from ietf.group.models import * +from ietf.group.utils import * +from ietf.name.models import * +from ietf.person.models import * from ietf.iesg.models import TelechatDate from utils import * diff --git a/ietf/wgcharter/urls.py b/ietf/wgcharter/urls.py index 999f454b8..042088d0c 100644 --- a/ietf/wgcharter/urls.py +++ b/ietf/wgcharter/urls.py @@ -2,7 +2,7 @@ from django.conf.urls.defaults import patterns, url from ietf.wgcharter import views, views_search, views_edit, views_ballot, views_submit -from redesign.doc.models import State +from ietf.doc.models import State urlpatterns = patterns('django.views.generic.simple', url(r'^help/state/$', 'direct_to_template', { 'template': 'wgcharter/states.html', 'extra_context': { 'states': State.objects.filter(type="charter") } }, name='help_charter_states'), diff --git a/ietf/wgcharter/utils.py b/ietf/wgcharter/utils.py index 6adfe59e5..984201b6b 100644 --- a/ietf/wgcharter/utils.py +++ b/ietf/wgcharter/utils.py @@ -2,8 +2,8 @@ from django.conf import settings import re from datetime import datetime -from redesign.group.models import GroupEvent, ChangeStateGroupEvent -from redesign.doc.models import Document, DocAlias, DocHistory, RelatedDocument, DocumentAuthor, DocEvent +from ietf.group.models import GroupEvent, ChangeStateGroupEvent +from ietf.doc.models import Document, DocAlias, DocHistory, RelatedDocument, DocumentAuthor, DocEvent from ietf.utils.history import find_history_active_at def set_or_create_charter(wg): @@ -182,7 +182,7 @@ def next_approved_revision(rev): return "%#02d" % (int(m.group('major')) + 1) def update_telechat(request, doc, by, new_telechat_date): - from doc.models import TelechatDocEvent + from ietf.doc.models import TelechatDocEvent on_agenda = bool(new_telechat_date) diff --git a/ietf/wgcharter/views.py b/ietf/wgcharter/views.py index b15a4c00f..742f231dd 100644 --- a/ietf/wgcharter/views.py +++ b/ietf/wgcharter/views.py @@ -11,9 +11,9 @@ from django.utils import simplejson as json from django.utils.decorators import decorator_from_middleware from django.middleware.gzip import GZipMiddleware from django.core.exceptions import ObjectDoesNotExist -from doc.models import GroupBallotPositionDocEvent, WriteupDocEvent -from group.models import Group, GroupHistory -from person.models import Person +from ietf.doc.models import GroupBallotPositionDocEvent, WriteupDocEvent +from ietf.group.models import Group, GroupHistory +from ietf.person.models import Person from wgcharter import markup_txt from django.conf import settings diff --git a/ietf/wgcharter/views_ballot.py b/ietf/wgcharter/views_ballot.py index 500a3b335..7021f4176 100644 --- a/ietf/wgcharter/views_ballot.py +++ b/ietf/wgcharter/views_ballot.py @@ -20,10 +20,10 @@ from ietf.ietfauth.decorators import has_role from mails import email_secretariat, generate_ballot_writeup, generate_issue_ballot_mail from utils import * -from redesign.group.models import Group, GroupHistory, GroupEvent -from redesign.group.utils import save_group_in_history -from redesign.name.models import GroupBallotPositionName, GroupStateName -from redesign.doc.models import * +from ietf.group.models import Group, GroupHistory, GroupEvent +from ietf.group.utils import save_group_in_history +from ietf.name.models import GroupBallotPositionName, GroupStateName +from ietf.doc.models import * def default_action_text(wg, charter, user, action): e = WriteupDocEvent(doc=charter, by=user) @@ -149,7 +149,7 @@ def edit_position(request, name): ad_id = request.GET.get('ad') if not ad_id: raise Http404() - from person.models import Person + from ietf.person.models import Person ad = get_object_or_404(Person, pk=ad_id) old_pos = charter.latest_event(GroupBallotPositionDocEvent, type="changed_ballot_position", ad=ad, time__gte=started_process.time) @@ -285,7 +285,7 @@ def send_ballot_comment(request, name): ad_id = request.GET.get('ad') if not ad_id: raise Http404() - from person.models import Person + from ietf.person.models import Person ad = get_object_or_404(Person, pk=ad_id) pos = charter.latest_event(GroupBallotPositionDocEvent, type="changed_ballot_position", ad=ad, time__gte=started_process.time) diff --git a/ietf/wgcharter/views_edit.py b/ietf/wgcharter/views_edit.py index a34b7d23e..336a0d73b 100644 --- a/ietf/wgcharter/views_edit.py +++ b/ietf/wgcharter/views_edit.py @@ -13,11 +13,11 @@ from mails import email_secretariat from ietf.ietfauth.decorators import group_required from ietf.iesg.models import TelechatDate -from redesign.doc.models import * -from redesign.name.models import * -from redesign.person.models import * -from redesign.group.models import * -from redesign.group.utils import save_group_in_history +from ietf.doc.models import * +from ietf.name.models import * +from ietf.person.models import * +from ietf.group.models import * +from ietf.group.utils import save_group_in_history from views_search import json_emails diff --git a/ietf/wgcharter/views_search.py b/ietf/wgcharter/views_search.py index 6ad6206ce..9d5faac58 100644 --- a/ietf/wgcharter/views_search.py +++ b/ietf/wgcharter/views_search.py @@ -11,11 +11,11 @@ from django.http import Http404, HttpResponse, HttpResponseBadRequest, HttpRespo from django.conf import settings from django.utils import simplejson -from redesign.doc.models import Document, State -from redesign.name.models import GroupStateName -from redesign.group.models import Group -from redesign.person.models import Person, Email -from redesign.doc.utils import augment_with_telechat_date +from ietf.doc.models import Document, State +from ietf.name.models import GroupStateName +from ietf.group.models import Group +from ietf.person.models import Person, Email +from ietf.doc.utils import augment_with_telechat_date class SearchForm(forms.Form): nameacronym = forms.CharField(required=False) diff --git a/ietf/wgcharter/views_submit.py b/ietf/wgcharter/views_submit.py index 55da5bb83..c2c5ff84a 100644 --- a/ietf/wgcharter/views_submit.py +++ b/ietf/wgcharter/views_submit.py @@ -9,9 +9,9 @@ from django.template import RequestContext from django.conf import settings from ietf.ietfauth.decorators import group_required -from redesign.group.models import Group -from redesign.doc.models import Document, DocHistory, DocEvent -from redesign.group.utils import save_group_in_history +from ietf.group.models import Group +from ietf.doc.models import Document, DocHistory, DocEvent +from ietf.group.utils import save_group_in_history from utils import next_revision, set_or_create_charter, save_charter_in_history diff --git a/ietf/wginfo/views.py b/ietf/wginfo/views.py index a274b9b28..be68ec5db 100644 --- a/ietf/wginfo/views.py +++ b/ietf/wginfo/views.py @@ -40,12 +40,12 @@ from ietf.idtracker.models import Area, IETFWG from ietf.idrfc.views_search import SearchForm, search_query from ietf.idrfc.idrfc_wrapper import IdRfcWrapper from ietf.ipr.models import IprDetail -from redesign.group.models import Group +from ietf.group.models import Group def fill_in_charter_info(wg, include_drafts=False): - from redesign.person.models import Email - from redesign.doc.models import DocAlias, RelatedDocument + from ietf.person.models import Email + from ietf.doc.models import DocAlias, RelatedDocument wg.areadirector = wg.ad.role_email("ad", wg.parent) if wg.ad else None wg.chairs = Email.objects.filter(role__group=wg, role__name="chair") @@ -94,8 +94,8 @@ def wg_dir(request): return render_to_response('wginfo/wg-dir.html', {'areas':areas}, RequestContext(request)) def wg_dirREDESIGN(request): - from redesign.group.models import Group, GroupURL - from redesign.person.models import Email + from ietf.group.models import Group, GroupURL + from ietf.person.models import Email areas = Group.objects.filter(type="area", state="active").order_by("name") for area in areas: diff --git a/redesign/importing/import-announcements.py b/redesign/importing/import-announcements.py index 574bbc5c1..8507e0efd 100755 --- a/redesign/importing/import-announcements.py +++ b/redesign/importing/import-announcements.py @@ -12,10 +12,10 @@ settings.IMPORTING_FROM_OLD_SCHEMA = True from django.core import management management.setup_environ(settings) -from redesign.person.models import * -from redesign.group.models import * -from redesign.name.utils import name -from redesign.importing.utils import old_person_to_person +from ietf.person.models import * +from ietf.group.models import * +from ietf.name.utils import name +from ietf.importing.utils import old_person_to_person from ietf.announcements.models import Message, SendQueue from ietf.announcements.models import Announcement, PersonOrOrgInfo, AnnouncedTo, AnnouncedFrom, ScheduledAnnouncement from ietf.idtracker.models import IESGLogin diff --git a/redesign/importing/import-docs.py b/redesign/importing/import-docs.py index 9e09881b2..2c833bd9e 100755 --- a/redesign/importing/import-docs.py +++ b/redesign/importing/import-docs.py @@ -13,12 +13,12 @@ management.setup_environ(settings) from django.template.defaultfilters import pluralize -from redesign.doc.models import * -from redesign.doc.utils import get_tags_for_stream_id -from redesign.group.models import * -from redesign.name.models import * -from redesign.importing.utils import old_person_to_person, person_name, dont_save_queries -from redesign.name.utils import name +from ietf.doc.models import * +from ietf.doc.utils import get_tags_for_stream_id +from ietf.group.models import * +from ietf.name.models import * +from ietf.importing.utils import old_person_to_person, person_name, dont_save_queries +from ietf.name.utils import name from ietf.idtracker.models import InternetDraft, IDInternal, IESGLogin, DocumentComment, PersonOrOrgInfo, Rfc, IESGComment, IESGDiscuss, BallotInfo, Position from ietf.idrfc.models import RfcIndex, DraftVersions from ietf.idrfc.mirror_rfc_index import get_std_level_mapping, get_stream_mapping diff --git a/redesign/importing/import-groups.py b/redesign/importing/import-groups.py index 4b44933c8..bb843d6c8 100755 --- a/redesign/importing/import-groups.py +++ b/redesign/importing/import-groups.py @@ -13,13 +13,13 @@ management.setup_environ(settings) from django.template.defaultfilters import slugify -from redesign.group.models import * -from redesign.name.models import * -from redesign.doc.models import State, StateType -from redesign.doc.utils import get_tags_for_stream_id -from redesign.doc.models import Document -from redesign.name.utils import name -from redesign.importing.utils import old_person_to_person +from ietf.group.models import * +from ietf.name.models import * +from ietf.doc.models import State, StateType +from ietf.doc.utils import get_tags_for_stream_id +from ietf.doc.models import Document +from ietf.name.utils import name +from ietf.importing.utils import old_person_to_person from ietf.idtracker.models import AreaGroup, IETFWG, Area, AreaGroup, Acronym, AreaWGURL, IRTF, ChairsHistory, Role, AreaDirector from ietf.liaisons.models import SDOs from ietf.iesg.models import TelechatDates, Telechat, TelechatDate diff --git a/redesign/importing/import-ipr.py b/redesign/importing/import-ipr.py index 07c267b72..72e6d7e90 100755 --- a/redesign/importing/import-ipr.py +++ b/redesign/importing/import-ipr.py @@ -13,7 +13,7 @@ from django.core import management management.setup_environ(settings) from ietf.ipr.models import IprDraftOld, IprRfcOld, IprDocAlias, IprDetail -from redesign.doc.models import DocAlias +from ietf.doc.models import DocAlias # imports IprDraft and IprRfc, converting them to IprDocAlias links to Document diff --git a/redesign/importing/import-liaison.py b/redesign/importing/import-liaison.py index 43a0c9e89..a410d44f4 100755 --- a/redesign/importing/import-liaison.py +++ b/redesign/importing/import-liaison.py @@ -16,11 +16,11 @@ from django.template.defaultfilters import slugify from ietf.idtracker.models import Acronym, EmailAddress from ietf.liaisons.models import * -from redesign.doc.models import Document, DocAlias -from redesign.person.models import * -from redesign.importing.utils import old_person_to_person -from redesign.name.models import * -from redesign.name.utils import name +from ietf.doc.models import Document, DocAlias +from ietf.person.models import * +from ietf.importing.utils import old_person_to_person +from ietf.name.models import * +from ietf.name.utils import name # imports LiaisonDetail, OutgoingLiaisonApproval, Uploads diff --git a/redesign/importing/import-meetings.py b/redesign/importing/import-meetings.py index 9f47d7066..eb2ad235d 100755 --- a/redesign/importing/import-meetings.py +++ b/redesign/importing/import-meetings.py @@ -18,11 +18,11 @@ import datetime from ietf.idtracker.models import AreaDirector, IETFWG, Acronym, IRTF, PersonOrOrgInfo from ietf.meeting.models import * from ietf.proceedings.models import Meeting as MeetingOld, MeetingVenue, MeetingRoom, NonSession, WgMeetingSession, WgAgenda, Minute, Slide, WgProceedingsActivities, NotMeetingGroup -from redesign.person.models import * -from redesign.doc.models import Document, DocAlias, State, DocEvent -from redesign.importing.utils import old_person_to_person, dont_save_queries -from redesign.name.models import * -from redesign.name.utils import name +from ietf.person.models import * +from ietf.doc.models import Document, DocAlias, State, DocEvent +from ietf.importing.utils import old_person_to_person, dont_save_queries +from ietf.name.models import * +from ietf.name.utils import name dont_save_queries() diff --git a/redesign/importing/import-persons.py b/redesign/importing/import-persons.py index 924d5539b..60a7f536f 100755 --- a/redesign/importing/import-persons.py +++ b/redesign/importing/import-persons.py @@ -14,8 +14,8 @@ management.setup_environ(settings) from ietf.idtracker.models import IESGLogin, AreaDirector, IETFWG, PersonOrOrgInfo, IDAuthor from ietf.ietfauth.models import LegacyWgPassword, LegacyLiaisonUser from ietf.liaisons.models import LiaisonDetail, LiaisonManagers, SDOAuthorizedIndividual -from redesign.person.models import * -from redesign.importing.utils import * +from ietf.person.models import * +from ietf.importing.utils import * # creates system person and email diff --git a/redesign/importing/import-roles.py b/redesign/importing/import-roles.py index ff80b3c25..1360ed841 100755 --- a/redesign/importing/import-roles.py +++ b/redesign/importing/import-roles.py @@ -11,11 +11,11 @@ settings.USE_DB_REDESIGN_PROXY_CLASSES = False from django.core import management management.setup_environ(settings) -from redesign.person.models import * -from redesign.group.models import * -from redesign.name.models import * -from redesign.name.utils import name -from redesign.importing.utils import get_or_create_email +from ietf.person.models import * +from ietf.group.models import * +from ietf.name.models import * +from ietf.name.utils import name +from ietf.importing.utils import get_or_create_email from ietf.idtracker.models import IESGLogin, AreaDirector, PersonOrOrgInfo, WGChair, WGEditor, WGSecretary, WGTechAdvisor, ChairsHistory, Role as OldRole, Acronym, IRTFChair from ietf.liaisons.models import LiaisonManagers, SDOAuthorizedIndividual diff --git a/redesign/importing/import-states.py b/redesign/importing/import-states.py index 3721ca6c7..5d362d6f3 100755 --- a/redesign/importing/import-states.py +++ b/redesign/importing/import-states.py @@ -15,7 +15,7 @@ management.setup_environ(settings) import workflows.models from ietf.ietfworkflows.models import StateDescription from ietf.idrfc.mirror_rfc_editor_queue import get_rfc_state_mapping -from redesign.doc.models import * +from ietf.doc.models import * # adds states for documents and import states from workflows.Workflow # and ietfworkflows.StateDescription diff --git a/redesign/importing/utils.py b/redesign/importing/utils.py index 4a7176a54..2e6776390 100644 --- a/redesign/importing/utils.py +++ b/redesign/importing/utils.py @@ -1,5 +1,5 @@ from ietf.utils import unaccent -from redesign.person.models import Person, Email, Alias +from ietf.person.models import Person, Email, Alias from ietf.idtracker.models import EmailAddress import datetime diff --git a/redesign/unaccent.py b/redesign/unaccent.py deleted file mode 100644 index 265e764de..000000000 --- a/redesign/unaccent.py +++ /dev/null @@ -1,144 +0,0 @@ -# -*- coding: utf-8 -*- -# use a dynamically populated translation dictionary to remove accents -# from a string -# (by Chris Mulligan, http://chmullig.com/2009/12/python-unicode-ascii-ifier/) - -import unicodedata, sys - -class unaccented_map(dict): -# Translation dictionary. Translation entries are added to this dictionary as needed. - CHAR_REPLACEMENT = { - 0xc6: u"AE", # Æ LATIN CAPITAL LETTER AE - 0xd0: u"D", # Ð LATIN CAPITAL LETTER ETH - 0xd8: u"OE", # Ø LATIN CAPITAL LETTER O WITH STROKE - 0xde: u"Th", # Þ LATIN CAPITAL LETTER THORN - 0xc4: u'Ae', # Ä LATIN CAPITAL LETTER A WITH DIAERESIS - 0xd6: u'Oe', # Ö LATIN CAPITAL LETTER O WITH DIAERESIS - 0xdc: u'Ue', # Ü LATIN CAPITAL LETTER U WITH DIAERESIS - - 0xc0: u"A", # À LATIN CAPITAL LETTER A WITH GRAVE - 0xc1: u"A", # Á LATIN CAPITAL LETTER A WITH ACUTE - 0xc3: u"A", # Ã LATIN CAPITAL LETTER A WITH TILDE - 0xc7: u"C", # Ç LATIN CAPITAL LETTER C WITH CEDILLA - 0xc8: u"E", # È LATIN CAPITAL LETTER E WITH GRAVE - 0xc9: u"E", # É LATIN CAPITAL LETTER E WITH ACUTE - 0xca: u"E", # Ê LATIN CAPITAL LETTER E WITH CIRCUMFLEX - 0xcc: u"I", # Ì LATIN CAPITAL LETTER I WITH GRAVE - 0xcd: u"I", # Í LATIN CAPITAL LETTER I WITH ACUTE - 0xd2: u"O", # Ò LATIN CAPITAL LETTER O WITH GRAVE - 0xd3: u"O", # Ó LATIN CAPITAL LETTER O WITH ACUTE - 0xd5: u"O", # Õ LATIN CAPITAL LETTER O WITH TILDE - 0xd9: u"U", # Ù LATIN CAPITAL LETTER U WITH GRAVE - 0xda: u"U", # Ú LATIN CAPITAL LETTER U WITH ACUTE - - 0xdf: u"ss", # ß LATIN SMALL LETTER SHARP S - 0xe6: u"ae", # æ LATIN SMALL LETTER AE - 0xf0: u"d", # ð LATIN SMALL LETTER ETH - 0xf8: u"oe", # ø LATIN SMALL LETTER O WITH STROKE - 0xfe: u"th", # þ LATIN SMALL LETTER THORN, - 0xe4: u'ae', # ä LATIN SMALL LETTER A WITH DIAERESIS - 0xf6: u'oe', # ö LATIN SMALL LETTER O WITH DIAERESIS - 0xfc: u'ue', # ü LATIN SMALL LETTER U WITH DIAERESIS - - 0xe0: u"a", # à LATIN SMALL LETTER A WITH GRAVE - 0xe1: u"a", # á LATIN SMALL LETTER A WITH ACUTE - 0xe3: u"a", # ã LATIN SMALL LETTER A WITH TILDE - 0xe7: u"c", # ç LATIN SMALL LETTER C WITH CEDILLA - 0xe8: u"e", # è LATIN SMALL LETTER E WITH GRAVE - 0xe9: u"e", # é LATIN SMALL LETTER E WITH ACUTE - 0xea: u"e", # ê LATIN SMALL LETTER E WITH CIRCUMFLEX - 0xec: u"i", # ì LATIN SMALL LETTER I WITH GRAVE - 0xed: u"i", # í LATIN SMALL LETTER I WITH ACUTE - 0xf2: u"o", # ò LATIN SMALL LETTER O WITH GRAVE - 0xf3: u"o", # ó LATIN SMALL LETTER O WITH ACUTE - 0xf5: u"o", # õ LATIN SMALL LETTER O WITH TILDE - 0xf9: u"u", # ù LATIN SMALL LETTER U WITH GRAVE - 0xfa: u"u", # ú LATIN SMALL LETTER U WITH ACUTE - - 0x2018: u"'", # ‘ LEFT SINGLE QUOTATION MARK - 0x2019: u"'", # ’ RIGHT SINGLE QUOTATION MARK - 0x201c: u'"', # “ LEFT DOUBLE QUOTATION MARK - 0x201d: u'"', # ” RIGHT DOUBLE QUOTATION MARK - - } - - # Maps a unicode character code (the key) to a replacement code - # (either a character code or a unicode string). - def mapchar(self, key): - ch = self.get(key) - if ch is not None: - return ch - try: - de = unicodedata.decomposition(unichr(key)) - p1, p2 = [int(x, 16) for x in de.split(None, 1)] - if p2 == 0x308: - ch = self.CHAR_REPLACEMENT.get(key) - else: - ch = int(p1) - - except (IndexError, ValueError): - ch = self.CHAR_REPLACEMENT.get(key, key) - self[key] = ch - return ch - - if sys.version <= "2.5": - # use __missing__ where available - __missing__ = mapchar - else: - # otherwise, use standard __getitem__ hook (this is slower, - # since it's called for each character) - __getitem__ = mapchar - -map = unaccented_map() - -def asciify(input): - try: - return input.encode('ascii') - except AttributeError: - return str(input).encode('ascii') - except UnicodeEncodeError: - return unicodedata.normalize('NFKD', input.translate(map)).encode('ascii', 'replace') - -text = u""" - -##Norwegian -"Jo, når'n da ha gått ett stôck te, så kommer'n te e å, -å i åa ä e ö." -"Vasa", sa'n. -"Å i åa ä e ö", sa ja. -"Men va i all ti ä dä ni säjer, a, o?", sa'n. -"D'ä e å, vett ja", skrek ja, för ja ble rasen, "å i åa -ä e ö, hörer han lite, d'ä e å, å i åa ä e ö." -"A, o, ö", sa'n å dämmä geck'en. -Jo, den va nôe te dum den. - -(taken from the short story "Dumt fôlk" in Gustaf Fröding's -"Räggler å paschaser på våra mål tå en bonne" (1895). - -##Danish - -Nu bliver Mølleren sikkert sur, og dog, han er stadig den største på verdensplan. - -Userneeds A/S er en dansk virksomhed, der udfører statistiske undersøgelser på internettet. Den blev etableret i 2001 som et anpartsselskab af David Jensen og Henrik Vincentz. -Frem til 2004 var det primære fokus på at forbedre hjemmesiderne for andre virksomheder. Herefter blev fokus omlagt, så man også beskæftigede sig med statistiske målinger. Ledelsen vurderede, at dette marked ville vokse betragteligt i de kommende år, hvilket man ønskede at udnytte. -Siden omlægningen er der blevet fokuseret på at etablere meget store forbrugerpaneler. Således udgjorde det danske panel i 2005 65.000 personer og omfatter per 2008 100.000 personer. -I 2007 blev Userneeds ApS konverteret til aktieselskabet Userneeds A/S -Efterhånden er aktiviteterne blevet udvidet til de nordiske lande (med undtagelse af Island) og besidder i 2009 et forbrugerpanel med i alt mere end 250.000 personer bosat i de fire store nordiske lande. -Selskabet tegnes udadtil af en direktion på tre personer, der foruden Henrik Vincentz tæller Palle Viby Morgen og Simon Andersen. -De primære konkurrenter er andre analysebureauer som AC Nielsen, Analysedanmark, Gallup, Norstat, Synnovate og Zapera. - -##Finnish -Titus Aurelius Fulvus Boionius Arrius Antoninus eli Antoninus Pius (19. syyskuuta 86 – 7. maaliskuuta 161) oli Rooman keisari vuosina 138–161. Antoninus sai lisänimensä Pius (suom. velvollisuudentuntoinen) noustuaan valtaan vuonna 138. Hän kuului Nerva–Antoninusten hallitsijasukuun ja oli suosittu ja kunnioitettu keisari, joka tunnettiin lempeydestään ja oikeamielisyydestään. Hänen valtakauttaan on usein sanottu Rooman valtakunnan kultakaudeksi, jolloin talous kukoisti, poliittinen tilanne oli vakaa ja armeija vahva. Hän hallitsi pitempään kuin yksikään Rooman keisari Augustuksen jälkeen, ja hänen kautensa tunnetaan erityisen rauhallisena, joskaan ei sodattomana. Antoninus adoptoi Marcus Aureliuksen ja Lucius Veruksen vallanperijöikseen. Hän kuoli vuonna 161. - -#German -So heißt ein altes Märchen: "Der Ehre Dornenpfad", und es handelt von einem Schützen mit Namen Bryde, der wohl zu großen Ehren und Würden kam, aber nicht ohne lange und vielfältige Widerwärtigkeiten und Fährnisse des Lebens durchzumachen. Manch einer von uns hat es gewiß als Kind gehört oder es vielleicht später gelesen und dabei an seinen eigenen stillen Dornenweg und die vielen Widerwärtigkeiten gedacht. Märchen und Wirklichkeit liegen einander so nahe, aber das Märchen hat seine harmonische Lösung hier auf Erden, während die Wirklichkeit sie meist aus dem Erdenleben hinaus in Zeit und Ewigkeit verlegt. - -12\xbd inch -""" - -if __name__ == "__main__": - for i, line in enumerate(text.splitlines()): - line = line.strip() - print line - if line and not line.startswith('#'): - print '\tTrans: ', asciify(line).strip() diff --git a/redesign/util.py b/redesign/util.py deleted file mode 100644 index 8e24e462a..000000000 --- a/redesign/util.py +++ /dev/null @@ -1,45 +0,0 @@ - -def name(obj): - if hasattr(obj, 'abbrev'): - return obj.abbrev() - elif hasattr(obj, 'name'): - if callable(obj.name): - return obj.name() - else: - return unicode(obj.name) - else: - return unicode(obj) - -def admin_link(field, label=None, ordering="", display=name, suffix=""): - if not label: - label = field.capitalize().replace("_", " ").strip() - if ordering == "": - ordering = field - def _link(self): - obj = self - for attr in field.split("__"): - obj = getattr(obj, attr) - if callable(obj): - obj = obj() - if hasattr(obj, "all"): - objects = obj.all() - elif callable(obj): - objects = obj() - if not hasattr(objects, "__iter__"): - objects = [ objects ] - elif hasattr(obj, "__iter__"): - objects = obj - else: - objects = [ obj ] - chunks = [] - for obj in objects: - app = obj._meta.app_label - model = obj.__class__.__name__.lower() - id = obj.pk - chunks += [ u'%(display)s' % - {'app':app, "model": model, "id":id, "display": display(obj), "suffix":suffix, } ] - return u", ".join(chunks) - _link.allow_tags = True - _link.short_description = label - _link.admin_order_field = ordering - return _link