mirror of
https://github.com/nottinghamtec/PyRIGS.git
synced 2026-01-17 05:22:16 +00:00
Enabled event create button
Added MIC field to the event form Added the ability to specify the fields you want to query in an api request Changes to the user profile to enable queries via the API
This commit is contained in:
@@ -1,9 +1,11 @@
|
|||||||
|
import hashlib
|
||||||
|
import datetime
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.contrib.auth.models import AbstractUser
|
from django.contrib.auth.models import AbstractUser
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
import hashlib
|
|
||||||
import reversion
|
import reversion
|
||||||
import datetime
|
|
||||||
|
|
||||||
|
|
||||||
# Create your models here.
|
# Create your models here.
|
||||||
@@ -18,6 +20,9 @@ class Profile(AbstractUser):
|
|||||||
url = "https://www.gravatar.com/avatar/" + hashlib.md5(self.email).hexdigest() + "?d=identicon&s=500"
|
url = "https://www.gravatar.com/avatar/" + hashlib.md5(self.email).hexdigest() + "?d=identicon&s=500"
|
||||||
return url
|
return url
|
||||||
|
|
||||||
|
@property
|
||||||
|
def name(self):
|
||||||
|
return self.get_full_name() + ' "' + self.initials + '"'
|
||||||
|
|
||||||
class RevisionMixin(object):
|
class RevisionMixin(object):
|
||||||
@property
|
@property
|
||||||
@@ -163,7 +168,7 @@ class Event(models.Model, RevisionMixin):
|
|||||||
)
|
)
|
||||||
|
|
||||||
name = models.CharField(max_length=255)
|
name = models.CharField(max_length=255)
|
||||||
person = models.ForeignKey('Person')
|
person = models.ForeignKey('Person', null=True, blank=True)
|
||||||
organisation = models.ForeignKey('Organisation', blank=True, null=True)
|
organisation = models.ForeignKey('Organisation', blank=True, null=True)
|
||||||
venue = models.ForeignKey('Venue')
|
venue = models.ForeignKey('Venue')
|
||||||
description = models.TextField(blank=True, null=True)
|
description = models.TextField(blank=True, null=True)
|
||||||
|
|||||||
@@ -91,7 +91,7 @@
|
|||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div class="panel panel-default form-hws form-is_rig">
|
<div class="panel panel-default form-hws form-is_rig {% if object.pk and not object.is_rig %}hidden{% endif %}">
|
||||||
<div class="panel-heading">Contact Details</div>
|
<div class="panel-heading">Contact Details</div>
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
@@ -285,6 +285,26 @@
|
|||||||
{% render_field form.status class+="form-control" %}
|
{% render_field form.status class+="form-control" %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="{{ form.mic.id_for_label }}"
|
||||||
|
class="col-sm-4 control-label">{{ form.mic.label }}</label>
|
||||||
|
|
||||||
|
<div class="col-sm-8">
|
||||||
|
<input type="hidden" id="{{ form.mic.id_for_label }}" name="{{ form.mic.name }}"
|
||||||
|
value="{{ form.mic.value|default_if_none:"" }}"/>
|
||||||
|
|
||||||
|
<input type="text" id="{{ form.mic.id_for_label }}-input"
|
||||||
|
class="form-control autocomplete-json"
|
||||||
|
data-valueurl="
|
||||||
|
{% if form.mic.value %}
|
||||||
|
{% url 'api_secure' model='mic' pk=form.mic.value %}
|
||||||
|
{% else %}
|
||||||
|
{% url 'api_secure' model='mic' %}
|
||||||
|
{% endif %}?fields=name"
|
||||||
|
data-sourceurl="{% url 'api_secure' model='mic' %}?fields=first_name,username,initials"
|
||||||
|
data-target="{{ form.mic.id_for_label }}"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
{#% include 'RIGS/eventitem_table.html' %#}
|
{#% include 'RIGS/eventitem_table.html' %#}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-12">
|
<div class="col-sm-12">
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
<h3>Rigboard</h3>
|
<h3>Rigboard</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
<a href="{#% url 'person_create' %#}" class="btn btn-default pull-right">New <span
|
<a href="{% url 'event_create' %}" class="btn btn-default pull-right">New <span
|
||||||
class="glyphicon glyphicon-plus"></span></a>
|
class="glyphicon glyphicon-plus"></span></a>
|
||||||
</div>
|
</div>
|
||||||
{% comment %}
|
{% comment %}
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ from RIGS import models
|
|||||||
import simplejson
|
import simplejson
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
def login(request, **kwargs):
|
def login(request, **kwargs):
|
||||||
if request.user.is_authenticated():
|
if request.user.is_authenticated():
|
||||||
@@ -156,6 +157,7 @@ class SecureAPIRequest(generic.View):
|
|||||||
'venue': models.Venue,
|
'venue': models.Venue,
|
||||||
'person': models.Person,
|
'person': models.Person,
|
||||||
'organisation': models.Organisation,
|
'organisation': models.Organisation,
|
||||||
|
'mic': models.Profile,
|
||||||
}
|
}
|
||||||
|
|
||||||
'''
|
'''
|
||||||
@@ -180,19 +182,24 @@ class SecureAPIRequest(generic.View):
|
|||||||
|
|
||||||
# Response format where applicable
|
# Response format where applicable
|
||||||
format = request.GET.get('format', 'json')
|
format = request.GET.get('format', 'json')
|
||||||
|
fields = request.GET.get('fields', None).split(',')
|
||||||
|
|
||||||
# Supply data for one record
|
# Supply data for one record
|
||||||
if pk:
|
if pk:
|
||||||
object = get_object_or_404(self.models[model], pk=pk)
|
object = get_object_or_404(self.models[model], pk=pk)
|
||||||
fields = request.GET.get('fields', None)
|
|
||||||
data = serializers.serialize(format, [object], fields=fields)
|
data = serializers.serialize(format, [object], fields=fields)
|
||||||
return HttpResponse(data, content_type="application/" + format)
|
return HttpResponse(data, content_type="application/" + format)
|
||||||
|
|
||||||
# Supply data for autocomplete ajax request in json form
|
# Supply data for autocomplete ajax request in json form
|
||||||
term = request.GET.get('term', None)
|
term = request.GET.get('term', None)
|
||||||
if term:
|
if term:
|
||||||
objects = self.models[model].objects.filter(name__icontains=term)[:20]
|
if fields is None:
|
||||||
|
fields = ['name']
|
||||||
|
all_objects = self.models[model].objects
|
||||||
results = []
|
results = []
|
||||||
|
for field in fields:
|
||||||
|
filter = field + "__icontains"
|
||||||
|
objects = all_objects.filter(**{filter: term})
|
||||||
for o in objects:
|
for o in objects:
|
||||||
data = {
|
data = {
|
||||||
'pk': o.pk,
|
'pk': o.pk,
|
||||||
@@ -200,7 +207,6 @@ class SecureAPIRequest(generic.View):
|
|||||||
'label': o.name,
|
'label': o.name,
|
||||||
}
|
}
|
||||||
results.append(data)
|
results.append(data)
|
||||||
# todo: fix simplejson issues
|
|
||||||
json = simplejson.dumps(results)
|
json = simplejson.dumps(results)
|
||||||
return HttpResponse(json, content_type="application/json") # Always json
|
return HttpResponse(json, content_type="application/json") # Always json
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user