Melt the butter and olive oil on medium heat in a heavy bottom saucepan.
Add the onions. Stir well.
Lower the heat to medium low and continue stirring the onions from time to time until well caramelized 20-30 minutes.
Turn the temperature up to medium.
Add the sugar and stir.
Then add the garlic, thyme and bay leaf.
Add the beef broth, sherry and brandy.
Allow the soup to boil then turn the heat down so that it simmers for 10-15 minutes.
Turn off the soup. Season to taste.
Cut the baguette into 1 inch thick slices, dab woth butter and toast to a light golden brown.
Ladle the soup into individual bowls.
Top with 2 toasted slices.
Generously top with Gruyere cheese and parmesan. Make sure the cheese covers the bread entirely.
Broil under the broiler until golden brown . I use a toaster oven with the rack set in the upper position and broil at 500F for 5-10 minutes.