示例#1
0
class DirectoryTest(TestCase):
    def setUp(self):
        # create the objects needed
        self.client = Client()
        self.directory = Directory()

        self.user = User(username='******')
        self.user.set_password('google')
        self.user.is_active = True
        self.user.save()

    def tearDown(self):
        self.client = None
        self.directory = None
        self.user = None

    def test_save(self):
        self.directory.headline = 'Unit Testing'
        self.directory.summary = 'Unit Testing'

        # required fields
        self.directory.creator = self.user
        self.directory.creator_username = self.user.username
        self.directory.owner = self.user
        self.directory.owner_username = self.user.username
        self.directory.status = True
        self.directory.status_detail = 'active'
        self.directory.enclosure_length = 0
        self.directory.timezone = 'America/Chicago'

        self.directory.save()

        self.assertEquals(type(self.directory.id), long)
示例#2
0
文件: tests.py 项目: BIGGANI/tendenci
class DirectoryTest(TestCase):
    def setUp(self):
        # create the objects needed
        self.client = Client()
        self.directory = Directory()

        self.user = User(username='******')
        self.user.set_password('google')
        self.user.is_active = True
        self.user.save()


    def tearDown(self):
        self.client = None
        self.directory = None
        self.user = None

    def test_save(self):
        self.directory.headline = 'Unit Testing'
        self.directory.summary = 'Unit Testing'

        # required fields
        self.directory.creator = self.user
        self.directory.creator_username = self.user.username
        self.directory.owner = self.user
        self.directory.owner_username = self.user.username
        self.directory.status = True
        self.directory.status_detail = 'active'
        self.directory.enclosure_length = 0
        self.directory.timezone = 'America/Chicago'

        self.directory.save()

        self.assertEquals(type(self.directory.id), long)
示例#3
0
    def setUp(self):
        # create the objects needed
        self.client = Client()
        self.directory = Directory()

        self.user = User(username='******')
        self.user.set_password('google')
        self.user.is_active = True
        self.user.save()
示例#4
0
文件: tests.py 项目: BIGGANI/tendenci
    def setUp(self):
        # create the objects needed
        self.client = Client()
        self.directory = Directory()

        self.user = User(username='******')
        self.user.set_password('google')
        self.user.is_active = True
        self.user.save()
