Skip to content
This repository has been archived by the owner on Mar 5, 2021. It is now read-only.

Commit

Permalink
Merge remote-tracking branch 'origin/develop' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
evildmp committed Jun 3, 2013
2 parents 3d65fc3 + 83de428 commit 4e7d3e3
Show file tree
Hide file tree
Showing 14 changed files with 226 additions and 108 deletions.
10 changes: 10 additions & 0 deletions .travis.yml
@@ -0,0 +1,10 @@
language: python
python:
# - "3.3"
# - "2.7"
- "2.6"
# install Arkestra & dependencies
install:
- pip install -r REQUIREMENTS.txt
# command to run tests, e.g. python setup.py test
script: python example/testrunner.py
7 changes: 7 additions & 0 deletions arkestra_utilities/managers.py
Expand Up @@ -10,6 +10,13 @@ class ArkestraGenericModelManager(models.Manager):
def get_by_natural_key(self, slug):
return self.get(slug=slug)

# this method is not yet used, but will be used as part of the wholesale rewriting of this code
def published_items(self, entity=None):
return self.model.objects.filter(
published=True,
date__lte = datetime.now()
)

def get_items(self, instance):
publishable_items = self.get_publishable_items(instance)
if instance.order_by == "importance/date":
Expand Down
49 changes: 49 additions & 0 deletions arkestra_utilities/tests.py
@@ -0,0 +1,49 @@
from datetime import datetime, timedelta

from django.test import TestCase
from django.test.client import Client

from news_and_events.models import NewsArticle

class NewsManagerTests(TestCase):
def setUp(self):
# Every test needs a client.
self.client = Client()

# create a news item
self.tootharticle = NewsArticle(
title = "All about teeth",
slug = "all-about-teeth",
)

def test_published_items_no_saved_items(self):
self.assertEqual(
list(NewsArticle.objects.published_items()),
[]
)

def test_published_items_one_saved_item_unpublished(self):
self.tootharticle.date = datetime.now() - timedelta(minutes=30)
self.tootharticle.save()
self.assertEqual(
list(NewsArticle.objects.published_items()),
[]
)

def test_published_items_one_saved_published_but_future_item(self):
self.tootharticle.published = True
self.tootharticle.date = datetime.now() + timedelta(minutes=30)
self.tootharticle.save()
self.assertEqual(
list(NewsArticle.objects.published_items()),
[]
)

def test_published_items_one_saved_published_item(self):
self.tootharticle.published = True
self.tootharticle.date = datetime.now() - timedelta(minutes=30)
self.tootharticle.save()
self.assertEqual(
list(NewsArticle.objects.published_items()),
[self.tootharticle]
)
3 changes: 2 additions & 1 deletion contacts_and_people/admin.py
Expand Up @@ -388,7 +388,8 @@ class EntityAdmin(PersonAndEntityAdmin, TreeAdmin):
'slug': ('name',)
}
readonly_fields = ['address_report']

filter_include_ancestors = True

def address_report(self, instance):
if not instance.abstract_entity:
return "%s" % (", ".join(instance.get_full_address)) or "Warning: this Entity has no address."
Expand Down
4 changes: 2 additions & 2 deletions contacts_and_people/models.py
Expand Up @@ -712,8 +712,8 @@ def get_please_contact(self):
return self

@property
def real_entities(self):
# returns non-abstract entities the person belongs to
def real_entity_memberships(self):
# returns Memberships of non-abstract entities the person belongs to
return self.member_of.filter(entity__abstract_entity = False)


Expand Down
Expand Up @@ -49,7 +49,7 @@
<div class="column lastcolumn">
<div class = "">
{% if image %}<img src="{{ image.url }}" alt="" />{% endif %}
{% if person.real_entities.count > 1 %}
{% if person.real_entity_memberships.count > 1 %}
<h{{ IN_BODY_HEADING_LEVEL }}>Roles & memberships</h{{ IN_BODY_HEADING_LEVEL }}>
{% membership_tree_roots person %}
{% endif %}
Expand Down
21 changes: 19 additions & 2 deletions contacts_and_people/tests.py
Expand Up @@ -177,8 +177,11 @@ def test_get_roles(self):
)
smith_school_membership.save()
people = [self.smith]
self.assertEquals(self.school.get_roles_for_members(people), [self.smith])

self.assertEquals(
self.school.get_roles_for_members(people),
[self.smith]
)


class EntityAddressTests(EntityTestObjectsMixin, TestCase):
def test_get_building_works_when_building_is_assigned(self):
Expand Down Expand Up @@ -254,6 +257,7 @@ class PersonTests(EntityTestObjectsMixin, TestCase):

