Make professional services also use organisations
authorMagnus Hagander <magnus@hagander.net>
Thu, 25 Feb 2010 16:03:12 +0000 (17:03 +0100)
committerMagnus Hagander <magnus@hagander.net>
Thu, 25 Feb 2010 16:03:12 +0000 (17:03 +0100)
pgweb/profserv/models.py
pgweb/profserv/views.py
templates/profserv/list.html

index 543c00546c1dd6302809c46e4b64d650f5023ac5..19b125fbf6f7b20d8bc47d553907db26775f5d2f 100644 (file)
@@ -1,13 +1,14 @@
 from django.db import models
 from django.contrib.auth.models import User
 
+from pgweb.core.models import Organisation
 from pgweb.util.bases import PgModel
 
 class ProfessionalService(models.Model):
        submitter = models.ForeignKey(User, null=False, blank=False)
        approved = models.BooleanField(null=False, blank=False, default=False)
 
-       name = models.CharField(max_length=100, null=False, blank=False)
+       organisation = models.ForeignKey(Organisation, null=False, blank=False)
        description = models.TextField(null=False,blank=False)
        employees = models.CharField(max_length=32, null=True, blank=True)
        locations = models.CharField(max_length=128, null=True, blank=True)
@@ -21,18 +22,18 @@ class ProfessionalService(models.Model):
        languages = models.CharField(max_length=128, null=True, blank=True)
        customerexample = models.TextField(blank=True, null=True)
        experience = models.TextField(blank=True, null=True)
-       contact = models.CharField(max_length=128, null=True, blank=True)
+       contact = models.TextField(null=True, blank=True)
        url = models.URLField(max_length=128, null=True, blank=True)
        provides_support = models.BooleanField(null=False, default=False)
        provides_hosting = models.BooleanField(null=False, default=False)
-       interfaces = models.CharField(max_length=128, null=True, blank=True)
+       interfaces = models.CharField(max_length=512, null=True, blank=True)
        
        
        send_notification = True
        
        def __unicode__(self):
-               return self.name
+               return self.organisation.name
        
        class Meta:
-               ordering = ('name',)
+               ordering = ('organisation__name',)
 
index 668a3a5ef8184834271141c896cb11c99a41be32..70ac79fe8699a0b76cb3626ab371168f75d57871 100644 (file)
@@ -44,7 +44,7 @@ def region(request, servtype, regionname):
 
        # DB model is a bit funky here, so use the extra-where functionality to filter properly.
        # Field names are cleaned up earlier, so it's safe against injections.
-       services = ProfessionalService.objects.filter(approved=True).extra(where=["region_%s AND provides_%s" % (regionname, what),])
+       services = ProfessionalService.objects.select_related('organisation').filter(approved=True).extra(where=["region_%s AND provides_%s" % (regionname, what),])
        
        return render_to_response('profserv/list.html', {
                'title': title,
index dfa152b35ad8e157c802d866f07c9a6710f46d91..2d94c42e6e3d9e702c8ba6bbc6516f8461754533 100644 (file)
@@ -9,7 +9,7 @@
   <table border="0" cellpadding="0" cellspacing="0" class="tblBasicGrey">\r
    <tr>\r
     <td class="colFirst">Name</td>\r
-    <td class="colMid"><b>{{s.name}}</b>{%if s.url%} (<a href="{{s.url}}">{{s.url}}</a>){%endif%}</td>\r
+    <td class="colMid"><b>{{s.organisation.name}}</b>{%if s.url%} (<a href="{{s.url}}">{{s.url}}</a>){%endif%}</td>\r
     <th class="colLast" />\r
    </tr>
    {%if s.provides_hosting and s.provides_support %}\r