示例#5
0
def request_associate(
        request,
        to_directory_id,
        form_class=RequestAssociateForm,
        template_name="directories/affiliates/request_associate.html"):
    if not get_setting('module', 'directories', 'affiliates_enabled'):
        raise Http404

    to_directory = get_object_or_404(Directory, pk=to_directory_id)

    # Check user permission
    if not to_directory.allow_associate_by(request.user):
        raise Http404

    # Get a list of allowed affiliate categories
    cats = to_directory.cats.all()
    allowed_affliated_cats = to_directory.get_affliated_cats()

    if not allowed_affliated_cats:
        raise Http404

    # Get initial for the from_directory_url field, and display a warning message if there is no listings available to connect

    warning_msg_string = ''
    directory_initial = None
    initial_opts = None
    # get a list of directories that can be connected by this user
    directories = Directory.get_my_directories_filter(
        request.user,
        my_directories_only=True).filter(status_detail='active').filter(
            cats__in=allowed_affliated_cats).distinct()
    if not directories:
        if not request.user.is_superuser:
            warning_msg_string = _(
                'ATTENTION! No listings available for you to connect!')
        else:
            # superuser can connect all within the allowed affiliate categories
            directories = Directory.objects.filter(
                status_detail='active').filter(
                    cats__in=allowed_affliated_cats).distinct()
            if directories:
                [directory_initial] = [
                    d for d in directories
                    if d not in to_directory.affiliates.filter(
                        affiliateship_affiliate_directories__connected_as__isnull
                        =False)
                ][:1] or [None]
                if not directory_initial:
                    warning_msg_string = _(
                        'ATTENTION! No listings available to connect!')
    else:
        [directory_initial] = [
            d for d in directories if d not in to_directory.affiliates.filter(
                affiliateship_affiliate_directories__connected_as__isnull=False
            )
        ][:1] or [None]
        if not directory_initial:
            affiliateship = Affiliateship.objects.filter(
                directory=to_directory,
                affiliate__in=directories,
                connected_as__isnull=False)[0]
            connected_directory = affiliateship.affiliate
            connected_as = affiliateship.connected_as
            warning_msg_string = _(
                f'ATTENTION! Your listing has been connected as "{connected_as}" already! Click <a href="{connected_directory.get_absolute_url()}">Here</a> to view your listing'
            )

    if directory_initial:
        site_url = get_setting('site', 'global', 'siteurl')
        initial_opts = {
            'from_directory_url':
            f'{site_url}{directory_initial.get_absolute_url()}'
        }
        if directory_initial.cats.all().exists():
            initial_opts.update(
                {'request_as': directory_initial.cats.all()[0]})

    request_form = form_class(request.POST or None,
                              request=request,
                              to_directory=to_directory,
                              initial=initial_opts)

    if request.method == "POST":
        if request_form.is_valid():
            request_email = request_form.save()
            # log an event
            description = _(
                'Requested to associate to {to_directory} from {from_directory}.'
            ).format(
                to_directory=request_email.affiliate_request.to_directory,
                from_directory=request_email.affiliate_request.from_directory)
            EventLog.objects.log(instance=request_email.affiliate_request,
                                 description=description)

            msg_string = _('Successfully submitted the affiliate request to the owner of %s') \
                    % str(request_email.affiliate_request.to_directory)
            messages.add_message(request, messages.SUCCESS, msg_string)

            return redirect("directory.search")

    return render_to_resp(request=request,
                          template_name=template_name,
                          context={
                              'directory': to_directory,
                              'cats': cats,
                              'allowed_affliated_cats': allowed_affliated_cats,
                              'request_form': request_form,
                              'warning_msg_string': warning_msg_string
                          })
示例#6
0
def search(request,
           my_directories_only=False,
           template_name="directories/search.html"):
    if my_directories_only and request.user.is_authenticated:
        directories = Directory.get_my_directories_filter(
            request.user, my_directories_only=my_directories_only).distinct()
    else:
        filters = get_query_filters(request.user, 'directories.view_directory')
        directories = Directory.objects.filter(filters).distinct()
    cat = None

    if not request.user.is_anonymous:
        directories = directories.select_related()

    query = request.GET.get('q', None)

    form = DirectorySearchForm(request.GET,
                               is_superuser=request.user.is_superuser)

    if form.is_valid():
        search_category = form.cleaned_data['search_category']
        query = form.cleaned_data.get('q')
        search_method = form.cleaned_data['search_method']
        cat = form.cleaned_data.get('cat')
        sub_cat = form.cleaned_data.get('sub_cat')
        region = form.cleaned_data.get('region')
        cat = [int(c) for c in cat if c.isdigit()]
        if sub_cat:
            sub_cat = [int(c) for c in sub_cat if c.isdigit()]

        if cat:
            directories = directories.filter(cats__in=list(cat))
        if sub_cat:
            directories = directories.filter(sub_cats__in=list(sub_cat))

        if region:
            directories = directories.filter(region=region)

        if query and 'tag:' in query:
            tag = query.strip('tag:')
            directories = directories.filter(tags__icontains=tag)
        elif query and search_category:
            search_type = '__iexact'
            if search_method == 'starts_with':
                search_type = '__istartswith'
            elif search_method == 'contains':
                search_type = '__icontains'

            search_filter = {'%s%s' % (search_category, search_type): query}
            directories = directories.filter(**search_filter)

    directories = directories.order_by('headline')

    EventLog.objects.log()

    if not get_setting('module', 'directories', 'showresultswithoutsearch'):
        if "?" not in request.get_full_path():
            directories = directories.none()

    return render_to_resp(request=request,
                          template_name=template_name,
                          context={
                              'directories': directories,
                              'form': form,
                              'a_to_z': string.ascii_lowercase
                          })