Merge
[text_view_comments] To allow scrolling in Safari mobile, we set the content of text_view_comments frame in a jQuery UI layout.
[c_sync.js] So the automated scrolling operations in c_sync.js must be adjustable to the right part to scroll.
[c_sync.js] Also, if a comment have to be shown outside of the current viewport, we scroll the correct part to that viewport
and then set the comment top Y offset to juste what it needs to avoid the "Add comment" button after scrolling
operation.
[c_sync.js] If not in Safari mobile, we add an offset here to avoid comment to display under the "Add comment" button.
from django.core import management
from django.db.models import Q
from django.db.models import Max
from django.utils.translation import ugettext as _, ugettext_lazy
import random
role_models_choices = [('generic', ugettext_lazy(u'Generic')), ('teacher', ugettext_lazy(u'Class (education)'))]
def change_role_model(role_model):
TEMP_MANAGER_ID = random.randint(1000,10000000)
TEMP_MANAGER_NAME = str(random.randint(1000,10000000))
TEMP_USER_ID = random.randint(1000,10000000)
TEMP_USER_NAME = str(random.randint(1000,10000000))
from cm.models import Role, UserRole
# create fake manager/usr role to remember managers/users _roles
temp_manager = Role.objects.create(id=TEMP_MANAGER_ID, name=TEMP_MANAGER_NAME)
temp_user = Role.objects.create(id=TEMP_USER_ID, name=TEMP_USER_NAME)
manager = Role.objects.get(id=1)
for user_userrole in UserRole.objects.filter(~Q(role=manager) & ~Q(role=None)):
user_userrole.role = temp_user
user_userrole.save()
for manager_userrole in UserRole.objects.filter(role=manager):
manager_userrole.role = temp_manager
manager_userrole.save()
Role.objects.filter(~Q(id=TEMP_MANAGER_ID) & ~Q(id=TEMP_USER_ID)).delete()
management.call_command('loaddata', 'roles_' + role_model, verbosity=0)
new_manager = Role.objects.get(id=1)
id_max = Role.objects.filter(~Q(id=TEMP_MANAGER_ID) & ~Q(id=TEMP_USER_ID)).aggregate(Max('id'))['id__max']
new_user = Role.objects.get(id=id_max)
for user_userrole in UserRole.objects.filter(role=temp_user):
user_userrole.role = new_user
user_userrole.save()
for manager_userrole in UserRole.objects.filter(role=temp_manager):
manager_userrole.role = new_manager
manager_userrole.save()
# cleanup
Role.objects.get(id=TEMP_MANAGER_ID).delete()
Role.objects.get(id=TEMP_USER_ID).delete()