return queryset
+class AEStudentProfileInline(admin.StackedInline):
+ model = AEStudent
+ filter_horizontal = ['courses']
+ extra = 1
+
class StudentAdmin(admin.ModelAdmin):
model = Student
exclude = ['options', 'training']
search_fields = ['public_id', 'id', 'course__code', 'course__title', 'session']
+# class SeminarQuestionInline(admin.StackedInline):
+# model = Question
+
+# class SeminarAdmin(admin.ModelAdmin):
+# inlines = [SeminarQuestionInline,]
+# exclude = ['suscribers']
+
class HomeAdmin(admin.ModelAdmin):
list_filter = ('enabled',)
search_fields = [ 'periods__name', 'title', 'text' ]
admin.site.register(CourseType)
admin.site.register(StreamingServer)
admin.site.register(LiveStream)
-admin.site.register(Seminar, SeminarAdmin)
-admin.site.register(Question)
-admin.site.register(Testimonial)
-admin.site.register(TestimonialTemplate)
admin.site.register(Student, StudentAdmin)
admin.site.register(Corrector, CorrectorAdmin)
admin.site.register(Professor, ProfessorAdmin)
app_label = 'exam'
-import crocodoc
-crocodoc.api_token = settings.BOX_API_TOKEN
-
-
# import boxsdk
# from boxsdk import OAuth2, Client
# import StringIO
verbose_name_plural = _('Scripts')
ordering = ['date_added']
- @property
- def box_admin_url(self):
- user = {'id': self.corrector.id, 'name': unicode(self.corrector)}
- session_key = crocodoc.session.create(self.box_uuid, editable=True, user=user,
- filter='all', admin=True, downloadable=True,
- copyprotected=False, demo=False, sidebar='invisible')
- return 'https://crocodoc.com/view/' + session_key
-
- @property
- def box_user_url(self):
- user = {'id': 3, 'name': 'TeleForma'}
- session_key = crocodoc.session.create(self.box_uuid, editable=False, user=user,
- filter='all', admin=False, downloadable=True,
- copyprotected=False, demo=False, sidebar='invisible')
- return 'https://crocodoc.com/view/' + session_key
-
def auto_set_corrector(self):
self.date_submitted = datetime.datetime.now()
url = url.replace('http://e-learning.crfpa.pre-barreau.com', '//' + domain)
return url
- def has_annotations_file(self):
- """
- check if an annotations file exists. Then use this file, otherwise use the new db implementation
- """
- return os.path.exists(os.path.join(settings.WEBVIEWER_ANNOTATIONS_PATH, self.uuid+'.xfdf'))
-
- def box_upload(self):
- sleep = 10
- max_loop = 12
- loop = 0
-
- self.box_uuid = crocodoc.document.upload(url=self.url)
-
- while True:
- statuses = crocodoc.document.status([self.box_uuid,])
- if (len(statuses) != 0):
- if (statuses[0].get('error') == None):
- if statuses[0]['status'] == 'DONE':
- self.box_upload_done = 1
- self.save()
- break
- else:
- loop += 1
- time.sleep(sleep)
- if loop > max_loop:
- break
- else:
- print 'File upload failed :('
- print ' Error Message: ' + statuses[0]['error']
- if 'too large' in statuses[0]['error']:
- self.auto_reject('file too large')
- elif 'retrieving file' in statuses[0]['error']:
- self.auto_reject('error retrieving file')
- break
- else:
- print 'failed :('
- print ' Statuses were not returned.'
- break
-
def auto_reject(self, mess):
self.reject_reason = mess
self.status = 0
<br /><br />
<div class="media">
<div class="script">
-{# {% if script.has_annotations_file %}#}
-{# <iframe id="box-iframe" style="position:fixed; top:12%; left:0px; bottom:0px; right:0px; width:100%; height:85%; border:none; margin:0; padding:0; z-index:0;" src="{% if user.quotas.all or user.is_superuser %}{{ script_service_url }}?url={{ script.safe_url }}&username=Examinator&uuid={{ script.uuid }}{% else %}{{ script_service_url }}?url={{ script.safe_url }}&username={{ user.username }}&uuid={{ script.uuid }}{% endif %}">#}
-{# </iframe>#}
-{# {% else %}#}
{% pdfannotator url=script.unquoted_url uuid=script.uuid %}
-{# {% endif %}#}
</div>
</div>
# Adding field 'Period.appointment_slot_size'
db.add_column('teleforma_period', 'appointment_slot_size',
- self.gf('django.db.models.fields.TextField')(default=40),
+ self.gf('django.db.models.fields.IntegerField')(default=40),
keep_default=False)
def forwards(self, orm):
# Changing field 'Period.appointment_slot_size'
- db.alter_column('teleforma_period', 'appointment_slot_size', self.gf('django.db.models.fields.IntegerField')())
+ db.alter_column('teleforma_period', 'appointment_slot_size', self.gf('django.db.models.fields.IntegerField')(default=40))
def backwards(self, orm):
# Changing field 'Period.appointment_slot_size'
- db.alter_column('teleforma_period', 'appointment_slot_size', self.gf('django.db.models.fields.TextField')())
+ db.alter_column('teleforma_period', 'appointment_slot_size', self.gf('django.db.models.fields.IntegerField')())
models = {
'auth.group': {
db.alter_column('teleforma_appointment', 'jury_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, on_delete=models.SET_NULL, to=orm['teleforma.AppointmentJury']))
if not db.dry_run:
- from teleforma.models import Appointment, AppointmentSlot, AppointmentJury
- AppointmentJury.objects.all().delete()
-
- for date in dates:
-
- # recreate juries and update slot date
- for slotD in date['slots']:
- # import pdb;pdb.set_trace()
- slot = AppointmentSlot.objects.get(id=slotD['id'])
- slot.date = date['date']
- slot.appointment_period_id = date['period']
- slot.save()
- for jury in slotD['jurys']:
- juryObj = AppointmentJury(slot=slot, name=jury['name'], address=jury['address'])
- juryObj.save()
- for app in jury['appointments']:
- appointment = Appointment.objects.get(id=app)
- appointment.jury = juryObj
- appointment.save()
+ pass
+ # no need on AE (no previous records)
+
+ # from teleforma.models import Appointment, AppointmentSlot, AppointmentJury
+ # AppointmentJury.objects.all().delete()
+
+ # for date in dates:
+
+ # # recreate juries and update slot date
+ # for slotD in date['slots']:
+ # # import pdb;pdb.set_trace()
+ # slot = AppointmentSlot.objects.get(id=slotD['id'])
+ # slot.date = date['date']
+ # slot.appointment_period_id = date['period']
+ # slot.save()
+ # for jury in slotD['jurys']:
+ # juryObj = AppointmentJury(slot=slot, name=jury['name'], address=jury['address'])
+ # juryObj.save()
+ # for app in jury['appointments']:
+ # appointment = Appointment.objects.get(id=app)
+ # appointment.jury = juryObj
+ # appointment.save()
from core import *
from crfpa import *
-#from pro import *
+# from pro import *
from ae import *
from messages import *
from appointment import *
class Answer(Model):
- user = models.ForeignKey(User, related_name=_("answer"), verbose_name=_('user'))
- question = models.ForeignKey(Question, related_name=_("answer"), verbose_name=_('question'))
+ user = models.ForeignKey(User, related_name="answer", verbose_name=_('user'))
+ question = models.ForeignKey(Question, related_name="answer", verbose_name=_('question'))
answer = models.TextField(_('answer'))
status = models.IntegerField(_('status'), choices=STATUS_CHOICES, default=2)
validated = models.BooleanField(_('validated'))
class Meta(MetaCore):
db_table = app_label + '_' + 'answer'
- verbose_name = _('Answer')
+ verbose_name = 'Reponse'
class TestimonialTemplate(Model):