Preheat the oven 180˚C / 350˚F
In a large pot or deep skillet fry the diced onion in the oil over a medium heat for 5 minutes.
Turn the heat up and squeeze the sausage meat from the casings into the pan. Cook, breaking up the meat up with a wooden spoon, for 5-6 minutes or until browned and just cooked through.
Add the minced garlic and diced peppers and cook for 1 minute.
Stir in the tomato paste and cook for a minute, then add the wine and simmer for 2 minutes until mostly evaporated.
Pour in the the beef stock and crushed tomatoes. Add the dried oregano and season with salt and black pepper.
Bring to a boil, then turn the heat down and simmer gently for 15 minutes, until thickened.
Meanwhile, cook the pasta in a large pan of boiling salted water according to packet directions, MINUS one minute. Drain, reserving 1 cup of the pasta cooking water.
Mix the cooked pasta with the sausage ragu, torn basil leaves, baby spinach and ½ c of the pasta cooking water. If it seems dry add a little more of the pasta water.
Transfer to a 9 x 13 inch (22 x 33cm)oven proof dish and sprinkle over the grated mozzarella and parmesan.
Spray a piece of foil with a little oil, then cover the pasta with the foil, oil side facing down. (This helps stop the cheese from sticking to the foil).
Bake for 20-25 minutes, then remove the foil and bake for 10 minutes until the cheese is golden and bubbling.
Stand for 5 minutes, then serve.