def test_person_with_no_memberships(self):
# smith has no Memberships
self.assertEquals(list(self.smith.real_entity_memberships), [])
self.assertEquals(self.smith.get_role, None)
self.assertEquals(self.smith.get_entity, None)
self.assertEquals(self.smith.get_building, None)
Expand All @@ -270,6 +274,7 @@ def test_person_with_abstract_entity_memberships(self):
)
smith_web_editor_membership.save()

self.assertEquals(list(self.smith.real_entity_memberships), [])
self.assertEquals(self.smith.get_role, None)
self.assertEquals(self.smith.get_entity, None)
self.assertEquals(self.smith.get_building, None)
Expand All @@ -295,6 +300,10 @@ def test_person_with_abstract_entity_and_real_entity_memberships(self):
)
smith_department_membership.save()

self.assertEquals(
list(self.smith.real_entity_memberships),
[smith_department_membership]
)
self.assertEquals(self.smith.get_role, smith_department_membership)
self.assertEquals(self.smith.get_entity, self.department)
self.assertEquals(self.smith.get_building, self.main_building)
Expand Down Expand Up @@ -329,6 +338,10 @@ def test_person_with_better_entity_membership(self):
)
smith_school_membership.save()

self.assertEquals(
list(self.smith.real_entity_memberships),
[smith_school_membership, smith_department_membership]
)
self.assertEquals(self.smith.get_role, smith_school_membership)
self.assertEquals(self.smith.get_entity, self.school)
self.assertEquals(self.smith.get_building, self.main_building)
Expand All @@ -338,6 +351,10 @@ def test_person_with_better_entity_membership(self):
smith_department_membership.importance_to_person = 5
smith_department_membership.save()

self.assertEquals(
list(self.smith.real_entity_memberships),
[smith_school_membership, smith_department_membership]
)
self.assertEquals(self.smith.get_role, smith_department_membership)
self.assertEquals(self.smith.get_entity, self.department)
self.assertEquals(self.smith.get_building, self.main_building)
Expand Down
7 changes: 4 additions & 3 deletions housekeeping/templates/housekeeping/tidy_links.html
Expand Up @@ -42,13 +42,14 @@ <h3>Duplicates</h3>
<dd>{{ duplicate }}: used on {{ duplicate.objects|length }} objects and in {{ duplicate.plugins|length }} plugins</dd>
{% endfor %}
{% endfor %}
<dl>
</dl>

<h3>Unused sites</h3><ul>
<h3>Unused sites</h3>
<ul>
{% for site in report.sites_to_delete %}
<li>{{site}}</li>
{% endfor %}
<ul>
</ul>
<h3>Convert old-style URLFields to ForeignKeys</h3>
<ul>
{% for module, module_values in report.models_dictionary.modules.items %}
Expand Down
1 change: 1 addition & 0 deletions links/admin.py
Expand Up @@ -120,6 +120,7 @@ class ExternalSiteAdmin(TreeAdmin):
readonly_fields = ('parent',)
form = ExternalSiteForm
list_display = ('domain', 'site',)
filter_include_ancestors = True


admin.site.register(ExternalLink, ExternalLinkAdmin)
Expand Down
29 changes: 24 additions & 5 deletions links/models.py
Expand Up @@ -211,24 +211,43 @@ def save(self, *args, **kwargs):


class LinkType(models.Model):
scheme = models.CharField(max_length=50, help_text=u"e.g. 'http', 'mailto', etc",
unique=True)
name = models.CharField(max_length=50, help_text=u"e.g. 'Hypertext', 'email', etc")
scheme = models.CharField(
max_length=50,
help_text=u"e.g. 'http', 'mailto', etc",
unique=True
)
name = models.CharField(
max_length=50,
help_text=u"e.g. 'Hypertext', 'email', etc"
)

def __unicode__(self):
return self.scheme


class ExternalSite(models.Model):

site = models.CharField(
"site name",
max_length=50,
help_text = u"e.g. 'BBC News', 'Welsh Assembly Goverment', etc",
null = True
)
domain = models.CharField(max_length=256, null = True, blank = True,)
parent = models.ForeignKey('self', blank=True, null = True, related_name='children')
domain = models.CharField(
"domain name",
max_length=256,
null = True,
blank = True,
help_text = u"Do not amend unless you know what you are doing",
)
parent = models.ForeignKey('self',
blank=True,
null = True,
related_name='children'
)

class Meta:
verbose_name = "domain"
ordering = ['domain',]

def __unicode__(self):
Expand Down

0 comments on commit 4e7d3e3

Please sign in to comment.