Skip to content

Instantly share code, notes, and snippets.

@pferreir
Created September 16, 2014 15:18
Show Gist options
  • Save pferreir/3b17127712d2e253298b to your computer and use it in GitHub Desktop.
Save pferreir/3b17127712d2e253298b to your computer and use it in GitHub Desktop.
diff --git a/indico/modules/rb/controllers/user/reservations.py b/indico/modules/rb/controllers/user/reservations.py
index a35872a..5c9d64e 100644
--- a/indico/modules/rb/controllers/user/reservations.py
+++ b/indico/modules/rb/controllers/user/reservations.py
@@ -427,15 +427,19 @@ class RHRoomBookingCloneBooking(RHRoomBookingBookingMixin, RHRoomBookingNewBooki
return RHRoomBookingNewBookingSimple._get_view(self, clone_booking=self._reservation, **kwargs)
def _make_form(self):
- defaults = FormDefaults(
- self._reservation,
- skip_attrs={'room_id', 'booked_for_id', 'booked_for_name', 'contact_email', 'contact_phone'},
- room_id=self._room.id,
- booked_for_id=session.user.id,
- booked_for_name=session.user.getStraightFullName().decode('utf-8'),
- contact_email=session.user.getEmail().decode('utf-8'),
- contact_phone=session.user.getPhone().decode('utf-8')
- )
+
+ overwrites = {'room_id': self._room.id}
+
+ if self._reservation.created_by_id != session.user.id:
+ # if the user is cloning someone else's booking, set him/her as booked_for
+ overwrites.update(booked_for_id=session.user.id,
+ booked_for_name=session.user.getStraightFullName().decode('utf-8'),
+ contact_email=session.user.getEmail().decode('utf-8'),
+ contact_phone=session.user.getPhone().decode('utf-8'))
+
+ defaults = FormDefaults(self._reservation,
+ skip_attrs=set(overwrites),
+ **overwrites)
return self._make_confirm_form(self._room, defaults=defaults, form_class=NewBookingSimpleForm)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment