1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-24 21:07:17 +00:00

Rewrite contacts and wiki, do not import models in package level

This commit is contained in:
zhengxie
2018-02-06 15:55:28 +08:00
parent 46e0b29637
commit 24b4e4a805
7 changed files with 27 additions and 38 deletions

View File

@@ -1,5 +0,0 @@
# Copyright (c) 2012-2016 Seafile Ltd.
from signals import *
from handlers import *
mail_sended.connect(mail_sended_cb, sender=None)

View File

@@ -1,19 +0,0 @@
# Copyright (c) 2012-2016 Seafile Ltd.
from signals import mail_sended
from models import Contact
def mail_sended_cb(sender, **kwargs):
"""
Callback function to add email to contacts.
"""
user = kwargs['user']
email = kwargs['email']
try:
Contact.objects.get(user_email=user, contact_email=email)
# Already in contacts list, pass.
except Contact.DoesNotExist:
# Add new contact
c = Contact(user_email=user, contact_email=email)
c.save()

View File

@@ -91,3 +91,23 @@ class ContactEditForm(ModelForm):
def clean(self):
# This is used to override unique index check
return self.cleaned_data
########## handle signals
from django.dispatch import receiver
from .signals import mail_sended
@receiver(mail_sended)
def mail_sended_cb(sender, **kwargs):
"""
Callback function to add email to contacts.
"""
user = kwargs['user']
email = kwargs['email']
try:
Contact.objects.get(user_email=user, contact_email=email)
# Already in contacts list, pass.
except Contact.DoesNotExist:
# Add new contact
c = Contact(user_email=user, contact_email=email)
c.save()

View File

@@ -28,10 +28,10 @@ from seahub.auth import REDIRECT_FIELD_NAME
from seahub.base.decorators import sys_staff_required, require_POST
from seahub.group.utils import validate_group_name, BadGroupNameError, \
ConflictGroupNameError
from seahub.wiki import get_group_wiki_repo, get_group_wiki_page, \
get_wiki_pages
from seahub.wiki.models import WikiDoesNotExist, WikiPageMissing, GroupWiki
from seahub.wiki.utils import clean_page_name, page_name_to_file_name
from seahub.wiki.utils import (clean_page_name, page_name_to_file_name,
get_wiki_pages, get_group_wiki_repo,
get_group_wiki_page)
from seahub.settings import SITE_ROOT, SITE_NAME
from seahub.utils import render_error, send_html_email, is_org_context
from seahub.views import is_registered_user, check_folder_permission

View File

@@ -63,7 +63,7 @@ class PersonalWikiTest(TestCase):
res = personal_wiki(request)
self.assertEqual('/home/wiki/home/', res['Location'])
@patch('seahub.views.wiki.get_personal_wiki_page')
@patch('seahub.views.wiki.utils.get_personal_wiki_page')
@patch('seahub.base.models.FileContributors.objects.get_file_contributors')
def test_wiki_found(self, mock_get_file_contributors,
mock_get_personal_wiki_page):

View File

@@ -32,10 +32,10 @@ from pysearpc import SearpcError
from seahub.auth.decorators import login_required
from seahub.base.decorators import user_mods_check
from seahub.wiki.models import PersonalWiki, WikiDoesNotExist, WikiPageMissing
from seahub.wiki import get_personal_wiki_page, get_personal_wiki_repo, \
convert_wiki_link, get_wiki_pages
from seahub.wiki.utils import (get_personal_wiki_page,
get_personal_wiki_repo, get_wiki_pages,
clean_page_name, page_name_to_file_name)
from seahub.wiki.forms import WikiCreateForm, WikiNewPageForm
from seahub.wiki.utils import clean_page_name, page_name_to_file_name
from seahub.utils import render_error
from seahub.views import check_folder_permission

View File

@@ -1,7 +0,0 @@
# Copyright (c) 2012-2016 Seafile Ltd.
# -*- coding: utf-8 -*-
from utils import get_personal_wiki_page, get_personal_wiki_repo, \
convert_wiki_link, get_wiki_pages
from utils import (get_group_wiki_repo, get_group_wiki_page,
page_name_to_file_name)